+CRI<10094>:elementary elm_toolbar.c:1453 _elm_toolbar_elm_widget_theme_apply() Failed to set layout!
+*** Backtrace ***
+/usr/local/lib/libeina.so.1 0x7f8c2fc0be86 0x7f8c2fbea000
+/usr/local/lib/libeina.so.1 0x7f8c2fc0d1a9 0x7f8c2fbea000
+/usr/local/lib/libelementary.so.1 0x7f8c3028c87d 0x7f8c30072000
+/usr/local/lib/libelementary.so.1 0x7f8c302aa086 0x7f8c30072000
+/usr/local/lib/libelementary.so.1 0x7f8c30288d58 0x7f8c30072000
+/usr/local/lib/libelementary.so.1 0x7f8c3028618c 0x7f8c30072000
+/usr/local/lib/libelementary.so.1 0x7f8c3028f087 0x7f8c30072000
+/usr/local/bin/terminology 0x416d58 0x400000
+/usr/local/lib/libevas.so.1 0x7f8c2f3daca6 0x7f8c2f34a000
+/usr/local/lib/libeo.so.1 0x7f8c2e5ed37b 0x7f8c2e5e0000
+/usr/local/lib/libeo.so.1 0x7f8c2e5ebbcb 0x7f8c2e5e0000
+/usr/local/lib/libevas.so.1 0x7f8c2f3dceaa 0x7f8c2f34a000
+/usr/local/lib/libedje.so.1 0x7f8c2e87d5e1 0x7f8c2e7f8000
+/usr/local/lib/libedje.so.1 0x7f8c2e8837a7 0x7f8c2e7f8000
+/usr/local/lib/libedje.so.1 0x7f8c2e87e90f 0x7f8c2e7f8000
+/usr/local/lib/libedje.so.1 0x7f8c2e87eab7 0x7f8c2e7f8000
+/usr/local/lib/libecore.so.1 0x7f8c2f122d0b 0x7f8c2f110000
+/usr/local/lib/libecore.so.1 0x7f8c2f11d775 0x7f8c2f110000
+/usr/local/lib/libecore.so.1 0x7f8c2f1251f8 0x7f8c2f110000
+/usr/local/lib/libecore.so.1 0x7f8c2f1253d7 0x7f8c2f110000
+/usr/local/bin/terminology 0x4138b7 0x400000
+/usr/local/bin/terminology 0x40c74c 0x400000
+/usr/lib/libc.so.6 0x7f8c2c675800 0x7f8c2c655000
+
+
+This is EFL logging a critical error. There are various levels of error, critical, error, warning and debug are the main ones, but by default you should normally only see ''CRI'' and ''ERR''. Following this log line which gives source file where the complaining is being printed and the line number is a full backtrace. This is not generally human readable because making it so is relatively costly, so it is not done at runtime. But we provide a utility to make this far nicer for humans. The tool is called ''eina_btlog''. Simply do the following:
+
+
+cat > mybacktrace.txt
+# copy and paste the above lines following *** Backtrace *** that start with file paths
+# now hit CTRL+D to end input
+cat mybacktrace.txt | eina_btlog
+
+
+And you should end up with a colorized log as below that humans can easily use. This is the log a developer wants to identify the full path used to trigger the issue, with functions called from bottom to top of the stack (newest functions called are at the top of this log), with file paths and line numbers, and even binary files these come from.
+
+
+/usr/local/lib/libeina.so.1 | /efl/src/lib/eina/eina_log.c : 1875 @ eina_log_print_cb_stderr()
+/usr/local/lib/libeina.so.1 | /efl/src/lib/eina/eina_log.c : 1272 @ eina_log_print_unlocked()
+/usr/local/lib/libelementary.so.1 | /elementary/src/lib/elm_toolbar.c : 1453 @ _elm_toolbar_elm_widget_theme_apply()
+/usr/local/lib/libelementary.so.1 | /elementary/src/lib/elm_widget.eo.c : 451 @ elm_obj_widget_theme_apply()
+/usr/local/lib/libelementary.so.1 | /elementary/src/lib/elm_toolbar.c : 2949 @ _elm_toolbar_icon_size_set()
+/usr/local/lib/libelementary.so.1 | /elementary/src/lib/elm_toolbar.eo.c : 56 @ elm_obj_toolbar_icon_size_set()
+/usr/local/lib/libelementary.so.1 | /elementary/src/lib/elm_toolbar.eo.c : 354 @ elm_toolbar_icon_size_set()
+/usr/local/bin/terminology | /terminology/src/bin/options.c : 156 @ options_toggle()
+/usr/local/lib/libevas.so.1 | /efl/src/lib/evas/canvas/evas_object_smart.c : 67 @ _eo_evas_smart_cb()
+/usr/local/lib/libeo.so.1 | /efl/src/lib/eo/eo_base_class.c : 712 @ _eo_base_event_callback_call()
+/usr/local/lib/libeo.so.1 | /efl/src/lib/eo/eo_base.eo.c : 94 @ eo_event_callback_call()
+/usr/local/lib/libevas.so.1 | /efl/src/lib/evas/canvas/evas_object_smart.c : 787 @ evas_object_smart_callback_call()
+/usr/local/lib/libedje.so.1 | /efl/src/lib/edje/edje_match.c : 557 @ edje_match_callback_exec_check_finals()
+/usr/local/lib/libedje.so.1 | /efl/src/lib/edje/edje_program.c : 1430 @ _edje_emit_cb()
+/usr/local/lib/libedje.so.1 | /efl/src/lib/edje/edje_message_queue.c : 788 @ _edje_message_queue_process()
+/usr/local/lib/libedje.so.1 | /efl/src/lib/edje/edje_message_queue.c : 155 @ _edje_job()
+/usr/local/lib/libecore.so.1 | /efl/src/lib/ecore/ecore_job.c : 123 @ _ecore_job_event_handler()
+/usr/local/lib/libecore.so.1 | /efl/src/lib/ecore/ecore_private.h : 308 @ _ecore_lock()
+/usr/local/lib/libecore.so.1 | /efl/src/lib/ecore/ecore_main.c : 1928 @ _ecore_main_loop_iterate_internal()
+/usr/local/lib/libecore.so.1 | /efl/src/lib/ecore/ecore_main.c : 983 @ ecore_main_loop_begin()
+/usr/local/bin/terminology | /terminology/src/bin/main.c : 933 @ elm_main()
+/usr/local/bin/terminology | /terminology/src/bin/main.c : 970 @ main()
+ /usr/lib/libc.so.6 | ??/?? : 970 @ __libc_start_main()
+
+
+If you are working on EFL, writing apps that use EFL or just want to report these as a user, it is this resulting ''btlog'' that is useful.
+
+If you do not see such logs, they can be extremely useful in identifying exactly where something has gone something wrong. If you don't see them, try setting this environment variable:
+
+
+export EINA_LOG_BACKTRACE=999
+
+
+== Log levels ==
+
+EFL use a common method to log error messages called Eina_Log, you can tweak the verbosity of the logs simply by setting some environment vars.
+
+Eina_Log introduce the concept of logging domains (or loggers), which might already be familiar to readers. It is basically a way to separate a set of log messages into a context (e.g. a module) and provide a way of controlling this set as a whole.
+
+The level is used for controlling which messages should appear. It specifies the lowest level that should be displayed (e.g. a message with level 11 being logged on a domain with level set to 10 would be displayed, while a message with level 9 wouldn't).
+
+To set the general log level you can use the EINA_LOG_LEVEL variable:
+
+
+EINA_LOG_LEVEL=5 myapp
+
+
+Or you can use a finer selection using the EINA_LOG_LEVELS variable:
+
+
+EINA_LOG_LEVELS=module1:5,module2:2,module3:0 myapp
+
+
+This line would set module1 level to 5, module2 level to 2 and module3 level to 0.
+
+
+EINA_LOG_LEVEL=3 EINA_LOG_LEVELS_GLOB=eina_*:0 myapp
+
+
+This will disable eina_log output from all internal eina code thus allowing you to see your own domain messages easier.
+
+You may also want to enforce crashes when such issues/errors happen, so you can set more environment variables to do this. ''EINA_ERROR_ABORT'' will do this:
+
+
+EINA_ERROR_ABORT=1 gdb myapp
+
+
+Will now cause a crash (abort) at these points above and allow you to poke around with GDB and see why this is happening. See below for more information on GDB.
+
+----
+
+==== Debug tools ====
+
+=== GDB ===
+
+== General ==
+
+In general you would run some app "under GDB" like following:
+
+
+gdb myapp
+
+
+You can also attach to a running process with:
+
+
+gdb myapp PID
+
+
+Where ''PID'' is the process id of the ''myapp'' process you want to attach to and begin debugging.
+
+> //Enlightenment is special because it already has something monitoring enlightenment for crashes (''enlightenment_start'' does this job), so you can't attach GDB to it as normal. This is how enlightenment will produce a ''~/.e-crashdump.txt'' log for every crash that happens. It needs GDB to do this though, but it automated. you will see more enlightenment specific mentions here that don't generally apply, but do to enlightenment.//
+
+Note that on modern systems, GDB attaching is prohibited. This may explain why no ''~/.e-crashdump.txt'' file is created. To enable it, please do:
+
+
+sudo sysctl -w kernel.yama.ptrace_scope=0
+
+
+== GDB with Enlightenment ==
+
+When Enlightenment crashes, it is stopped and a "white box of death" is displayed on screen. A ''crashdump'' file should have been appended to, but if you want to poke around, you need to do some special things. You can now go over to a text console (CTRL+ALT+F1) and log in or use something like ssh to remotely log into your machine from another one. Now you need to attach GDB to enlightenment. Find out the process ID of enlightenment as shown below.
+
+The short way:
+
+
+kill -SIGUSR1 "$(pidof enlightenment_start)" # Tell enlightenment_start to stop monitoring enlightenment
+gdb enlightenment "$(pidof enlightenment)" # Attach to the enlightenment process with GDB
+
+
+If the above fails you have to find PIDs manually:
+
+
+ps -auwx | grep enlightenment
+
+
+Or:
+
+
+pgrep enlightenment
+
+
+Now type:
+
+
+kill -SIGUSR1 PID_OF_enlightenment_start
+gdb enlightenment PID_OF_enlightenment
+
+
+Where PID_OF_enlightenment_start is the process id you found. GDB will load and stream along for a bit then give you a prompt.
+
+== Generic debugging ==
+
+You can now debug. You may want to save the output of GDB to a log file, so the following commands will let you do that. Replace log.txt with any file you prefer, if you don't want to output to this file.
+
+ (gdb) set logging file log.txt
+ (gdb) set logging on
+
+Now that you are saving everything you do in GDB, try to use GDB's backtrace command:
+
+ (gdb) bt
+ #0 0xb7d539f8 in select () from /lib/tls/libc.so.6
+ #1 0xb7dff66a in _XEnq () from /usr/X11R6/lib/libX11.so.6
+ #2 0xb7dffa7e in _XRead () from /usr/X11R6/lib/libX11.so.6
+ #3 0xb7e01795 in _XReadEvents () from /usr/X11R6/lib/libX11.so.6
+ #4 0xb7defa88 in XNextEvent () from /usr/X11R6/lib/libX11.so.6
+ #5 0x0809b698 in e_alert_show (
+ text=0x80a34f0 "This is very bad. Enlightenment has segfaulted.\nThis
+ is not meant to happen and is likely a
+ sign of a\nbug in Enlightenment
+ or the libraries it relies on.\n\nYou can gdb attach to this process
+ now to try"...)
+ at e_alert.c:136
+ #6 0x0808f706 in e_sigseg_act (x=11, info=0x80a9fb0, data=0x80aa030)
+ at e_signals.c:54
+ #7
+valgrind --tool=memcheck --db-attach=yes enlightenment
+
+
+Remember, Valgrind is intercepting all memory operations so it will make things very slow. In fact it is literally emulating a whole CPU and all its memory accesses. But this makes it thorough and Valgrind can find a lot of difficult to find problems. When you get a problem, Valgrind will spew out a complaint and then ask if you want to attach GDB. Often you get a harmless one of these once when you start something - about reading uninitialized memory inside XPutImage() - ignore this. It's harmless. It will be this:
+
+ ==7072== Syscall param writev(vector[...]) points to uninitialised byte(s)
+ ==7072== at 0x1BC255E8: (within /lib/tls/libc-2.3.2.so)
+ ==7072== by 0x1BAC66D6: (within /usr/X11R6/lib/libX11.so.6.2)
+ ==7072== by 0x1BAC6986: _X11TransWritev (in /usr/X11R6/lib/libX11.so.6.2)
+ ==7072== by 0x1BAAB03C: _XSend (in /usr/X11R6/lib/libX11.so.6.2)
+ ==7072== by 0x1BA9EA6B: (within /usr/X11R6/lib/libX11.so.6.2)
+ ==7072== by 0x1BA9F1D2: XPutImage (in /usr/X11R6/lib/libX11.so.6.2)
+ ==7072== by 0x1B957459: evas_software_x11_x_output_buffer_paste (evas_x_buffer.c:173)
+ ==7072== by 0x1B955FEA: evas_software_x11_outbuf_flush (evas_outbuf.c:327)
+ ==7072== by 0x1B953EB4: evas_engine_software_x11_output_flush (evas_engine.c:417)
+ ==7072== by 0x1B93A6A4: evas_render_updates (evas_render.c:298)
+ ==7072== by 0x1B9A0960: _ecore_evas_x_render (ecore_evas_x.c:173)
+ ==7072== by 0x1B9A1EF8: _ecore_evas_x_idle_enter (ecore_evas_x.c:825)
+ ==7072== Address 0x1ED603FC is 596 bytes inside a block of size 38912 allocd
+ ==7072== at 0x1B90459D: malloc (vg_replace_malloc.c:130)
+ ==7072== by 0x1B957200: evas_software_x11_x_output_buffer_new (evas_x_buffer.c:132)
+ ==7072== by 0x1B955224: evas_software_x11_outbuf_new_region_for_update (evas_outbuf.c:256)
+ ==7072== by0x1B953DDA:evas_engine_software_x11_output_redraws_next_update_get (evas_engine.c:394)
+ ==7072== by 0x1B93A355: evas_render_updates (evas_render.c:210)
+ ==7072== by 0x1B9A0960: _ecore_evas_x_render (ecore_evas_x.c:173)
+ ==7072== by 0x1B9A1EF8: _ecore_evas_x_idle_enter (ecore_evas_x.c:825)
+ ==7072== by 0x1B9725E3: _ecore_idle_enterer_call (ecore_idle_enterer.c:78)
+ ==7072== by 0x1B9746AE: _ecore_main_loop_iterate_internal (ecore_main.c:477)
+ ==7072== by 0x1B974A2A: ecore_main_loop_begin (ecore_main.c:79)
+ ==7072== by 0x8059BB2: main (e_main.c:551)
+ ==7072==
+ ==7072== ---- Attach to debugger ? --- [Return/N/n/Y/y/C/c] ----
+
+To ignore the error just say no (n). You may even get it 2 times if you are running multihead. Anything else though is a likely candidate for a problem, when it complains say yes (y) to attach and get us the Valgrind and GDB info (debug in GDB as above).
+
+Valgrind may complain a lot when enlightenment shuts down about problems inside exit() these can also be ignored. They look like this:
+
+ ==7072==
+ ==7072== Invalid read of size 4
+ ==7072== at 0x1BB6B16C: (within /lib/tls/libc-2.3.2.so)
+ ==7072== by 0x1BB6B58C: (within /lib/tls/libc-2.3.2.so)
+ ==7072== by 0x1BBE6FF6: (within /lib/tls/libc-2.3.2.so)
+ ==7072== by 0x1BC61422: (within /lib/tls/libc-2.3.2.so)
+ ==7072== by 0x1BC61337: (within /lib/tls/libc-2.3.2.so)
+ ==7072== by 0x1BC616C4: __libc_freeres (in /lib/tls/libc-2.3.2.so)
+ ==7072== by 0x1B8FEA08: _vgw(float, long double,...)(...)(long double,...)(short) (vg_intercept.c:55)
+ ==7072== by 0x1BB7F1C5: exit (in /lib/tls/libc-2.3.2.so)
+ ==7072== by 0x1BB6997D: __libc_start_main (in /lib/tls/libc-2.3.2.so)
+ ==7072== by 0x8058AE0: ??? (start.S:102)
+ ==7072== Address 0x1C7BFD98 is 8 bytes inside a block of size 60 free"d
+ ==7072== at 0x1B904B04: free (vg_replace_malloc.c:152)
+ ==7072== by 0x1BB6BD37: (within /lib/tls/libc-2.3.2.so)
+ ==7072== by 0x1BC2A902: (within /lib/tls/libc-2.3.2.so)
+ ==7072== by 0x1BC2A7A6: tdestroy (in /lib/tls/libc-2.3.2.so)
+ ==7072== by 0x1BC611C1: (within /lib/tls/libc-2.3.2.so)
+ ==7072== by 0x1BC616C4: __libc_freeres (in /lib/tls/libc-2.3.2.so)
+ ==7072== by 0x1B8FEA08: _vgw(float, long double,...)(...)(long double,...)(short) (vg_intercept.c:55)
+ ==7072== by 0x1BB7F1C5: exit (in /lib/tls/libc-2.3.2.so)
+ ==7072== by 0x1BB6997D: __libc_start_main (in /lib/tls/libc-2.3.2.so)
+ ==7072== by 0x8058AE0: ??? (start.S:102)
+ ==7072==
+ ==7072== ---- Attach to debugger ? --- [Return/N/n/Y/y/C/c] ----
+
+If you see this it is Valgrind's own internal debugging hooks causing problems.
+
+== Nested Xservers for Enlightenment Debugging ==
+
+You will need an Xserver running for enlightenment to display on. The console will need to be usable even if the window manager is broken (you could also ssh in and run from that console, or use a text console too). Many people ask how they can do this and debug a window manager. Here is one way, note, you will need root access.
+
+
+sudo X -ac :1 &
+export DISPLAY=:1
+valgrind --tool=memcheck --db-attach=yes enlightenment
+
+
+This will run an empty Xserver on :1 and switch over to it. You can flip back to your console with CTRL+ALT+F1 or where ever the console was. You can flip back to the new Xserver with something like CTRL+ALT+F7.
+
+Enlightenment will be running (very slowly) under Valgrind. Do whatever it is you do to make a bug happen. When enlightenment "locks up" and doesn't seem to move (but the mouse does), flip back to the text console where you ran Valgrind from and see if it is complaining (as per above). If you used ssh then no switching with CTRL+AL+Fn is needed. You will see Valgrind saying things on the SSH connection terminal as needed and you can interact with Valgrind there.
+
+== Valgrind Invocation - Xephyr ==
+
+You need to install Xephyr, Valgrind and bash for this to work. First you need to put the following script (**desktop-xephyr**) in your **PATH**:
+
+
+#!/usr/bin/env bash
+if [[ -z "$@" ]]; then
+ echo "you need to supply something to be started in Xephyr"
+ exit 1
+fi
+
+xdisplay()
+{
+ local disp=0;
+ while [ -e "/tmp/.X${disp}-lock" ]; do
+ disp=$(( disp + 1 ));
+ done;
+ echo $disp
+}
+
+#select display
+display=$(xdisplay)
+
+#start xserver
+Xephyr -ac -screen 1600x900 -br 2> /dev/null :$display &
+
+#set display
+export DISPLAY=:$display
+
+#wait for Xephyr to become ready
+sleep 1
+
+#start window manager
+bash -c "$@"
+
+#remove x lock
+rm -fr /tmp/.X${display}-lock
+
+
+Then You need to put a second script in your path that uses the fist. This script sets some variables and supplies the window manager to run to the fist script.
+
+
+#!/usr/bin/env bash
+# use this if you want to use a separate home for debugging
+#export HOME=/home/$USER/nobackup/HOME-$USER-debug
+# enable core files
+#limit -c unlimited
+# set log file
+log_file="$HOME/e17-xephyr-debug-valgrind.log"
+# set path to installation to use
+e17_install_path=/opt/e17
+
+set_and_log(){
+ export "$1=$2"
+ if [[ $1 == "PATH" ]]; then
+ #show head of PATH only
+ echo "$1=${!1%%:*}: ... " | tee -a $log_file
+ else
+ echo "$1=${!1}" | tee -a $log_file
+ fi
+}
+
+#start logging and set environment
+echo "Enlightenment Valgrind Debugging Log: $(date +%F)" > $log_file
+
+set_and_log LD_LIBRARY_PATH "$e17_install_path/lib"
+set_and_log PATH "$e17_install_path/bin:$PATH"
+
+#override enlightenment path autodetection
+set_and_log E_PREFIX "$e17_install_path"
+if [[ -n "$E_PREFIX" ]]; then
+ set_and_log E_BIN_DIR "$E_PREFIX/bin"
+ set_and_log E_LIB_DIR "$E_PREFIX/lib"
+ set_and_log E_DATA_DIR "$E_PREFIX/share/enlightenment"
+ set_and_log E_LOCALE_DIR "$E_PREFIX/share/locale"
+fi
+
+# build valgrind command
+valgrind_a="--tool=memcheck --db-attach=yes --num-callers=32"
+valgrind_b="--show-reachable=no --read-var-info=yes --leak-check=full"
+valgrind_c="--leak-resolution=high --undef-value-errors=yes"
+valgrind_d="--track-origins=yes --trace-children=yes"
+valgrind="exec valgrind $valgrind_a $valgrind_b $valgrind_c $valgrind_d"
+
+# call the frist script :P
+desktop-xephyr "$valgrind $e17_install_path/bin/enlightenment_start 2>&1 | tee -a $log_file"
+
+
+Now all you need to do is to call the second script to have some debugging fun.
+
+== Valgrind invocation - Xinit ==
+
+Create a file called .xinitrc-debug in your home with the following content:
+
+
+#!/bin/sh
+
+ulimit -c unlimited
+
+log_file="$HOME/e17-xinit-debug-valgrind.log"
+#path of you installation
+e17_install_path=/opt/e17
+
+#set vars
+LD_LIBRARY_PATH="$e17_install_path/lib"
+PATH="$e17_install_path/bin:$PATH"
+
+#log to file
+echo "using installation at $e17_install_path"
+echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH" > $log_file
+echo "PATH=$e17_install_path/bin: ... " >> $log_file
+
+#start e with valgrind
+exec valgrind --tool=memcheck --db-attach=yes --num-callers=32 \
+ --show-reachable=no --read-var-info=yes --leak-check=full \
+ --leak-resolution=high --undef-value-errors=yes \
+ --track-origins=yes --trace-children=yes \
+ $e17_install_path/bin/enlightenment_start 2>&1 | tee -a "$log_file"
+
+
+Now you can start a debugging session via:
+
+
+/usr/bin/xinit ~/.xinitrc-debug -- :1 -nolisten tcp
+
+
+=== Perf ===
+
+Perf is a tool for Linux that can help you identify performance bottlenecks. This is also part of debugging - to find where CPU time is being spent and perhaps answering why things are slow. Probably the most useful and simplest way to use Perf is with Perf top like:
+
+
+sudo perf top
+
+
+You will get something like top, but for functions instead of processes:
+
+
+Samples: 11K of event 'cycles', Event count (approx.): 401331122 [z]
+Overhead Shared Object Symbol
+ 35.91% libevas.so.1.14.99 [.] _evas_common_scale_rgba_in_to_out_clip_smooth_mmx
+ 9.60% libevas.so.1.14.99 [.] _op_copy_p_dp_mmx
+ 7.29% libevas.so.1.14.99 [.] _op_blend_p_dp_mmx
+ 2.59% libevas.so.1.14.99 [.] _op_copy_c_dp_mmx
+ 1.90% libevas.so.1.14.99 [.] _op_blend_pas_dp_sse3
+ 0.94% [kernel] [k] clear_page_c
+ 0.74% libevas.so.1.14.99 [.] evas_common_rgba_image_scalecache_items_ref
+ 0.67% [kernel] [k] shmem_getpage_gfp
+ 0.65% libeo.so.1.14.99 [.] _eo_do_start
+ 0.63% libevas.so.1.14.99 [.] evas_render_updates_internal
+ 0.63% libeo.so.1.14.99 [.] _eo_call_resolve
+ 0.57% [kernel] [k] page_fault
+ 0.54% libc-2.21.so [.] malloc_consolidate
+ 0.52% [kernel] [k] unmapped_area_topdown
+ 0.51% libc-2.21.so [.] _int_malloc
+ 0.45% libeina.so.1.14.99 [.] eina_hash_find_by_hash
+ 0.43% libpthread-2.21.so [.] pthread_spin_trylock
+ 0.42% [kernel] [k] mem_cgroup_begin_page_stat
+ 0.39% libevas.so.1.14.99 [.] evas_common_tilebuf_get_render_rects
+ 0.39% libevas.so.1.14.99 [.] evas_common_scale_rgba_sample_draw
+ 0.37% libevas.so.1.14.99 [.] evas_object_image_render
+ 0.34% [kernel] [k] unmap_single_vma
+ 0.33% libeo.so.1.14.99 [.] _eo_base_event_callback_call
+ 0.33% libevas.so.1.14.99 [.] _evas_common_scalecache_key_cmp
+ 0.31% libeo.so.1.14.99 [.] eo_data_scope_get
+ 0.30% [kernel] [k] _raw_spin_lock
+ 0.29% [kernel] [k] __wake_up_bit
+ 0.29% [kernel] [k] get_page_from_freelist
+ 0.28% libeina.so.1.14.99 [.] _eina_chained_mempool_alloc_in
+ 0.27% libevas.so.1.14.99 [.] evas_render_mapped
+ 0.26% [vdso] [.] __vdso_gettimeofday
+ 0.26% [kernel] [k] __rmqueue
+ 0.26% libeina.so.1.14.99 [.] eina_log_print
+ 0.26% module.so [.] _find_xob.constprop.3
+ 0.24% libeo.so.1.14.99 [.] _eo_do_end
+ 0.23% libpthread-2.21.so [.] pthread_mutex_lock
+ 0.23% [kernel] [k] find_vma
+ 0.22% libeina.so.1.14.99 [.] eina_chained_mempool_free
+ 0.22% libc-2.21.so [.] malloc
+ 0.22% [kernel] [k] __radix_tree_create
+ 0.22% libeina.so.1.14.99 [.] eina_evlog
+ 0.21% libc-2.21.so [.] _int_free
+
+
+So here you can see that almost 34% of CPU execution time is spent in the ''_evas_common_scale_rgba_in_to_out_clip_smooth_mmx'' function from the ''libevas.so.1.14.99'' library. you can narrow down to a specific process (which is generally most useful) with:
+
+
+sudo perf top -p PID
+
+
+And ensure that every sample clears previous sample history (like top does):
+
+
+sudo perf top -p PID -z
+
+
+And also try higher sample frequencies (the higher the better the accuracy):
+
+
+sudo perf top -p PID -z -F 50000
+
+
+=== Strace ===
+
+Strace is a tool to trace all system calls a process does. This will intercept and log every interaction with a kernel via a system call. Sometimes this is very useful to find out what is going on. You can run a process under Strace like:
+
+
+strace myapp
+
+
+You can also attach to an existing process with:
+
+
+strace -p PID
+
+
+Be aware that as above with GDB attaching, this may be not allowed by your kernel so you may have to:
+
+
+sudo sysctl -w kernel.yama.ptrace_scope=0
+
+
+Also if it's enlightenment, there already is a process attached (enlightenment_start) and you need to tell it to stop monitoring:
+
+
+kill -SIGUSR1 PID_OF_enlightenment_start
+
+
+You will then be able to attach with Strace. Some useful ways of using Strace:
+
+Write the strace log to a specific file for the process id PID:
+
+
+strace -o logfile.txt -p PID
+
+
+Write the strace log to a specific file AND put a timestamp next to every system call for process PID:
+
+
+strace -o logfile.txt -tt -p PID
+
+
+Write the strace log to a specific file AND time how long every system call takes (to find calls that take too long ans slow things down):
+
+
+strace -o logfile.txt -ttt myapp
+
+
+You can combine options like above. See the manual page for Strace for more details.
+
+----
+
+==== Reporting bugs ====
+
+If you have encountered a bug and would like to help by reporting it please
+follow our [[/contrib/report-bug.md|Reporting Bugs]] page.
diff --git a/public_html/data/pages/contrib/enlightenment-debug.md.txt b/public_html/data/pages/contrib/enlightenment-debug.md.txt
new file mode 100644
index 00000000..69b5956f
--- /dev/null
+++ b/public_html/data/pages/contrib/enlightenment-debug.md.txt
@@ -0,0 +1,232 @@
+---
+~~Title: Debugging Enlightenment~~
+---
+
+# Enlightenment Debugging #
+
+This tutorial provides information on debugging Enlightenment, and is aimed at developers with prior debugging experience. It is divided in two sections:
+
+Before debugging make sure your debug symbols are enabled. If they are not consult the [Get Source documentation](/docs/distros/#Enable_debug_symbols_Optional) for further instructions.
+
+## Debugging Enlightenment with GDB ##
+
+In order to use the GNU Debugger (GDB), first simulate a crash in Enlightenment.
+
+Start by running Enlightenment, then switch to another terminal using CTRL+ALT+F1 for ``tty1``.
+
+Two processes are of interest: ``enlightenment`` and ``enlightenment_start``. In fact, ``enlightenment`` is traced by ``enlightenment_start``.
+
+Next send a ``SEGV`` signal to "segfault" Enlightenment.
+
+```c
+kill -SIGSEGV $(pidof enlightenment)
+```
+
+``enlightenment_start`` will open a pop-up named Enlightenment Error. This pop-up indicates that Enlightenment "segfaulted" and gives the option to recover or log out, but also detaches from the child process (Enlightenment) which allows advanced users to use GDB to debug it.
+
+Attach GDB to Enlightenment as follows:
+
+```bash
+gdb enlightenment $(pidof enlightenment)
+```
+
+To save the traces in a log file:
+
+```bash
+#save the traces in log.txt
+set logging file log.txt
+set logging on
+```
+
+### Backtracing ###
+
+Use the backtrace command to get information about frames to know where the segfault is coming from.
+
+```bash
+(gdb) bt
+#0 0xb7d539f8 in select () from /lib/tls/libc.so.6
+#1 0xb7dff66a in _XEnq () from /usr/X11R6/lib/libX11.so.6
+#2 0xb7dffa7e in _XRead () from /usr/X11R6/lib/libX11.so.6
+#3 0xb7e01795 in _XReadEvents () from /usr/X11R6/lib/libX11.so.6
+#4 0xb7defa88 in XNextEvent () from /usr/X11R6/lib/libX11.so.6
+#5 0x0809b698 in e_alert_show (
+ text=0x80a34f0 "This is very bad. Enlightenment has segfaulted.\nThis
+ is not meant to happen and is likely a
+ sign of a\nbug in Enlightenment
+ or the libraries it relies on.\n\nYou can gdb attach to this process
+ now to try"...)
+ at e_alert.c:136
+#6 0x0808f706 in e_sigseg_act (x=11, info=0x80a9fb0, data=0x80aa030)
+ at e_signals.c:54
+#7
+kill -SIGSEGV $(pidof enlightenment)
+
+
+''enlightenment_start'' will open a pop-up named Enlightenment Error. This pop-up indicates that Enlightenment segfaulted and allows to recover or log out but also detaches from the child process (Enlightenment) and let advanced users use GDB to debug it.
+
+
+#gdb on the running enlightenment process
+gdb enlightenment $(pidof enlightenment)
+
+
+After a bit a prompt is available, if you want, you can save the traces in a log:
+
+
+#save the traces in log.txt
+set logging file log.txt
+set logging on
+
+
+== Backtrace ==
+
+Use the backtrace command to get information about frames to know where the segfault is coming from.
+
+
+(gdb) bt
+#0 0xb7d539f8 in select () from /lib/tls/libc.so.6
+#1 0xb7dff66a in _XEnq () from /usr/X11R6/lib/libX11.so.6
+#2 0xb7dffa7e in _XRead () from /usr/X11R6/lib/libX11.so.6
+#3 0xb7e01795 in _XReadEvents () from /usr/X11R6/lib/libX11.so.6
+#4 0xb7defa88 in XNextEvent () from /usr/X11R6/lib/libX11.so.6
+#5 0x0809b698 in e_alert_show (
+ text=0x80a34f0 "This is very bad. Enlightenment has segfaulted.\nThis
+ is not meant to happen and is likely a
+ sign of a\nbug in Enlightenment
+ or the libraries it relies on.\n\nYou can gdb attach to this process
+ now to try"...)
+ at e_alert.c:136
+#6 0x0808f706 in e_sigseg_act (x=11, info=0x80a9fb0, data=0x80aa030)
+ at e_signals.c:54
+#7
+#8 0xb7d539f8 in select () from /lib/tls/libc.so.6
+#9 0xb7f814ee in _ecore_main_select (timeout=0)
+ at ecore_main.c:338
+#10 0xb7f819ba in _ecore_main_loop_iterate_internal (once_only=0)
+ at ecore_main.c:575
+#11 xb7f81a2b in ecore_main_loop_begin () at ecore_main.c:79
+#12 0x08059bb3 in main (argc=1, argv=0xbffff144) at e_main.c:551
+
+
+As you can see in the stack trace, GDB finds the segfault in libc and pops to the main function in e_main. But it doesn't seem credible to have a bug in libc or x, the important thing is Enlightenment has its own segfault handler which is very explicit on frame 5.
+
+The e_sigseg_act() function at frame 6 is called directly from the kernel when the program segfaults, meaning enlightenment causes the segfault. So, the segfault comes from the select function (a libc function) at frame 8 called in _e_core_main_select_function at frame 9.
+
+== Go in a frame ==
+
+So, the reason of segfault seems to be at frame 9, when ''select'' function is called. Let's go to frame 9:
+
+
+fr 9
+#9 0xb7f814ee in _ecore_main_select (timeout=0) at ecore_main.c:338
+338 ret = select(max_fd + 1, &rfds, &wfds, &exfds, t);
+(gdb) l
+333 }
+334 }
+335 #ifndef WIN32
+336 if (_ecore_signal_count_get()) return -1;
+337 #endif
+338 ret = select(max_fd + 1, &rfds, &wfds, &exfds, t);
+339 if (ret < 0)
+340 {
+341 if (errno == EINTR) return -1;
+342 }
+
+
+The first command **//fr 9//** gives useful information: name of the file, number of the line, the function called, ... The second command **//l//** lists the code around the called function. Another useful command allows to print the variables, the parameters, helping you to find out the problem, a wrong parameter, a null pointer...
+
+
+(gdb) p ret
+$1 = -4
+(gdb) p rfds
+$2 = {__fds_bits = {1280, 0 }}
+(gdb) p wfds
+$3 = {__fds_bits = {0 }}
+(gdb) p exfds
+$4 = {__fds_bits = {0 }}
+
+
+GDB is important to start debugging, it will help you to resize the problem even if sometimes is not enough.
+
+----
+
+=== Valgrind ===
+
+Valgrind aims at finding memory problems but for that Enlightenment needs to be run through Valgrind.
+
+== Prerequisites ==
+
+This tutorial will present 3 different ways to run enlightenment through Valgrind:
+
+ * Remote debugging
+ * Xephyr invocation
+ * Xinit invocation
+
+The easiest way is certainly Xephyr because it allows to target a window on a X server host, sadly Xephyr doesn't yet support OpenGL and any issue that may be related to it will need to use the Xinit version.
+
+== Remote Debugging ==
+
+Enlightenment_start launcher will handle setting up environment variables, paths, and launching any other required services before Enlightenment starts. Fortunately, there are some options in enlightenment_start that allow to run Enlightenment through Valgrind:
+
+
+$enlightenment_start --help
+Options:
+ -valgrind[=MODE]
+ Run enlightenment from inside valgrind, mode is OR of:
+ 1 = plain valgrind to catch crashes (default)
+ 2 = trace children (thumbnailer, efm slaves, ...)
+ 4 = check leak
+ 8 = show reachable after processes finish.
+ all = all of above
+ -massif
+ Run enlightenment from inside massif valgrind tool.
+ -callgrind
+ Run enlightenment from inside callgrind valgrind tool.
+ -valgrind-log-file=
+ Save valgrind log to file, see valgrind's --log-f
+
+
+First of all, get the IP address of your host machine and connect to it, then
+on the distant machine, launch X:
+
+
+#launch X on tty1
+sudo X -ac :1 &
+
+
+For example, if you want to check leak and save traces in a log file:
+
+
+export DISPLAY=:1
+enlightenment_start -valgrind=4 -valgrind-log-file=log.txt
+
+
+At that point, Enlightenment should have started on your host machine. If the session is closed then the summary of Valgrind should look like:
+
+
+==1488==
+==1488== HEAP SUMMARY:
+==1488== in use at exit: 4,479,487 bytes in 24,302 blocks
+==1488== total heap usage: 336,239 allocs, 311,937 frees, 88,068,674 bytes allocated
+==1488==
+==1488== LEAK SUMMARY:
+==1488== definitely lost: 825 bytes in 15 blocks
+==1488== indirectly lost: 39 bytes in 2 blocks
+==1488== possibly lost: 384 bytes in 1 blocks
+==1488== still reachable: 4,478,239 bytes in 24,284 blocks
+==1488== suppressed: 0 bytes in 0 blocks
+==1488== Rerun with --leak-check=full to see details of leaked memory
+==1488==
+==1488== For counts of detected and suppressed errors, rerun with: -v
+==1488== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
+
+
+== Valgrind Invocation - Xinit ==
+
+Create a file called .xinitrc-debug in your home with the following content:
+
+
+#!/bin/sh
+
+ulimit -c unlimited
+
+log_file="$HOME/enlightenment-xinit-debug-valgrind.log"
+#path of you installation
+enlightenment_install_path=/usr/local
+
+#set vars
+LD_LIBRARY_PATH="$enlightenment_install_path/lib"
+PATH="$enlightenment_install_path/bin:$PATH"
+
+#log to file
+echo "using installation at $enlightenment_install_path"
+echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH" > $log_file
+echo "PATH=$enlightenment_install_path/bin: ... " >> $log_file
+
+#start e with valgrind
+$enlightenment_install_path/bin/enlightenment_start -valgrind 2>&1 | tee -a "$log_file"
+
+
+You can now start a debugging session, after X was closed if it is not the case log out:
+
+
+/usr/bin/xinit ~/.xinitrc-debug -- :1 -nolisten tcp
+
+
+== Valgrind Invocation - Xephyr ==
+
+Xephyr is a display server implementing the X11 display server protocol which targets a window on a X Server host. So, for this it is important that X is launched, you can even do it in your usual window manager under X.
+
+Of course, you need to install Xephyr.
+
+
+Xephyr -ac -br -noreset -screen 800x600 :1
+
+
+ *ac: disable access control restrictions
+ *br: create root window with black background
+ *noreset: don't reset after last client exists
+ *screen 800x600: Specify screen characteristics
+
+A black screen should now be displayed, and the interesting thing for us is that you can launch a window manager on it with Valgrind in addition:
+
+
+DISPLAY=:1 enlightenment_start -valgrind
+
\ No newline at end of file
diff --git a/public_html/data/pages/contrib/navigation.txt b/public_html/data/pages/contrib/navigation.txt
new file mode 100644
index 00000000..9d19142b
--- /dev/null
+++ b/public_html/data/pages/contrib/navigation.txt
@@ -0,0 +1,13 @@
+ * [[/contrib/start]]
+ * [[/contrib/report-bug.md]]
+ * [[/contrib/efl-debug.md | Debugging EFL]]
+ * [[/contrib/enlightenment-debug.md | Debugging Enlightenment]]
+ * [[/contrib/devs/start.md ]]
+ * [[/contrib/devs/coding-conventions.md]]
+ * [[/contrib/devs/git-guide.md]]
+ * [[/contrib/devs/arcanist-guide.md | Patch Submission and Review]]
+ * [[/contrib/devs/enlightenment-regression.md | Enlightenment Regression Testing]]
+ * [[/contrib/docs/start.md]]
+ * [[contrib/docs/documentation-guide.md | Writing Documentation]]
+ * [[/contrib/docs/eo-guide.md ]]
+ * [[/contrib/docs/eo.md ]]
diff --git a/public_html/data/pages/contrib/patching.txt b/public_html/data/pages/contrib/patching.txt
new file mode 100644
index 00000000..54608a40
--- /dev/null
+++ b/public_html/data/pages/contrib/patching.txt
@@ -0,0 +1,171 @@
+~~Title: Submitting patches~~
+
+=== Setting up Arcanist (arc) ===
+
+To set up arcanist you will need php installed locally, as well as git, and then the arcanist and libphutil git trees:
+
+
+sudo apt-get install php5-cli php5-curl php5-json git # remove arc
+mkdir ~/arcanist
+cd ~/arcanist
+git clone git://github.com/phacility/libphutil.git
+git clone git://github.com/phacility/arcanist.git
+
+
+If you prefer to use HTTPS, replace the last two commands from above with:
+
+
+git clone https://github.com/phacility/libphutil.git
+git clone https://github.com/phacility/arcanist.git
+
+
+Ensure that //~/arcanist/arcanist/bin// is in your $PATH for your shell. Example:
+
+
+export PATH="$HOME/arcanist/arcanist/bin:$PATH"
+
+
+You will need to configure it to talk to Enlightenment's phabricator to be able to interact:
+
+
+arc set-config default https://phab.enlightenment.org
+
+
+Then go to any git tree you have checked out from us and do:
+
+
+arc list
+
+
+Follow the instructions to set up your conduit key.
+
+=== Review and patch submission ===
+
+There are 3 situations you will find yourself in.
+
+ * You are a developer with push access and you can push whatever you want without approval or review. Any other developer with push access can revert your changes or comment on them post commit.
+ * You are a developer with push access, but before you do, you'd like some peer review/comment, so you want to go through our review process.
+ * You do not have push access, but have something to submit and get review on, hoping it will be accepted once it is in a decent state.
+
+In the first case, just keep on using git as normal. The usual social norms will inform you if you are wrong via E-Mail, IRC or in person, and to adapt as needed.
+
+In the second and third cases you will want to do the following to get review:
+
+==== Prepare a patch ====
+
+Create a branch to begin doing your new work in:
+
+
+git checkout -b work
+
+# EDIT files, git add etc. as needed.
+
+
+Be aware that if you plan to push to your private branch devs/
+arc diff
+
+
+This will give you a URL for your patch request. You can give it to whoever you'd like to see your work and/or review it. Wait for review (Phabricator will send you mails and the web ui will show you the status of your patches etc.).
+
+==== Update an existing patch ====
+
+If your patch needs more revision (after a reviewer tells so), you can continue working with it and once you've done with your changes:
+
+
+ arc diff --update D(id)
+
+
+Where D(id) is for example D25 - your revision ID.
+
+If you want to change the git commit message, add --edit option:
+
+
+arc diff --edit --update D(id)
+
+
+If you want your patch to stay in sync with the upstream Git repo, you might want to rebase it on top of upstream and update the patch on Phabricator:
+
+
+git fetch origin master:master
+git rebase master
+arc diff --update D(id) --base arc:upstream
+
+
+Alternatively, if the above didn't work, you might have to checkout master, pull and rebase from origin, then go back to branch work and rebase on top of master.
+
+Using the --base argument will ensure that your patch stays in sync with upstream and Arcanist doesn't pollute the diff with changes that were introduced by other people.
+
+==== Submit a patch ====
+
+This applies to developers with push access.
+
+Once approved, YOU the submitter must do:
+Switch back to master (or whatever branch you were on):
+
+
+ git checkout master
+
+
+Apply the patch. The revision (e.g. D9) is the revision number/ID that phabricator gives you in its UI and emails:
+
+And then actually push the changes to master. If you are the owner of the patch (and have commit access) do:
+
+
+arc patch D9
+arc land
+
+
+If you are the reviewer and are going to commit the patch for the person submitting it, please do:
+
+
+arc patch --nobranch D9
+git push
+arc close-revision D9
+
+
+If you try and do this before the patch is approved, arc will complain. Note that the commit log you enter above when you do arc patch will be the git commit log, so please paste in the original patch log from the page.
+
+Please check that the authorship of the patch has been preserved in the operation. If not, please fix it before pushing (this seems to be a bug in phab or arc right now):
+
+
+git show --pretty=fuller
+git commit --amend --author="name "
+
+
+=== Additional Information ===
+
+The [[http://www.phabricator.com/docs/phabricator/article/Arcanist_User_Guide.html|official Arcanist docs]]
+
+=== Adding your own CA to the CA Bundle ===
+
+If you are using self signed certificates, you might hit the following issue.
+
+
+$ arc list
+Exception
+[cURL/60] (https://phab.enlightenment.org/api/conduit.connect)
+There was an error verifying the SSL Certificate Authority while negotiating the SSL connection.
+This usually indicates that you are using a self-signed certificate but have not added your CA to the CA bundle.
+See instructions in "libphutil/resources/ssl/README".
+(Run with --trace for a full exception trace.)
+
+
+To resolve this, you can do the following.
+
+
+ sudo cp MYCERT.crt /usr/share/local/ca-certificates/.crt #(Make sure extension is crt)
+ sudo update-ca-certificates
+
+
+or
+
+
+ cp MYCERT.crt ~/arcanist/libphutil/resources/ssl/custom.pem
+ cd git_clone_repository
+ arc install-certificates
+
\ No newline at end of file
diff --git a/public_html/data/pages/contrib/report-bug.md.txt b/public_html/data/pages/contrib/report-bug.md.txt
new file mode 100644
index 00000000..d58d7823
--- /dev/null
+++ b/public_html/data/pages/contrib/report-bug.md.txt
@@ -0,0 +1,67 @@
+---
+~~Title: Reporting Bugs~~
+---
+
+# Reporting Bugs ##
+
+If you think you have found a bug with the Enlightenment Foundation Libraries, Enlightenment, or an official Enlightenment application, please submit a bug report so that it can be investigated and fixed. Before doing so, however, please read through this document to ensure your report arrives at the correct place and with enough information to be acted upon.
+
+Please remember these key guidelines for a good bug report:
+
+* Be precise.
+* Be clear.
+* Only detail one bug per report.
+* Only report a bug [on the Phabricator ticketing system](https://phab.enlightenment.org/maniphest/task/edit/form/2/).
+* Re-read the report prior to submission.
+
+## Before Reporting a Bug ##
+
+If you believe you have found a bug, run through the following steps to make sure you have all the information ready to file a bug report.
+
+### Reproducing the Bug ###
+
+Try to reproduce the bug with the latest version of the software. If you are running an older version, particularly one provided by your operating system's package manager rather than compiled from source, it is possible the bug you have encountered has already been resolved. If the issue still exists in the latest version, make sure the bug is reproducible. Double-check that the issue you have encountered is not caused by any custom settings or changes you have made.
+
+### Checking for Existing Reports ###
+
+Check the [Phabricator ticketing system](https://phab.enlightenment.org/maniphest/query/all) to see if your bug has already been reported. If you find no existing report, please create one.
+
+### Notes on Visual Bugs ###
+
+If reporting a visual bug please make absolutely sure you test under the default theme. EFL developers do not support other themes, and bugs related to other themes must be sent directly to that theme's author for investigation.
+
+### Debugging Tool Output ###
+
+If you have gathered a large quantity of output traces during debugging, please attach them to your ticket as file uploads rather than by pasting them into the comment itself. For more information on debugging, please consult [Debugging EFL Applications](/develop/debug/start.md), [EFL Debugging](/contrib/efl-debug.md) and [Enlightenment Debugging](/contrib/enlightenment-debug.md).
+
+## Reporting a Bug via Phabricator ##
+
+Only report bugs in the [Phabricator ticketing system](https://phab.enlightenment.org/maniphest/task/edit/form/2/). Please don't send bug reports and patches to the Enlightenment mailing list, as there is a good chance your report will be lost. If there is more discussion needed around the issue, add a bug report to Phabricator before or after carrying out a discussion on the mailing list.
+
+The workflow for reporting a bug is as follows: go to the [Phabricator ticketing system](https://phab.enlightenment.org/maniphest/task/edit/form/2/), and fill out at least the following fields:
+
+* Title - A short one-sentence summary that explains the problem clearly and precisely.
+* Assigned To - Leave blank, as the developers will set an assignee.
+* CC - Either leave blank or, if you know of interested users, add them here.
+* Priority - Leave blank, as this will be set by the developers.
+* Select the project(s) in which you found the bug.
+* Description - Include in this section:
+ * Step-by-step instructions for recreating the bug;
+ * The expected results;
+ * The actual results;
+ * Any program errors;
+ * Short and notable log or trace extracts;
+ * Any additional information that may assist the developers.
+* To attach a log or screenshot click on the Upload File button in the toolbar of the description field.
+* Re-read your report to check for clarity, then click Create Task.
+
+## Further Reading ##
+
+[Debugging EFL Applications](/develop/debug/start.md)
+: A guide to debugging applications written with EFL.
+
+[EFL Debugging](/contrib/efl-debug.md)
+: A guide to debugging EFL itself.
+
+[Enlightenment Debugging](/contrib/enlightenment-debug.md)
+: A guide to debugging Enlightenment.
diff --git a/public_html/data/pages/contrib/sidebar.txt b/public_html/data/pages/contrib/sidebar.txt
new file mode 100644
index 00000000..05ccbb1f
--- /dev/null
+++ b/public_html/data/pages/contrib/sidebar.txt
@@ -0,0 +1,3 @@
+~~NOCACHE~~
+
+{{navi>:contrib:navigation?ns}}
diff --git a/public_html/data/pages/contrib/start.txt b/public_html/data/pages/contrib/start.txt
new file mode 100644
index 00000000..78bf3e86
--- /dev/null
+++ b/public_html/data/pages/contrib/start.txt
@@ -0,0 +1,29 @@
+~~Title: Contribute~~
+
+====== How to Contribute to EFL and Enlightenment ======
+
+Whether you're an end-user or a developer there are ways to get involved in the Enlightenment Project. Below you'll find various ways you can help out, from offering your time to improve the project's documentation or provide patches to offering to maintain the servers or supply hardware for development and testing.
+
+However you want to contribute, know that your contribution will always be warmly received and go towards making the Enlightenment Project the best it can possibly be.
+
+Information on the current status of Enlightenment Project development, along with a list of open issues requiring attention, can be found on the [[https://phab.enlightenment.org/|Phabricator Ticket System]]. Assistance with any and all of the listed tickets is always welcome.
+
+===== Contributing Time =====
+
+If you have free time help is always welcome, with a variety of areas suited to different skill sets.
+
+If you have development skills you'll find ways to contribute in the [[https://www.enlightenment.org/contrib/devs/start.md|Developer Contributions section]], from resolving issues raised in the [[https://phab.enlightenment.org/|Phabricator Ticket System]] to [[https://www.enlightenment.org/contrib/devs/arcanist-guide.md|submitting and reviewing patches]]. You'll also find information for joining the official IRC channels and mailing lists, where you can ask for assistance in getting started with the Enlightenment code base and receive feedback on your proposals.
+
+If you have good written skills you'll find guidelines for contributing to project documentation in the [[https://www.enlightenment.org/contrib/docs/start.md|Documentation Contributions section]]. Whether you want to write lengthy tutorials or simply fix a spelling mistake, your assistance will always be gratefully received.
+
+Other skill sets, including translators to assist with bringing the Enlightenment ecosystem to as many users in their native languages as possible and designers to work on new Enlightenment and application themes, are welcome to contribute too. Join the [[/contact|official IRC channel]] and ask how you can help.
+
+===== Contributing Financially =====
+
+The Enlightenment Project is run by the Enlightenment Association, a non-profit organization registered under French law. Donations of money, support, or equipment are always welcome, and go fully to help maintain the Enlightenment Project and improve the ecosystem for all its users.
+
+You can contribute by offering to maintain additional servers for the website, git repositories, mailing lists, and other Enlightenment services, by promoting the Enlightenment project at events such as FOSDEM, ELC, and LinuxTag, or by donating hardware which can be used to develop and test the Enlightenment ecosystem. For more information on these methods of contribution, please get in touch via the official IRC channel or mailing list.
+
+Monetary donations are also always welcome, with 100 percent of your contribution going to support development and distribution of Enlightenment, the Enlightenment Foundation Libraries (EFL), and the Enlightenment application ecosystem. To donate to the Enlightenment Project via cryptocurrency, PayPal, or Flattr, please use the links below. There is no minimum amount for your donation - every penny counts towards maintaining and improving the Enlightenment ecosystem.
+
+{{page>incl:donation-buttons}}
diff --git a/public_html/data/pages/develop/api-include/efl/ui/efl.ui.radio_box/section.txt b/public_html/data/pages/develop/api-include/efl/ui/efl.ui.radio_box/section.txt
new file mode 100644
index 00000000..86b607d9
--- /dev/null
+++ b/public_html/data/pages/develop/api-include/efl/ui/efl.ui.radio_box/section.txt
@@ -0,0 +1 @@
+Testing.
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api-include/reference/general.txt b/public_html/data/pages/develop/api-include/reference/general.txt
new file mode 100644
index 00000000..e2f7c659
--- /dev/null
+++ b/public_html/data/pages/develop/api-include/reference/general.txt
@@ -0,0 +1,7 @@
+====== Unified EFL API ======
+
+The Enlightenment Foundation Libraries (EFL) cover a wide range of functions including inter-process communication (IPC), graphics, audio and even location services. Other powerful features include file handling utilities, widgets and user interface controls, thumbnailing and rendering via scene graph. You can discover more of EFL's capabilities by visiting the [[:about-efl | About EFL]] page.
+
+The Unified EFL API (Currently in BETA) is a reworking of the old many-libraries API into a single (Efl) namespace. It is build on top of Eo (Enlightenment Object) class definitions to provide inheritance of objects and to bind more closely to higher level languages.
+
+The Efl API is split into three main areas: ''Efl_Core'', ''Efl_Net'' and ''Efl_Ui'', each encompassing the one before so you can include a single reference in your app. For basic offline applications use Efl_Core, for additional network and connectivity use Efl_Net and if you are building a graphical application then use Efl_Ui. In the C language (the default for this documentation) you will also see reference to Eina which provides common data constructs missing in low level languages.
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/app.txt b/public_html/data/pages/develop/api/efl/app.txt
new file mode 100644
index 00000000..139c7e12
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/app.txt
@@ -0,0 +1,167 @@
+~~Title: Efl.App~~
+====== Efl.App (class) ======
+
+===== Description =====
+
+%%Object representing the application itself.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:app:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:loop|Efl.Loop]] //(class)// => [[:develop:api:efl:task|Efl.Task]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:loop|Efl.Loop]] //(class)//
+ * [[:develop:api:efl:task|Efl.Task]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:core:command_line|Efl.Core.Command_Line]] //(mixin)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:app:property:app_main|app_main]]** //**(get)**// ''static''\\
+>
+
+Efl_App *efl_app_main_get();
+
+\\
+**[[:develop:api:efl:app:property:build_efl_version|build_efl_version]]** //**(get)**//\\
+>
+
+const Efl_Version efl_app_build_efl_version_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:app:property:efl_version|efl_version]]** //**(get)**//\\
+>
+
+const Efl_Version efl_app_efl_version_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:app:property:priority|priority]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:task|Efl.Task]]]//\\
+> %%The priority of this task.%%
+
+Efl_Task_Priority efl_task_priority_get(const Eo *obj);
+void efl_task_priority_set(Eo *obj, Efl_Task_Priority priority);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:core:command_line|Efl.Core.Command_Line]] ^^^
+| | **[[:develop:api:efl:core:command_line:property:command|command]]** //**(get)**// | |
+| | **[[:develop:api:efl:core:command_line:method:command_access|command_access]]** | %%Get the accessor which enables access to each argument that got passed to this object.%% |
+| | **[[:develop:api:efl:core:command_line:property:command_array|command_array]]** //**(set)**// | |
+| | **[[:develop:api:efl:core:command_line:property:command_string|command_string]]** //**(set)**// | |
+^ [[:develop:api:efl:loop|Efl.Loop]] ^^^
+| | **[[:develop:api:efl:loop:method:begin|begin]]** | %%Runs the application main loop.%% |
+| | **[[:develop:api:efl:loop:method:constructor|constructor]]** | %%Implement this method to provide optional initialization code for your object.%% |
+| | **[[:develop:api:efl:loop:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| | **[[:develop:api:efl:loop:method:end|end]]** | %%Request the task end (may send a signal or interrupt signal resulting in a terminate event being triggered in the target task loop).%% |
+| | **[[:develop:api:efl:loop:method:idle|idle]]** | %%A future promise that will be resolved from a clean main loop context as soon as the main loop is idle.%% |
+| | **[[:develop:api:efl:loop:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:loop:method:iterate|iterate]]** | %%Runs a single iteration of the main loop to process everything on the queue.%% |
+| | **[[:develop:api:efl:loop:method:iterate_may_block|iterate_may_block]]** | %%Runs a single iteration of the main loop to process everything on the queue with block/non-blocking status.%% |
+| | **[[:develop:api:efl:loop:method:job|job]]** | %%A future promise that will be resolved from a clean main loop context as soon as possible.%% |
+| | **[[:develop:api:efl:loop:method:quit|quit]]** | %%Quits the main loop once all the events currently on the queue have been processed.%% |
+| | **[[:develop:api:efl:loop:method:run|run]]** | %%Actually run the task.%% |
+| | **[[:develop:api:efl:loop:property:throttle|throttle]]** //**(get, set)**// | %%Slow down the loop execution by forcing sleep for a small period of time every time the loop iterates/loops.%% |
+| ''protected set'' | **[[:develop:api:efl:loop:property:time|time]]** //**(get, set)**// | %%Retrieves the time at which the last loop stopped waiting for timeouts or events.%% |
+| | **[[:develop:api:efl:loop:method:timeout|timeout]]** | %%A future promise that will be resolved from a clean main loop context after %%''time''%% seconds.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:task|Efl.Task]] ^^^
+| | **[[:develop:api:efl:task:property:exit_code|exit_code]]** //**(get)**// | |
+| | **[[:develop:api:efl:task:property:flags|flags]]** //**(get, set)**// | %%Flags to further customize task's behavior.%% |
+| | **[[:develop:api:efl:task:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+
+===== Events =====
+
+**[[:develop:api:efl:app:event:pause|pause]]**\\
+> %%Called when the application is not going be displayed or otherwise used by a user for some time%%
+
+EFL_APP_EVENT_PAUSE(void)
+
+\\ **[[:develop:api:efl:app:event:resume|resume]]**\\
+> %%Called before a window is rendered after a pause event%%
+
+EFL_APP_EVENT_RESUME(void)
+
+\\ **[[:develop:api:efl:app:event:signal_hup|signal,hup]]**\\
+> %%System specific, but on unix maps to SIGHUP signal to the process - only called on main loop object%%
+
+EFL_APP_EVENT_SIGNAL_HUP(void)
+
+\\ **[[:develop:api:efl:app:event:signal_usr1|signal,usr1]]**\\
+> %%System specific, but on unix maps to SIGUSR1 signal to the process - only called on main loop object%%
+
+EFL_APP_EVENT_SIGNAL_USR1(void)
+
+\\ **[[:develop:api:efl:app:event:signal_usr2|signal,usr2]]**\\
+> %%System specific, but on unix maps to SIGUSR2 signal to the process - only called on main loop object%%
+
+EFL_APP_EVENT_SIGNAL_USR2(void)
+
+\\ **[[:develop:api:efl:app:event:standby|standby]]**\\
+> %%Called when the application's windows are all destroyed%%
+
+EFL_APP_EVENT_STANDBY(void)
+
+\\ **[[:develop:api:efl:app:event:terminate|terminate]]**\\
+> %%Called before starting the shutdown of the application%%
+
+EFL_APP_EVENT_TERMINATE(void)
+
+\\ ==== Inherited ====
+
+^ [[:develop:api:efl:loop|Efl.Loop]] ^^^
+| | **[[:develop:api:efl:loop:event:arguments|arguments]]** | %%Event happens when args are provided to the loop by args_add().%% |
+| | **[[:develop:api:efl:loop:event:idle|idle]]** | %%Event occurs once the main loop is idle. If you keep listening on this event it may increase the burden on your CPU.%% |
+| | **[[:develop:api:efl:loop:event:idle_enter|idle,enter]]** | %%Event occurs once the main loop enters the idle state.%% |
+| | **[[:develop:api:efl:loop:event:idle_exit|idle,exit]]** | %%Event occurs once the main loop exits the idle state.%% |
+| | **[[:develop:api:efl:loop:event:poll_high|poll,high]]** | %%Event occurs multiple times per second. The exact tick is undefined and can be adjusted system-wide.%% |
+| | **[[:develop:api:efl:loop:event:poll_low|poll,low]]** | %%Event occurs multiple times every 15 minutes. The exact tick is undefined and can be adjusted system-wide.%% |
+| | **[[:develop:api:efl:loop:event:poll_medium|poll,medium]]** | %%Event occurs multiple times per minute. The exact tick is undefined and can be adjusted system-wide.%% |
+| | **[[:develop:api:efl:loop:event:quit|quit]]** | %%Event occurs when the loop was requested to quit externally e.g. by a ctrl+c signal or a request from a parent loop/thread to have the child exit.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:task|Efl.Task]] ^^^
+| | **[[:develop:api:efl:task:event:exit|exit]]** | %%Called when the task exits. You can pick up any information you need at this point such as exit_code etc.%% |
diff --git a/public_html/data/pages/develop/api/efl/app/event/pause.txt b/public_html/data/pages/develop/api/efl/app/event/pause.txt
new file mode 100644
index 00000000..6597e8c1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/app/event/pause.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.App: pause~~
+
+===== Description =====
+
+%%Called when the application is not going be displayed or otherwise used by a user for some time%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:app:event:pause:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+pause;
+
+
+===== C information =====
+
+
+EFL_APP_EVENT_PAUSE(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_app_event_pause(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_APP_EVENT_PAUSE, on_efl_app_event_pause, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/app/event/resume.txt b/public_html/data/pages/develop/api/efl/app/event/resume.txt
new file mode 100644
index 00000000..1915818c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/app/event/resume.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.App: resume~~
+
+===== Description =====
+
+%%Called before a window is rendered after a pause event%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:app:event:resume:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+resume;
+
+
+===== C information =====
+
+
+EFL_APP_EVENT_RESUME(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_app_event_resume(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_APP_EVENT_RESUME, on_efl_app_event_resume, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/app/event/signal_hup.txt b/public_html/data/pages/develop/api/efl/app/event/signal_hup.txt
new file mode 100644
index 00000000..1c2060b8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/app/event/signal_hup.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.App: signal,hup~~
+
+===== Description =====
+
+%%System specific, but on unix maps to SIGHUP signal to the process - only called on main loop object%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:app:event:signal_hup:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+signal,hup;
+
+
+===== C information =====
+
+
+EFL_APP_EVENT_SIGNAL_HUP(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_app_event_signal_hup(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_APP_EVENT_SIGNAL_HUP, on_efl_app_event_signal_hup, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/app/event/signal_usr1.txt b/public_html/data/pages/develop/api/efl/app/event/signal_usr1.txt
new file mode 100644
index 00000000..5e60914f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/app/event/signal_usr1.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.App: signal,usr1~~
+
+===== Description =====
+
+%%System specific, but on unix maps to SIGUSR1 signal to the process - only called on main loop object%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:app:event:signal_usr1:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+signal,usr1;
+
+
+===== C information =====
+
+
+EFL_APP_EVENT_SIGNAL_USR1(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_app_event_signal_usr1(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_APP_EVENT_SIGNAL_USR1, on_efl_app_event_signal_usr1, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/app/event/signal_usr2.txt b/public_html/data/pages/develop/api/efl/app/event/signal_usr2.txt
new file mode 100644
index 00000000..cd381a07
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/app/event/signal_usr2.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.App: signal,usr2~~
+
+===== Description =====
+
+%%System specific, but on unix maps to SIGUSR2 signal to the process - only called on main loop object%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:app:event:signal_usr2:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+signal,usr2;
+
+
+===== C information =====
+
+
+EFL_APP_EVENT_SIGNAL_USR2(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_app_event_signal_usr2(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_APP_EVENT_SIGNAL_USR2, on_efl_app_event_signal_usr2, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/app/event/standby.txt b/public_html/data/pages/develop/api/efl/app/event/standby.txt
new file mode 100644
index 00000000..0b5f95b3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/app/event/standby.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.App: standby~~
+
+===== Description =====
+
+%%Called when the application's windows are all destroyed%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:app:event:standby:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+standby;
+
+
+===== C information =====
+
+
+EFL_APP_EVENT_STANDBY(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_app_event_standby(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_APP_EVENT_STANDBY, on_efl_app_event_standby, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/app/event/terminate.txt b/public_html/data/pages/develop/api/efl/app/event/terminate.txt
new file mode 100644
index 00000000..4476e065
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/app/event/terminate.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.App: terminate~~
+
+===== Description =====
+
+%%Called before starting the shutdown of the application%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:app:event:terminate:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+terminate;
+
+
+===== C information =====
+
+
+EFL_APP_EVENT_TERMINATE(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_app_event_terminate(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_APP_EVENT_TERMINATE, on_efl_app_event_terminate, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/app/property/app_main.txt b/public_html/data/pages/develop/api/efl/app/property/app_main.txt
new file mode 100644
index 00000000..15ed6519
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/app/property/app_main.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.App.app_main~~
+====== Efl.App.app_main ======
+
+===== Values =====
+
+ * **app** - %%Application for this process%%
+
+
+\\ {{page>:develop:api-include:efl:app:property:app_main:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property app_main @static {
+ get {}
+ values {
+ app: Efl.App;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_App *efl_app_main_get();
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:app:property:app_main|Efl.App.app_main]]
+
diff --git a/public_html/data/pages/develop/api/efl/app/property/build_efl_version.txt b/public_html/data/pages/develop/api/efl/app/property/build_efl_version.txt
new file mode 100644
index 00000000..ab6742d2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/app/property/build_efl_version.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.App.build_efl_version~~
+====== Efl.App.build_efl_version ======
+
+===== Values =====
+
+ * **version** - %%Efl build version%%
+
+
+\\ {{page>:develop:api-include:efl:app:property:build_efl_version:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property build_efl_version {
+ get {}
+ values {
+ version: const(Efl.Version);
+ }
+}
+
+
+===== C signature =====
+
+
+const Efl_Version efl_app_build_efl_version_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:app:property:build_efl_version|Efl.App.build_efl_version]]
+
diff --git a/public_html/data/pages/develop/api/efl/app/property/efl_version.txt b/public_html/data/pages/develop/api/efl/app/property/efl_version.txt
new file mode 100644
index 00000000..6c829d4e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/app/property/efl_version.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.App.efl_version~~
+====== Efl.App.efl_version ======
+
+===== Values =====
+
+ * **version** - %%Efl version%%
+
+
+\\ {{page>:develop:api-include:efl:app:property:efl_version:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property efl_version {
+ get {}
+ values {
+ version: const(Efl.Version);
+ }
+}
+
+
+===== C signature =====
+
+
+const Efl_Version efl_app_efl_version_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:app:property:efl_version|Efl.App.efl_version]]
+
diff --git a/public_html/data/pages/develop/api/efl/app/property/priority.txt b/public_html/data/pages/develop/api/efl/app/property/priority.txt
new file mode 100644
index 00000000..010b40cc
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/app/property/priority.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.App.priority~~
+====== Efl.App.priority ======
+
+===== Description =====
+
+%%The priority of this task.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:app:property:priority:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **priority** - %%Desired priority.%%
+
+//Overridden from [[:develop:api:efl:task:property:priority|Efl.Task.priority]] **(get, set)**.//===== Signature =====
+
+
+@property priority {
+ get {}
+ set {}
+ values {
+ priority: Efl.Task_Priority;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Task_Priority efl_task_priority_get(const Eo *obj);
+void efl_task_priority_set(Eo *obj, Efl_Task_Priority priority);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:task:property:priority|Efl.Task.priority]]
+ * [[:develop:api:efl:app:property:priority|Efl.App.priority]]
+ * [[:develop:api:efl:exe:property:priority|Efl.Exe.priority]]
+
diff --git a/public_html/data/pages/develop/api/efl/callback_priority.txt b/public_html/data/pages/develop/api/efl/callback_priority.txt
new file mode 100644
index 00000000..95c3f07a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/callback_priority.txt
@@ -0,0 +1,25 @@
+~~Title: Efl.Callback_Priority~~
+
+===== Description =====
+
+%%Callback priority. Range is -32k - 32k. The lower the number, the higher the priority.%%
+
+%%This is used to insert an event handler relative to the existing stack of sorted event handlers according to that priority. All event handlers always have a priority. If not specified %%[[:develop:api:efl:callback_priority_default|Efl.Callback_Priority_Default]]%% is to be assumed.%%
+
+%%See %%[[:develop:api:efl:callback_priority_before|Efl.Callback_Priority_Before]]%% %%[[:develop:api:efl:callback_priority_default|Efl.Callback_Priority_Default]]%% %%[[:develop:api:efl:callback_priority_after|Efl.Callback_Priority_After]]%%%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:callback_priority:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+type Efl.Callback_Priority: short;
+
+
+===== C signature =====
+
+
+typedef short Efl_Callback_Priority;
+
diff --git a/public_html/data/pages/develop/api/efl/callback_priority_after.txt b/public_html/data/pages/develop/api/efl/callback_priority_after.txt
new file mode 100644
index 00000000..33208ad0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/callback_priority_after.txt
@@ -0,0 +1,21 @@
+~~Title: Efl.Callback_Priority_After~~
+
+===== Description =====
+
+%%Slightly less prioritized than default.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:callback_priority_after:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+const Efl.Callback_Priority_After: Efl.Callback_Priority = 100;
+
+
+===== C signature =====
+
+
+#define EFL_CALLBACK_PRIORITY_AFTER 100
+
diff --git a/public_html/data/pages/develop/api/efl/callback_priority_before.txt b/public_html/data/pages/develop/api/efl/callback_priority_before.txt
new file mode 100644
index 00000000..c1164ad0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/callback_priority_before.txt
@@ -0,0 +1,21 @@
+~~Title: Efl.Callback_Priority_Before~~
+
+===== Description =====
+
+%%Slightly more prioritized than default.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:callback_priority_before:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+const Efl.Callback_Priority_Before: Efl.Callback_Priority = +100;
+
+
+===== C signature =====
+
+
+#define EFL_CALLBACK_PRIORITY_BEFORE -100/* +100 */
+
diff --git a/public_html/data/pages/develop/api/efl/callback_priority_default.txt b/public_html/data/pages/develop/api/efl/callback_priority_default.txt
new file mode 100644
index 00000000..7680130b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/callback_priority_default.txt
@@ -0,0 +1,21 @@
+~~Title: Efl.Callback_Priority_Default~~
+
+===== Description =====
+
+%%Default priority.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:callback_priority_default:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+const Efl.Callback_Priority_Default: Efl.Callback_Priority = 0;
+
+
+===== C signature =====
+
+
+#define EFL_CALLBACK_PRIORITY_DEFAULT 0
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/group.txt b/public_html/data/pages/develop/api/efl/canvas/group.txt
new file mode 100644
index 00000000..7338d2ac
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/group.txt
@@ -0,0 +1,305 @@
+~~Title: Efl.Canvas.Group~~
+====== Efl.Canvas.Group (class) ======
+
+===== Description =====
+
+%%A group object is a container for other canvas objects. Its children move along their parent and are often clipped with a common clipper. This is part of the legacy smart object concept.%%
+
+%%A group is not necessarily a container (see %%[[:develop:api:efl:container|Efl.Container]]%%) in the sense that a standard widget may not have any empty slots for content. However it's still a group of low-level canvas objects (clipper, raw objects, etc.).%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:canvas:group:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:canvas:group:property:clipper|clipper]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:canvas:object|Efl.Canvas.Object]]]//\\
+> %%Clip one object to another.%%
+
+Efl_Canvas_Object *efl_canvas_object_clipper_get(const Eo *obj);
+void efl_canvas_object_clipper_set(Eo *obj, Efl_Canvas_Object *clipper);
+
+\\
+**[[:develop:api:efl:canvas:group:property:color|color]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:color|Efl.Gfx.Color]]]//\\
+> %%The general/main color of the given Evas object.%%
+
+void efl_gfx_color_get(const Eo *obj, int *r, int *g, int *b, int *a);
+void efl_gfx_color_set(Eo *obj, int r, int g, int b, int a);
+
+\\
+**[[:develop:api:efl:canvas:group:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:group:method:debug_name_override|debug_name_override]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Build a read-only name for this object used for debugging.%%
+
+void efl_debug_name_override(Eo *obj, Eina_Strbuf *sb);
+
+\\
+**[[:develop:api:efl:canvas:group:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:group:method:group_calculate|group_calculate]]**\\
+> %%Triggers an immediate recalculation of this object's geometry.%%
+
+void efl_canvas_group_calculate(Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:group:method:group_change|group_change]]**\\
+> %%Marks the object as dirty.%%
+
+void efl_canvas_group_change(Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:group:method:group_member_add|group_member_add]]**\\
+> %%Set a canvas object as a member of a given group (or smart object).%%
+
+void efl_canvas_group_member_add(Eo *obj, Efl_Canvas_Object *sub_obj);
+
+\\
+**[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]**\\
+> %%Finds out if a given object is a member of this group.%%
+
+Eina_Bool efl_canvas_group_member_is(const Eo *obj, const Efl_Canvas_Object *sub_obj);
+
+\\
+**[[:develop:api:efl:canvas:group:method:group_member_remove|group_member_remove]]**\\
+> %%Removes a member object from a given smart object.%%
+
+void efl_canvas_group_member_remove(Eo *obj, Efl_Canvas_Object *sub_obj);
+
+\\
+**[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]**\\
+> %%Returns an iterator over the children of this object, which are canvas objects.%%
+
+Eina_Iterator *efl_canvas_group_members_iterate(const Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**//\\
+> %%Indicates that the group's layout needs to be recalculated.%%
+
+Eina_Bool efl_canvas_group_need_recalculate_get(const Eo *obj);
+void efl_canvas_group_need_recalculate_set(Eo *obj, Eina_Bool value);
+
+\\
+**[[:develop:api:efl:canvas:group:property:no_render|no_render]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:canvas:object|Efl.Canvas.Object]]]//\\
+> %%Disables all rendering on the canvas.%%
+
+Eina_Bool efl_canvas_object_no_render_get(const Eo *obj);
+void efl_canvas_object_no_render_set(Eo *obj, Eina_Bool enable);
+
+\\
+**[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:canvas:object|Efl.Canvas.Object]]]//\\
+> %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%%
+
+Efl_Text_Bidirectional_Type efl_canvas_object_paragraph_direction_get(const Eo *obj);
+void efl_canvas_object_paragraph_direction_set(Eo *obj, Efl_Text_Bidirectional_Type dir);
+
+\\
+**[[:develop:api:efl:canvas:group:property:position|position]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The 2D position of a canvas object.%%
+
+Eina_Position2D efl_gfx_entity_position_get(const Eo *obj);
+void efl_gfx_entity_position_set(Eo *obj, Eina_Position2D pos);
+
+\\
+**[[:develop:api:efl:canvas:group:property:visible|visible]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The visibility of a canvas object.%%
+
+Eina_Bool efl_gfx_entity_visible_get(const Eo *obj);
+void efl_gfx_entity_visible_set(Eo *obj, Eina_Bool v);
+
+\\
+**[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// ''protected''\\
+>
+
+const Efl_Canvas_Object *efl_canvas_group_clipper_get(const Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:property:size|size]]** //**(get, set)**// | %%The 2D size of a canvas object.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+
+===== Events =====
+
+**[[:develop:api:efl:canvas:group:event:member_added|member,added]]**\\
+> %%Called when a member is added to the group.%%
+
+EFL_CANVAS_GROUP_EVENT_MEMBER_ADDED(Efl_Gfx_Entity *)
+
+\\ **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]**\\
+> %%Called when a member is removed from the group.%%
+
+EFL_CANVAS_GROUP_EVENT_MEMBER_REMOVED(Efl_Gfx_Entity *)
+
+\\ ==== Inherited ====
+
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
diff --git a/public_html/data/pages/develop/api/efl/canvas/group/event/member_added.txt b/public_html/data/pages/develop/api/efl/canvas/group/event/member_added.txt
new file mode 100644
index 00000000..af9bbed9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/group/event/member_added.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Canvas.Group: member,added~~
+
+===== Description =====
+
+%%Called when a member is added to the group.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:canvas:group:event:member_added:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+member,added: Efl.Gfx.Entity;
+
+
+===== C information =====
+
+
+EFL_CANVAS_GROUP_EVENT_MEMBER_ADDED(Efl_Gfx_Entity *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_canvas_group_event_member_added(void *data, const Efl_Event *event)
+{
+ Efl_Gfx_Entity *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_CANVAS_GROUP_EVENT_MEMBER_ADDED, on_efl_canvas_group_event_member_added, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/group/event/member_removed.txt b/public_html/data/pages/develop/api/efl/canvas/group/event/member_removed.txt
new file mode 100644
index 00000000..5d53fa33
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/group/event/member_removed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Canvas.Group: member,removed~~
+
+===== Description =====
+
+%%Called when a member is removed from the group.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:canvas:group:event:member_removed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+member,removed: Efl.Gfx.Entity;
+
+
+===== C information =====
+
+
+EFL_CANVAS_GROUP_EVENT_MEMBER_REMOVED(Efl_Gfx_Entity *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_canvas_group_event_member_removed(void *data, const Efl_Event *event)
+{
+ Efl_Gfx_Entity *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_CANVAS_GROUP_EVENT_MEMBER_REMOVED, on_efl_canvas_group_event_member_removed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/group/method/constructor.txt b/public_html/data/pages/develop/api/efl/canvas/group/method/constructor.txt
new file mode 100644
index 00000000..bc033a27
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/group/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Canvas.Group.constructor~~
+====== Efl.Canvas.Group.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:group:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:canvas:object:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/group/method/debug_name_override.txt b/public_html/data/pages/develop/api/efl/canvas/group/method/debug_name_override.txt
new file mode 100644
index 00000000..07bc2973
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/group/method/debug_name_override.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Canvas.Group.debug_name_override~~
+====== Efl.Canvas.Group.debug_name_override ======
+
+===== Description =====
+
+%%Build a read-only name for this object used for debugging.%%
+
+%%Multiple calls using efl_super() can be chained in order to build the entire debug name, from parent to child classes. In C the usual way to build the string is as follows:%%
+
+%%efl_debug_name_override(efl_super(obj, MY_CLASS), sb); eina_strbuf_append_printf(sb, "new_information");%%
+
+%%Usually more debug information should be added to %%''sb''%% after calling the super function.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:group:method:debug_name_override:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:canvas:object:method:debug_name_override|Efl.Object.debug_name_override]].//===== Signature =====
+
+
+debug_name_override {
+ params {
+ @in sb: strbuf;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_debug_name_override(Eo *obj, Eina_Strbuf *sb);
+
+
+===== Parameters =====
+
+ * **sb** //(in)// - %%A string buffer, must not be %%''null''%%.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:debug_name_override|Efl.Object.debug_name_override]]
+ * [[:develop:api:efl:canvas:object:method:debug_name_override|Efl.Canvas.Object.debug_name_override]]
+ * [[:develop:api:efl:canvas:image_internal:method:debug_name_override|Efl.Canvas.Image_Internal.debug_name_override]]
+ * [[:develop:api:efl:canvas:group:method:debug_name_override|Efl.Canvas.Group.debug_name_override]]
+ * [[:develop:api:efl:canvas:layout:method:debug_name_override|Efl.Canvas.Layout.debug_name_override]]
+ * [[:develop:api:efl:ui:widget:method:debug_name_override|Efl.Ui.Widget.debug_name_override]]
+ * [[:develop:api:efl:ui:win:method:debug_name_override|Efl.Ui.Win.debug_name_override]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/group/method/destructor.txt b/public_html/data/pages/develop/api/efl/canvas/group/method/destructor.txt
new file mode 100644
index 00000000..94636d90
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/group/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Canvas.Group.destructor~~
+====== Efl.Canvas.Group.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:group:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:canvas:object:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/group/method/group_calculate.txt b/public_html/data/pages/develop/api/efl/canvas/group/method/group_calculate.txt
new file mode 100644
index 00000000..8dd1b954
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/group/method/group_calculate.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Canvas.Group.group_calculate~~
+====== Efl.Canvas.Group.group_calculate ======
+
+===== Description =====
+
+%%Triggers an immediate recalculation of this object's geometry.%%
+
+%%This will also reset the flag %%[[:develop:api:efl:canvas:group:property:group_need_recalculate|Efl.Canvas.Group.group_need_recalculate]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:group:method:group_calculate:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+group_calculate {}
+
+
+===== C signature =====
+
+
+void efl_canvas_group_calculate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:group:method:group_calculate|Efl.Canvas.Group.group_calculate]]
+ * [[:develop:api:efl:canvas:event_grabber:method:group_calculate|Efl.Canvas.Event_Grabber.group_calculate]]
+ * [[:develop:api:efl:canvas:layout:method:group_calculate|Efl.Canvas.Layout.group_calculate]]
+ * [[:develop:api:efl:ui:widget:method:group_calculate|Efl.Ui.Widget.group_calculate]]
+ * [[:develop:api:efl:ui:table:method:group_calculate|Efl.Ui.Table.group_calculate]]
+ * [[:develop:api:efl:ui:box:method:group_calculate|Efl.Ui.Box.group_calculate]]
+ * [[:develop:api:efl:ui:layout_base:method:group_calculate|Efl.Ui.Layout_Base.group_calculate]]
+ * [[:develop:api:efl:ui:clock:method:group_calculate|Efl.Ui.Clock.group_calculate]]
+ * [[:develop:api:efl:ui:text:method:group_calculate|Efl.Ui.Text.group_calculate]]
+ * [[:develop:api:efl:ui:panel:method:group_calculate|Efl.Ui.Panel.group_calculate]]
+ * [[:develop:api:efl:ui:layout:method:group_calculate|Efl.Ui.Layout.group_calculate]]
+ * [[:develop:api:efl:ui:textpath:method:group_calculate|Efl.Ui.Textpath.group_calculate]]
+ * [[:develop:api:efl:ui:scroller:method:group_calculate|Efl.Ui.Scroller.group_calculate]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:group_calculate|Efl.Ui.Internal_Text_Scroller.group_calculate]]
+ * [[:develop:api:efl:ui:panes:method:group_calculate|Efl.Ui.Panes.group_calculate]]
+ * [[:develop:api:efl:ui:calendar:method:group_calculate|Efl.Ui.Calendar.group_calculate]]
+ * [[:develop:api:efl:ui:frame:method:group_calculate|Efl.Ui.Frame.group_calculate]]
+ * [[:develop:api:efl:ui:popup:method:group_calculate|Efl.Ui.Popup.group_calculate]]
+ * [[:develop:api:efl:ui:video:method:group_calculate|Efl.Ui.Video.group_calculate]]
+ * [[:develop:api:efl:ui:relative_layout:method:group_calculate|Efl.Ui.Relative_Layout.group_calculate]]
+ * [[:develop:api:efl:ui:pan:method:group_calculate|Efl.Ui.Pan.group_calculate]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:group_calculate|Efl.Ui.Image_Zoomable_Pan.group_calculate]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/group/method/group_change.txt b/public_html/data/pages/develop/api/efl/canvas/group/method/group_change.txt
new file mode 100644
index 00000000..45fcb9b0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/group/method/group_change.txt
@@ -0,0 +1,29 @@
+~~Title: Efl.Canvas.Group.group_change~~
+====== Efl.Canvas.Group.group_change ======
+
+===== Description =====
+
+%%Marks the object as dirty.%%
+
+%%This also forcefully marks the given object as needing recalculation. As an effect, on the next rendering cycle its %%[[:develop:api:efl:canvas:group:method:group_calculate|Efl.Canvas.Group.group_calculate]]%% method will be called.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:group:method:group_change:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+group_change {}
+
+
+===== C signature =====
+
+
+void efl_canvas_group_change(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:group:method:group_change|Efl.Canvas.Group.group_change]]
+ * [[:develop:api:efl:canvas:event_grabber:method:group_change|Efl.Canvas.Event_Grabber.group_change]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/group/method/group_member_add.txt b/public_html/data/pages/develop/api/efl/canvas/group/method/group_member_add.txt
new file mode 100644
index 00000000..a43322fb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/group/method/group_member_add.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Canvas.Group.group_member_add~~
+====== Efl.Canvas.Group.group_member_add ======
+
+===== Description =====
+
+%%Set a canvas object as a member of a given group (or smart object).%%
+
+%%Members will automatically be stacked and layered together with the smart object. The various stacking functions will operate on members relative to the other members instead of the entire canvas, since they now live on an exclusive layer (see %%[[:develop:api:efl:gfx:stack:method:stack_above|Efl.Gfx.Stack.stack_above]]%%(), for more details).%%
+
+%%Subclasses inheriting from this one may override this function to ensure the proper stacking of special objects, such as clippers, event rectangles, etc...%%
+
+%%See also %%[[:develop:api:efl:canvas:group:method:group_member_remove|Efl.Canvas.Group.group_member_remove]]%%. See also %%[[:develop:api:efl:canvas:group:method:group_member_is|Efl.Canvas.Group.group_member_is]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:group:method:group_member_add:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+group_member_add {
+ params {
+ @in sub_obj: Efl.Canvas.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_canvas_group_member_add(Eo *obj, Efl_Canvas_Object *sub_obj);
+
+
+===== Parameters =====
+
+ * **sub_obj** //(in)// - %%The member object.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]
+ * [[:develop:api:efl:canvas:event_grabber:method:group_member_add|Efl.Canvas.Event_Grabber.group_member_add]]
+ * [[:develop:api:efl:ui:widget:method:group_member_add|Efl.Ui.Widget.group_member_add]]
+ * [[:develop:api:efl:ui:image:method:group_member_add|Efl.Ui.Image.group_member_add]]
+ * [[:develop:api:efl:ui:image_zoomable:method:group_member_add|Efl.Ui.Image_Zoomable.group_member_add]]
+ * [[:develop:api:efl:ui:text:method:group_member_add|Efl.Ui.Text.group_member_add]]
+ * [[:develop:api:efl:ui:panel:method:group_member_add|Efl.Ui.Panel.group_member_add]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/group/method/group_member_is.txt b/public_html/data/pages/develop/api/efl/canvas/group/method/group_member_is.txt
new file mode 100644
index 00000000..b38413ba
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/group/method/group_member_is.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Canvas.Group.group_member_is~~
+====== Efl.Canvas.Group.group_member_is ======
+
+===== Description =====
+
+%%Finds out if a given object is a member of this group.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:group:method:group_member_is:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+group_member_is @const {
+ params {
+ @in sub_obj: const(Efl.Canvas.Object);
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_group_member_is(const Eo *obj, const Efl_Canvas_Object *sub_obj);
+
+
+===== Parameters =====
+
+ * **sub_obj** //(in)// - %%A potential sub object.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:group:method:group_member_is|Efl.Canvas.Group.group_member_is]]
+ * [[:develop:api:efl:canvas:event_grabber:method:group_member_is|Efl.Canvas.Event_Grabber.group_member_is]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/group/method/group_member_remove.txt b/public_html/data/pages/develop/api/efl/canvas/group/method/group_member_remove.txt
new file mode 100644
index 00000000..e14577e5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/group/method/group_member_remove.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Canvas.Group.group_member_remove~~
+====== Efl.Canvas.Group.group_member_remove ======
+
+===== Description =====
+
+%%Removes a member object from a given smart object.%%
+
+%%This removes a member object from a smart object, if it was added to any. The object will still be on the canvas, but no longer associated with whichever smart object it was associated with.%%
+
+%%See also %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%. See also %%[[:develop:api:efl:canvas:group:method:group_member_is|Efl.Canvas.Group.group_member_is]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:group:method:group_member_remove:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+group_member_remove {
+ params {
+ @in sub_obj: Efl.Canvas.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_canvas_group_member_remove(Eo *obj, Efl_Canvas_Object *sub_obj);
+
+
+===== Parameters =====
+
+ * **sub_obj** //(in)// - %%The member object to remove.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:group:method:group_member_remove|Efl.Canvas.Group.group_member_remove]]
+ * [[:develop:api:efl:canvas:event_grabber:method:group_member_remove|Efl.Canvas.Event_Grabber.group_member_remove]]
+ * [[:develop:api:efl:ui:widget:method:group_member_remove|Efl.Ui.Widget.group_member_remove]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/group/method/group_members_iterate.txt b/public_html/data/pages/develop/api/efl/canvas/group/method/group_members_iterate.txt
new file mode 100644
index 00000000..26ecac26
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/group/method/group_members_iterate.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Canvas.Group.group_members_iterate~~
+====== Efl.Canvas.Group.group_members_iterate ======
+
+===== Description =====
+
+%%Returns an iterator over the children of this object, which are canvas objects.%%
+
+%%This returns the list of "smart" children. This might be different from both the %%[[:develop:api:efl:object|Efl.Object]]%% children list as well as the %%[[:develop:api:efl:container|Efl.Container]]%% content list.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:group:method:group_members_iterate:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+group_members_iterate @const {
+ return: iterator;
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_canvas_group_members_iterate(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:group:method:group_members_iterate|Efl.Canvas.Group.group_members_iterate]]
+ * [[:develop:api:efl:canvas:event_grabber:method:group_members_iterate|Efl.Canvas.Event_Grabber.group_members_iterate]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/group/property/clipper.txt b/public_html/data/pages/develop/api/efl/canvas/group/property/clipper.txt
new file mode 100644
index 00000000..481de88d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/group/property/clipper.txt
@@ -0,0 +1,58 @@
+~~Title: Efl.Canvas.Group.clipper~~
+====== Efl.Canvas.Group.clipper ======
+
+===== Description =====
+
+%%Clip one object to another.%%
+
+%%This property will clip the object %%''obj''%% to the area occupied by the object %%''clip''%%. This means the object %%''obj''%% will only be visible within the area occupied by the clipping object (%%''clip''%%).%%
+
+%%The color of the object being clipped will be multiplied by the color of the clipping one, so the resulting color for the former will be "RESULT = (OBJ * CLIP) / (255 * 255)", per color element (red, green, blue and alpha).%%
+
+%%Clipping is recursive, so clipping objects may be clipped by others, and their color will in term be multiplied. You may not set up circular clipping lists (i.e. object 1 clips object 2, which clips object 1): the behavior of Evas is undefined in this case.%%
+
+%%Objects which do not clip others are visible in the canvas as normal; those that clip one or more objects become invisible themselves, only affecting what they clip. If an object ceases to have other objects being clipped by it, it will become visible again.%%
+
+%%The visibility of an object affects the objects that are clipped by it, so if the object clipping others is not shown (as in %%[[:develop:api:efl:gfx:entity:property:visible|Efl.Gfx.Entity.visible]]%%), the objects clipped by it will not be shown either.%%
+
+%%If %%''obj''%% was being clipped by another object when this function is called, it gets implicitly removed from the old clipper's domain and is made now to be clipped by its new clipper.%%
+
+%%If %%''clip''%% is %%''null''%%, this call will disable clipping for the object i.e. its visibility and color get detached from the previous clipper. If it wasn't, this has no effect.%%
+
+
+@property clipper {
+ get {}
+ set {}
+ values {
+ clipper: Efl.Canvas.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Canvas_Object *efl_canvas_object_clipper_get(const Eo *obj);
+void efl_canvas_object_clipper_set(Eo *obj, Efl_Canvas_Object *clipper);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:property:clipper|Efl.Canvas.Object.clipper]]
+ * [[:develop:api:efl:canvas:group:property:clipper|Efl.Canvas.Group.clipper]]
+ * [[:develop:api:efl:ui:widget:property:clipper|Efl.Ui.Widget.clipper]]
+ * [[:develop:api:efl:ui:image:property:clipper|Efl.Ui.Image.clipper]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/group/property/color.txt b/public_html/data/pages/develop/api/efl/canvas/group/property/color.txt
new file mode 100644
index 00000000..3b5a2ce5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/group/property/color.txt
@@ -0,0 +1,60 @@
+~~Title: Efl.Canvas.Group.color~~
+====== Efl.Canvas.Group.color ======
+
+===== Description =====
+
+%%The general/main color of the given Evas object.%%
+
+%%Represents the main color's RGB component (and alpha channel) values, which range from 0 to 255. For the alpha channel, which defines the object's transparency level, 0 means totally transparent, while 255 means opaque. These color values are premultiplied by the alpha value.%%
+
+%%Usually you'll use this attribute for text and rectangle objects, where the main color is the only color. If set for objects which themselves have colors, like the images one, those colors get modulated by this one.%%
+
+%%All newly created Evas rectangles get the default color values of 255 255 255 255 (opaque white).%%
+
+%%When reading this property, use %%''NULL''%% pointers on the components you're not interested in and they'll be ignored by the function.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:group:property:color:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **r** - No description supplied.
+ * **g** - No description supplied.
+ * **b** - No description supplied.
+ * **a** - No description supplied.
+
+//Overridden from [[:develop:api:efl:canvas:object:property:color|Efl.Gfx.Color.color]] **(set)**.//===== Signature =====
+
+
+@property color @pure_virtual {
+ get {}
+ set {}
+ values {
+ r: int;
+ g: int;
+ b: int;
+ a: int;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_color_get(const Eo *obj, int *r, int *g, int *b, int *a);
+void efl_gfx_color_set(Eo *obj, int r, int g, int b, int a);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:color:property:color|Efl.Gfx.Color.color]]
+ * [[:develop:api:efl:canvas:vg:node:property:color|Efl.Canvas.Vg.Node.color]]
+ * [[:develop:api:efl:ui:win_part:property:color|Efl.Ui.Win_Part.color]]
+ * [[:develop:api:efl:ui:widget_part_shadow:property:color|Efl.Ui.Widget_Part_Shadow.color]]
+ * [[:develop:api:efl:canvas:object:property:color|Efl.Canvas.Object.color]]
+ * [[:develop:api:efl:canvas:group:property:color|Efl.Canvas.Group.color]]
+ * [[:develop:api:efl:ui:widget:property:color|Efl.Ui.Widget.color]]
+ * [[:develop:api:efl:ui:image:property:color|Efl.Ui.Image.color]]
+ * [[:develop:api:efl:ui:bg:property:color|Efl.Ui.Bg.color]]
+ * [[:develop:api:efl:ui:widget_part_bg:property:color|Efl.Ui.Widget_Part_Bg.color]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/group/property/group_clipper.txt b/public_html/data/pages/develop/api/efl/canvas/group/property/group_clipper.txt
new file mode 100644
index 00000000..fb8a4a01
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/group/property/group_clipper.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Canvas.Group.group_clipper~~
+====== Efl.Canvas.Group.group_clipper ======
+
+===== Values =====
+
+ * **clipper** - %%A clipper rectangle.%%
+
+
+\\ {{page>:develop:api-include:efl:canvas:group:property:group_clipper:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property group_clipper {
+ get @protected {}
+ values {
+ clipper: const(Efl.Canvas.Object);
+ }
+}
+
+
+===== C signature =====
+
+
+const Efl_Canvas_Object *efl_canvas_group_clipper_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:group:property:group_clipper|Efl.Canvas.Group.group_clipper]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/group/property/group_need_recalculate.txt b/public_html/data/pages/develop/api/efl/canvas/group/property/group_need_recalculate.txt
new file mode 100644
index 00000000..082f5993
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/group/property/group_need_recalculate.txt
@@ -0,0 +1,47 @@
+~~Title: Efl.Canvas.Group.group_need_recalculate~~
+====== Efl.Canvas.Group.group_need_recalculate ======
+
+===== Description =====
+
+%%Indicates that the group's layout needs to be recalculated.%%
+
+%%If this flag is set, then the %%[[:develop:api:efl:canvas:group:method:group_calculate|Efl.Canvas.Group.group_calculate]]%% function will be called, during rendering phase of the canvas. After that, this flag will be automatically unset.%%
+
+
+@property group_need_recalculate {
+ get {}
+ set {}
+ values {
+ value: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_group_need_recalculate_get(const Eo *obj);
+void efl_canvas_group_need_recalculate_set(Eo *obj, Eina_Bool value);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:group:property:group_need_recalculate|Efl.Canvas.Group.group_need_recalculate]]
+ * [[:develop:api:efl:canvas:event_grabber:property:group_need_recalculate|Efl.Canvas.Event_Grabber.group_need_recalculate]]
+ * [[:develop:api:efl:ui:item:property:group_need_recalculate|Efl.Ui.Item.group_need_recalculate]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/group/property/no_render.txt b/public_html/data/pages/develop/api/efl/canvas/group/property/no_render.txt
new file mode 100644
index 00000000..fde038bc
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/group/property/no_render.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.Canvas.Group.no_render~~
+====== Efl.Canvas.Group.no_render ======
+
+===== Description =====
+
+%%Disables all rendering on the canvas.%%
+
+%%This flag will be used to indicate to Evas that this object should never be rendered on the canvas under any circumstances. In particular, this is useful to avoid drawing clipper objects (or masks) even when they don't clip any object. This can also be used to replace the old source_visible flag with proxy objects.%%
+
+%%This is different to the visible property, as even visible objects marked as "no-render" will never appear on screen. But those objects can still be used as proxy sources or clippers. When hidden, all "no-render" objects will completely disappear from the canvas, and hide their clippees or be invisible when used as proxy sources.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:group:property:no_render:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **enable** - %%Enable "no-render" mode.%%
+
+//Overridden from [[:develop:api:efl:canvas:object:property:no_render|Efl.Canvas.Object.no_render]] **(set)**.//===== Signature =====
+
+
+@property no_render {
+ get {}
+ set {}
+ values {
+ enable: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_object_no_render_get(const Eo *obj);
+void efl_canvas_object_no_render_set(Eo *obj, Eina_Bool enable);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:property:no_render|Efl.Canvas.Object.no_render]]
+ * [[:develop:api:efl:canvas:group:property:no_render|Efl.Canvas.Group.no_render]]
+ * [[:develop:api:efl:canvas:layout:property:no_render|Efl.Canvas.Layout.no_render]]
+ * [[:develop:api:efl:ui:widget:property:no_render|Efl.Ui.Widget.no_render]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/group/property/paragraph_direction.txt b/public_html/data/pages/develop/api/efl/canvas/group/property/paragraph_direction.txt
new file mode 100644
index 00000000..20407093
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/group/property/paragraph_direction.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Canvas.Group.paragraph_direction~~
+====== Efl.Canvas.Group.paragraph_direction ======
+
+===== Description =====
+
+%%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:group:property:paragraph_direction:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **dir** - %%Paragraph direction for the given object.%%
+
+//Overridden from [[:develop:api:efl:canvas:object:property:paragraph_direction|Efl.Canvas.Object.paragraph_direction]] **(get, set)**.//===== Signature =====
+
+
+@property paragraph_direction {
+ get {}
+ set {}
+ values {
+ dir: Efl.Text_Bidirectional_Type;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Text_Bidirectional_Type efl_canvas_object_paragraph_direction_get(const Eo *obj);
+void efl_canvas_object_paragraph_direction_set(Eo *obj, Efl_Text_Bidirectional_Type dir);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:property:paragraph_direction|Efl.Canvas.Object.paragraph_direction]]
+ * [[:develop:api:efl:canvas:text:property:paragraph_direction|Efl.Canvas.Text.paragraph_direction]]
+ * [[:develop:api:efl:canvas:group:property:paragraph_direction|Efl.Canvas.Group.paragraph_direction]]
+ * [[:develop:api:efl:canvas:layout:property:paragraph_direction|Efl.Canvas.Layout.paragraph_direction]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/group/property/position.txt b/public_html/data/pages/develop/api/efl/canvas/group/property/position.txt
new file mode 100644
index 00000000..f0c2ee17
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/group/property/position.txt
@@ -0,0 +1,76 @@
+~~Title: Efl.Canvas.Group.position~~
+====== Efl.Canvas.Group.position ======
+
+===== Description =====
+
+%%The 2D position of a canvas object.%%
+
+%%The position is absolute, in pixels, relative to the top-left corner of the window, within its border decorations (application space).%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:canvas:group:property:position:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **pos** - %%A 2D coordinate in pixel units.%%
+==== Getter ====
+
+%%Retrieves the position of the given canvas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:canvas:group:property:position:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Moves the given canvas object to the given location inside its canvas' viewport. If unchanged this call may be entirely skipped, but if changed this will trigger move events, as well as potential pointer,in or pointer,out events.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:group:property:position:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:canvas:object:property:position|Efl.Gfx.Entity.position]] **(set)**.//===== Signature =====
+
+
+@property position @pure_virtual {
+ get {}
+ set {}
+ values {
+ pos: Eina.Position2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Position2D efl_gfx_entity_position_get(const Eo *obj);
+void efl_gfx_entity_position_set(Eo *obj, Eina_Position2D pos);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:position|Efl.Gfx.Entity.position]]
+ * [[:develop:api:efl:canvas:vg:node:property:position|Efl.Canvas.Vg.Node.position]]
+ * [[:develop:api:efl:ui:win:property:position|Efl.Ui.Win.position]]
+ * [[:develop:api:efl:ui:image:property:position|Efl.Ui.Image.position]]
+ * [[:develop:api:efl:ui:image_zoomable:property:position|Efl.Ui.Image_Zoomable.position]]
+ * [[:develop:api:efl:ui:widget:property:position|Efl.Ui.Widget.position]]
+ * [[:develop:api:efl:ui:table:property:position|Efl.Ui.Table.position]]
+ * [[:develop:api:efl:ui:box:property:position|Efl.Ui.Box.position]]
+ * [[:develop:api:efl:ui:animation_view:property:position|Efl.Ui.Animation_View.position]]
+ * [[:develop:api:efl:ui:text:property:position|Efl.Ui.Text.position]]
+ * [[:develop:api:efl:ui:textpath:property:position|Efl.Ui.Textpath.position]]
+ * [[:develop:api:efl:ui:popup:property:position|Efl.Ui.Popup.position]]
+ * [[:develop:api:efl:ui:relative_layout:property:position|Efl.Ui.Relative_Layout.position]]
+ * [[:develop:api:efl:canvas:object:property:position|Efl.Canvas.Object.position]]
+ * [[:develop:api:efl:canvas:group:property:position|Efl.Canvas.Group.position]]
+ * [[:develop:api:efl:canvas:video:property:position|Efl.Canvas.Video.position]]
+ * [[:develop:api:efl:canvas:event_grabber:property:position|Efl.Canvas.Event_Grabber.position]]
+ * [[:develop:api:efl:canvas:layout:property:position|Efl.Canvas.Layout.position]]
+ * [[:develop:api:efl:ui:pan:property:position|Efl.Ui.Pan.position]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:property:position|Efl.Ui.Image_Zoomable_Pan.position]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/group/property/visible.txt b/public_html/data/pages/develop/api/efl/canvas/group/property/visible.txt
new file mode 100644
index 00000000..15e42ea6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/group/property/visible.txt
@@ -0,0 +1,72 @@
+~~Title: Efl.Canvas.Group.visible~~
+====== Efl.Canvas.Group.visible ======
+
+===== Description =====
+
+%%The visibility of a canvas object.%%
+
+%%All canvas objects will become visible by default just before render. This means that it is not required to call %%[[:develop:api:efl:gfx:entity:property:visible|Efl.Gfx.Entity.visible.set]]%% after creating an object unless you want to create it without showing it. Note that this behavior is new since 1.21, and only applies to canvas objects created with the EO API (i.e. not the legacy C-only API). Other types of Gfx objects may or may not be visible by default.%%
+
+%%Note that many other parameters can prevent a visible object from actually being "visible" on screen. For instance if its color is fully transparent, or its parent is hidden, or it is clipped out, etc...%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:canvas:group:property:visible:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **v** - %%%%''true''%% if to make the object visible, %%''false''%% otherwise%%
+==== Getter ====
+
+%%Retrieves whether or not the given canvas object is visible.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:canvas:group:property:visible:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Shows or hides this object.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:group:property:visible:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:canvas:object:property:visible|Efl.Gfx.Entity.visible]] **(set)**.//===== Signature =====
+
+
+@property visible @pure_virtual {
+ get {}
+ set {}
+ values {
+ v: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_gfx_entity_visible_get(const Eo *obj);
+void efl_gfx_entity_visible_set(Eo *obj, Eina_Bool v);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:visible|Efl.Gfx.Entity.visible]]
+ * [[:develop:api:efl:canvas:vg:node:property:visible|Efl.Canvas.Vg.Node.visible]]
+ * [[:develop:api:efl:ui:win:property:visible|Efl.Ui.Win.visible]]
+ * [[:develop:api:efl:ui:image:property:visible|Efl.Ui.Image.visible]]
+ * [[:develop:api:efl:ui:widget:property:visible|Efl.Ui.Widget.visible]]
+ * [[:develop:api:efl:ui:animation_view:property:visible|Efl.Ui.Animation_View.visible]]
+ * [[:develop:api:efl:ui:text:property:visible|Efl.Ui.Text.visible]]
+ * [[:develop:api:efl:ui:popup:property:visible|Efl.Ui.Popup.visible]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:property:visible|Efl.Ui.Navigation_Bar_Part_Back_Button.visible]]
+ * [[:develop:api:efl:canvas:object:property:visible|Efl.Canvas.Object.visible]]
+ * [[:develop:api:efl:canvas:group:property:visible|Efl.Canvas.Group.visible]]
+ * [[:develop:api:efl:canvas:event_grabber:property:visible|Efl.Canvas.Event_Grabber.visible]]
+ * [[:develop:api:efl:canvas:layout:property:visible|Efl.Canvas.Layout.visible]]
+ * [[:develop:api:efl:ui:pan:property:visible|Efl.Ui.Pan.visible]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object.txt b/public_html/data/pages/develop/api/efl/canvas/object.txt
new file mode 100644
index 00000000..511230a9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object.txt
@@ -0,0 +1,519 @@
+~~Title: Efl.Canvas.Object~~
+====== Efl.Canvas.Object (class) ======
+
+===== Description =====
+
+%%Efl canvas object abstract class%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:canvas:object:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**//// [Overridden from [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]]]//\\
+>
+
+Efl_Gfx_Stack *efl_gfx_stack_above_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**//\\
+> %%Whether or not the given Evas object is to be drawn anti-aliased.%%
+
+Eina_Bool efl_canvas_object_anti_alias_get(const Eo *obj);
+void efl_canvas_object_anti_alias_set(Eo *obj, Eina_Bool anti_alias);
+
+\\
+**[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**//// [Overridden from [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]]]//\\
+>
+
+Efl_Gfx_Stack *efl_gfx_stack_below_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**//\\
+>
+
+Eina_Iterator *efl_canvas_object_clipped_objects_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]**\\
+> %%Returns the number of objects clipped by %%''obj''%%%%
+
+unsigned int efl_canvas_object_clipped_objects_count(const Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:object:property:clipper|clipper]]** //**(get, set)**//\\
+> %%Clip one object to another.%%
+
+Efl_Canvas_Object *efl_canvas_object_clipper_get(const Eo *obj);
+void efl_canvas_object_clipper_set(Eo *obj, Efl_Canvas_Object *clipper);
+
+\\
+**[[:develop:api:efl:canvas:object:property:color|color]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:color|Efl.Gfx.Color]]]//\\
+> %%The general/main color of the given Evas object.%%
+
+void efl_gfx_color_get(const Eo *obj, int *r, int *g, int *b, int *a);
+void efl_gfx_color_set(Eo *obj, int r, int g, int b, int a);
+
+\\
+**[[:develop:api:efl:canvas:object:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**//\\
+>
+
+Eina_Bool efl_canvas_object_coords_inside_get(const Eo *obj, Eina_Position2D pos);
+
+\\
+**[[:develop:api:efl:canvas:object:method:debug_name_override|debug_name_override]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Build a read-only name for this object used for debugging.%%
+
+void efl_debug_name_override(Eo *obj, Eina_Strbuf *sb);
+
+\\
+**[[:develop:api:efl:canvas:object:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Freeze events of this object.%%
+
+void efl_event_freeze(Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Thaw events of object.%%
+
+void efl_event_thaw(Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:object:method:finalize|finalize]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+Efl_Object *efl_finalize(Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%Rectangular geometry that combines both position and size.%%
+
+Eina_Rect efl_gfx_entity_geometry_get(const Eo *obj);
+void efl_gfx_entity_geometry_set(Eo *obj, Eina_Rect rect);
+
+\\
+**[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]**\\
+> %%Returns current canvas's gesture manager%%
+
+const Efl_Canvas_Gesture_Manager *efl_canvas_object_gesture_manager_get(Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**//\\
+> %%A hint for an object that its size will not change.%%
+
+Eina_Bool efl_canvas_object_has_fixed_size_get(const Eo *obj);
+void efl_canvas_object_has_fixed_size_set(Eo *obj, Eina_Bool enable);
+
+\\
+**[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]]//\\
+> %%Hints for an object's alignment.%%
+
+void efl_gfx_hint_align_get(const Eo *obj, double *x, double *y);
+void efl_gfx_hint_align_set(Eo *obj, double x, double y);
+
+\\
+**[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]]//\\
+> %%Defines the aspect ratio to respect when scaling this object.%%
+
+void efl_gfx_hint_aspect_get(const Eo *obj, Efl_Gfx_Hint_Aspect *mode, Eina_Size2D *sz);
+void efl_gfx_hint_aspect_set(Eo *obj, Efl_Gfx_Hint_Aspect mode, Eina_Size2D sz);
+
+\\
+**[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]]//\\
+> %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%%
+
+void efl_gfx_hint_fill_get(const Eo *obj, Eina_Bool *x, Eina_Bool *y);
+void efl_gfx_hint_fill_set(Eo *obj, Eina_Bool x, Eina_Bool y);
+
+\\
+**[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]]//\\
+> %%Hints for an object's margin or padding space.%%
+
+void efl_gfx_hint_margin_get(const Eo *obj, int *l, int *r, int *t, int *b);
+void efl_gfx_hint_margin_set(Eo *obj, int l, int r, int t, int b);
+
+\\
+**[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**//// [Overridden from [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]]//\\
+>
+
+Eina_Size2D efl_gfx_hint_size_combined_max_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**//// [Overridden from [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]]//\\
+>
+
+Eina_Size2D efl_gfx_hint_size_combined_min_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]]//\\
+> %%Hints on the object's maximum size.%%
+
+Eina_Size2D efl_gfx_hint_size_max_get(const Eo *obj);
+void efl_gfx_hint_size_max_set(Eo *obj, Eina_Size2D sz);
+
+\\
+**[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]]//\\
+> %%Hints on the object's minimum size.%%
+
+Eina_Size2D efl_gfx_hint_size_min_get(const Eo *obj);
+void efl_gfx_hint_size_min_set(Eo *obj, Eina_Size2D sz);
+
+\\
+**[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// ''protected set''// [Overridden from [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]]//\\
+> %%Internal hints for an object's maximum size.%%
+
+Eina_Size2D efl_gfx_hint_size_restricted_max_get(const Eo *obj);
+void efl_gfx_hint_size_restricted_max_set(Eo *obj, Eina_Size2D sz);
+
+\\
+**[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// ''protected set''// [Overridden from [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]]//\\
+> %%Internal hints for an object's minimum size.%%
+
+Eina_Size2D efl_gfx_hint_size_restricted_min_get(const Eo *obj);
+void efl_gfx_hint_size_restricted_min_set(Eo *obj, Eina_Size2D sz);
+
+\\
+**[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]]//\\
+> %%Hints for an object's weight.%%
+
+void efl_gfx_hint_weight_get(const Eo *obj, double *x, double *y);
+void efl_gfx_hint_weight_set(Eo *obj, double x, double y);
+
+\\
+**[[:develop:api:efl:canvas:object:method:invalidate|invalidate]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to perform special actions when your object loses its parent, if you need to.%%
+
+void efl_invalidate(Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**//\\
+> %%Indicates that this object is the keyboard event receiver on its canvas.%%
+
+Eina_Bool efl_canvas_object_key_focus_get(const Eo *obj);
+void efl_canvas_object_key_focus_set(Eo *obj, Eina_Bool focus);
+
+\\
+**[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]**\\
+> %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%%
+
+Eina_Bool efl_canvas_object_key_grab(Eo *obj, const char *keyname, Efl_Input_Modifier modifiers, Efl_Input_Modifier not_modifiers, Eina_Bool exclusive);
+
+\\
+**[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]**\\
+> %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%%
+
+void efl_canvas_object_key_ungrab(Eo *obj, const char *keyname, Efl_Input_Modifier modifiers, Efl_Input_Modifier not_modifiers);
+
+\\
+**[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]]]//\\
+> %%The layer of its canvas that the given object will be part of.%%
+
+short efl_gfx_stack_layer_get(const Eo *obj);
+void efl_gfx_stack_layer_set(Eo *obj, short l);
+
+\\
+**[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**//// [Overridden from [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]]]//\\
+>
+
+Efl_Loop *efl_loop_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]**// [Overridden from [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]]]//\\
+> %%Lower %%''obj''%% to the bottom of its layer.%%
+
+void efl_gfx_stack_lower_to_bottom(Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:object:property:no_render|no_render]]** //**(get, set)**//\\
+> %%Disables all rendering on the canvas.%%
+
+Eina_Bool efl_canvas_object_no_render_get(const Eo *obj);
+void efl_canvas_object_no_render_set(Eo *obj, Eina_Bool enable);
+
+\\
+**[[:develop:api:efl:canvas:object:property:paragraph_direction|paragraph_direction]]** //**(get, set)**//\\
+> %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%%
+
+Efl_Text_Bidirectional_Type efl_canvas_object_paragraph_direction_get(const Eo *obj);
+void efl_canvas_object_paragraph_direction_set(Eo *obj, Efl_Text_Bidirectional_Type dir);
+
+\\
+**[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**//\\
+> %%Whether an Evas object is to pass (ignore) events.%%
+
+Eina_Bool efl_canvas_object_pass_events_get(const Eo *obj);
+void efl_canvas_object_pass_events_set(Eo *obj, Eina_Bool pass);
+
+\\
+**[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**//// [Overridden from [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]]]//\\
+>
+
+Eina_Bool efl_canvas_pointer_inside_get(const Eo *obj, Efl_Input_Device *seat);
+
+\\
+**[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**//\\
+> %%Low-level pointer behaviour.%%
+
+Efl_Input_Object_Pointer_Mode efl_canvas_object_pointer_mode_get(const Eo *obj);
+Eina_Bool efl_canvas_object_pointer_mode_set(Eo *obj, Efl_Input_Object_Pointer_Mode pointer_mode);
+
+\\
+**[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**//\\
+> %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%%
+
+Efl_Input_Object_Pointer_Mode efl_canvas_object_pointer_mode_by_device_get(const Eo *obj, Efl_Input_Device *dev);
+Eina_Bool efl_canvas_object_pointer_mode_by_device_set(Eo *obj, Efl_Input_Device *dev, Efl_Input_Object_Pointer_Mode pointer_mode);
+
+\\
+**[[:develop:api:efl:canvas:object:property:position|position]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The 2D position of a canvas object.%%
+
+Eina_Position2D efl_gfx_entity_position_get(const Eo *obj);
+void efl_gfx_entity_position_set(Eo *obj, Eina_Position2D pos);
+
+\\
+**[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**//\\
+> %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%%
+
+Eina_Bool efl_canvas_object_precise_is_inside_get(const Eo *obj);
+void efl_canvas_object_precise_is_inside_set(Eo *obj, Eina_Bool precise);
+
+\\
+**[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**//\\
+> %%Whether events on a smart object's member should be propagated up to its parent.%%
+
+Eina_Bool efl_canvas_object_propagate_events_get(const Eo *obj);
+void efl_canvas_object_propagate_events_set(Eo *obj, Eina_Bool propagate);
+
+\\
+**[[:develop:api:efl:canvas:object:method:provider_find|provider_find]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Searches upwards in the object tree for a provider which knows the given class/interface.%%
+
+Efl_Object *efl_provider_find(const Eo *obj, const Efl_Class *klass);
+
+\\
+**[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]**// [Overridden from [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]]]//\\
+> %%Raise %%''obj''%% to the top of its layer.%%
+
+void efl_gfx_stack_raise_to_top(Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**//\\
+> %%Render mode to be used for compositing the Evas object.%%
+
+Efl_Gfx_Render_Op efl_canvas_object_render_op_get(const Eo *obj);
+void efl_canvas_object_render_op_set(Eo *obj, Efl_Gfx_Render_Op render_op);
+
+\\
+**[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**//\\
+> %%Whether an Evas object is to repeat events to objects below it.%%
+
+Eina_Bool efl_canvas_object_repeat_events_get(const Eo *obj);
+void efl_canvas_object_repeat_events_set(Eo *obj, Eina_Bool repeat);
+
+\\
+**[[:develop:api:efl:canvas:object:property:scale|scale]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The scaling factor of an object.%%
+
+double efl_gfx_entity_scale_get(const Eo *obj);
+void efl_gfx_entity_scale_set(Eo *obj, double scale);
+
+\\
+**[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:input:interface|Efl.Input.Interface]]]//\\
+> %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%%
+
+Eina_Bool efl_input_seat_event_filter_get(const Eo *obj, Efl_Input_Device *seat);
+void efl_input_seat_event_filter_set(Eo *obj, Efl_Input_Device *seat, Eina_Bool enable);
+
+\\
+**[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**//\\
+>
+
+Eina_Bool efl_canvas_object_seat_focus_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]**\\
+> %%Add a seat to the focus list.%%
+
+Eina_Bool efl_canvas_object_seat_focus_add(Eo *obj, Efl_Input_Device *seat);
+
+\\
+**[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]**\\
+> %%Check if this object is focused by a given seat%%
+
+Eina_Bool efl_canvas_object_seat_focus_check(Eo *obj, Efl_Input_Device *seat);
+
+\\
+**[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]**\\
+> %%Remove a seat from the focus list.%%
+
+Eina_Bool efl_canvas_object_seat_focus_del(Eo *obj, Efl_Input_Device *seat);
+
+\\
+**[[:develop:api:efl:canvas:object:property:size|size]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The 2D size of a canvas object.%%
+
+Eina_Size2D efl_gfx_entity_size_get(const Eo *obj);
+void efl_gfx_entity_size_set(Eo *obj, Eina_Size2D size);
+
+\\
+**[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]**// [Overridden from [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]]]//\\
+> %%Stack %%''obj''%% immediately %%''above''%%%%
+
+void efl_gfx_stack_above(Eo *obj, Efl_Gfx_Stack *above);
+
+\\
+**[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]**// [Overridden from [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]]]//\\
+> %%Stack %%''obj''%% immediately %%''below''%%%%
+
+void efl_gfx_stack_below(Eo *obj, Efl_Gfx_Stack *below);
+
+\\
+**[[:develop:api:efl:canvas:object:property:visible|visible]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The visibility of a canvas object.%%
+
+Eina_Bool efl_gfx_entity_visible_get(const Eo *obj);
+void efl_gfx_entity_visible_set(Eo *obj, Eina_Bool v);
+
+\\
+**[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// ''protected''\\
+>
+
+Efl_Canvas_Object *efl_canvas_object_render_parent_get(const Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+
+===== Events =====
+
+**[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]**\\
+> %%Animator tick synchronized with screen vsync if possible.%%
+
+EFL_CANVAS_OBJECT_EVENT_ANIMATOR_TICK(Efl_Event_Animator_Tick)
+
+\\ ==== Inherited ====
+
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/event/animator_tick.txt b/public_html/data/pages/develop/api/efl/canvas/object/event/animator_tick.txt
new file mode 100644
index 00000000..c5143fc4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/event/animator_tick.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Canvas.Object: animator,tick~~
+
+===== Description =====
+
+%%Animator tick synchronized with screen vsync if possible.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:canvas:object:event:animator_tick:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+animator,tick: Efl.Event_Animator_Tick;
+
+
+===== C information =====
+
+
+EFL_CANVAS_OBJECT_EVENT_ANIMATOR_TICK(Efl_Event_Animator_Tick)
+
+
+===== C usage =====
+
+
+static void
+on_efl_canvas_object_event_animator_tick(void *data, const Efl_Event *event)
+{
+ Efl_Event_Animator_Tick info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_CANVAS_OBJECT_EVENT_ANIMATOR_TICK, on_efl_canvas_object_event_animator_tick, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/method/clipped_objects_count.txt b/public_html/data/pages/develop/api/efl/canvas/object/method/clipped_objects_count.txt
new file mode 100644
index 00000000..b608fda1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/method/clipped_objects_count.txt
@@ -0,0 +1,28 @@
+~~Title: Efl.Canvas.Object.clipped_objects_count~~
+====== Efl.Canvas.Object.clipped_objects_count ======
+
+===== Description =====
+
+%%Returns the number of objects clipped by %%''obj''%%%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:method:clipped_objects_count:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+clipped_objects_count @const {
+ return: uint @no_unused;
+}
+
+
+===== C signature =====
+
+
+unsigned int efl_canvas_object_clipped_objects_count(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:method:clipped_objects_count|Efl.Canvas.Object.clipped_objects_count]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/method/constructor.txt b/public_html/data/pages/develop/api/efl/canvas/object/method/constructor.txt
new file mode 100644
index 00000000..c01b25cd
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Canvas.Object.constructor~~
+====== Efl.Canvas.Object.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/method/debug_name_override.txt b/public_html/data/pages/develop/api/efl/canvas/object/method/debug_name_override.txt
new file mode 100644
index 00000000..6145b56f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/method/debug_name_override.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Canvas.Object.debug_name_override~~
+====== Efl.Canvas.Object.debug_name_override ======
+
+===== Description =====
+
+%%Build a read-only name for this object used for debugging.%%
+
+%%Multiple calls using efl_super() can be chained in order to build the entire debug name, from parent to child classes. In C the usual way to build the string is as follows:%%
+
+%%efl_debug_name_override(efl_super(obj, MY_CLASS), sb); eina_strbuf_append_printf(sb, "new_information");%%
+
+%%Usually more debug information should be added to %%''sb''%% after calling the super function.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:method:debug_name_override:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:debug_name_override|Efl.Object.debug_name_override]].//===== Signature =====
+
+
+debug_name_override {
+ params {
+ @in sb: strbuf;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_debug_name_override(Eo *obj, Eina_Strbuf *sb);
+
+
+===== Parameters =====
+
+ * **sb** //(in)// - %%A string buffer, must not be %%''null''%%.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:debug_name_override|Efl.Object.debug_name_override]]
+ * [[:develop:api:efl:canvas:object:method:debug_name_override|Efl.Canvas.Object.debug_name_override]]
+ * [[:develop:api:efl:canvas:image_internal:method:debug_name_override|Efl.Canvas.Image_Internal.debug_name_override]]
+ * [[:develop:api:efl:canvas:group:method:debug_name_override|Efl.Canvas.Group.debug_name_override]]
+ * [[:develop:api:efl:canvas:layout:method:debug_name_override|Efl.Canvas.Layout.debug_name_override]]
+ * [[:develop:api:efl:ui:widget:method:debug_name_override|Efl.Ui.Widget.debug_name_override]]
+ * [[:develop:api:efl:ui:win:method:debug_name_override|Efl.Ui.Win.debug_name_override]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/method/destructor.txt b/public_html/data/pages/develop/api/efl/canvas/object/method/destructor.txt
new file mode 100644
index 00000000..b0d8cb29
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Canvas.Object.destructor~~
+====== Efl.Canvas.Object.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/method/event_freeze.txt b/public_html/data/pages/develop/api/efl/canvas/object/method/event_freeze.txt
new file mode 100644
index 00000000..ec3bfc17
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/method/event_freeze.txt
@@ -0,0 +1,30 @@
+~~Title: Efl.Canvas.Object.event_freeze~~
+====== Efl.Canvas.Object.event_freeze ======
+
+===== Description =====
+
+%%Freeze events of this object.%%
+
+%%Prevents event callbacks from being called for this object. Enable events again using %%[[:develop:api:efl:object:method:event_thaw|Efl.Object.event_thaw]]%%. Events marked %%''hot''%% cannot be stopped.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:method:event_freeze:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:event_freeze|Efl.Object.event_freeze]].//===== Signature =====
+
+
+event_freeze {}
+
+
+===== C signature =====
+
+
+void efl_event_freeze(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:event_freeze|Efl.Object.event_freeze]]
+ * [[:develop:api:efl:canvas:object:method:event_freeze|Efl.Canvas.Object.event_freeze]]
+ * [[:develop:api:efl:loop_timer:method:event_freeze|Efl.Loop_Timer.event_freeze]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/method/event_thaw.txt b/public_html/data/pages/develop/api/efl/canvas/object/method/event_thaw.txt
new file mode 100644
index 00000000..095def35
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/method/event_thaw.txt
@@ -0,0 +1,30 @@
+~~Title: Efl.Canvas.Object.event_thaw~~
+====== Efl.Canvas.Object.event_thaw ======
+
+===== Description =====
+
+%%Thaw events of object.%%
+
+%%Allows event callbacks to be called again for this object after a call to %%[[:develop:api:efl:object:method:event_freeze|Efl.Object.event_freeze]]%%. The amount of thaws must match the amount of freezes for events to be re-enabled.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:method:event_thaw:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:event_thaw|Efl.Object.event_thaw]].//===== Signature =====
+
+
+event_thaw {}
+
+
+===== C signature =====
+
+
+void efl_event_thaw(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:event_thaw|Efl.Object.event_thaw]]
+ * [[:develop:api:efl:canvas:object:method:event_thaw|Efl.Canvas.Object.event_thaw]]
+ * [[:develop:api:efl:loop_timer:method:event_thaw|Efl.Loop_Timer.event_thaw]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/method/finalize.txt b/public_html/data/pages/develop/api/efl/canvas/object/method/finalize.txt
new file mode 100644
index 00000000..e75d384f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/method/finalize.txt
@@ -0,0 +1,91 @@
+~~Title: Efl.Canvas.Object.finalize~~
+====== Efl.Canvas.Object.finalize ======
+
+===== Description =====
+
+%%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+%%Use this method to delay expensive operations until user configuration has finished, to avoid building the object in a "default" state in the constructor, just to have to throw it all away because a user configuration (a property being set, for example) requires a different state. This is the last call inside efl_add() and will set %%[[:develop:api:efl:object:property:finalized|Efl.Object.finalized]]%% to %%''true''%% once it returns. This is an optimization and implementing this method is optional if you already perform all your initialization in the %%[[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]%% method. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:method:finalize:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:finalize|Efl.Object.finalize]].//===== Signature =====
+
+
+finalize {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_finalize(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]
+ * [[:develop:api:efl:loop_handler:method:finalize|Efl.Loop_Handler.finalize]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:finalize|Efl.Ui.Position_Manager.Grid.finalize]]
+ * [[:develop:api:efl:canvas:layout_part:method:finalize|Efl.Canvas.Layout_Part.finalize]]
+ * [[:develop:api:efl:net:server_udp_client:method:finalize|Efl.Net.Server_Udp_Client.finalize]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:finalize|Efl.Ui.Widget_Part_Bg.finalize]]
+ * [[:develop:api:efl:ui:layout_part_bg:method:finalize|Efl.Ui.Layout_Part_Bg.finalize]]
+ * [[:develop:api:efl:io:buffered_stream:method:finalize|Efl.Io.Buffered_Stream.finalize]]
+ * [[:develop:api:efl:net:dialer_simple:method:finalize|Efl.Net.Dialer_Simple.finalize]]
+ * [[:develop:api:efl:io:file:method:finalize|Efl.Io.File.finalize]]
+ * [[:develop:api:efl:net:server_fd:method:finalize|Efl.Net.Server_Fd.finalize]]
+ * [[:develop:api:efl:io:stderr:method:finalize|Efl.Io.Stderr.finalize]]
+ * [[:develop:api:efl:io:stdin:method:finalize|Efl.Io.Stdin.finalize]]
+ * [[:develop:api:efl:io:stdout:method:finalize|Efl.Io.Stdout.finalize]]
+ * [[:develop:api:efl:net:socket_fd:method:finalize|Efl.Net.Socket_Fd.finalize]]
+ * [[:develop:api:efl:net:socket_ssl:method:finalize|Efl.Net.Socket_Ssl.finalize]]
+ * [[:develop:api:efl:net:dialer_ssl:method:finalize|Efl.Net.Dialer_Ssl.finalize]]
+ * [[:develop:api:efl:canvas:object:method:finalize|Efl.Canvas.Object.finalize]]
+ * [[:develop:api:efl:canvas:image_internal:method:finalize|Efl.Canvas.Image_Internal.finalize]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:finalize|Efl.Ui.Internal.Text.Interactive.finalize]]
+ * [[:develop:api:efl:ui:widget:method:finalize|Efl.Ui.Widget.finalize]]
+ * [[:develop:api:efl:ui:win:method:finalize|Efl.Ui.Win.finalize]]
+ * [[:develop:api:efl:ui:win_socket:method:finalize|Efl.Ui.Win_Socket.finalize]]
+ * [[:develop:api:efl:ui:win_inlined:method:finalize|Efl.Ui.Win_Inlined.finalize]]
+ * [[:develop:api:efl:ui:layout_base:method:finalize|Efl.Ui.Layout_Base.finalize]]
+ * [[:develop:api:efl:ui:text:method:finalize|Efl.Ui.Text.finalize]]
+ * [[:develop:api:efl:ui:tab_bar:method:finalize|Efl.Ui.Tab_Bar.finalize]]
+ * [[:develop:api:efl:ui:item:method:finalize|Efl.Ui.Item.finalize]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:finalize|Efl.Ui.List_Placeholder_Item.finalize]]
+ * [[:develop:api:elm:code_widget:method:finalize|Elm.Code_Widget.finalize]]
+ * [[:develop:api:efl:ui:scroller:method:finalize|Efl.Ui.Scroller.finalize]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:finalize|Efl.Ui.Internal_Text_Scroller.finalize]]
+ * [[:develop:api:efl:ui:collection:method:finalize|Efl.Ui.Collection.finalize]]
+ * [[:develop:api:efl:ui:spotlight:container:method:finalize|Efl.Ui.Spotlight.Container.finalize]]
+ * [[:develop:api:efl:ui:tab_pager:method:finalize|Efl.Ui.Tab_Pager.finalize]]
+ * [[:develop:api:efl:ui:bg:method:finalize|Efl.Ui.Bg.finalize]]
+ * [[:develop:api:efl:canvas:vg:object:method:finalize|Efl.Canvas.Vg.Object.finalize]]
+ * [[:develop:api:efl:loop_timer:method:finalize|Efl.Loop_Timer.finalize]]
+ * [[:develop:api:eldbus:model:method:finalize|Eldbus.Model.finalize]]
+ * [[:develop:api:eldbus:model:proxy:method:finalize|Eldbus.Model.Proxy.finalize]]
+ * [[:develop:api:eldbus:model:arguments:method:finalize|Eldbus.Model.Arguments.finalize]]
+ * [[:develop:api:eldbus:model:method:method:finalize|Eldbus.Model.Method.finalize]]
+ * [[:develop:api:eldbus:model:object:method:finalize|Eldbus.Model.Object.finalize]]
+ * [[:develop:api:efl:composite_model:method:finalize|Efl.Composite_Model.finalize]]
+ * [[:develop:api:efl:container_model:method:finalize|Efl.Container_Model.finalize]]
+ * [[:develop:api:efl:ui:view_model:method:finalize|Efl.Ui.View_Model.finalize]]
+ * [[:develop:api:efl:io:model:method:finalize|Efl.Io.Model.finalize]]
+ * [[:develop:api:efl:net:server_simple:method:finalize|Efl.Net.Server_Simple.finalize]]
+ * [[:develop:api:efl:net:control:manager:method:finalize|Efl.Net.Control.Manager.finalize]]
+ * [[:develop:api:efl:ui:widget_factory:method:finalize|Efl.Ui.Widget_Factory.finalize]]
+ * [[:develop:api:efl:ui:caching_factory:method:finalize|Efl.Ui.Caching_Factory.finalize]]
+ * [[:develop:api:efl:thread:method:finalize|Efl.Thread.finalize]]
+ * [[:develop:api:efl:net:session:method:finalize|Efl.Net.Session.finalize]]
+ * [[:develop:api:efl:io:copier:method:finalize|Efl.Io.Copier.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:finalize|Efl.Ui.Focus.Manager_Calc.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:finalize|Efl.Ui.Focus.Manager_Root_Focus.finalize]]
+ * [[:develop:api:evas:canvas3d:node:method:finalize|Evas.Canvas3D.Node.finalize]]
+ * [[:develop:api:efl:net:ssl:context:method:finalize|Efl.Net.Ssl.Context.finalize]]
+ * [[:develop:api:efl:io:buffer:method:finalize|Efl.Io.Buffer.finalize]]
+ * [[:develop:api:efl:net:ip_address:method:finalize|Efl.Net.Ip_Address.finalize]]
+ * [[:develop:api:efl:io:queue:method:finalize|Efl.Io.Queue.finalize]]
+ * [[:develop:api:ector:renderer:method:finalize|Ector.Renderer.finalize]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/method/gesture_manager_get.txt b/public_html/data/pages/develop/api/efl/canvas/object/method/gesture_manager_get.txt
new file mode 100644
index 00000000..143b689c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/method/gesture_manager_get.txt
@@ -0,0 +1,28 @@
+~~Title: Efl.Canvas.Object.gesture_manager_get~~
+====== Efl.Canvas.Object.gesture_manager_get ======
+
+===== Description =====
+
+%%Returns current canvas's gesture manager%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:method:gesture_manager_get:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+gesture_manager_get @beta {
+ return: const(Efl.Canvas.Gesture_Manager);
+}
+
+
+===== C signature =====
+
+
+const Efl_Canvas_Gesture_Manager *efl_canvas_object_gesture_manager_get(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:method:gesture_manager_get|Efl.Canvas.Object.gesture_manager_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/method/invalidate.txt b/public_html/data/pages/develop/api/efl/canvas/object/method/invalidate.txt
new file mode 100644
index 00000000..a264a72b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/method/invalidate.txt
@@ -0,0 +1,74 @@
+~~Title: Efl.Canvas.Object.invalidate~~
+====== Efl.Canvas.Object.invalidate ======
+
+===== Description =====
+
+%%Implement this method to perform special actions when your object loses its parent, if you need to.%%
+
+%%It is called when the parent reference is lost or set to %%''NULL''%%. After this call returns, %%[[:develop:api:efl:object:property:invalidated|Efl.Object.invalidated]]%% is set to %%''true''%%. This allows a simpler tear down of complex hierarchies, by performing object destruction in two steps, first all object relationships are broken and then the isolated objects are destroyed. Performing everything in the %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%% can sometimes lead to deadlocks, but implementing this method is optional if this is not your case. When an object with a parent is destroyed, it first receives a call to %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% and then to %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:method:invalidate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]].//===== Signature =====
+
+
+invalidate {}
+
+
+===== C signature =====
+
+
+void efl_invalidate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]
+ * [[:develop:api:efl:canvas:vg:node:method:invalidate|Efl.Canvas.Vg.Node.invalidate]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:invalidate|Efl.Ui.Position_Manager.Grid.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:manager_scroll:method:invalidate|Efl.Ui.Spotlight.Manager_Scroll.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:manager_stack:method:invalidate|Efl.Ui.Spotlight.Manager_Stack.invalidate]]
+ * [[:develop:api:efl:net:server_udp_client:method:invalidate|Efl.Net.Server_Udp_Client.invalidate]]
+ * [[:develop:api:efl:net:server_windows:method:invalidate|Efl.Net.Server_Windows.invalidate]]
+ * [[:develop:api:efl:io:buffered_stream:method:invalidate|Efl.Io.Buffered_Stream.invalidate]]
+ * [[:develop:api:efl:net:dialer_simple:method:invalidate|Efl.Net.Dialer_Simple.invalidate]]
+ * [[:develop:api:efl:loop_fd:method:invalidate|Efl.Loop_Fd.invalidate]]
+ * [[:develop:api:efl:net:server_ssl:method:invalidate|Efl.Net.Server_Ssl.invalidate]]
+ * [[:develop:api:efl:net:socket_fd:method:invalidate|Efl.Net.Socket_Fd.invalidate]]
+ * [[:develop:api:efl:net:dialer_udp:method:invalidate|Efl.Net.Dialer_Udp.invalidate]]
+ * [[:develop:api:efl:net:dialer_unix:method:invalidate|Efl.Net.Dialer_Unix.invalidate]]
+ * [[:develop:api:efl:net:dialer_tcp:method:invalidate|Efl.Net.Dialer_Tcp.invalidate]]
+ * [[:develop:api:efl:net:socket_ssl:method:invalidate|Efl.Net.Socket_Ssl.invalidate]]
+ * [[:develop:api:efl:net:dialer_ssl:method:invalidate|Efl.Net.Dialer_Ssl.invalidate]]
+ * [[:develop:api:efl:canvas:object:method:invalidate|Efl.Canvas.Object.invalidate]]
+ * [[:develop:api:efl:canvas:layout:method:invalidate|Efl.Canvas.Layout.invalidate]]
+ * [[:develop:api:efl:ui:widget:method:invalidate|Efl.Ui.Widget.invalidate]]
+ * [[:develop:api:efl:ui:table:method:invalidate|Efl.Ui.Table.invalidate]]
+ * [[:develop:api:efl:ui:box:method:invalidate|Efl.Ui.Box.invalidate]]
+ * [[:develop:api:efl:ui:image:method:invalidate|Efl.Ui.Image.invalidate]]
+ * [[:develop:api:efl:ui:layout_base:method:invalidate|Efl.Ui.Layout_Base.invalidate]]
+ * [[:develop:api:efl:ui:collection_view:method:invalidate|Efl.Ui.Collection_View.invalidate]]
+ * [[:develop:api:efl:ui:group_item:method:invalidate|Efl.Ui.Group_Item.invalidate]]
+ * [[:develop:api:efl:ui:collection:method:invalidate|Efl.Ui.Collection.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:container:method:invalidate|Efl.Ui.Spotlight.Container.invalidate]]
+ * [[:develop:api:efl:ui:relative_layout:method:invalidate|Efl.Ui.Relative_Layout.invalidate]]
+ * [[:develop:api:efl:canvas:vg:object:method:invalidate|Efl.Canvas.Vg.Object.invalidate]]
+ * [[:develop:api:efl:loop_model:method:invalidate|Efl.Loop_Model.invalidate]]
+ * [[:develop:api:eldbus:model:method:invalidate|Eldbus.Model.invalidate]]
+ * [[:develop:api:eldbus:model:connection:method:invalidate|Eldbus.Model.Connection.invalidate]]
+ * [[:develop:api:eldbus:model:proxy:method:invalidate|Eldbus.Model.Proxy.invalidate]]
+ * [[:develop:api:eldbus:model:arguments:method:invalidate|Eldbus.Model.Arguments.invalidate]]
+ * [[:develop:api:eldbus:model:signal:method:invalidate|Eldbus.Model.Signal.invalidate]]
+ * [[:develop:api:eldbus:model:object:method:invalidate|Eldbus.Model.Object.invalidate]]
+ * [[:develop:api:efl:composite_model:method:invalidate|Efl.Composite_Model.invalidate]]
+ * [[:develop:api:efl:ui:select_model:method:invalidate|Efl.Ui.Select_Model.invalidate]]
+ * [[:develop:api:efl:io:model:method:invalidate|Efl.Io.Model.invalidate]]
+ * [[:develop:api:efl:net:dialer_websocket:method:invalidate|Efl.Net.Dialer_Websocket.invalidate]]
+ * [[:develop:api:efl:net:server_simple:method:invalidate|Efl.Net.Server_Simple.invalidate]]
+ * [[:develop:api:efl:ui:caching_factory:method:invalidate|Efl.Ui.Caching_Factory.invalidate]]
+ * [[:develop:api:efl:loop:method:invalidate|Efl.Loop.invalidate]]
+ * [[:develop:api:efl:net:dialer_http:method:invalidate|Efl.Net.Dialer_Http.invalidate]]
+ * [[:develop:api:efl:io:copier:method:invalidate|Efl.Io.Copier.invalidate]]
+ * [[:develop:api:efl:ui:position_manager:list:method:invalidate|Efl.Ui.Position_Manager.List.invalidate]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/method/key_grab.txt b/public_html/data/pages/develop/api/efl/canvas/object/method/key_grab.txt
new file mode 100644
index 00000000..8b8f5f85
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/method/key_grab.txt
@@ -0,0 +1,51 @@
+~~Title: Efl.Canvas.Object.key_grab~~
+====== Efl.Canvas.Object.key_grab ======
+
+===== Description =====
+
+%%Requests %%''keyname''%% key events be directed to %%''obj''%%.%%
+
+%%Key grabs allow one or more objects to receive key events for specific key strokes even if other objects have focus. Whenever a key is grabbed, only the objects grabbing it will get the events for the given keys.%%
+
+%%%%''keyname''%% is a platform dependent symbolic name for the key pressed.%%
+
+%%%%''modifiers''%% and %%''not_modifiers''%% are bit masks of all the modifiers that must and mustn't, respectively, be pressed along with %%''keyname''%% key in order to trigger this new key grab. Modifiers can be things such as Shift and Ctrl as well as user defined types via @ref evas_key_modifier_add. %%''exclusive''%% will make the given object the only one permitted to grab the given key. If given %%''true''%%, subsequent calls on this function with different %%''obj''%% arguments will fail, unless the key is ungrabbed again.%%
+
+
+key_grab {
+ params {
+ @in keyname: string;
+ @in modifiers: Efl.Input.Modifier;
+ @in not_modifiers: Efl.Input.Modifier;
+ @in exclusive: bool;
+ }
+ return: bool @no_unused;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_object_key_grab(Eo *obj, const char *keyname, Efl_Input_Modifier modifiers, Efl_Input_Modifier not_modifiers, Eina_Bool exclusive);
+
+
+===== Parameters =====
+
+ * **keyname** //(in)// - %%The key to request events for.%%
+ * **modifiers** //(in)// - %%A combination of modifier keys that must be present to trigger the event.%%
+ * **not_modifiers** //(in)// - %%A combination of modifier keys that must not be present to trigger the event.%%
+ * **exclusive** //(in)// - %%Request that the %%''obj''%% is the only object receiving the %%''keyname''%% events.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:method:key_grab|Efl.Canvas.Object.key_grab]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/method/key_ungrab.txt b/public_html/data/pages/develop/api/efl/canvas/object/method/key_ungrab.txt
new file mode 100644
index 00000000..5c68586b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/method/key_ungrab.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Canvas.Object.key_ungrab~~
+====== Efl.Canvas.Object.key_ungrab ======
+
+===== Description =====
+
+%%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%%
+
+%%Removes a key grab on %%''obj''%% if %%''keyname''%%, %%''modifiers''%%, and %%''not_modifiers''%% match.%%
+
+%%See also %%[[:develop:api:efl:canvas:object:method:key_grab|Efl.Canvas.Object.key_grab]]%%, %%[[:develop:api:efl:canvas:object:property:key_focus|Efl.Canvas.Object.key_focus.get]]%%, %%[[:develop:api:efl:canvas:object:property:key_focus|Efl.Canvas.Object.key_focus.set]]%%, and the legacy API evas_focus_get.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:method:key_ungrab:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+key_ungrab {
+ params {
+ @in keyname: string;
+ @in modifiers: Efl.Input.Modifier;
+ @in not_modifiers: Efl.Input.Modifier;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_canvas_object_key_ungrab(Eo *obj, const char *keyname, Efl_Input_Modifier modifiers, Efl_Input_Modifier not_modifiers);
+
+
+===== Parameters =====
+
+ * **keyname** //(in)// - %%The key the grab is set for.%%
+ * **modifiers** //(in)// - %%A mask of modifiers that must be present to trigger the event.%%
+ * **not_modifiers** //(in)// - %%A mask of modifiers that must not not be present to trigger the event.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:method:key_ungrab|Efl.Canvas.Object.key_ungrab]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/method/lower_to_bottom.txt b/public_html/data/pages/develop/api/efl/canvas/object/method/lower_to_bottom.txt
new file mode 100644
index 00000000..475905b7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/method/lower_to_bottom.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Canvas.Object.lower_to_bottom~~
+====== Efl.Canvas.Object.lower_to_bottom ======
+
+===== Description =====
+
+%%Lower %%''obj''%% to the bottom of its layer.%%
+
+%%%%''obj''%% will, then, be the lowest one in the layer it belongs to. Objects on other layers won't get touched.%%
+
+%%See also %%[[:develop:api:efl:gfx:stack:method:stack_above|Efl.Gfx.Stack.stack_above]]%%(), %%[[:develop:api:efl:gfx:stack:method:stack_below|Efl.Gfx.Stack.stack_below]]%%() and %%[[:develop:api:efl:gfx:stack:method:raise_to_top|Efl.Gfx.Stack.raise_to_top]]%%()%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:method:lower_to_bottom:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:gfx:stack:method:lower_to_bottom|Efl.Gfx.Stack.lower_to_bottom]].//===== Signature =====
+
+
+lower_to_bottom @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_gfx_stack_lower_to_bottom(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:stack:method:lower_to_bottom|Efl.Gfx.Stack.lower_to_bottom]]
+ * [[:develop:api:efl:canvas:vg:node:method:lower_to_bottom|Efl.Canvas.Vg.Node.lower_to_bottom]]
+ * [[:develop:api:efl:ui:win:method:lower_to_bottom|Efl.Ui.Win.lower_to_bottom]]
+ * [[:develop:api:efl:canvas:object:method:lower_to_bottom|Efl.Canvas.Object.lower_to_bottom]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/method/provider_find.txt b/public_html/data/pages/develop/api/efl/canvas/object/method/provider_find.txt
new file mode 100644
index 00000000..422214d3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/method/provider_find.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Canvas.Object.provider_find~~
+====== Efl.Canvas.Object.provider_find ======
+
+===== Description =====
+
+%%Searches upwards in the object tree for a provider which knows the given class/interface.%%
+
+%%The object from the provider will then be returned. The base implementation calls the provider_find function on the object parent, and returns its result. If no parent is present %%''NULL''%% is returned. Each implementation has to support this function by overriding it and returning itself if the interface matches the parameter. If this is not done the class cannot be found up in the object tree.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:method:provider_find:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]].//===== Signature =====
+
+
+provider_find @const {
+ params {
+ @in klass: const(Efl.Class);
+ }
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_provider_find(const Eo *obj, const Efl_Class *klass);
+
+
+===== Parameters =====
+
+ * **klass** //(in)// - %%The class identifier to search for.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]
+ * [[:develop:api:efl:canvas:object:method:provider_find|Efl.Canvas.Object.provider_find]]
+ * [[:develop:api:efl:ui:widget:method:provider_find|Efl.Ui.Widget.provider_find]]
+ * [[:develop:api:efl:ui:win:method:provider_find|Efl.Ui.Win.provider_find]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:provider_find|Efl.Ui.Focus.Manager_Calc.provider_find]]
+ * [[:develop:api:evas:canvas3d:object:method:provider_find|Evas.Canvas3D.Object.provider_find]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/method/raise_to_top.txt b/public_html/data/pages/develop/api/efl/canvas/object/method/raise_to_top.txt
new file mode 100644
index 00000000..66487cc4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/method/raise_to_top.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Canvas.Object.raise_to_top~~
+====== Efl.Canvas.Object.raise_to_top ======
+
+===== Description =====
+
+%%Raise %%''obj''%% to the top of its layer.%%
+
+%%%%''obj''%% will, then, be the highest one in the layer it belongs to. Object on other layers won't get touched.%%
+
+%%See also %%[[:develop:api:efl:gfx:stack:method:stack_above|Efl.Gfx.Stack.stack_above]]%%(), %%[[:develop:api:efl:gfx:stack:method:stack_below|Efl.Gfx.Stack.stack_below]]%%() and %%[[:develop:api:efl:gfx:stack:method:lower_to_bottom|Efl.Gfx.Stack.lower_to_bottom]]%%()%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:method:raise_to_top:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:gfx:stack:method:raise_to_top|Efl.Gfx.Stack.raise_to_top]].//===== Signature =====
+
+
+raise_to_top @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_gfx_stack_raise_to_top(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:stack:method:raise_to_top|Efl.Gfx.Stack.raise_to_top]]
+ * [[:develop:api:efl:canvas:vg:node:method:raise_to_top|Efl.Canvas.Vg.Node.raise_to_top]]
+ * [[:develop:api:efl:ui:win:method:raise_to_top|Efl.Ui.Win.raise_to_top]]
+ * [[:develop:api:efl:canvas:object:method:raise_to_top|Efl.Canvas.Object.raise_to_top]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/method/seat_focus_add.txt b/public_html/data/pages/develop/api/efl/canvas/object/method/seat_focus_add.txt
new file mode 100644
index 00000000..198ba7ff
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/method/seat_focus_add.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Canvas.Object.seat_focus_add~~
+====== Efl.Canvas.Object.seat_focus_add ======
+
+===== Description =====
+
+%%Add a seat to the focus list.%%
+
+%%Evas allows the Efl.Canvas.Object to be focused by multiple seats at the same time. This function adds a new seat to the focus list. In other words, after the seat is added to the list this object will now be also focused by this new seat.%%
+
+
+seat_focus_add @beta {
+ params {
+ @in seat: Efl.Input.Device;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_object_seat_focus_add(Eo *obj, Efl_Input_Device *seat);
+
+
+===== Parameters =====
+
+ * **seat** //(in)// - %%The seat that should be added to the focus list. Use %%''null''%% for the default seat.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:method:seat_focus_add|Efl.Canvas.Object.seat_focus_add]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/method/seat_focus_check.txt b/public_html/data/pages/develop/api/efl/canvas/object/method/seat_focus_check.txt
new file mode 100644
index 00000000..bb04627f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/method/seat_focus_check.txt
@@ -0,0 +1,35 @@
+~~Title: Efl.Canvas.Object.seat_focus_check~~
+====== Efl.Canvas.Object.seat_focus_check ======
+
+===== Description =====
+
+%%Check if this object is focused by a given seat%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:method:seat_focus_check:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+seat_focus_check @beta {
+ params {
+ @in seat: Efl.Input.Device;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_object_seat_focus_check(Eo *obj, Efl_Input_Device *seat);
+
+
+===== Parameters =====
+
+ * **seat** //(in)// - %%The seat to check if the object is focused. Use %%''null''%% for the default seat.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:method:seat_focus_check|Efl.Canvas.Object.seat_focus_check]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/method/seat_focus_del.txt b/public_html/data/pages/develop/api/efl/canvas/object/method/seat_focus_del.txt
new file mode 100644
index 00000000..46b870bb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/method/seat_focus_del.txt
@@ -0,0 +1,35 @@
+~~Title: Efl.Canvas.Object.seat_focus_del~~
+====== Efl.Canvas.Object.seat_focus_del ======
+
+===== Description =====
+
+%%Remove a seat from the focus list.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:method:seat_focus_del:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+seat_focus_del @beta {
+ params {
+ @in seat: Efl.Input.Device;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_object_seat_focus_del(Eo *obj, Efl_Input_Device *seat);
+
+
+===== Parameters =====
+
+ * **seat** //(in)// - %%The seat that should be removed from the focus list. Use %%''null''%% for the default seat.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:method:seat_focus_del|Efl.Canvas.Object.seat_focus_del]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/method/stack_above.txt b/public_html/data/pages/develop/api/efl/canvas/object/method/stack_above.txt
new file mode 100644
index 00000000..e08b8b90
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/method/stack_above.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Canvas.Object.stack_above~~
+====== Efl.Canvas.Object.stack_above ======
+
+===== Description =====
+
+%%Stack %%''obj''%% immediately %%''above''%%%%
+
+%%Objects, in a given canvas, are stacked in the order they're added. This means that, if they overlap, the highest ones will cover the lowest ones, in that order. This function is a way to change the stacking order for the objects.%%
+
+%%Its intended to be used with objects belonging to the same layer in a given canvas, otherwise it will fail (and accomplish nothing).%%
+
+%%If you have smart objects on your canvas and %%''obj''%% is a member of one of them, then %%''above''%% must also be a member of the same smart object.%%
+
+%%Similarly, if %%''obj''%% is not a member of a smart object, %%''above''%% must not be either.%%
+
+%%See also %%[[:develop:api:efl:gfx:stack:property:layer|Efl.Gfx.Stack.layer.get]]%%(), %%[[:develop:api:efl:gfx:stack:property:layer|Efl.Gfx.Stack.layer.set]]%%() and %%[[:develop:api:efl:gfx:stack:method:stack_below|Efl.Gfx.Stack.stack_below]]%%()%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:method:stack_above:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:gfx:stack:method:stack_above|Efl.Gfx.Stack.stack_above]].//===== Signature =====
+
+
+stack_above @pure_virtual {
+ params {
+ @in above: Efl.Gfx.Stack;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_stack_above(Eo *obj, Efl_Gfx_Stack *above);
+
+
+===== Parameters =====
+
+ * **above** //(in)// - %%The object above which to stack%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:stack:method:stack_above|Efl.Gfx.Stack.stack_above]]
+ * [[:develop:api:efl:canvas:vg:node:method:stack_above|Efl.Canvas.Vg.Node.stack_above]]
+ * [[:develop:api:efl:canvas:object:method:stack_above|Efl.Canvas.Object.stack_above]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/method/stack_below.txt b/public_html/data/pages/develop/api/efl/canvas/object/method/stack_below.txt
new file mode 100644
index 00000000..eb9ea474
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/method/stack_below.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Canvas.Object.stack_below~~
+====== Efl.Canvas.Object.stack_below ======
+
+===== Description =====
+
+%%Stack %%''obj''%% immediately %%''below''%%%%
+
+%%Objects, in a given canvas, are stacked in the order they're added. This means that, if they overlap, the highest ones will cover the lowest ones, in that order. This function is a way to change the stacking order for the objects.%%
+
+%%Its intended to be used with objects belonging to the same layer in a given canvas, otherwise it will fail (and accomplish nothing).%%
+
+%%If you have smart objects on your canvas and %%''obj''%% is a member of one of them, then %%''below''%% must also be a member of the same smart object.%%
+
+%%Similarly, if %%''obj''%% is not a member of a smart object, %%''below''%% must not be either.%%
+
+%%See also %%[[:develop:api:efl:gfx:stack:property:layer|Efl.Gfx.Stack.layer.get]]%%(), %%[[:develop:api:efl:gfx:stack:property:layer|Efl.Gfx.Stack.layer.set]]%%() and %%[[:develop:api:efl:gfx:stack:method:stack_below|Efl.Gfx.Stack.stack_below]]%%()%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:method:stack_below:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:gfx:stack:method:stack_below|Efl.Gfx.Stack.stack_below]].//===== Signature =====
+
+
+stack_below @pure_virtual {
+ params {
+ @in below: Efl.Gfx.Stack;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_stack_below(Eo *obj, Efl_Gfx_Stack *below);
+
+
+===== Parameters =====
+
+ * **below** //(in)// - %%The object below which to stack%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:stack:method:stack_below|Efl.Gfx.Stack.stack_below]]
+ * [[:develop:api:efl:canvas:vg:node:method:stack_below|Efl.Canvas.Vg.Node.stack_below]]
+ * [[:develop:api:efl:canvas:object:method:stack_below|Efl.Canvas.Object.stack_below]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/above.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/above.txt
new file mode 100644
index 00000000..148cb1aa
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/above.txt
@@ -0,0 +1,29 @@
+~~Title: Efl.Canvas.Object.above~~
+====== Efl.Canvas.Object.above ======
+
+
+
+\\ {{page>:develop:api-include:efl:canvas:object:property:above:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:gfx:stack:property:above|Efl.Gfx.Stack.above]] **(get)**.//===== Signature =====
+
+
+@property above @pure_virtual {
+ get {
+ return: Efl.Gfx.Stack @no_unused;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Stack *efl_gfx_stack_above_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:stack:property:above|Efl.Gfx.Stack.above]]
+ * [[:develop:api:efl:canvas:vg:node:property:above|Efl.Canvas.Vg.Node.above]]
+ * [[:develop:api:efl:canvas:object:property:above|Efl.Canvas.Object.above]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/anti_alias.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/anti_alias.txt
new file mode 100644
index 00000000..c4567d99
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/anti_alias.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Canvas.Object.anti_alias~~
+====== Efl.Canvas.Object.anti_alias ======
+
+===== Description =====
+
+%%Whether or not the given Evas object is to be drawn anti-aliased.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:property:anti_alias:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **anti_alias** - %%%%''true''%% if the object is to be anti_aliased, %%''false''%% otherwise.%%
+
+===== Signature =====
+
+
+@property anti_alias {
+ get {}
+ set {}
+ values {
+ anti_alias: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_object_anti_alias_get(const Eo *obj);
+void efl_canvas_object_anti_alias_set(Eo *obj, Eina_Bool anti_alias);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:property:anti_alias|Efl.Canvas.Object.anti_alias]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/below.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/below.txt
new file mode 100644
index 00000000..81f6b48e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/below.txt
@@ -0,0 +1,29 @@
+~~Title: Efl.Canvas.Object.below~~
+====== Efl.Canvas.Object.below ======
+
+
+
+\\ {{page>:develop:api-include:efl:canvas:object:property:below:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:gfx:stack:property:below|Efl.Gfx.Stack.below]] **(get)**.//===== Signature =====
+
+
+@property below @pure_virtual {
+ get {
+ return: Efl.Gfx.Stack @no_unused;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Stack *efl_gfx_stack_below_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:stack:property:below|Efl.Gfx.Stack.below]]
+ * [[:develop:api:efl:canvas:vg:node:property:below|Efl.Canvas.Vg.Node.below]]
+ * [[:develop:api:efl:canvas:object:property:below|Efl.Canvas.Object.below]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/clipped_objects.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/clipped_objects.txt
new file mode 100644
index 00000000..93410b0d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/clipped_objects.txt
@@ -0,0 +1,27 @@
+~~Title: Efl.Canvas.Object.clipped_objects~~
+====== Efl.Canvas.Object.clipped_objects ======
+
+
+
+\\ {{page>:develop:api-include:efl:canvas:object:property:clipped_objects:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property clipped_objects {
+ get {
+ return: iterator @no_unused;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_canvas_object_clipped_objects_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:property:clipped_objects|Efl.Canvas.Object.clipped_objects]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/clipper.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/clipper.txt
new file mode 100644
index 00000000..4ca4bdae
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/clipper.txt
@@ -0,0 +1,58 @@
+~~Title: Efl.Canvas.Object.clipper~~
+====== Efl.Canvas.Object.clipper ======
+
+===== Description =====
+
+%%Clip one object to another.%%
+
+%%This property will clip the object %%''obj''%% to the area occupied by the object %%''clip''%%. This means the object %%''obj''%% will only be visible within the area occupied by the clipping object (%%''clip''%%).%%
+
+%%The color of the object being clipped will be multiplied by the color of the clipping one, so the resulting color for the former will be "RESULT = (OBJ * CLIP) / (255 * 255)", per color element (red, green, blue and alpha).%%
+
+%%Clipping is recursive, so clipping objects may be clipped by others, and their color will in term be multiplied. You may not set up circular clipping lists (i.e. object 1 clips object 2, which clips object 1): the behavior of Evas is undefined in this case.%%
+
+%%Objects which do not clip others are visible in the canvas as normal; those that clip one or more objects become invisible themselves, only affecting what they clip. If an object ceases to have other objects being clipped by it, it will become visible again.%%
+
+%%The visibility of an object affects the objects that are clipped by it, so if the object clipping others is not shown (as in %%[[:develop:api:efl:gfx:entity:property:visible|Efl.Gfx.Entity.visible]]%%), the objects clipped by it will not be shown either.%%
+
+%%If %%''obj''%% was being clipped by another object when this function is called, it gets implicitly removed from the old clipper's domain and is made now to be clipped by its new clipper.%%
+
+%%If %%''clip''%% is %%''null''%%, this call will disable clipping for the object i.e. its visibility and color get detached from the previous clipper. If it wasn't, this has no effect.%%
+
+
+@property clipper {
+ get {}
+ set {}
+ values {
+ clipper: Efl.Canvas.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Canvas_Object *efl_canvas_object_clipper_get(const Eo *obj);
+void efl_canvas_object_clipper_set(Eo *obj, Efl_Canvas_Object *clipper);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:property:clipper|Efl.Canvas.Object.clipper]]
+ * [[:develop:api:efl:canvas:group:property:clipper|Efl.Canvas.Group.clipper]]
+ * [[:develop:api:efl:ui:widget:property:clipper|Efl.Ui.Widget.clipper]]
+ * [[:develop:api:efl:ui:image:property:clipper|Efl.Ui.Image.clipper]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/color.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/color.txt
new file mode 100644
index 00000000..ead39705
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/color.txt
@@ -0,0 +1,60 @@
+~~Title: Efl.Canvas.Object.color~~
+====== Efl.Canvas.Object.color ======
+
+===== Description =====
+
+%%The general/main color of the given Evas object.%%
+
+%%Represents the main color's RGB component (and alpha channel) values, which range from 0 to 255. For the alpha channel, which defines the object's transparency level, 0 means totally transparent, while 255 means opaque. These color values are premultiplied by the alpha value.%%
+
+%%Usually you'll use this attribute for text and rectangle objects, where the main color is the only color. If set for objects which themselves have colors, like the images one, those colors get modulated by this one.%%
+
+%%All newly created Evas rectangles get the default color values of 255 255 255 255 (opaque white).%%
+
+%%When reading this property, use %%''NULL''%% pointers on the components you're not interested in and they'll be ignored by the function.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:property:color:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **r** - No description supplied.
+ * **g** - No description supplied.
+ * **b** - No description supplied.
+ * **a** - No description supplied.
+
+//Overridden from [[:develop:api:efl:gfx:color:property:color|Efl.Gfx.Color.color]] **(get, set)**.//===== Signature =====
+
+
+@property color @pure_virtual {
+ get {}
+ set {}
+ values {
+ r: int;
+ g: int;
+ b: int;
+ a: int;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_color_get(const Eo *obj, int *r, int *g, int *b, int *a);
+void efl_gfx_color_set(Eo *obj, int r, int g, int b, int a);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:color:property:color|Efl.Gfx.Color.color]]
+ * [[:develop:api:efl:canvas:vg:node:property:color|Efl.Canvas.Vg.Node.color]]
+ * [[:develop:api:efl:ui:win_part:property:color|Efl.Ui.Win_Part.color]]
+ * [[:develop:api:efl:ui:widget_part_shadow:property:color|Efl.Ui.Widget_Part_Shadow.color]]
+ * [[:develop:api:efl:canvas:object:property:color|Efl.Canvas.Object.color]]
+ * [[:develop:api:efl:canvas:group:property:color|Efl.Canvas.Group.color]]
+ * [[:develop:api:efl:ui:widget:property:color|Efl.Ui.Widget.color]]
+ * [[:develop:api:efl:ui:image:property:color|Efl.Ui.Image.color]]
+ * [[:develop:api:efl:ui:bg:property:color|Efl.Ui.Bg.color]]
+ * [[:develop:api:efl:ui:widget_part_bg:property:color|Efl.Ui.Widget_Part_Bg.color]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/coords_inside.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/coords_inside.txt
new file mode 100644
index 00000000..53bb185a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/coords_inside.txt
@@ -0,0 +1,38 @@
+~~Title: Efl.Canvas.Object.coords_inside~~
+====== Efl.Canvas.Object.coords_inside ======
+
+===== Keys =====
+
+ * **pos** - %%The coordinates in pixels.%%
+===== Values =====
+
+ * **return** - %%%%''true''%% if the coordinates are inside the object, %%''false''%% otherwise%%
+
+
+\\ {{page>:develop:api-include:efl:canvas:object:property:coords_inside:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property coords_inside {
+ get {
+ keys {
+ pos: Eina.Position2D;
+ }
+ }
+ values {
+ return: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_object_coords_inside_get(const Eo *obj, Eina_Position2D pos);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:property:coords_inside|Efl.Canvas.Object.coords_inside]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/geometry.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/geometry.txt
new file mode 100644
index 00000000..8300a435
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/geometry.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Canvas.Object.geometry~~
+====== Efl.Canvas.Object.geometry ======
+
+===== Description =====
+
+%%Rectangular geometry that combines both position and size.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:property:geometry:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **rect** - %%The X,Y position and W,H size, in pixels.%%
+
+//Overridden from [[:develop:api:efl:gfx:entity:property:geometry|Efl.Gfx.Entity.geometry]] **(get, set)**.//===== Signature =====
+
+
+@property geometry @pure_virtual {
+ get {}
+ set {}
+ values {
+ rect: Eina.Rect;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Rect efl_gfx_entity_geometry_get(const Eo *obj);
+void efl_gfx_entity_geometry_set(Eo *obj, Eina_Rect rect);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:geometry|Efl.Gfx.Entity.geometry]]
+ * [[:develop:api:efl:canvas:vg:node:property:geometry|Efl.Canvas.Vg.Node.geometry]]
+ * [[:develop:api:efl:canvas:layout_part:property:geometry|Efl.Canvas.Layout_Part.geometry]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:geometry|Efl.Canvas.Layout_Part_Invalid.geometry]]
+ * [[:develop:api:efl:canvas:object:property:geometry|Efl.Canvas.Object.geometry]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/has_fixed_size.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/has_fixed_size.txt
new file mode 100644
index 00000000..75d0b96b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/has_fixed_size.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Canvas.Object.has_fixed_size~~
+====== Efl.Canvas.Object.has_fixed_size ======
+
+===== Description =====
+
+%%A hint for an object that its size will not change.%%
+
+%%When this flag is set, various optimizations may be employed by the renderer based on the fixed size of the object.%%
+
+%%It is a user error to change the size of an object while this flag is set.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:canvas:object:property:has_fixed_size:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **enable** - %%Whether the object size is known to be static.%%
+
+===== Signature =====
+
+
+@property has_fixed_size @beta {
+ get {}
+ set {}
+ values {
+ enable: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_object_has_fixed_size_get(const Eo *obj);
+void efl_canvas_object_has_fixed_size_set(Eo *obj, Eina_Bool enable);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:property:has_fixed_size|Efl.Canvas.Object.has_fixed_size]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/hint_align.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/hint_align.txt
new file mode 100644
index 00000000..1c3be085
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/hint_align.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Canvas.Object.hint_align~~
+====== Efl.Canvas.Object.hint_align ======
+
+===== Description =====
+
+%%Hints for an object's alignment.%%
+
+%%These are hints on how to align an object inside the boundaries of a container/manager. Accepted values are in the 0.0 to 1.0 range.%%
+
+%%For the horizontal component, 0.0 means the start of the axis in the direction that the current language reads, 1.0 means the end of the axis.%%
+
+%%For the vertical component, 0.0 to the top, 1.0 means to the bottom.%%
+
+%%This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.%%
+
+
+@property hint_align @pure_virtual {
+ get {}
+ set {}
+ values {
+ x: double;
+ y: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_hint_align_get(const Eo *obj, double *x, double *y);
+void efl_gfx_hint_align_set(Eo *obj, double x, double y);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_align|Efl.Gfx.Hint.hint_align]]
+ * [[:develop:api:efl:canvas:object:property:hint_align|Efl.Canvas.Object.hint_align]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/hint_aspect.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/hint_aspect.txt
new file mode 100644
index 00000000..1c801e28
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/hint_aspect.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Canvas.Object.hint_aspect~~
+====== Efl.Canvas.Object.hint_aspect ======
+
+===== Description =====
+
+%%Defines the aspect ratio to respect when scaling this object.%%
+
+%%The aspect ratio is defined as the width / height ratio of the object. Depending on the object and its container, this hint may or may not be fully respected.%%
+
+%%If any of the given aspect ratio terms are 0, the object's container will ignore the aspect and scale this object to occupy the whole available area, for any given policy.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:property:hint_aspect:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **mode** - %%Mode of interpretation.%%
+ * **sz** - %%Base size to use for aspecting.%%
+
+//Overridden from [[:develop:api:efl:gfx:hint:property:hint_aspect|Efl.Gfx.Hint.hint_aspect]] **(get, set)**.//===== Signature =====
+
+
+@property hint_aspect @pure_virtual {
+ get {}
+ set {}
+ values {
+ mode: Efl.Gfx.Hint_Aspect;
+ sz: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_hint_aspect_get(const Eo *obj, Efl_Gfx_Hint_Aspect *mode, Eina_Size2D *sz);
+void efl_gfx_hint_aspect_set(Eo *obj, Efl_Gfx_Hint_Aspect mode, Eina_Size2D sz);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_aspect|Efl.Gfx.Hint.hint_aspect]]
+ * [[:develop:api:efl:canvas:object:property:hint_aspect|Efl.Canvas.Object.hint_aspect]]
+ * [[:develop:api:efl:ui:win:property:hint_aspect|Efl.Ui.Win.hint_aspect]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/hint_fill.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/hint_fill.txt
new file mode 100644
index 00000000..fe0594ee
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/hint_fill.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Canvas.Object.hint_fill~~
+====== Efl.Canvas.Object.hint_fill ======
+
+===== Description =====
+
+%%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%%
+
+%%Maximum hints should be enforced with higher priority, if they are set. Also, any %%[[:develop:api:efl:gfx:hint:property:hint_margin|Efl.Gfx.Hint.hint_margin]]%% set on objects should add up to the object space on the final scene composition.%%
+
+%%See documentation of possible users: in Evas, they are the %%[[:develop:api:efl:ui:box|Efl.Ui.Box]]%% "box" and %%[[:develop:api:efl:ui:table|Efl.Ui.Table]]%% "table" smart objects.%%
+
+%%This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.%%
+
+
+@property hint_fill @pure_virtual {
+ get {}
+ set {}
+ values {
+ x: bool;
+ y: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_hint_fill_get(const Eo *obj, Eina_Bool *x, Eina_Bool *y);
+void efl_gfx_hint_fill_set(Eo *obj, Eina_Bool x, Eina_Bool y);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]
+ * [[:develop:api:efl:canvas:object:property:hint_fill|Efl.Canvas.Object.hint_fill]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/hint_margin.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/hint_margin.txt
new file mode 100644
index 00000000..4fd71c0d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/hint_margin.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Canvas.Object.hint_margin~~
+====== Efl.Canvas.Object.hint_margin ======
+
+===== Description =====
+
+%%Hints for an object's margin or padding space.%%
+
+%%This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.%%
+
+%%The object container is in charge of fetching this property and placing the object accordingly.%%
+
+
+@property hint_margin @pure_virtual {
+ get {}
+ set {}
+ values {
+ l: int;
+ r: int;
+ t: int;
+ b: int;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_hint_margin_get(const Eo *obj, int *l, int *r, int *t, int *b);
+void efl_gfx_hint_margin_set(Eo *obj, int l, int r, int t, int b);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_margin|Efl.Gfx.Hint.hint_margin]]
+ * [[:develop:api:efl:canvas:object:property:hint_margin|Efl.Canvas.Object.hint_margin]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/hint_size_combined_max.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/hint_size_combined_max.txt
new file mode 100644
index 00000000..35432ead
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/hint_size_combined_max.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.Canvas.Object.hint_size_combined_max~~
+====== Efl.Canvas.Object.hint_size_combined_max ======
+
+===== Values =====
+
+ * **sz** - %%Maximum size (hint) in pixels.%%
+
+
+\\ {{page>:develop:api-include:efl:canvas:object:property:hint_size_combined_max:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:gfx:hint:property:hint_size_combined_max|Efl.Gfx.Hint.hint_size_combined_max]] **(get)**.//===== Signature =====
+
+
+@property hint_size_combined_max @pure_virtual {
+ get {}
+ values {
+ sz: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_hint_size_combined_max_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_size_combined_max|Efl.Gfx.Hint.hint_size_combined_max]]
+ * [[:develop:api:efl:canvas:object:property:hint_size_combined_max|Efl.Canvas.Object.hint_size_combined_max]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/hint_size_combined_min.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/hint_size_combined_min.txt
new file mode 100644
index 00000000..53b5de5f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/hint_size_combined_min.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.Canvas.Object.hint_size_combined_min~~
+====== Efl.Canvas.Object.hint_size_combined_min ======
+
+===== Values =====
+
+ * **sz** - %%Minimum size (hint) in pixels.%%
+
+
+\\ {{page>:develop:api-include:efl:canvas:object:property:hint_size_combined_min:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:gfx:hint:property:hint_size_combined_min|Efl.Gfx.Hint.hint_size_combined_min]] **(get)**.//===== Signature =====
+
+
+@property hint_size_combined_min @pure_virtual {
+ get {}
+ values {
+ sz: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_hint_size_combined_min_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_size_combined_min|Efl.Gfx.Hint.hint_size_combined_min]]
+ * [[:develop:api:efl:canvas:object:property:hint_size_combined_min|Efl.Canvas.Object.hint_size_combined_min]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/hint_size_max.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/hint_size_max.txt
new file mode 100644
index 00000000..27927ada
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/hint_size_max.txt
@@ -0,0 +1,53 @@
+~~Title: Efl.Canvas.Object.hint_size_max~~
+====== Efl.Canvas.Object.hint_size_max ======
+
+===== Description =====
+
+%%Hints on the object's maximum size.%%
+
+%%This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.%%
+
+%%The object container is in charge of fetching this property and placing the object accordingly.%%
+
+%%Values -1 will be treated as unset hint components, when queried by managers.%%
+
+
+@property hint_size_max @pure_virtual {
+ get {}
+ set {}
+ values {
+ sz: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_hint_size_max_get(const Eo *obj);
+void efl_gfx_hint_size_max_set(Eo *obj, Eina_Size2D sz);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_size_max|Efl.Gfx.Hint.hint_size_max]]
+ * [[:develop:api:efl:canvas:object:property:hint_size_max|Efl.Canvas.Object.hint_size_max]]
+ * [[:develop:api:efl:ui:win:property:hint_size_max|Efl.Ui.Win.hint_size_max]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/hint_size_min.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/hint_size_min.txt
new file mode 100644
index 00000000..6322f424
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/hint_size_min.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Canvas.Object.hint_size_min~~
+====== Efl.Canvas.Object.hint_size_min ======
+
+===== Description =====
+
+%%Hints on the object's minimum size.%%
+
+%%This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate. The object container is in charge of fetching this property and placing the object accordingly.%%
+
+%%Value 0 will be treated as unset hint components, when queried by managers.%%
+
+
+@property hint_size_min @pure_virtual {
+ get {}
+ set {}
+ values {
+ sz: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_hint_size_min_get(const Eo *obj);
+void efl_gfx_hint_size_min_set(Eo *obj, Eina_Size2D sz);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_size_min|Efl.Gfx.Hint.hint_size_min]]
+ * [[:develop:api:efl:canvas:object:property:hint_size_min|Efl.Canvas.Object.hint_size_min]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/hint_size_restricted_max.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/hint_size_restricted_max.txt
new file mode 100644
index 00000000..bb9bb6f3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/hint_size_restricted_max.txt
@@ -0,0 +1,59 @@
+~~Title: Efl.Canvas.Object.hint_size_restricted_max~~
+====== Efl.Canvas.Object.hint_size_restricted_max ======
+
+===== Description =====
+
+%%Internal hints for an object's maximum size.%%
+
+%%This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.%%
+
+%%Values -1 will be treated as unset hint components, when queried by managers.%%
+
+
+@property hint_size_restricted_max @pure_virtual {
+ get {}
+ set @protected {}
+ values {
+ sz: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_hint_size_restricted_max_get(const Eo *obj);
+void efl_gfx_hint_size_restricted_max_set(Eo *obj, Eina_Size2D sz);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_size_restricted_max|Efl.Gfx.Hint.hint_size_restricted_max]]
+ * [[:develop:api:efl:canvas:object:property:hint_size_restricted_max|Efl.Canvas.Object.hint_size_restricted_max]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/hint_size_restricted_min.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/hint_size_restricted_min.txt
new file mode 100644
index 00000000..c0e4aeaa
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/hint_size_restricted_min.txt
@@ -0,0 +1,68 @@
+~~Title: Efl.Canvas.Object.hint_size_restricted_min~~
+====== Efl.Canvas.Object.hint_size_restricted_min ======
+
+===== Description =====
+
+%%Internal hints for an object's minimum size.%%
+
+%%This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.%%
+
+%%Values 0 will be treated as unset hint components, when queried by managers.%%
+
+
+@property hint_size_restricted_min @pure_virtual {
+ get {}
+ set @protected {}
+ values {
+ sz: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_hint_size_restricted_min_get(const Eo *obj);
+void efl_gfx_hint_size_restricted_min_set(Eo *obj, Eina_Size2D sz);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_size_restricted_min|Efl.Gfx.Hint.hint_size_restricted_min]]
+ * [[:develop:api:efl:canvas:object:property:hint_size_restricted_min|Efl.Canvas.Object.hint_size_restricted_min]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/hint_weight.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/hint_weight.txt
new file mode 100644
index 00000000..af023a4c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/hint_weight.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Canvas.Object.hint_weight~~
+====== Efl.Canvas.Object.hint_weight ======
+
+===== Description =====
+
+%%Hints for an object's weight.%%
+
+%%This is a hint on how a container object should resize a given child within its area. Containers may adhere to the simpler logic of just expanding the child object's dimensions to fit its own (see the %%[[:develop:api:efl:gfx:hint_expand|Efl.Gfx.Hint_Expand]]%% helper weight macro) or the complete one of taking each child's weight hint as real weights to how much of its size to allocate for them in each axis. A container is supposed to, after normalizing the weights of its children (with weight hints), distribut the space it has to layout them by those factors -- most weighted children get larger in this process than the least ones.%%
+
+%%Accepted values are zero or positive values. Some containers might use this hint as a boolean, but some others might consider it as a proportion, see documentation of each container.%%
+
+
+@property hint_weight @pure_virtual {
+ get {}
+ set {}
+ values {
+ x: double;
+ y: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_hint_weight_get(const Eo *obj, double *x, double *y);
+void efl_gfx_hint_weight_set(Eo *obj, double x, double y);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_weight|Efl.Gfx.Hint.hint_weight]]
+ * [[:develop:api:efl:canvas:object:property:hint_weight|Efl.Canvas.Object.hint_weight]]
+ * [[:develop:api:efl:ui:win:property:hint_weight|Efl.Ui.Win.hint_weight]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/key_focus.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/key_focus.txt
new file mode 100644
index 00000000..d2138bf3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/key_focus.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Canvas.Object.key_focus~~
+====== Efl.Canvas.Object.key_focus ======
+
+===== Description =====
+
+%%Indicates that this object is the keyboard event receiver on its canvas.%%
+
+%%Changing focus only affects where (key) input events go. There can be only one object focused at any time. If %%''focus''%% is %%''true''%%, %%''obj''%% will be set as the currently focused object and it will receive all keyboard events that are not exclusive key grabs on other objects. See also %%[[:develop:api:efl:canvas:object:method:seat_focus_check|Efl.Canvas.Object.seat_focus_check]]%%, %%[[:develop:api:efl:canvas:object:method:seat_focus_add|Efl.Canvas.Object.seat_focus_add]]%%, %%[[:develop:api:efl:canvas:object:method:seat_focus_del|Efl.Canvas.Object.seat_focus_del]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:property:key_focus:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **focus** - %%%%''true''%% when set as focused or %%''false''%% otherwise.%%
+
+===== Signature =====
+
+
+@property key_focus {
+ get {}
+ set {}
+ values {
+ focus: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_object_key_focus_get(const Eo *obj);
+void efl_canvas_object_key_focus_set(Eo *obj, Eina_Bool focus);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:property:key_focus|Efl.Canvas.Object.key_focus]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/layer.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/layer.txt
new file mode 100644
index 00000000..6c23fd91
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/layer.txt
@@ -0,0 +1,47 @@
+~~Title: Efl.Canvas.Object.layer~~
+====== Efl.Canvas.Object.layer ======
+
+===== Description =====
+
+%%The layer of its canvas that the given object will be part of.%%
+
+%%If you don't use this property, you'll be dealing with a unique layer of objects (the default one). Additional layers are handy when you don't want a set of objects to interfere with another set with regard to stacking. Two layers are completely disjoint in that matter.%%
+
+%%This is a low-level function, which you'd be using when something should be always on top, for example.%%
+
+
+@property layer @pure_virtual {
+ get {}
+ set {}
+ values {
+ l: short;
+ }
+}
+
+
+===== C signature =====
+
+
+short efl_gfx_stack_layer_get(const Eo *obj);
+void efl_gfx_stack_layer_set(Eo *obj, short l);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:stack:property:layer|Efl.Gfx.Stack.layer]]
+ * [[:develop:api:efl:canvas:object:property:layer|Efl.Canvas.Object.layer]]
+ * [[:develop:api:efl:canvas:event_grabber:property:layer|Efl.Canvas.Event_Grabber.layer]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/loop.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/loop.txt
new file mode 100644
index 00000000..1c86d6e3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/loop.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.Canvas.Object.loop~~
+====== Efl.Canvas.Object.loop ======
+
+===== Values =====
+
+ * **loop** - %%Efl loop.%%
+
+
+\\ {{page>:develop:api-include:efl:canvas:object:property:loop:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop]] **(get)**.//===== Signature =====
+
+
+@property loop {
+ get {}
+ values {
+ loop: Efl.Loop;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Loop *efl_loop_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop]]
+ * [[:develop:api:efl:canvas:object:property:loop|Efl.Canvas.Object.loop]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/no_render.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/no_render.txt
new file mode 100644
index 00000000..6c2f8aaf
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/no_render.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.Canvas.Object.no_render~~
+====== Efl.Canvas.Object.no_render ======
+
+===== Description =====
+
+%%Disables all rendering on the canvas.%%
+
+%%This flag will be used to indicate to Evas that this object should never be rendered on the canvas under any circumstances. In particular, this is useful to avoid drawing clipper objects (or masks) even when they don't clip any object. This can also be used to replace the old source_visible flag with proxy objects.%%
+
+%%This is different to the visible property, as even visible objects marked as "no-render" will never appear on screen. But those objects can still be used as proxy sources or clippers. When hidden, all "no-render" objects will completely disappear from the canvas, and hide their clippees or be invisible when used as proxy sources.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:property:no_render:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **enable** - %%Enable "no-render" mode.%%
+
+===== Signature =====
+
+
+@property no_render {
+ get {}
+ set {}
+ values {
+ enable: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_object_no_render_get(const Eo *obj);
+void efl_canvas_object_no_render_set(Eo *obj, Eina_Bool enable);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:property:no_render|Efl.Canvas.Object.no_render]]
+ * [[:develop:api:efl:canvas:group:property:no_render|Efl.Canvas.Group.no_render]]
+ * [[:develop:api:efl:canvas:layout:property:no_render|Efl.Canvas.Layout.no_render]]
+ * [[:develop:api:efl:ui:widget:property:no_render|Efl.Ui.Widget.no_render]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/paragraph_direction.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/paragraph_direction.txt
new file mode 100644
index 00000000..53b9cdfd
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/paragraph_direction.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Canvas.Object.paragraph_direction~~
+====== Efl.Canvas.Object.paragraph_direction ======
+
+===== Description =====
+
+%%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:property:paragraph_direction:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **dir** - %%Paragraph direction for the given object.%%
+
+===== Signature =====
+
+
+@property paragraph_direction {
+ get {}
+ set {}
+ values {
+ dir: Efl.Text_Bidirectional_Type;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Text_Bidirectional_Type efl_canvas_object_paragraph_direction_get(const Eo *obj);
+void efl_canvas_object_paragraph_direction_set(Eo *obj, Efl_Text_Bidirectional_Type dir);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:property:paragraph_direction|Efl.Canvas.Object.paragraph_direction]]
+ * [[:develop:api:efl:canvas:text:property:paragraph_direction|Efl.Canvas.Text.paragraph_direction]]
+ * [[:develop:api:efl:canvas:group:property:paragraph_direction|Efl.Canvas.Group.paragraph_direction]]
+ * [[:develop:api:efl:canvas:layout:property:paragraph_direction|Efl.Canvas.Layout.paragraph_direction]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/pass_events.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/pass_events.txt
new file mode 100644
index 00000000..c7c9c3e0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/pass_events.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Canvas.Object.pass_events~~
+====== Efl.Canvas.Object.pass_events ======
+
+===== Description =====
+
+%%Whether an Evas object is to pass (ignore) events.%%
+
+%%If %%''pass''%% is %%''true''%%, it will make events on %%''obj''%% to be ignored. They will be triggered on the next lower object (that is not set to pass events), instead (see %%[[:develop:api:efl:gfx:stack:property:below|Efl.Gfx.Stack.below]]%%).%%
+
+%%If %%''pass''%% is %%''false''%% events will be processed on that object as normal.%%
+
+%%See also %%[[:develop:api:efl:canvas:object:property:repeat_events|Efl.Canvas.Object.repeat_events.set]]%%, %%[[:develop:api:efl:canvas:object:property:propagate_events|Efl.Canvas.Object.propagate_events.set]]%%%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:property:pass_events:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **pass** - %%Whether %%''obj''%% is to pass events (%%''true''%%) or not (%%''false''%%).%%
+
+===== Signature =====
+
+
+@property pass_events {
+ get {}
+ set {}
+ values {
+ pass: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_object_pass_events_get(const Eo *obj);
+void efl_canvas_object_pass_events_set(Eo *obj, Eina_Bool pass);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:property:pass_events|Efl.Canvas.Object.pass_events]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/pointer_inside.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/pointer_inside.txt
new file mode 100644
index 00000000..1e461f75
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/pointer_inside.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Canvas.Object.pointer_inside~~
+====== Efl.Canvas.Object.pointer_inside ======
+
+===== Keys =====
+
+ * **seat** - %%The seat to consider, if %%''null''%% then the default seat will be used.%%
+===== Values =====
+
+ * **inside** - %%%%''true''%% if the mouse pointer is inside the canvas, %%''false''%% otherwise%%
+
+
+\\ {{page>:develop:api-include:efl:canvas:object:property:pointer_inside:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:canvas:pointer:property:pointer_inside|Efl.Canvas.Pointer.pointer_inside]] **(get)**.//===== Signature =====
+
+
+@property pointer_inside @beta @pure_virtual {
+ get {
+ keys {
+ seat: Efl.Input.Device @optional;
+ }
+ }
+ values {
+ inside: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_pointer_inside_get(const Eo *obj, Efl_Input_Device *seat);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:pointer:property:pointer_inside|Efl.Canvas.Pointer.pointer_inside]]
+ * [[:develop:api:efl:canvas:object:property:pointer_inside|Efl.Canvas.Object.pointer_inside]]
+ * [[:develop:api:efl:ui:win:property:pointer_inside|Efl.Ui.Win.pointer_inside]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/pointer_mode.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/pointer_mode.txt
new file mode 100644
index 00000000..cc7f2c51
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/pointer_mode.txt
@@ -0,0 +1,47 @@
+~~Title: Efl.Canvas.Object.pointer_mode~~
+====== Efl.Canvas.Object.pointer_mode ======
+
+===== Description =====
+
+%%Low-level pointer behaviour.%%
+
+%%This function has a direct effect on event callbacks related to pointers (mouse, ...).%%
+
+%%If the value is %%[[:develop:api:efl:input:object_pointer_mode|Efl.Input.Object_Pointer_Mode.auto_grab]]%% (default), then when mouse is pressed down over this object, events will be restricted to it as source, mouse moves, for example, will be emitted even when the pointer goes outside this objects geometry.%%
+
+%%If the value is %%[[:develop:api:efl:input:object_pointer_mode|Efl.Input.Object_Pointer_Mode.no_grab]]%%, then events will be emitted just when inside this object area.%%
+
+%%See also: %%[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|Efl.Canvas.Object.pointer_mode_by_device.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|Efl.Canvas.Object.pointer_mode_by_device.set]]%% Note: This function will only set/get the mode for the default pointer.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:property:pointer_mode:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **pointer_mode** - %%Input pointer mode%%
+
+===== Signature =====
+
+
+@property pointer_mode @beta {
+ get {}
+ set {
+ return: bool;
+ }
+ values {
+ pointer_mode: Efl.Input.Object_Pointer_Mode (Efl.Input.Object_Pointer_Mode.auto_grab);
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Input_Object_Pointer_Mode efl_canvas_object_pointer_mode_get(const Eo *obj);
+Eina_Bool efl_canvas_object_pointer_mode_set(Eo *obj, Efl_Input_Object_Pointer_Mode pointer_mode);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/pointer_mode_by_device.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/pointer_mode_by_device.txt
new file mode 100644
index 00000000..5b4ff706
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/pointer_mode_by_device.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Canvas.Object.pointer_mode_by_device~~
+====== Efl.Canvas.Object.pointer_mode_by_device ======
+
+===== Description =====
+
+%%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:property:pointer_mode_by_device:description&nouser&nolink&nodate}}
+
+===== Keys =====
+
+ * **dev** - %%The pointer device to set/get the mode. Use %%''null''%% for the default pointer.%%
+===== Values =====
+
+ * **pointer_mode** - %%The pointer mode%%
+
+===== Signature =====
+
+
+@property pointer_mode_by_device @beta {
+ get {}
+ set {
+ return: bool;
+ }
+ keys {
+ dev: Efl.Input.Device;
+ }
+ values {
+ pointer_mode: Efl.Input.Object_Pointer_Mode;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Input_Object_Pointer_Mode efl_canvas_object_pointer_mode_by_device_get(const Eo *obj, Efl_Input_Device *dev);
+Eina_Bool efl_canvas_object_pointer_mode_by_device_set(Eo *obj, Efl_Input_Device *dev, Efl_Input_Object_Pointer_Mode pointer_mode);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:property:pointer_mode_by_device|Efl.Canvas.Object.pointer_mode_by_device]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/position.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/position.txt
new file mode 100644
index 00000000..123deff7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/position.txt
@@ -0,0 +1,76 @@
+~~Title: Efl.Canvas.Object.position~~
+====== Efl.Canvas.Object.position ======
+
+===== Description =====
+
+%%The 2D position of a canvas object.%%
+
+%%The position is absolute, in pixels, relative to the top-left corner of the window, within its border decorations (application space).%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:canvas:object:property:position:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **pos** - %%A 2D coordinate in pixel units.%%
+==== Getter ====
+
+%%Retrieves the position of the given canvas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:canvas:object:property:position:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Moves the given canvas object to the given location inside its canvas' viewport. If unchanged this call may be entirely skipped, but if changed this will trigger move events, as well as potential pointer,in or pointer,out events.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:property:position:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:gfx:entity:property:position|Efl.Gfx.Entity.position]] **(get, set)**.//===== Signature =====
+
+
+@property position @pure_virtual {
+ get {}
+ set {}
+ values {
+ pos: Eina.Position2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Position2D efl_gfx_entity_position_get(const Eo *obj);
+void efl_gfx_entity_position_set(Eo *obj, Eina_Position2D pos);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:position|Efl.Gfx.Entity.position]]
+ * [[:develop:api:efl:canvas:vg:node:property:position|Efl.Canvas.Vg.Node.position]]
+ * [[:develop:api:efl:ui:win:property:position|Efl.Ui.Win.position]]
+ * [[:develop:api:efl:ui:image:property:position|Efl.Ui.Image.position]]
+ * [[:develop:api:efl:ui:image_zoomable:property:position|Efl.Ui.Image_Zoomable.position]]
+ * [[:develop:api:efl:ui:widget:property:position|Efl.Ui.Widget.position]]
+ * [[:develop:api:efl:ui:table:property:position|Efl.Ui.Table.position]]
+ * [[:develop:api:efl:ui:box:property:position|Efl.Ui.Box.position]]
+ * [[:develop:api:efl:ui:animation_view:property:position|Efl.Ui.Animation_View.position]]
+ * [[:develop:api:efl:ui:text:property:position|Efl.Ui.Text.position]]
+ * [[:develop:api:efl:ui:textpath:property:position|Efl.Ui.Textpath.position]]
+ * [[:develop:api:efl:ui:popup:property:position|Efl.Ui.Popup.position]]
+ * [[:develop:api:efl:ui:relative_layout:property:position|Efl.Ui.Relative_Layout.position]]
+ * [[:develop:api:efl:canvas:object:property:position|Efl.Canvas.Object.position]]
+ * [[:develop:api:efl:canvas:group:property:position|Efl.Canvas.Group.position]]
+ * [[:develop:api:efl:canvas:video:property:position|Efl.Canvas.Video.position]]
+ * [[:develop:api:efl:canvas:event_grabber:property:position|Efl.Canvas.Event_Grabber.position]]
+ * [[:develop:api:efl:canvas:layout:property:position|Efl.Canvas.Layout.position]]
+ * [[:develop:api:efl:ui:pan:property:position|Efl.Ui.Pan.position]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:property:position|Efl.Ui.Image_Zoomable_Pan.position]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/precise_is_inside.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/precise_is_inside.txt
new file mode 100644
index 00000000..56fff7c9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/precise_is_inside.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Canvas.Object.precise_is_inside~~
+====== Efl.Canvas.Object.precise_is_inside ======
+
+===== Description =====
+
+%%Whether to use precise (usually expensive) point collision detection for a given Evas object.%%
+
+%%Use this property to make Evas treat objects' transparent areas as not belonging to it with regard to mouse pointer events. By default, all of the object's boundary rectangle will be taken in account for them.%%
+
+
+@property precise_is_inside {
+ get {}
+ set {}
+ values {
+ precise: bool (false);
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_object_precise_is_inside_get(const Eo *obj);
+void efl_canvas_object_precise_is_inside_set(Eo *obj, Eina_Bool precise);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:property:precise_is_inside|Efl.Canvas.Object.precise_is_inside]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/propagate_events.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/propagate_events.txt
new file mode 100644
index 00000000..7fe7398b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/propagate_events.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Canvas.Object.propagate_events~~
+====== Efl.Canvas.Object.propagate_events ======
+
+===== Description =====
+
+%%Whether events on a smart object's member should be propagated up to its parent.%%
+
+%%This function has no effect if %%''obj''%% is not a member of a smart object.%%
+
+%%If %%''prop''%% is %%''true''%%, events occurring on this object will be propagated on to the smart object of which %%''obj''%% is a member. If %%''prop''%% is %%''false''%%, events occurring on this object will not be propagated on to the smart object of which %%''obj''%% is a member.%%
+
+%%See also %%[[:develop:api:efl:canvas:object:property:repeat_events|Efl.Canvas.Object.repeat_events.set]]%%, %%[[:develop:api:efl:canvas:object:property:pass_events|Efl.Canvas.Object.pass_events.set]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:property:propagate_events:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **propagate** - %%Whether to propagate events.%%
+
+===== Signature =====
+
+
+@property propagate_events {
+ get {}
+ set {}
+ values {
+ propagate: bool (true);
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_object_propagate_events_get(const Eo *obj);
+void efl_canvas_object_propagate_events_set(Eo *obj, Eina_Bool propagate);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:property:propagate_events|Efl.Canvas.Object.propagate_events]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/render_op.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/render_op.txt
new file mode 100644
index 00000000..594ef2d7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/render_op.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Canvas.Object.render_op~~
+====== Efl.Canvas.Object.render_op ======
+
+===== Description =====
+
+%%Render mode to be used for compositing the Evas object.%%
+
+%%Only two modes are supported: - %%[[:develop:api:efl:gfx:render_op|Efl.Gfx.Render_Op.blend]]%% means the object will be merged on top of objects below it using simple alpha compositing. - %%[[:develop:api:efl:gfx:render_op|Efl.Gfx.Render_Op.copy]]%% means this object's pixels will replace everything that is below, making this object opaque.%%
+
+%%Please do not assume that %%[[:develop:api:efl:gfx:render_op|Efl.Gfx.Render_Op.copy]]%% mode can be used to "poke" holes in a window (to see through it), as only the compositor can ensure that. Copy mode should only be used with otherwise opaque widgets or inside non-window surfaces (e.g. a transparent background inside a buffer canvas).%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:property:render_op:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **render_op** - %%Blend or copy.%%
+
+===== Signature =====
+
+
+@property render_op {
+ get {}
+ set {}
+ values {
+ render_op: Efl.Gfx.Render_Op;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Render_Op efl_canvas_object_render_op_get(const Eo *obj);
+void efl_canvas_object_render_op_set(Eo *obj, Efl_Gfx_Render_Op render_op);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:property:render_op|Efl.Canvas.Object.render_op]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/render_parent.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/render_parent.txt
new file mode 100644
index 00000000..a838b3b3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/render_parent.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Canvas.Object.render_parent~~
+====== Efl.Canvas.Object.render_parent ======
+
+===== Values =====
+
+ * **parent** - %%The parent smart object of %%''obj''%% or %%''null''%%.%%
+
+
+\\ {{page>:develop:api-include:efl:canvas:object:property:render_parent:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property render_parent {
+ get @protected {}
+ values {
+ parent: Efl.Canvas.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Canvas_Object *efl_canvas_object_render_parent_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:property:render_parent|Efl.Canvas.Object.render_parent]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/repeat_events.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/repeat_events.txt
new file mode 100644
index 00000000..11c6e91a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/repeat_events.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Canvas.Object.repeat_events~~
+====== Efl.Canvas.Object.repeat_events ======
+
+===== Description =====
+
+%%Whether an Evas object is to repeat events to objects below it.%%
+
+%%If %%''repeat''%% is %%''true''%%, it will make events on %%''obj''%% to also be repeated for the next lower object in the objects' stack (see see %%[[:develop:api:efl:gfx:stack:property:below|Efl.Gfx.Stack.below]]%%).%%
+
+%%If %%''repeat''%% is %%''false''%%, events occurring on %%''obj''%% will be processed only on it.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:property:repeat_events:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **repeat** - %%Whether %%''obj''%% is to repeat events (%%''true''%%) or not (%%''false''%%).%%
+
+===== Signature =====
+
+
+@property repeat_events {
+ get {}
+ set {}
+ values {
+ repeat: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_object_repeat_events_get(const Eo *obj);
+void efl_canvas_object_repeat_events_set(Eo *obj, Eina_Bool repeat);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:property:repeat_events|Efl.Canvas.Object.repeat_events]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/scale.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/scale.txt
new file mode 100644
index 00000000..8590eb72
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/scale.txt
@@ -0,0 +1,65 @@
+~~Title: Efl.Canvas.Object.scale~~
+====== Efl.Canvas.Object.scale ======
+
+===== Description =====
+
+%%The scaling factor of an object.%%
+
+%%This property is an individual scaling factor on the object (Edje or UI widget). This property (or Edje's global scaling factor, when applicable), will affect this object's part sizes. If scale is not zero, then the individual scaling will override any global scaling set, for the object obj's parts. Set it back to zero to get the effects of the global scaling again.%%
+
+
+@property scale @pure_virtual {
+ get {}
+ set {}
+ values {
+ scale: double (0.000000);
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_gfx_entity_scale_get(const Eo *obj);
+void efl_gfx_entity_scale_set(Eo *obj, double scale);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:scale|Efl.Gfx.Entity.scale]]
+ * [[:develop:api:efl:ui:widget:property:scale|Efl.Ui.Widget.scale]]
+ * [[:develop:api:efl:canvas:object:property:scale|Efl.Canvas.Object.scale]]
+ * [[:develop:api:efl:canvas:text:property:scale|Efl.Canvas.Text.scale]]
+ * [[:develop:api:efl:canvas:layout:property:scale|Efl.Canvas.Layout.scale]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/seat_event_filter.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/seat_event_filter.txt
new file mode 100644
index 00000000..4580c005
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/seat_event_filter.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.Canvas.Object.seat_event_filter~~
+====== Efl.Canvas.Object.seat_event_filter ======
+
+===== Description =====
+
+%%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:canvas:object:property:seat_event_filter:description&nouser&nolink&nodate}}
+
+===== Keys =====
+
+ * **seat** - %%The seat to act on.%%
+===== Values =====
+
+ * **enable** - %%%%''true''%% to enable events for a seat or %%''false''%% otherwise.%%
+
+//Overridden from [[:develop:api:efl:input:interface:property:seat_event_filter|Efl.Input.Interface.seat_event_filter]] **(get, set)**.//===== Signature =====
+
+
+@property seat_event_filter @beta @pure_virtual {
+ get {}
+ set {}
+ keys {
+ seat: Efl.Input.Device;
+ }
+ values {
+ enable: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_input_seat_event_filter_get(const Eo *obj, Efl_Input_Device *seat);
+void efl_input_seat_event_filter_set(Eo *obj, Efl_Input_Device *seat, Eina_Bool enable);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:interface:property:seat_event_filter|Efl.Input.Interface.seat_event_filter]]
+ * [[:develop:api:efl:canvas:object:property:seat_event_filter|Efl.Canvas.Object.seat_event_filter]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/seat_focus.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/seat_focus.txt
new file mode 100644
index 00000000..15fbff15
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/seat_focus.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Canvas.Object.seat_focus~~
+====== Efl.Canvas.Object.seat_focus ======
+
+===== Values =====
+
+ * **focus** - %%%%''true''%% if focused by at least one seat or %%''false''%% otherwise.%%
+
+
+\\ {{page>:develop:api-include:efl:canvas:object:property:seat_focus:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property seat_focus {
+ get {}
+ values {
+ focus: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_object_seat_focus_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:property:seat_focus|Efl.Canvas.Object.seat_focus]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/size.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/size.txt
new file mode 100644
index 00000000..40a6ef13
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/size.txt
@@ -0,0 +1,76 @@
+~~Title: Efl.Canvas.Object.size~~
+====== Efl.Canvas.Object.size ======
+
+===== Description =====
+
+%%The 2D size of a canvas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:canvas:object:property:size:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **size** - %%A 2D size in pixel units.%%
+==== Getter ====
+
+%%Retrieves the (rectangular) size of the given Evas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:canvas:object:property:size:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Changes the size of the given object.%%
+
+%%Note that setting the actual size of an object might be the job of its container, so this function might have no effect. Look at %%[[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]%% instead, when manipulating widgets.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:property:size:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:gfx:entity:property:size|Efl.Gfx.Entity.size]] **(get, set)**.//===== Signature =====
+
+
+@property size @pure_virtual {
+ get {}
+ set {}
+ values {
+ size: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_entity_size_get(const Eo *obj);
+void efl_gfx_entity_size_set(Eo *obj, Eina_Size2D size);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:size|Efl.Gfx.Entity.size]]
+ * [[:develop:api:efl:canvas:vg:node:property:size|Efl.Canvas.Vg.Node.size]]
+ * [[:develop:api:efl:ui:win:property:size|Efl.Ui.Win.size]]
+ * [[:develop:api:efl:ui:image:property:size|Efl.Ui.Image.size]]
+ * [[:develop:api:efl:ui:image_zoomable:property:size|Efl.Ui.Image_Zoomable.size]]
+ * [[:develop:api:efl:ui:widget:property:size|Efl.Ui.Widget.size]]
+ * [[:develop:api:efl:ui:table:property:size|Efl.Ui.Table.size]]
+ * [[:develop:api:efl:ui:box:property:size|Efl.Ui.Box.size]]
+ * [[:develop:api:efl:ui:animation_view:property:size|Efl.Ui.Animation_View.size]]
+ * [[:develop:api:efl:ui:text:property:size|Efl.Ui.Text.size]]
+ * [[:develop:api:efl:ui:panel:property:size|Efl.Ui.Panel.size]]
+ * [[:develop:api:efl:ui:textpath:property:size|Efl.Ui.Textpath.size]]
+ * [[:develop:api:efl:ui:popup:property:size|Efl.Ui.Popup.size]]
+ * [[:develop:api:efl:ui:relative_layout:property:size|Efl.Ui.Relative_Layout.size]]
+ * [[:develop:api:efl:canvas:object:property:size|Efl.Canvas.Object.size]]
+ * [[:develop:api:efl:canvas:video:property:size|Efl.Canvas.Video.size]]
+ * [[:develop:api:efl:canvas:event_grabber:property:size|Efl.Canvas.Event_Grabber.size]]
+ * [[:develop:api:efl:canvas:layout:property:size|Efl.Canvas.Layout.size]]
+ * [[:develop:api:efl:ui:pan:property:size|Efl.Ui.Pan.size]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:property:size|Efl.Ui.Image_Zoomable_Pan.size]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/object/property/visible.txt b/public_html/data/pages/develop/api/efl/canvas/object/property/visible.txt
new file mode 100644
index 00000000..4044301e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/object/property/visible.txt
@@ -0,0 +1,72 @@
+~~Title: Efl.Canvas.Object.visible~~
+====== Efl.Canvas.Object.visible ======
+
+===== Description =====
+
+%%The visibility of a canvas object.%%
+
+%%All canvas objects will become visible by default just before render. This means that it is not required to call %%[[:develop:api:efl:gfx:entity:property:visible|Efl.Gfx.Entity.visible.set]]%% after creating an object unless you want to create it without showing it. Note that this behavior is new since 1.21, and only applies to canvas objects created with the EO API (i.e. not the legacy C-only API). Other types of Gfx objects may or may not be visible by default.%%
+
+%%Note that many other parameters can prevent a visible object from actually being "visible" on screen. For instance if its color is fully transparent, or its parent is hidden, or it is clipped out, etc...%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:canvas:object:property:visible:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **v** - %%%%''true''%% if to make the object visible, %%''false''%% otherwise%%
+==== Getter ====
+
+%%Retrieves whether or not the given canvas object is visible.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:canvas:object:property:visible:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Shows or hides this object.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:object:property:visible:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:gfx:entity:property:visible|Efl.Gfx.Entity.visible]] **(get, set)**.//===== Signature =====
+
+
+@property visible @pure_virtual {
+ get {}
+ set {}
+ values {
+ v: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_gfx_entity_visible_get(const Eo *obj);
+void efl_gfx_entity_visible_set(Eo *obj, Eina_Bool v);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:visible|Efl.Gfx.Entity.visible]]
+ * [[:develop:api:efl:canvas:vg:node:property:visible|Efl.Canvas.Vg.Node.visible]]
+ * [[:develop:api:efl:ui:win:property:visible|Efl.Ui.Win.visible]]
+ * [[:develop:api:efl:ui:image:property:visible|Efl.Ui.Image.visible]]
+ * [[:develop:api:efl:ui:widget:property:visible|Efl.Ui.Widget.visible]]
+ * [[:develop:api:efl:ui:animation_view:property:visible|Efl.Ui.Animation_View.visible]]
+ * [[:develop:api:efl:ui:text:property:visible|Efl.Ui.Text.visible]]
+ * [[:develop:api:efl:ui:popup:property:visible|Efl.Ui.Popup.visible]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:property:visible|Efl.Ui.Navigation_Bar_Part_Back_Button.visible]]
+ * [[:develop:api:efl:canvas:object:property:visible|Efl.Canvas.Object.visible]]
+ * [[:develop:api:efl:canvas:group:property:visible|Efl.Canvas.Group.visible]]
+ * [[:develop:api:efl:canvas:event_grabber:property:visible|Efl.Canvas.Event_Grabber.visible]]
+ * [[:develop:api:efl:canvas:layout:property:visible|Efl.Canvas.Layout.visible]]
+ * [[:develop:api:efl:ui:pan:property:visible|Efl.Ui.Pan.visible]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/pointer.txt b/public_html/data/pages/develop/api/efl/canvas/pointer.txt
new file mode 100644
index 00000000..efb994ca
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/pointer.txt
@@ -0,0 +1,22 @@
+~~Title: Efl.Canvas.Pointer~~
+====== Efl.Canvas.Pointer (interface) ======
+
+===== Description =====
+
+%%Efl Canvas Pointer interface%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:canvas:pointer:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:canvas:pointer:property:pointer_inside|pointer_inside]]** //**(get)**//\\
+>
+
+Eina_Bool efl_canvas_pointer_inside_get(const Eo *obj, Efl_Input_Device *seat);
+
+\\
+
+===== Events =====
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/pointer/property/pointer_inside.txt b/public_html/data/pages/develop/api/efl/canvas/pointer/property/pointer_inside.txt
new file mode 100644
index 00000000..9e4476d9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/pointer/property/pointer_inside.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Canvas.Pointer.pointer_inside~~
+====== Efl.Canvas.Pointer.pointer_inside ======
+
+===== Keys =====
+
+ * **seat** - %%The seat to consider, if %%''null''%% then the default seat will be used.%%
+===== Values =====
+
+ * **inside** - %%%%''true''%% if the mouse pointer is inside the canvas, %%''false''%% otherwise%%
+
+
+\\ {{page>:develop:api-include:efl:canvas:pointer:property:pointer_inside:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property pointer_inside @beta @pure_virtual {
+ get {
+ keys {
+ seat: Efl.Input.Device @optional;
+ }
+ }
+ values {
+ inside: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_pointer_inside_get(const Eo *obj, Efl_Input_Device *seat);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:pointer:property:pointer_inside|Efl.Canvas.Pointer.pointer_inside]]
+ * [[:develop:api:efl:canvas:object:property:pointer_inside|Efl.Canvas.Object.pointer_inside]]
+ * [[:develop:api:efl:ui:win:property:pointer_inside|Efl.Ui.Win.pointer_inside]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/scene.txt b/public_html/data/pages/develop/api/efl/canvas/scene.txt
new file mode 100644
index 00000000..1ba3a671
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/scene.txt
@@ -0,0 +1,134 @@
+~~Title: Efl.Canvas.Scene~~
+====== Efl.Canvas.Scene (interface) ======
+
+===== Description =====
+
+%%Interface containing basic canvas-related methods and events.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:canvas:scene:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:canvas:scene:property:device|device]]** //**(get)**//\\
+> %%Get a device by name.%%
+
+Efl_Input_Device *efl_canvas_scene_device_get(const Eo *obj, const char *name);
+
+\\
+**[[:develop:api:efl:canvas:scene:method:group_objects_calculate|group_objects_calculate]]**\\
+> %%Call user-provided %%''calculate''%% group functions and unset the flag signalling that the object needs to get recalculated to all group objects in the canvas.%%
+
+void efl_canvas_scene_group_objects_calculate(Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:scene:property:group_objects_calculating|group_objects_calculating]]** //**(get)**//\\
+>
+
+Eina_Bool efl_canvas_scene_group_objects_calculating_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:scene:property:image_max_size|image_max_size]]** //**(get)**//\\
+>
+
+Eina_Bool efl_canvas_scene_image_max_size_get(const Eo *obj, Eina_Size2D *max);
+
+\\
+**[[:develop:api:efl:canvas:scene:method:object_top_at_xy_get|object_top_at_xy_get]]**\\
+> %%Retrieve the object stacked at the top of a given position in a canvas.%%
+
+Efl_Gfx_Entity *efl_canvas_scene_object_top_at_xy_get(const Eo *obj, Eina_Position2D pos, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects);
+
+\\
+**[[:develop:api:efl:canvas:scene:method:object_top_in_rectangle_get|object_top_in_rectangle_get]]**\\
+> %%Retrieve the canvas object stacked at the top of a given rectangular region in a canvas%%
+
+Efl_Gfx_Entity *efl_canvas_scene_object_top_in_rectangle_get(const Eo *obj, Eina_Rect rect, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects);
+
+\\
+**[[:develop:api:efl:canvas:scene:method:objects_at_xy_get|objects_at_xy_get]]**\\
+> %%Retrieve a list of objects at a given position in a canvas.%%
+
+Eina_Iterator *efl_canvas_scene_objects_at_xy_get(Eo *obj, Eina_Position2D pos, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects);
+
+\\
+**[[:develop:api:efl:canvas:scene:method:objects_in_rectangle_get|objects_in_rectangle_get]]**\\
+> %%Retrieve a list of objects overlapping a given rectangular region in a canvas.%%
+
+Eina_Iterator *efl_canvas_scene_objects_in_rectangle_get(Eo *obj, Eina_Rect rect, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects);
+
+\\
+**[[:develop:api:efl:canvas:scene:property:pointer_position|pointer_position]]** //**(get)**//\\
+>
+
+Eina_Bool efl_canvas_scene_pointer_position_get(const Eo *obj, Efl_Input_Device *seat, Eina_Position2D *pos);
+
+\\
+**[[:develop:api:efl:canvas:scene:property:seat|seat]]** //**(get)**//\\
+> %%Get a seat by id.%%
+
+Efl_Input_Device *efl_canvas_scene_seat_get(const Eo *obj, int id);
+
+\\
+**[[:develop:api:efl:canvas:scene:property:seat_default|seat_default]]** //**(get)**//\\
+> %%Get the default seat.%%
+
+Efl_Input_Device *efl_canvas_scene_seat_default_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:canvas:scene:method:seats|seats]]**\\
+> %%Iterate over the available input device seats for the canvas.%%
+
+Eina_Iterator *efl_canvas_scene_seats(Eo *obj);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:canvas:scene:event:device_added|device,added]]**\\
+> %%Called when input device was added%%
+
+EFL_CANVAS_SCENE_EVENT_DEVICE_ADDED(Efl_Input_Device *, @beta)
+
+\\ **[[:develop:api:efl:canvas:scene:event:device_changed|device,changed]]**\\
+> %%Called when input device changed%%
+
+EFL_CANVAS_SCENE_EVENT_DEVICE_CHANGED(Efl_Input_Device *, @beta)
+
+\\ **[[:develop:api:efl:canvas:scene:event:device_removed|device,removed]]**\\
+> %%Called when input device was removed%%
+
+EFL_CANVAS_SCENE_EVENT_DEVICE_REMOVED(Efl_Input_Device *, @beta)
+
+\\ **[[:develop:api:efl:canvas:scene:event:object_focus_in|object,focus,in]]**\\
+> %%Called when object got focus%%
+
+EFL_CANVAS_SCENE_EVENT_OBJECT_FOCUS_IN(Efl_Input_Focus *)
+
+\\ **[[:develop:api:efl:canvas:scene:event:object_focus_out|object,focus,out]]**\\
+> %%Called when object lost focus%%
+
+EFL_CANVAS_SCENE_EVENT_OBJECT_FOCUS_OUT(Efl_Input_Focus *)
+
+\\ **[[:develop:api:efl:canvas:scene:event:render_post|render,post]]**\\
+> %%Called when post render happens%%
+
+EFL_CANVAS_SCENE_EVENT_RENDER_POST(Efl_Gfx_Event_Render_Post, @beta)
+
+\\ **[[:develop:api:efl:canvas:scene:event:render_pre|render,pre]]**\\
+> %%Called when pre render happens%%
+
+EFL_CANVAS_SCENE_EVENT_RENDER_PRE(void)
+
+\\ **[[:develop:api:efl:canvas:scene:event:scene_focus_in|scene,focus,in]]**\\
+> %%Called when scene got focus%%
+
+EFL_CANVAS_SCENE_EVENT_SCENE_FOCUS_IN(void)
+
+\\ **[[:develop:api:efl:canvas:scene:event:scene_focus_out|scene,focus,out]]**\\
+> %%Called when scene lost focus%%
+
+EFL_CANVAS_SCENE_EVENT_SCENE_FOCUS_OUT(void)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/canvas/scene/event/device_added.txt b/public_html/data/pages/develop/api/efl/canvas/scene/event/device_added.txt
new file mode 100644
index 00000000..a1818306
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/scene/event/device_added.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Canvas.Scene: device,added~~
+
+===== Description =====
+
+%%Called when input device was added%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:canvas:scene:event:device_added:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+device,added @beta: Efl.Input.Device;
+
+
+===== C information =====
+
+
+EFL_CANVAS_SCENE_EVENT_DEVICE_ADDED(Efl_Input_Device *, @beta)
+
+
+===== C usage =====
+
+
+static void
+on_efl_canvas_scene_event_device_added(void *data, const Efl_Event *event)
+{
+ Efl_Input_Device *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_CANVAS_SCENE_EVENT_DEVICE_ADDED, on_efl_canvas_scene_event_device_added, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/scene/event/device_changed.txt b/public_html/data/pages/develop/api/efl/canvas/scene/event/device_changed.txt
new file mode 100644
index 00000000..f51b6a40
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/scene/event/device_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Canvas.Scene: device,changed~~
+
+===== Description =====
+
+%%Called when input device changed%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:canvas:scene:event:device_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+device,changed @beta: Efl.Input.Device;
+
+
+===== C information =====
+
+
+EFL_CANVAS_SCENE_EVENT_DEVICE_CHANGED(Efl_Input_Device *, @beta)
+
+
+===== C usage =====
+
+
+static void
+on_efl_canvas_scene_event_device_changed(void *data, const Efl_Event *event)
+{
+ Efl_Input_Device *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_CANVAS_SCENE_EVENT_DEVICE_CHANGED, on_efl_canvas_scene_event_device_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/scene/event/device_removed.txt b/public_html/data/pages/develop/api/efl/canvas/scene/event/device_removed.txt
new file mode 100644
index 00000000..e58968ed
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/scene/event/device_removed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Canvas.Scene: device,removed~~
+
+===== Description =====
+
+%%Called when input device was removed%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:canvas:scene:event:device_removed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+device,removed @beta: Efl.Input.Device;
+
+
+===== C information =====
+
+
+EFL_CANVAS_SCENE_EVENT_DEVICE_REMOVED(Efl_Input_Device *, @beta)
+
+
+===== C usage =====
+
+
+static void
+on_efl_canvas_scene_event_device_removed(void *data, const Efl_Event *event)
+{
+ Efl_Input_Device *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_CANVAS_SCENE_EVENT_DEVICE_REMOVED, on_efl_canvas_scene_event_device_removed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/scene/event/object_focus_in.txt b/public_html/data/pages/develop/api/efl/canvas/scene/event/object_focus_in.txt
new file mode 100644
index 00000000..068f4db8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/scene/event/object_focus_in.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Canvas.Scene: object,focus,in~~
+
+===== Description =====
+
+%%Called when object got focus%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:canvas:scene:event:object_focus_in:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+object,focus,in: Efl.Input.Focus;
+
+
+===== C information =====
+
+
+EFL_CANVAS_SCENE_EVENT_OBJECT_FOCUS_IN(Efl_Input_Focus *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_canvas_scene_event_object_focus_in(void *data, const Efl_Event *event)
+{
+ Efl_Input_Focus *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_CANVAS_SCENE_EVENT_OBJECT_FOCUS_IN, on_efl_canvas_scene_event_object_focus_in, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/scene/event/object_focus_out.txt b/public_html/data/pages/develop/api/efl/canvas/scene/event/object_focus_out.txt
new file mode 100644
index 00000000..3668257b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/scene/event/object_focus_out.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Canvas.Scene: object,focus,out~~
+
+===== Description =====
+
+%%Called when object lost focus%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:canvas:scene:event:object_focus_out:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+object,focus,out: Efl.Input.Focus;
+
+
+===== C information =====
+
+
+EFL_CANVAS_SCENE_EVENT_OBJECT_FOCUS_OUT(Efl_Input_Focus *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_canvas_scene_event_object_focus_out(void *data, const Efl_Event *event)
+{
+ Efl_Input_Focus *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_CANVAS_SCENE_EVENT_OBJECT_FOCUS_OUT, on_efl_canvas_scene_event_object_focus_out, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/scene/event/render_post.txt b/public_html/data/pages/develop/api/efl/canvas/scene/event/render_post.txt
new file mode 100644
index 00000000..3146e535
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/scene/event/render_post.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Canvas.Scene: render,post~~
+
+===== Description =====
+
+%%Called when post render happens%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:canvas:scene:event:render_post:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+render,post @beta: Efl.Gfx.Event.Render_Post;
+
+
+===== C information =====
+
+
+EFL_CANVAS_SCENE_EVENT_RENDER_POST(Efl_Gfx_Event_Render_Post, @beta)
+
+
+===== C usage =====
+
+
+static void
+on_efl_canvas_scene_event_render_post(void *data, const Efl_Event *event)
+{
+ Efl_Gfx_Event_Render_Post info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_CANVAS_SCENE_EVENT_RENDER_POST, on_efl_canvas_scene_event_render_post, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/scene/event/render_pre.txt b/public_html/data/pages/develop/api/efl/canvas/scene/event/render_pre.txt
new file mode 100644
index 00000000..4b02acd8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/scene/event/render_pre.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Canvas.Scene: render,pre~~
+
+===== Description =====
+
+%%Called when pre render happens%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:canvas:scene:event:render_pre:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+render,pre;
+
+
+===== C information =====
+
+
+EFL_CANVAS_SCENE_EVENT_RENDER_PRE(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_canvas_scene_event_render_pre(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_CANVAS_SCENE_EVENT_RENDER_PRE, on_efl_canvas_scene_event_render_pre, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/scene/event/scene_focus_in.txt b/public_html/data/pages/develop/api/efl/canvas/scene/event/scene_focus_in.txt
new file mode 100644
index 00000000..837ad5a6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/scene/event/scene_focus_in.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Canvas.Scene: scene,focus,in~~
+
+===== Description =====
+
+%%Called when scene got focus%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:canvas:scene:event:scene_focus_in:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+scene,focus,in;
+
+
+===== C information =====
+
+
+EFL_CANVAS_SCENE_EVENT_SCENE_FOCUS_IN(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_canvas_scene_event_scene_focus_in(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_CANVAS_SCENE_EVENT_SCENE_FOCUS_IN, on_efl_canvas_scene_event_scene_focus_in, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/scene/event/scene_focus_out.txt b/public_html/data/pages/develop/api/efl/canvas/scene/event/scene_focus_out.txt
new file mode 100644
index 00000000..d70e6f4a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/scene/event/scene_focus_out.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Canvas.Scene: scene,focus,out~~
+
+===== Description =====
+
+%%Called when scene lost focus%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:canvas:scene:event:scene_focus_out:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+scene,focus,out;
+
+
+===== C information =====
+
+
+EFL_CANVAS_SCENE_EVENT_SCENE_FOCUS_OUT(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_canvas_scene_event_scene_focus_out(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_CANVAS_SCENE_EVENT_SCENE_FOCUS_OUT, on_efl_canvas_scene_event_scene_focus_out, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/scene/method/group_objects_calculate.txt b/public_html/data/pages/develop/api/efl/canvas/scene/method/group_objects_calculate.txt
new file mode 100644
index 00000000..f68ae291
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/scene/method/group_objects_calculate.txt
@@ -0,0 +1,27 @@
+~~Title: Efl.Canvas.Scene.group_objects_calculate~~
+====== Efl.Canvas.Scene.group_objects_calculate ======
+
+===== Description =====
+
+%%Call user-provided %%''calculate''%% group functions and unset the flag signalling that the object needs to get recalculated to all group objects in the canvas.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:scene:method:group_objects_calculate:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+group_objects_calculate @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_canvas_scene_group_objects_calculate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:scene:method:group_objects_calculate|Efl.Canvas.Scene.group_objects_calculate]]
+ * [[:develop:api:efl:ui:win:method:group_objects_calculate|Efl.Ui.Win.group_objects_calculate]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/scene/method/object_top_at_xy_get.txt b/public_html/data/pages/develop/api/efl/canvas/scene/method/object_top_at_xy_get.txt
new file mode 100644
index 00000000..8f4948a5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/scene/method/object_top_at_xy_get.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Canvas.Scene.object_top_at_xy_get~~
+====== Efl.Canvas.Scene.object_top_at_xy_get ======
+
+===== Description =====
+
+%%Retrieve the object stacked at the top of a given position in a canvas.%%
+
+%%This function will traverse all the layers of the given canvas, from top to bottom, querying for objects with areas covering the given position. The user can exclude from the query objects which are hidden and/or which are set to pass events.%%
+
+
+object_top_at_xy_get @const @pure_virtual {
+ params {
+ @in pos: Eina.Position2D;
+ @in include_pass_events_objects: bool;
+ @in include_hidden_objects: bool;
+ }
+ return: Efl.Gfx.Entity @no_unused;
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_canvas_scene_object_top_at_xy_get(const Eo *obj, Eina_Position2D pos, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects);
+
+
+===== Parameters =====
+
+ * **pos** //(in)// - %%The pixel position.%%
+ * **include_pass_events_objects** //(in)// - %%Boolean flag to include or not objects which pass events in this calculation.%%
+ * **include_hidden_objects** //(in)// - %%Boolean flag to include or not hidden objects in this calculation.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:scene:method:object_top_at_xy_get|Efl.Canvas.Scene.object_top_at_xy_get]]
+ * [[:develop:api:efl:ui:win:method:object_top_at_xy_get|Efl.Ui.Win.object_top_at_xy_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/scene/method/object_top_in_rectangle_get.txt b/public_html/data/pages/develop/api/efl/canvas/scene/method/object_top_in_rectangle_get.txt
new file mode 100644
index 00000000..25a01499
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/scene/method/object_top_in_rectangle_get.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Canvas.Scene.object_top_in_rectangle_get~~
+====== Efl.Canvas.Scene.object_top_in_rectangle_get ======
+
+===== Description =====
+
+%%Retrieve the canvas object stacked at the top of a given rectangular region in a canvas%%
+
+%%This function will traverse all the layers of the given canvas, from top to bottom, querying for objects with areas overlapping with the given rectangular region. The user can exclude from the query objects which are hidden and/or which are set to pass events.%%
+
+
+object_top_in_rectangle_get @const @pure_virtual {
+ params {
+ @in rect: Eina.Rect;
+ @in include_pass_events_objects: bool;
+ @in include_hidden_objects: bool;
+ }
+ return: Efl.Gfx.Entity @no_unused;
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_canvas_scene_object_top_in_rectangle_get(const Eo *obj, Eina_Rect rect, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects);
+
+
+===== Parameters =====
+
+ * **rect** //(in)// - %%The rectangular region.%%
+ * **include_pass_events_objects** //(in)// - %%Boolean flag to include or not objects which pass events in this calculation.%%
+ * **include_hidden_objects** //(in)// - %%Boolean flag to include or not hidden objects in this calculation.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:scene:method:object_top_in_rectangle_get|Efl.Canvas.Scene.object_top_in_rectangle_get]]
+ * [[:develop:api:efl:ui:win:method:object_top_in_rectangle_get|Efl.Ui.Win.object_top_in_rectangle_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/scene/method/objects_at_xy_get.txt b/public_html/data/pages/develop/api/efl/canvas/scene/method/objects_at_xy_get.txt
new file mode 100644
index 00000000..e26a247e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/scene/method/objects_at_xy_get.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Canvas.Scene.objects_at_xy_get~~
+====== Efl.Canvas.Scene.objects_at_xy_get ======
+
+===== Description =====
+
+%%Retrieve a list of objects at a given position in a canvas.%%
+
+%%This function will traverse all the layers of the given canvas, from top to bottom, querying for objects with areas covering the given position. The user can exclude from the query objects which are hidden and/or which are set to pass events.%%
+
+
+objects_at_xy_get @pure_virtual {
+ params {
+ @in pos: Eina.Position2D;
+ @in include_pass_events_objects: bool;
+ @in include_hidden_objects: bool;
+ }
+ return: iterator @no_unused;
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_canvas_scene_objects_at_xy_get(Eo *obj, Eina_Position2D pos, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects);
+
+
+===== Parameters =====
+
+ * **pos** //(in)// - %%The pixel position.%%
+ * **include_pass_events_objects** //(in)// - %%Boolean flag to include or not objects which pass events in this calculation.%%
+ * **include_hidden_objects** //(in)// - %%Boolean flag to include or not hidden objects in this calculation.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:scene:method:objects_at_xy_get|Efl.Canvas.Scene.objects_at_xy_get]]
+ * [[:develop:api:efl:ui:win:method:objects_at_xy_get|Efl.Ui.Win.objects_at_xy_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/scene/method/objects_in_rectangle_get.txt b/public_html/data/pages/develop/api/efl/canvas/scene/method/objects_in_rectangle_get.txt
new file mode 100644
index 00000000..752977e9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/scene/method/objects_in_rectangle_get.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Canvas.Scene.objects_in_rectangle_get~~
+====== Efl.Canvas.Scene.objects_in_rectangle_get ======
+
+===== Description =====
+
+%%Retrieve a list of objects overlapping a given rectangular region in a canvas.%%
+
+%%This function will traverse all the layers of the given canvas, from top to bottom, querying for objects with areas overlapping with the given rectangular region. The user can exclude from the query objects which are hidden and/or which are set to pass events.%%
+
+
+objects_in_rectangle_get @pure_virtual {
+ params {
+ @in rect: Eina.Rect;
+ @in include_pass_events_objects: bool;
+ @in include_hidden_objects: bool;
+ }
+ return: iterator @no_unused;
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_canvas_scene_objects_in_rectangle_get(Eo *obj, Eina_Rect rect, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects);
+
+
+===== Parameters =====
+
+ * **rect** //(in)// - %%The rectangular region.%%
+ * **include_pass_events_objects** //(in)// - %%Boolean flag to include or not objects which pass events in this calculation.%%
+ * **include_hidden_objects** //(in)// - %%Boolean flag to include or not hidden objects in this calculation.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:scene:method:objects_in_rectangle_get|Efl.Canvas.Scene.objects_in_rectangle_get]]
+ * [[:develop:api:efl:ui:win:method:objects_in_rectangle_get|Efl.Ui.Win.objects_in_rectangle_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/scene/method/seats.txt b/public_html/data/pages/develop/api/efl/canvas/scene/method/seats.txt
new file mode 100644
index 00000000..f2b7d114
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/scene/method/seats.txt
@@ -0,0 +1,30 @@
+~~Title: Efl.Canvas.Scene.seats~~
+====== Efl.Canvas.Scene.seats ======
+
+===== Description =====
+
+%%Iterate over the available input device seats for the canvas.%%
+
+%%A "seat" is the term used for a group of input devices, typically including a pointer and a keyboard. A seat object is the parent of the individual input devices.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:canvas:scene:method:seats:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+seats @beta @pure_virtual {
+ return: iterator;
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_canvas_scene_seats(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:scene:method:seats|Efl.Canvas.Scene.seats]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/scene/property/device.txt b/public_html/data/pages/develop/api/efl/canvas/scene/property/device.txt
new file mode 100644
index 00000000..97385fb9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/scene/property/device.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Canvas.Scene.device~~
+====== Efl.Canvas.Scene.device ======
+
+===== Keys =====
+
+ * **name** - %%The name of the seat to find.%%
+===== Values =====
+
+ * **seat** - %%The device or seat, %%''null''%% if not found.%%
+===== Description =====
+
+%%Get a device by name.%%
+
+//Since 1.22//
+
+\\ {{page>:develop:api-include:efl:canvas:scene:property:device:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property device @beta @pure_virtual {
+ get {
+ keys {
+ name: string;
+ }
+ }
+ values {
+ seat: Efl.Input.Device;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Input_Device *efl_canvas_scene_device_get(const Eo *obj, const char *name);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:scene:property:device|Efl.Canvas.Scene.device]]
+ * [[:develop:api:efl:ui:win:property:device|Efl.Ui.Win.device]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/scene/property/group_objects_calculating.txt b/public_html/data/pages/develop/api/efl/canvas/scene/property/group_objects_calculating.txt
new file mode 100644
index 00000000..d286211d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/scene/property/group_objects_calculating.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.Canvas.Scene.group_objects_calculating~~
+====== Efl.Canvas.Scene.group_objects_calculating ======
+
+===== Values =====
+
+ * **calculating** - %%%%''true''%% if currently calculating group objects.%%
+
+
+\\ {{page>:develop:api-include:efl:canvas:scene:property:group_objects_calculating:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property group_objects_calculating @pure_virtual {
+ get {}
+ values {
+ calculating: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_scene_group_objects_calculating_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:scene:property:group_objects_calculating|Efl.Canvas.Scene.group_objects_calculating]]
+ * [[:develop:api:efl:ui:win:property:group_objects_calculating|Efl.Ui.Win.group_objects_calculating]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/scene/property/image_max_size.txt b/public_html/data/pages/develop/api/efl/canvas/scene/property/image_max_size.txt
new file mode 100644
index 00000000..92d01951
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/scene/property/image_max_size.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Canvas.Scene.image_max_size~~
+====== Efl.Canvas.Scene.image_max_size ======
+
+===== Values =====
+
+ * **max** - %%The maximum image size (in pixels).%%
+
+
+\\ {{page>:develop:api-include:efl:canvas:scene:property:image_max_size:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property image_max_size @pure_virtual {
+ get {
+ return: bool;
+ }
+ values {
+ max: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_scene_image_max_size_get(const Eo *obj, Eina_Size2D *max);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:scene:property:image_max_size|Efl.Canvas.Scene.image_max_size]]
+ * [[:develop:api:efl:ui:win:property:image_max_size|Efl.Ui.Win.image_max_size]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/scene/property/pointer_position.txt b/public_html/data/pages/develop/api/efl/canvas/scene/property/pointer_position.txt
new file mode 100644
index 00000000..d777d82f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/scene/property/pointer_position.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Canvas.Scene.pointer_position~~
+====== Efl.Canvas.Scene.pointer_position ======
+
+===== Keys =====
+
+ * **seat** - %%The seat, or %%''null''%% to use the default.%%
+===== Values =====
+
+ * **pos** - %%The pointer position in pixels.%%
+
+
+\\ {{page>:develop:api-include:efl:canvas:scene:property:pointer_position:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property pointer_position @beta @pure_virtual {
+ get {
+ keys {
+ seat: Efl.Input.Device;
+ }
+ return: bool;
+ }
+ values {
+ pos: Eina.Position2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_scene_pointer_position_get(const Eo *obj, Efl_Input_Device *seat, Eina_Position2D *pos);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:scene:property:pointer_position|Efl.Canvas.Scene.pointer_position]]
+ * [[:develop:api:efl:ui:win:property:pointer_position|Efl.Ui.Win.pointer_position]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/scene/property/seat.txt b/public_html/data/pages/develop/api/efl/canvas/scene/property/seat.txt
new file mode 100644
index 00000000..5e814cc0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/scene/property/seat.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Canvas.Scene.seat~~
+====== Efl.Canvas.Scene.seat ======
+
+===== Keys =====
+
+ * **id** - %%The id of the seat to find.%%
+===== Values =====
+
+ * **seat** - %%The seat or %%''null''%% if not found.%%
+===== Description =====
+
+%%Get a seat by id.%%
+
+//Since 1.22//
+
+\\ {{page>:develop:api-include:efl:canvas:scene:property:seat:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property seat @beta @pure_virtual {
+ get {
+ keys {
+ id: int;
+ }
+ }
+ values {
+ seat: Efl.Input.Device;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Input_Device *efl_canvas_scene_seat_get(const Eo *obj, int id);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:scene:property:seat|Efl.Canvas.Scene.seat]]
+ * [[:develop:api:efl:ui:win:property:seat|Efl.Ui.Win.seat]]
+
diff --git a/public_html/data/pages/develop/api/efl/canvas/scene/property/seat_default.txt b/public_html/data/pages/develop/api/efl/canvas/scene/property/seat_default.txt
new file mode 100644
index 00000000..55b25aa4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/canvas/scene/property/seat_default.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Canvas.Scene.seat_default~~
+====== Efl.Canvas.Scene.seat_default ======
+
+===== Values =====
+
+ * **seat** - %%The default seat or %%''null''%% if one does not exist.%%
+===== Description =====
+
+%%Get the default seat.%%
+
+//Since 1.22//
+
+\\ {{page>:develop:api-include:efl:canvas:scene:property:seat_default:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property seat_default @beta @pure_virtual {
+ get {}
+ values {
+ seat: Efl.Input.Device;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Input_Device *efl_canvas_scene_seat_default_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:scene:property:seat_default|Efl.Canvas.Scene.seat_default]]
+ * [[:develop:api:efl:ui:win:property:seat_default|Efl.Ui.Win.seat_default]]
+
diff --git a/public_html/data/pages/develop/api/efl/class.txt b/public_html/data/pages/develop/api/efl/class.txt
new file mode 100644
index 00000000..6689ae4e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/class.txt
@@ -0,0 +1,15 @@
+~~Title: Efl.Class~~
+====== Efl.Class (class) ======
+
+===== Description =====
+
+%%Abstract Efl class%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:class:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+===== Events =====
+
diff --git a/public_html/data/pages/develop/api/efl/composite_model.txt b/public_html/data/pages/develop/api/efl/composite_model.txt
new file mode 100644
index 00000000..36ee7400
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/composite_model.txt
@@ -0,0 +1,154 @@
+~~Title: Efl.Composite_Model~~
+====== Efl.Composite_Model (class) ======
+
+===== Description =====
+
+%%Efl model for all composite class which provide a unified API to set source of data.%%
+
+%%This class also provide an %%[[:develop:api:efl:model:property:property|Efl.Model.property]]%% "child.index" that match the value of %%[[:develop:api:efl:composite_model:property:index|Efl.Composite_Model.index]]%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:composite_model:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:loop_model|Efl.Loop_Model]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:loop_model|Efl.Loop_Model]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:model|Efl.Model]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:composite_model:method:child_add|child_add]]**// [Overridden from [[:develop:api:efl:model|Efl.Model]]]//\\
+> %%Add a new child.%%
+
+Efl_Object *efl_model_child_add(Eo *obj);
+
+\\
+**[[:develop:api:efl:composite_model:method:child_del|child_del]]**// [Overridden from [[:develop:api:efl:model|Efl.Model]]]//\\
+> %%Remove a child.%%
+
+void efl_model_child_del(Eo *obj, Efl_Object *child);
+
+\\
+**[[:develop:api:efl:composite_model:property:children_count|children_count]]** //**(get)**//// [Overridden from [[:develop:api:efl:model|Efl.Model]]]//\\
+>
+
+unsigned int efl_model_children_count_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:composite_model:method:children_slice_get|children_slice_get]]**// [Overridden from [[:develop:api:efl:model|Efl.Model]]]//\\
+> %%Get children slice OR full range.%%
+
+Eina_Future *efl_model_children_slice_get(Eo *obj, unsigned int start, unsigned int count);
+
+\\
+**[[:develop:api:efl:composite_model:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:composite_model:method:finalize|finalize]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+Efl_Object *efl_finalize(Eo *obj);
+
+\\
+**[[:develop:api:efl:composite_model:property:index|index]]** //**(get, set)**//\\
+> %%Position of this object in the parent model.%%
+
+unsigned int efl_composite_model_index_get(const Eo *obj);
+void efl_composite_model_index_set(Eo *obj, unsigned int index);
+
+\\
+**[[:develop:api:efl:composite_model:method:invalidate|invalidate]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to perform special actions when your object loses its parent, if you need to.%%
+
+void efl_invalidate(Eo *obj);
+
+\\
+**[[:develop:api:efl:composite_model:property:model|model]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:view|Efl.Ui.View]]]//\\
+> %%Model that is/will be%%
+
+Efl_Model *efl_ui_view_model_get(const Eo *obj);
+void efl_ui_view_model_set(Eo *obj, Efl_Model *model);
+
+\\
+**[[:develop:api:efl:composite_model:property:properties|properties]]** //**(get)**//// [Overridden from [[:develop:api:efl:model|Efl.Model]]]//\\
+>
+
+Eina_Iterator *efl_model_properties_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:composite_model:property:property|property]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:model|Efl.Model]]]//\\
+> %%No description supplied.%%
+
+Eina_Value *efl_model_property_get(const Eo *obj, const char *property);
+Eina_Future *efl_model_property_set(Eo *obj, const char *property, Eina_Value *value);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:loop_model|Efl.Loop_Model]] ^^^
+| | **[[:develop:api:efl:loop_model:method:property_ready_get|property_ready_get]]** | %%Get a future value when it changes to something that is not error:EAGAIN%% |
+| | **[[:develop:api:efl:loop_model:method:volatile_make|volatile_make]]** | %%To be called when a Child model is created by %%[[:develop:api:efl:model:method:children_slice_get|Efl.Model.children_slice_get]]%% by the one creating the child object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:constructor|constructor]]** | %%Implement this method to provide optional initialization code for your object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:model|Efl.Model]] ^^^
+| | **[[:develop:api:efl:model:event:child_added|child,added]]** | %%Event dispatched when new child is added.%% |
+| | **[[:develop:api:efl:model:event:child_removed|child,removed]]** | %%Event dispatched when child is removed.%% |
+| | **[[:develop:api:efl:model:event:children_count_changed|children,count,changed]]** | %%Event dispatched when children count is finished.%% |
+| | **[[:develop:api:efl:model:event:properties_changed|properties,changed]]** | %%Event dispatched when properties list is available.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
diff --git a/public_html/data/pages/develop/api/efl/composite_model/method/child_add.txt b/public_html/data/pages/develop/api/efl/composite_model/method/child_add.txt
new file mode 100644
index 00000000..6f637ff0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/composite_model/method/child_add.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Composite_Model.child_add~~
+====== Efl.Composite_Model.child_add ======
+
+===== Description =====
+
+%%Add a new child.%%
+
+%%Add a new child, possibly dummy, depending on the implementation, of a internal keeping. When the child is effectively added the event %%[[:develop:api:efl:model:event:child,added|Efl.Model.child,added]]%% is then raised and the new child is kept along with other children.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:composite_model:method:child_add:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:model:method:child_add|Efl.Model.child_add]].//===== Signature =====
+
+
+child_add @pure_virtual {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_model_child_add(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:model:method:child_add|Efl.Model.child_add]]
+ * [[:develop:api:efl:mono_model_internal_child:method:child_add|Efl.Mono_Model_Internal_Child.child_add]]
+ * [[:develop:api:efl:mono_model_internal:method:child_add|Efl.Mono_Model_Internal.child_add]]
+ * [[:develop:api:eldbus:model:method:child_add|Eldbus.Model.child_add]]
+ * [[:develop:api:efl:composite_model:method:child_add|Efl.Composite_Model.child_add]]
+ * [[:develop:api:efl:io:model:method:child_add|Efl.Io.Model.child_add]]
+ * [[:develop:api:efl:generic_model:method:child_add|Efl.Generic_Model.child_add]]
+
diff --git a/public_html/data/pages/develop/api/efl/composite_model/method/child_del.txt b/public_html/data/pages/develop/api/efl/composite_model/method/child_del.txt
new file mode 100644
index 00000000..43e8b2f4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/composite_model/method/child_del.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Composite_Model.child_del~~
+====== Efl.Composite_Model.child_del ======
+
+===== Description =====
+
+%%Remove a child.%%
+
+%%Remove a child of a internal keeping. When the child is effectively removed the event %%[[:develop:api:efl:model:event:child,removed|Efl.Model.child,removed]]%% is then raised to give a chance for listeners to perform any cleanup and/or update references.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:composite_model:method:child_del:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:model:method:child_del|Efl.Model.child_del]].//===== Signature =====
+
+
+child_del @pure_virtual {
+ params {
+ @in child: Efl.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_model_child_del(Eo *obj, Efl_Object *child);
+
+
+===== Parameters =====
+
+ * **child** //(in)// - %%Child to be removed%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:model:method:child_del|Efl.Model.child_del]]
+ * [[:develop:api:eldbus:model:method:child_del|Eldbus.Model.child_del]]
+ * [[:develop:api:efl:composite_model:method:child_del|Efl.Composite_Model.child_del]]
+ * [[:develop:api:efl:io:model:method:child_del|Efl.Io.Model.child_del]]
+ * [[:develop:api:efl:generic_model:method:child_del|Efl.Generic_Model.child_del]]
+
diff --git a/public_html/data/pages/develop/api/efl/composite_model/method/children_slice_get.txt b/public_html/data/pages/develop/api/efl/composite_model/method/children_slice_get.txt
new file mode 100644
index 00000000..f45e80b5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/composite_model/method/children_slice_get.txt
@@ -0,0 +1,61 @@
+~~Title: Efl.Composite_Model.children_slice_get~~
+====== Efl.Composite_Model.children_slice_get ======
+
+===== Description =====
+
+%%Get children slice OR full range.%%
+
+%%%%[[:develop:api:efl:model:method:children_slice_get|Efl.Model.children_slice_get]]%% behaves in two different ways, it may provide the slice if %%''count''%% is non-zero OR full range otherwise.%%
+
+%%Since 'slice' is a range, for example if we have 20 children a slice could be the range from 3(start) with 4(count), see:%%
+
+%%child 0 [no] child 1 [no] child 2 [no] child 3 [yes] child 4 [yes] child 5 [yes] child 6 [yes] child 7 [no]%%
+
+%%Optionally the user can call %%[[:develop:api:efl:model:property:children_count|Efl.Model.children_count.get]]%% to know the number of children so a valid range can be known in advance.%%
+
+%%See %%[[:develop:api:efl:model:property:children_count|Efl.Model.children_count.get]]%%%%
+
+
+children_slice_get @pure_virtual {
+ params {
+ @in start: uint;
+ @in count: uint;
+ }
+ return: future>;
+}
+
+
+===== C signature =====
+
+
+Eina_Future *efl_model_children_slice_get(Eo *obj, unsigned int start, unsigned int count);
+
+
+===== Parameters =====
+
+ * **start** //(in)// - %%Range begin - start from here.%%
+ * **count** //(in)// - %%Range size. If count is 0, start is ignored.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:model:method:children_slice_get|Efl.Model.children_slice_get]]
+ * [[:develop:api:efl:mono_model_internal:method:children_slice_get|Efl.Mono_Model_Internal.children_slice_get]]
+ * [[:develop:api:eldbus:model:method:children_slice_get|Eldbus.Model.children_slice_get]]
+ * [[:develop:api:eldbus:model:connection:method:children_slice_get|Eldbus.Model.Connection.children_slice_get]]
+ * [[:develop:api:eldbus:model:proxy:method:children_slice_get|Eldbus.Model.Proxy.children_slice_get]]
+ * [[:develop:api:eldbus:model:object:method:children_slice_get|Eldbus.Model.Object.children_slice_get]]
+ * [[:develop:api:efl:composite_model:method:children_slice_get|Efl.Composite_Model.children_slice_get]]
+ * [[:develop:api:efl:ui:view_model:method:children_slice_get|Efl.Ui.View_Model.children_slice_get]]
+ * [[:develop:api:efl:filter_model:method:children_slice_get|Efl.Filter_Model.children_slice_get]]
+ * [[:develop:api:efl:io:model:method:children_slice_get|Efl.Io.Model.children_slice_get]]
+ * [[:develop:api:efl:generic_model:method:children_slice_get|Efl.Generic_Model.children_slice_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/composite_model/method/destructor.txt b/public_html/data/pages/develop/api/efl/composite_model/method/destructor.txt
new file mode 100644
index 00000000..908fc346
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/composite_model/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Composite_Model.destructor~~
+====== Efl.Composite_Model.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:composite_model:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/composite_model/method/finalize.txt b/public_html/data/pages/develop/api/efl/composite_model/method/finalize.txt
new file mode 100644
index 00000000..5b9db1c0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/composite_model/method/finalize.txt
@@ -0,0 +1,91 @@
+~~Title: Efl.Composite_Model.finalize~~
+====== Efl.Composite_Model.finalize ======
+
+===== Description =====
+
+%%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+%%Use this method to delay expensive operations until user configuration has finished, to avoid building the object in a "default" state in the constructor, just to have to throw it all away because a user configuration (a property being set, for example) requires a different state. This is the last call inside efl_add() and will set %%[[:develop:api:efl:object:property:finalized|Efl.Object.finalized]]%% to %%''true''%% once it returns. This is an optimization and implementing this method is optional if you already perform all your initialization in the %%[[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]%% method. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:composite_model:method:finalize:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:finalize|Efl.Object.finalize]].//===== Signature =====
+
+
+finalize {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_finalize(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]
+ * [[:develop:api:efl:loop_handler:method:finalize|Efl.Loop_Handler.finalize]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:finalize|Efl.Ui.Position_Manager.Grid.finalize]]
+ * [[:develop:api:efl:canvas:layout_part:method:finalize|Efl.Canvas.Layout_Part.finalize]]
+ * [[:develop:api:efl:net:server_udp_client:method:finalize|Efl.Net.Server_Udp_Client.finalize]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:finalize|Efl.Ui.Widget_Part_Bg.finalize]]
+ * [[:develop:api:efl:ui:layout_part_bg:method:finalize|Efl.Ui.Layout_Part_Bg.finalize]]
+ * [[:develop:api:efl:io:buffered_stream:method:finalize|Efl.Io.Buffered_Stream.finalize]]
+ * [[:develop:api:efl:net:dialer_simple:method:finalize|Efl.Net.Dialer_Simple.finalize]]
+ * [[:develop:api:efl:io:file:method:finalize|Efl.Io.File.finalize]]
+ * [[:develop:api:efl:net:server_fd:method:finalize|Efl.Net.Server_Fd.finalize]]
+ * [[:develop:api:efl:io:stderr:method:finalize|Efl.Io.Stderr.finalize]]
+ * [[:develop:api:efl:io:stdin:method:finalize|Efl.Io.Stdin.finalize]]
+ * [[:develop:api:efl:io:stdout:method:finalize|Efl.Io.Stdout.finalize]]
+ * [[:develop:api:efl:net:socket_fd:method:finalize|Efl.Net.Socket_Fd.finalize]]
+ * [[:develop:api:efl:net:socket_ssl:method:finalize|Efl.Net.Socket_Ssl.finalize]]
+ * [[:develop:api:efl:net:dialer_ssl:method:finalize|Efl.Net.Dialer_Ssl.finalize]]
+ * [[:develop:api:efl:canvas:object:method:finalize|Efl.Canvas.Object.finalize]]
+ * [[:develop:api:efl:canvas:image_internal:method:finalize|Efl.Canvas.Image_Internal.finalize]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:finalize|Efl.Ui.Internal.Text.Interactive.finalize]]
+ * [[:develop:api:efl:ui:widget:method:finalize|Efl.Ui.Widget.finalize]]
+ * [[:develop:api:efl:ui:win:method:finalize|Efl.Ui.Win.finalize]]
+ * [[:develop:api:efl:ui:win_socket:method:finalize|Efl.Ui.Win_Socket.finalize]]
+ * [[:develop:api:efl:ui:win_inlined:method:finalize|Efl.Ui.Win_Inlined.finalize]]
+ * [[:develop:api:efl:ui:layout_base:method:finalize|Efl.Ui.Layout_Base.finalize]]
+ * [[:develop:api:efl:ui:text:method:finalize|Efl.Ui.Text.finalize]]
+ * [[:develop:api:efl:ui:tab_bar:method:finalize|Efl.Ui.Tab_Bar.finalize]]
+ * [[:develop:api:efl:ui:item:method:finalize|Efl.Ui.Item.finalize]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:finalize|Efl.Ui.List_Placeholder_Item.finalize]]
+ * [[:develop:api:elm:code_widget:method:finalize|Elm.Code_Widget.finalize]]
+ * [[:develop:api:efl:ui:scroller:method:finalize|Efl.Ui.Scroller.finalize]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:finalize|Efl.Ui.Internal_Text_Scroller.finalize]]
+ * [[:develop:api:efl:ui:collection:method:finalize|Efl.Ui.Collection.finalize]]
+ * [[:develop:api:efl:ui:spotlight:container:method:finalize|Efl.Ui.Spotlight.Container.finalize]]
+ * [[:develop:api:efl:ui:tab_pager:method:finalize|Efl.Ui.Tab_Pager.finalize]]
+ * [[:develop:api:efl:ui:bg:method:finalize|Efl.Ui.Bg.finalize]]
+ * [[:develop:api:efl:canvas:vg:object:method:finalize|Efl.Canvas.Vg.Object.finalize]]
+ * [[:develop:api:efl:loop_timer:method:finalize|Efl.Loop_Timer.finalize]]
+ * [[:develop:api:eldbus:model:method:finalize|Eldbus.Model.finalize]]
+ * [[:develop:api:eldbus:model:proxy:method:finalize|Eldbus.Model.Proxy.finalize]]
+ * [[:develop:api:eldbus:model:arguments:method:finalize|Eldbus.Model.Arguments.finalize]]
+ * [[:develop:api:eldbus:model:method:method:finalize|Eldbus.Model.Method.finalize]]
+ * [[:develop:api:eldbus:model:object:method:finalize|Eldbus.Model.Object.finalize]]
+ * [[:develop:api:efl:composite_model:method:finalize|Efl.Composite_Model.finalize]]
+ * [[:develop:api:efl:container_model:method:finalize|Efl.Container_Model.finalize]]
+ * [[:develop:api:efl:ui:view_model:method:finalize|Efl.Ui.View_Model.finalize]]
+ * [[:develop:api:efl:io:model:method:finalize|Efl.Io.Model.finalize]]
+ * [[:develop:api:efl:net:server_simple:method:finalize|Efl.Net.Server_Simple.finalize]]
+ * [[:develop:api:efl:net:control:manager:method:finalize|Efl.Net.Control.Manager.finalize]]
+ * [[:develop:api:efl:ui:widget_factory:method:finalize|Efl.Ui.Widget_Factory.finalize]]
+ * [[:develop:api:efl:ui:caching_factory:method:finalize|Efl.Ui.Caching_Factory.finalize]]
+ * [[:develop:api:efl:thread:method:finalize|Efl.Thread.finalize]]
+ * [[:develop:api:efl:net:session:method:finalize|Efl.Net.Session.finalize]]
+ * [[:develop:api:efl:io:copier:method:finalize|Efl.Io.Copier.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:finalize|Efl.Ui.Focus.Manager_Calc.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:finalize|Efl.Ui.Focus.Manager_Root_Focus.finalize]]
+ * [[:develop:api:evas:canvas3d:node:method:finalize|Evas.Canvas3D.Node.finalize]]
+ * [[:develop:api:efl:net:ssl:context:method:finalize|Efl.Net.Ssl.Context.finalize]]
+ * [[:develop:api:efl:io:buffer:method:finalize|Efl.Io.Buffer.finalize]]
+ * [[:develop:api:efl:net:ip_address:method:finalize|Efl.Net.Ip_Address.finalize]]
+ * [[:develop:api:efl:io:queue:method:finalize|Efl.Io.Queue.finalize]]
+ * [[:develop:api:ector:renderer:method:finalize|Ector.Renderer.finalize]]
+
diff --git a/public_html/data/pages/develop/api/efl/composite_model/method/invalidate.txt b/public_html/data/pages/develop/api/efl/composite_model/method/invalidate.txt
new file mode 100644
index 00000000..e2101ccc
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/composite_model/method/invalidate.txt
@@ -0,0 +1,74 @@
+~~Title: Efl.Composite_Model.invalidate~~
+====== Efl.Composite_Model.invalidate ======
+
+===== Description =====
+
+%%Implement this method to perform special actions when your object loses its parent, if you need to.%%
+
+%%It is called when the parent reference is lost or set to %%''NULL''%%. After this call returns, %%[[:develop:api:efl:object:property:invalidated|Efl.Object.invalidated]]%% is set to %%''true''%%. This allows a simpler tear down of complex hierarchies, by performing object destruction in two steps, first all object relationships are broken and then the isolated objects are destroyed. Performing everything in the %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%% can sometimes lead to deadlocks, but implementing this method is optional if this is not your case. When an object with a parent is destroyed, it first receives a call to %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% and then to %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:composite_model:method:invalidate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:loop_model:method:invalidate|Efl.Object.invalidate]].//===== Signature =====
+
+
+invalidate {}
+
+
+===== C signature =====
+
+
+void efl_invalidate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]
+ * [[:develop:api:efl:canvas:vg:node:method:invalidate|Efl.Canvas.Vg.Node.invalidate]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:invalidate|Efl.Ui.Position_Manager.Grid.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:manager_scroll:method:invalidate|Efl.Ui.Spotlight.Manager_Scroll.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:manager_stack:method:invalidate|Efl.Ui.Spotlight.Manager_Stack.invalidate]]
+ * [[:develop:api:efl:net:server_udp_client:method:invalidate|Efl.Net.Server_Udp_Client.invalidate]]
+ * [[:develop:api:efl:net:server_windows:method:invalidate|Efl.Net.Server_Windows.invalidate]]
+ * [[:develop:api:efl:io:buffered_stream:method:invalidate|Efl.Io.Buffered_Stream.invalidate]]
+ * [[:develop:api:efl:net:dialer_simple:method:invalidate|Efl.Net.Dialer_Simple.invalidate]]
+ * [[:develop:api:efl:loop_fd:method:invalidate|Efl.Loop_Fd.invalidate]]
+ * [[:develop:api:efl:net:server_ssl:method:invalidate|Efl.Net.Server_Ssl.invalidate]]
+ * [[:develop:api:efl:net:socket_fd:method:invalidate|Efl.Net.Socket_Fd.invalidate]]
+ * [[:develop:api:efl:net:dialer_udp:method:invalidate|Efl.Net.Dialer_Udp.invalidate]]
+ * [[:develop:api:efl:net:dialer_unix:method:invalidate|Efl.Net.Dialer_Unix.invalidate]]
+ * [[:develop:api:efl:net:dialer_tcp:method:invalidate|Efl.Net.Dialer_Tcp.invalidate]]
+ * [[:develop:api:efl:net:socket_ssl:method:invalidate|Efl.Net.Socket_Ssl.invalidate]]
+ * [[:develop:api:efl:net:dialer_ssl:method:invalidate|Efl.Net.Dialer_Ssl.invalidate]]
+ * [[:develop:api:efl:canvas:object:method:invalidate|Efl.Canvas.Object.invalidate]]
+ * [[:develop:api:efl:canvas:layout:method:invalidate|Efl.Canvas.Layout.invalidate]]
+ * [[:develop:api:efl:ui:widget:method:invalidate|Efl.Ui.Widget.invalidate]]
+ * [[:develop:api:efl:ui:table:method:invalidate|Efl.Ui.Table.invalidate]]
+ * [[:develop:api:efl:ui:box:method:invalidate|Efl.Ui.Box.invalidate]]
+ * [[:develop:api:efl:ui:image:method:invalidate|Efl.Ui.Image.invalidate]]
+ * [[:develop:api:efl:ui:layout_base:method:invalidate|Efl.Ui.Layout_Base.invalidate]]
+ * [[:develop:api:efl:ui:collection_view:method:invalidate|Efl.Ui.Collection_View.invalidate]]
+ * [[:develop:api:efl:ui:group_item:method:invalidate|Efl.Ui.Group_Item.invalidate]]
+ * [[:develop:api:efl:ui:collection:method:invalidate|Efl.Ui.Collection.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:container:method:invalidate|Efl.Ui.Spotlight.Container.invalidate]]
+ * [[:develop:api:efl:ui:relative_layout:method:invalidate|Efl.Ui.Relative_Layout.invalidate]]
+ * [[:develop:api:efl:canvas:vg:object:method:invalidate|Efl.Canvas.Vg.Object.invalidate]]
+ * [[:develop:api:efl:loop_model:method:invalidate|Efl.Loop_Model.invalidate]]
+ * [[:develop:api:eldbus:model:method:invalidate|Eldbus.Model.invalidate]]
+ * [[:develop:api:eldbus:model:connection:method:invalidate|Eldbus.Model.Connection.invalidate]]
+ * [[:develop:api:eldbus:model:proxy:method:invalidate|Eldbus.Model.Proxy.invalidate]]
+ * [[:develop:api:eldbus:model:arguments:method:invalidate|Eldbus.Model.Arguments.invalidate]]
+ * [[:develop:api:eldbus:model:signal:method:invalidate|Eldbus.Model.Signal.invalidate]]
+ * [[:develop:api:eldbus:model:object:method:invalidate|Eldbus.Model.Object.invalidate]]
+ * [[:develop:api:efl:composite_model:method:invalidate|Efl.Composite_Model.invalidate]]
+ * [[:develop:api:efl:ui:select_model:method:invalidate|Efl.Ui.Select_Model.invalidate]]
+ * [[:develop:api:efl:io:model:method:invalidate|Efl.Io.Model.invalidate]]
+ * [[:develop:api:efl:net:dialer_websocket:method:invalidate|Efl.Net.Dialer_Websocket.invalidate]]
+ * [[:develop:api:efl:net:server_simple:method:invalidate|Efl.Net.Server_Simple.invalidate]]
+ * [[:develop:api:efl:ui:caching_factory:method:invalidate|Efl.Ui.Caching_Factory.invalidate]]
+ * [[:develop:api:efl:loop:method:invalidate|Efl.Loop.invalidate]]
+ * [[:develop:api:efl:net:dialer_http:method:invalidate|Efl.Net.Dialer_Http.invalidate]]
+ * [[:develop:api:efl:io:copier:method:invalidate|Efl.Io.Copier.invalidate]]
+ * [[:develop:api:efl:ui:position_manager:list:method:invalidate|Efl.Ui.Position_Manager.List.invalidate]]
+
diff --git a/public_html/data/pages/develop/api/efl/composite_model/property/children_count.txt b/public_html/data/pages/develop/api/efl/composite_model/property/children_count.txt
new file mode 100644
index 00000000..f569ccbf
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/composite_model/property/children_count.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Composite_Model.children_count~~
+====== Efl.Composite_Model.children_count ======
+
+===== Values =====
+
+ * **count** - %%Current known children count%%
+
+
+\\ {{page>:develop:api-include:efl:composite_model:property:children_count:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:model:property:children_count|Efl.Model.children_count]] **(get)**.//===== Signature =====
+
+
+@property children_count @pure_virtual {
+ get {}
+ values {
+ count: uint;
+ }
+}
+
+
+===== C signature =====
+
+
+unsigned int efl_model_children_count_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:model:property:children_count|Efl.Model.children_count]]
+ * [[:develop:api:efl:mono_model_internal:property:children_count|Efl.Mono_Model_Internal.children_count]]
+ * [[:develop:api:eldbus:model:property:children_count|Eldbus.Model.children_count]]
+ * [[:develop:api:eldbus:model:connection:property:children_count|Eldbus.Model.Connection.children_count]]
+ * [[:develop:api:eldbus:model:proxy:property:children_count|Eldbus.Model.Proxy.children_count]]
+ * [[:develop:api:eldbus:model:object:property:children_count|Eldbus.Model.Object.children_count]]
+ * [[:develop:api:efl:composite_model:property:children_count|Efl.Composite_Model.children_count]]
+ * [[:develop:api:efl:container_model:property:children_count|Efl.Container_Model.children_count]]
+ * [[:develop:api:efl:filter_model:property:children_count|Efl.Filter_Model.children_count]]
+ * [[:develop:api:efl:io:model:property:children_count|Efl.Io.Model.children_count]]
+ * [[:develop:api:efl:generic_model:property:children_count|Efl.Generic_Model.children_count]]
+
diff --git a/public_html/data/pages/develop/api/efl/composite_model/property/index.txt b/public_html/data/pages/develop/api/efl/composite_model/property/index.txt
new file mode 100644
index 00000000..1a192ea1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/composite_model/property/index.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Composite_Model.index~~
+====== Efl.Composite_Model.index ======
+
+===== Description =====
+
+%%Position of this object in the parent model.%%
+
+%%It can only be set before the object is finalized but after the Model it composes is set (and only if that Model does not provide an index already). It can only be retrieved after the object has been finalized.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:composite_model:property:index:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **index** - %%Index of the object in the parent model. The index is unique and starts from zero.%%
+
+===== Signature =====
+
+
+@property index {
+ get {}
+ set {}
+ values {
+ index: uint;
+ }
+}
+
+
+===== C signature =====
+
+
+unsigned int efl_composite_model_index_get(const Eo *obj);
+void efl_composite_model_index_set(Eo *obj, unsigned int index);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:composite_model:property:index|Efl.Composite_Model.index]]
+ * [[:develop:api:efl:filter_model:property:index|Efl.Filter_Model.index]]
+
diff --git a/public_html/data/pages/develop/api/efl/composite_model/property/model.txt b/public_html/data/pages/develop/api/efl/composite_model/property/model.txt
new file mode 100644
index 00000000..6e47dba4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/composite_model/property/model.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Composite_Model.model~~
+====== Efl.Composite_Model.model ======
+
+===== Description =====
+
+%%Model that is/will be%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:composite_model:property:model:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **model** - %%Efl model%%
+
+//Overridden from [[:develop:api:efl:ui:view:property:model|Efl.Ui.View.model]] **(get, set)**.//===== Signature =====
+
+
+@property model @pure_virtual {
+ get {}
+ set {}
+ values {
+ model: Efl.Model;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Model *efl_ui_view_model_get(const Eo *obj);
+void efl_ui_view_model_set(Eo *obj, Efl_Model *model);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:view:property:model|Efl.Ui.View.model]]
+ * [[:develop:api:efl:composite_model:property:model|Efl.Composite_Model.model]]
+ * [[:develop:api:efl:ui:widget:property:model|Efl.Ui.Widget.model]]
+ * [[:develop:api:efl:model_provider:property:model|Efl.Model_Provider.model]]
+
diff --git a/public_html/data/pages/develop/api/efl/composite_model/property/properties.txt b/public_html/data/pages/develop/api/efl/composite_model/property/properties.txt
new file mode 100644
index 00000000..bbad4d47
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/composite_model/property/properties.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.Composite_Model.properties~~
+====== Efl.Composite_Model.properties ======
+
+===== Values =====
+
+ * **properties** - %%Array of current properties%%
+
+
+\\ {{page>:develop:api-include:efl:composite_model:property:properties:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:model:property:properties|Efl.Model.properties]] **(get)**.//===== Signature =====
+
+
+@property properties @pure_virtual {
+ get {}
+ values {
+ properties: iterator;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_model_properties_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:model:property:properties|Efl.Model.properties]]
+ * [[:develop:api:efl:mono_model_internal_child:property:properties|Efl.Mono_Model_Internal_Child.properties]]
+ * [[:develop:api:efl:mono_model_internal:property:properties|Efl.Mono_Model_Internal.properties]]
+ * [[:develop:api:eldbus:model:property:properties|Eldbus.Model.properties]]
+ * [[:develop:api:eldbus:model:proxy:property:properties|Eldbus.Model.Proxy.properties]]
+ * [[:develop:api:eldbus:model:arguments:property:properties|Eldbus.Model.Arguments.properties]]
+ * [[:develop:api:efl:composite_model:property:properties|Efl.Composite_Model.properties]]
+ * [[:develop:api:efl:boolean_model:property:properties|Efl.Boolean_Model.properties]]
+ * [[:develop:api:efl:ui:select_model:property:properties|Efl.Ui.Select_Model.properties]]
+ * [[:develop:api:efl:container_model:property:properties|Efl.Container_Model.properties]]
+ * [[:develop:api:efl:ui:view_model:property:properties|Efl.Ui.View_Model.properties]]
+ * [[:develop:api:efl:ui:size_model:property:properties|Efl.Ui.Size_Model.properties]]
+ * [[:develop:api:efl:io:model:property:properties|Efl.Io.Model.properties]]
+ * [[:develop:api:efl:generic_model:property:properties|Efl.Generic_Model.properties]]
+
diff --git a/public_html/data/pages/develop/api/efl/composite_model/property/property.txt b/public_html/data/pages/develop/api/efl/composite_model/property/property.txt
new file mode 100644
index 00000000..a650c3fc
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/composite_model/property/property.txt
@@ -0,0 +1,91 @@
+~~Title: Efl.Composite_Model.property~~
+====== Efl.Composite_Model.property ======
+
+===== Description =====
+
+%%No description supplied.%%
+
+//Since 1.23//
+
+
+{{page>:develop:api-include:efl:composite_model:property:property:description&nouser&nolink&nodate}}
+
+===== Keys =====
+
+ * **property** - %%Property name%%
+===== Values =====
+
+ * **value** - %%Property value%%
+==== Getter ====
+
+%%Retrieve the value of a given property name.%%
+
+%%At this point the caller is free to get values from properties. The event %%[[:develop:api:efl:model:event:properties,changed|Efl.Model.properties,changed]]%% may be raised to notify listeners of the property/value.%%
+
+%%See %%[[:develop:api:efl:model:property:properties|Efl.Model.properties.get]]%%, %%[[:develop:api:efl:model:event:properties,changed|Efl.Model.properties,changed]]%%%%
+
+//Since 1.23//
+
+
+{{page>:develop:api-include:efl:composite_model:property:property:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Set a property value of a given property name.%%
+
+%%The caller must first read %%[[:develop:api:efl:model:property:properties|Efl.Model.properties]]%% to obtain the list of available properties before being able to access them through %%[[:develop:api:efl:model:property:property|Efl.Model.property]]%%. This function sets a new property value into given property name. Once the operation is completed the concrete implementation should raise %%[[:develop:api:efl:model:event:properties,changed|Efl.Model.properties,changed]]%% event in order to notify listeners of the new value of the property.%%
+
+%%If the model doesn't have the property then there are two possibilities, either raise an error or create the new property in model%%
+
+%%See %%[[:develop:api:efl:model:property:property|Efl.Model.property.get]]%%, %%[[:develop:api:efl:model:event:properties,changed|Efl.Model.properties,changed]]%%%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:composite_model:property:property:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:loop_model:property:property|Efl.Model.property]] **(get, set)**.//===== Signature =====
+
+
+@property property @pure_virtual {
+ get {}
+ set {
+ return: future;
+ }
+ keys {
+ property: string;
+ }
+ values {
+ value: any_value_ref;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Value *efl_model_property_get(const Eo *obj, const char *property);
+Eina_Future *efl_model_property_set(Eo *obj, const char *property, Eina_Value *value);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:model:property:property|Efl.Model.property]]
+ * [[:develop:api:efl:mono_model_internal_child:property:property|Efl.Mono_Model_Internal_Child.property]]
+ * [[:develop:api:efl:mono_model_internal:property:property|Efl.Mono_Model_Internal.property]]
+ * [[:develop:api:efl:loop_model:property:property|Efl.Loop_Model.property]]
+ * [[:develop:api:eldbus:model:property:property|Eldbus.Model.property]]
+ * [[:develop:api:eldbus:model:proxy:property:property|Eldbus.Model.Proxy.property]]
+ * [[:develop:api:eldbus:model:arguments:property:property|Eldbus.Model.Arguments.property]]
+ * [[:develop:api:efl:composite_model:property:property|Efl.Composite_Model.property]]
+ * [[:develop:api:efl:boolean_model:property:property|Efl.Boolean_Model.property]]
+ * [[:develop:api:efl:ui:select_model:property:property|Efl.Ui.Select_Model.property]]
+ * [[:develop:api:efl:ui:state_model:property:property|Efl.Ui.State_Model.property]]
+ * [[:develop:api:efl:container_model:property:property|Efl.Container_Model.property]]
+ * [[:develop:api:efl:ui:view_model:property:property|Efl.Ui.View_Model.property]]
+ * [[:develop:api:efl:ui:homogeneous_model:property:property|Efl.Ui.Homogeneous_Model.property]]
+ * [[:develop:api:efl:ui:exact_model:property:property|Efl.Ui.Exact_Model.property]]
+ * [[:develop:api:efl:ui:average_model:property:property|Efl.Ui.Average_Model.property]]
+ * [[:develop:api:efl:filter_model:property:property|Efl.Filter_Model.property]]
+ * [[:develop:api:efl:io:model:property:property|Efl.Io.Model.property]]
+ * [[:develop:api:efl:generic_model:property:property|Efl.Generic_Model.property]]
+
diff --git a/public_html/data/pages/develop/api/efl/container.txt b/public_html/data/pages/develop/api/efl/container.txt
new file mode 100644
index 00000000..1f7a699c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/container.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Container~~
+====== Efl.Container (interface) ======
+
+===== Description =====
+
+%%Common interface for objects (containers) that can have multiple contents (sub-objects).%%
+
+%%APIs in this interface deal with containers of multiple sub-objects, not with individual parts.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:container:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:container:method:content_count|content_count]]**\\
+> %%Returns the number of contained sub-objects.%%
+
+int efl_content_count(Eo *obj);
+
+\\
+**[[:develop:api:efl:container:method:content_iterate|content_iterate]]**\\
+> %%Begin iterating over this object's contents.%%
+
+Eina_Iterator *efl_content_iterate(Eo *obj);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:container:event:content_added|content,added]]**\\
+> %%Sent after a new sub-object was added.%%
+
+EFL_CONTAINER_EVENT_CONTENT_ADDED(Efl_Gfx_Entity *)
+
+\\ **[[:develop:api:efl:container:event:content_removed|content,removed]]**\\
+> %%Sent after a sub-object was removed, before unref.%%
+
+EFL_CONTAINER_EVENT_CONTENT_REMOVED(Efl_Gfx_Entity *)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/container/event/content_added.txt b/public_html/data/pages/develop/api/efl/container/event/content_added.txt
new file mode 100644
index 00000000..bd8f797e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/container/event/content_added.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Container: content,added~~
+
+===== Description =====
+
+%%Sent after a new sub-object was added.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:container:event:content_added:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+content,added: Efl.Gfx.Entity;
+
+
+===== C information =====
+
+
+EFL_CONTAINER_EVENT_CONTENT_ADDED(Efl_Gfx_Entity *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_container_event_content_added(void *data, const Efl_Event *event)
+{
+ Efl_Gfx_Entity *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_CONTAINER_EVENT_CONTENT_ADDED, on_efl_container_event_content_added, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/container/event/content_removed.txt b/public_html/data/pages/develop/api/efl/container/event/content_removed.txt
new file mode 100644
index 00000000..046babcd
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/container/event/content_removed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Container: content,removed~~
+
+===== Description =====
+
+%%Sent after a sub-object was removed, before unref.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:container:event:content_removed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+content,removed: Efl.Gfx.Entity;
+
+
+===== C information =====
+
+
+EFL_CONTAINER_EVENT_CONTENT_REMOVED(Efl_Gfx_Entity *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_container_event_content_removed(void *data, const Efl_Event *event)
+{
+ Efl_Gfx_Entity *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_CONTAINER_EVENT_CONTENT_REMOVED, on_efl_container_event_content_removed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/container/method/content_count.txt b/public_html/data/pages/develop/api/efl/container/method/content_count.txt
new file mode 100644
index 00000000..40ce40a2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/container/method/content_count.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Container.content_count~~
+====== Efl.Container.content_count ======
+
+===== Description =====
+
+%%Returns the number of contained sub-objects.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:container:method:content_count:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+content_count @pure_virtual {
+ return: int;
+}
+
+
+===== C signature =====
+
+
+int efl_content_count(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:container:method:content_count|Efl.Container.content_count]]
+ * [[:develop:api:efl:canvas:layout:method:content_count|Efl.Canvas.Layout.content_count]]
+ * [[:develop:api:efl:ui:tab_bar:method:content_count|Efl.Ui.Tab_Bar.content_count]]
+ * [[:develop:api:efl:ui:table:method:content_count|Efl.Ui.Table.content_count]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:content_count|Efl.Canvas.Layout_Part_Table.content_count]]
+ * [[:develop:api:efl:ui:layout_part_table:method:content_count|Efl.Ui.Layout_Part_Table.content_count]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:content_count|Efl.Canvas.Layout_Part_Invalid.content_count]]
+ * [[:develop:api:efl:ui:flip:method:content_count|Efl.Ui.Flip.content_count]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:content_count|Efl.Canvas.Layout_Part_Box.content_count]]
+ * [[:develop:api:efl:ui:box:method:content_count|Efl.Ui.Box.content_count]]
+ * [[:develop:api:efl:ui:group_item:method:content_count|Efl.Ui.Group_Item.content_count]]
+ * [[:develop:api:efl:ui:collection:method:content_count|Efl.Ui.Collection.content_count]]
+ * [[:develop:api:efl:ui:layout_part_box:method:content_count|Efl.Ui.Layout_Part_Box.content_count]]
+ * [[:develop:api:efl:ui:spotlight:container:method:content_count|Efl.Ui.Spotlight.Container.content_count]]
+ * [[:develop:api:efl:ui:relative_layout:method:content_count|Efl.Ui.Relative_Layout.content_count]]
+ * [[:develop:api:efl:ui:layout_base:method:content_count|Efl.Ui.Layout_Base.content_count]]
+
diff --git a/public_html/data/pages/develop/api/efl/container/method/content_iterate.txt b/public_html/data/pages/develop/api/efl/container/method/content_iterate.txt
new file mode 100644
index 00000000..86f6be92
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/container/method/content_iterate.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Container.content_iterate~~
+====== Efl.Container.content_iterate ======
+
+===== Description =====
+
+%%Begin iterating over this object's contents.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:container:method:content_iterate:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+content_iterate @pure_virtual {
+ return: iterator @no_unused;
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_content_iterate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:container:method:content_iterate|Efl.Container.content_iterate]]
+ * [[:develop:api:efl:canvas:layout:method:content_iterate|Efl.Canvas.Layout.content_iterate]]
+ * [[:develop:api:efl:ui:tab_bar:method:content_iterate|Efl.Ui.Tab_Bar.content_iterate]]
+ * [[:develop:api:efl:ui:table:method:content_iterate|Efl.Ui.Table.content_iterate]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:content_iterate|Efl.Canvas.Layout_Part_Table.content_iterate]]
+ * [[:develop:api:efl:ui:layout_part_table:method:content_iterate|Efl.Ui.Layout_Part_Table.content_iterate]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:content_iterate|Efl.Canvas.Layout_Part_Invalid.content_iterate]]
+ * [[:develop:api:efl:ui:flip:method:content_iterate|Efl.Ui.Flip.content_iterate]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:content_iterate|Efl.Canvas.Layout_Part_Box.content_iterate]]
+ * [[:develop:api:efl:ui:box:method:content_iterate|Efl.Ui.Box.content_iterate]]
+ * [[:develop:api:efl:ui:group_item:method:content_iterate|Efl.Ui.Group_Item.content_iterate]]
+ * [[:develop:api:efl:ui:collection:method:content_iterate|Efl.Ui.Collection.content_iterate]]
+ * [[:develop:api:efl:ui:layout_part_box:method:content_iterate|Efl.Ui.Layout_Part_Box.content_iterate]]
+ * [[:develop:api:efl:ui:spotlight:container:method:content_iterate|Efl.Ui.Spotlight.Container.content_iterate]]
+ * [[:develop:api:efl:ui:relative_layout:method:content_iterate|Efl.Ui.Relative_Layout.content_iterate]]
+ * [[:develop:api:efl:ui:layout_base:method:content_iterate|Efl.Ui.Layout_Base.content_iterate]]
+
diff --git a/public_html/data/pages/develop/api/efl/content.txt b/public_html/data/pages/develop/api/efl/content.txt
new file mode 100644
index 00000000..519cee51
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/content.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Content~~
+====== Efl.Content (interface) ======
+
+===== Description =====
+
+%%Common interface for objects that have a single sub-object as content.%%
+
+%%This is used for the default content part of widgets, as well as for individual parts through %%[[:develop:api:efl:part|Efl.Part]]%%.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:content:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:content:property:content|content]]** //**(get, set)**//\\
+> %%Sub-object currently set as this object's single content.%%
+
+Efl_Gfx_Entity *efl_content_get(const Eo *obj);
+Eina_Bool efl_content_set(Eo *obj, Efl_Gfx_Entity *content);
+
+\\
+**[[:develop:api:efl:content:method:content_unset|content_unset]]**\\
+> %%Remove the sub-object currently set as content of this object and return it. This object becomes empty.%%
+
+Efl_Gfx_Entity *efl_content_unset(Eo *obj);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:content:event:content_changed|content,changed]]**\\
+> %%Sent after the content is set or unset using the current content object.%%
+
+EFL_CONTENT_EVENT_CONTENT_CHANGED(Efl_Gfx_Entity *)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/content/event/content_changed.txt b/public_html/data/pages/develop/api/efl/content/event/content_changed.txt
new file mode 100644
index 00000000..a65d9719
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/content/event/content_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Content: content,changed~~
+
+===== Description =====
+
+%%Sent after the content is set or unset using the current content object.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:content:event:content_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+content,changed: Efl.Gfx.Entity;
+
+
+===== C information =====
+
+
+EFL_CONTENT_EVENT_CONTENT_CHANGED(Efl_Gfx_Entity *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_content_event_content_changed(void *data, const Efl_Event *event)
+{
+ Efl_Gfx_Entity *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_CONTENT_EVENT_CONTENT_CHANGED, on_efl_content_event_content_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/content/method/content_unset.txt b/public_html/data/pages/develop/api/efl/content/method/content_unset.txt
new file mode 100644
index 00000000..3d4983ab
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/content/method/content_unset.txt
@@ -0,0 +1,62 @@
+~~Title: Efl.Content.content_unset~~
+====== Efl.Content.content_unset ======
+
+===== Description =====
+
+%%Remove the sub-object currently set as content of this object and return it. This object becomes empty.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:content:method:content_unset:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+content_unset @pure_virtual {
+ return: Efl.Gfx.Entity;
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_content_unset(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:content:method:content_unset|Efl.Content.content_unset]]
+ * [[:develop:api:efl:ui:check:method:content_unset|Efl.Ui.Check.content_unset]]
+ * [[:develop:api:efl:ui:win:method:content_unset|Efl.Ui.Win.content_unset]]
+ * [[:develop:api:efl:ui:default_item:method:content_unset|Efl.Ui.Default_Item.content_unset]]
+ * [[:develop:api:efl:ui:win_part:method:content_unset|Efl.Ui.Win_Part.content_unset]]
+ * [[:develop:api:efl:canvas:layout_part_external:method:content_unset|Efl.Canvas.Layout_Part_External.content_unset]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:method:content_unset|Efl.Ui.Navigation_Bar_Part_Back_Button.content_unset]]
+ * [[:develop:api:efl:ui:layout_part_legacy:method:content_unset|Efl.Ui.Layout_Part_Legacy.content_unset]]
+ * [[:develop:api:elm:dayselector:part:method:content_unset|Elm.Dayselector.Part.content_unset]]
+ * [[:develop:api:elm:entry:part:method:content_unset|Elm.Entry.Part.content_unset]]
+ * [[:develop:api:elm:naviframe:part:method:content_unset|Elm.Naviframe.Part.content_unset]]
+ * [[:develop:api:elm:ctxpopup:part:method:content_unset|Elm.Ctxpopup.Part.content_unset]]
+ * [[:develop:api:elm:fileselector:entry:part:method:content_unset|Elm.Fileselector.Entry.Part.content_unset]]
+ * [[:develop:api:elm:popup:part:method:content_unset|Elm.Popup.Part.content_unset]]
+ * [[:develop:api:elm:hover:part:method:content_unset|Elm.Hover.Part.content_unset]]
+ * [[:develop:api:elm:scroller:part:method:content_unset|Elm.Scroller.Part.content_unset]]
+ * [[:develop:api:elm:notify:part:method:content_unset|Elm.Notify.Part.content_unset]]
+ * [[:develop:api:efl:ui:panel:method:content_unset|Efl.Ui.Panel.content_unset]]
+ * [[:develop:api:elm:panel:part:method:content_unset|Elm.Panel.Part.content_unset]]
+ * [[:develop:api:efl:ui:tab_page:method:content_unset|Efl.Ui.Tab_Page.content_unset]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:content_unset|Efl.Ui.List_Placeholder_Item.content_unset]]
+ * [[:develop:api:elm:mapbuf:part:method:content_unset|Elm.Mapbuf.Part.content_unset]]
+ * [[:develop:api:efl:ui:scroller:method:content_unset|Efl.Ui.Scroller.content_unset]]
+ * [[:develop:api:efl:ui:flip_part:method:content_unset|Efl.Ui.Flip_Part.content_unset]]
+ * [[:develop:api:efl:canvas:layout_part_swallow:method:content_unset|Efl.Canvas.Layout_Part_Swallow.content_unset]]
+ * [[:develop:api:efl:ui:pan:method:content_unset|Efl.Ui.Pan.content_unset]]
+ * [[:develop:api:efl:ui:frame:method:content_unset|Efl.Ui.Frame.content_unset]]
+ * [[:develop:api:efl:ui:progressbar:method:content_unset|Efl.Ui.Progressbar.content_unset]]
+ * [[:develop:api:efl:ui:popup:method:content_unset|Efl.Ui.Popup.content_unset]]
+ * [[:develop:api:efl:ui:navigation_layout:method:content_unset|Efl.Ui.Navigation_Layout.content_unset]]
+ * [[:develop:api:elm:flip:part:method:content_unset|Elm.Flip.Part.content_unset]]
+ * [[:develop:api:efl:ui:button:method:content_unset|Efl.Ui.Button.content_unset]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:content_unset|Efl.Canvas.Layout_Part_Invalid.content_unset]]
+ * [[:develop:api:efl:ui:layout_part_content:method:content_unset|Efl.Ui.Layout_Part_Content.content_unset]]
+ * [[:develop:api:efl:ui:navigation_bar_part:method:content_unset|Efl.Ui.Navigation_Bar_Part.content_unset]]
+
diff --git a/public_html/data/pages/develop/api/efl/content/property/content.txt b/public_html/data/pages/develop/api/efl/content/property/content.txt
new file mode 100644
index 00000000..15c08673
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/content/property/content.txt
@@ -0,0 +1,80 @@
+~~Title: Efl.Content.content~~
+====== Efl.Content.content ======
+
+===== Description =====
+
+%%Sub-object currently set as this object's single content.%%
+
+%%If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid %%''content''%% is set the object will become empty (it will have no sub-object).%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:content:property:content:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **content** - %%The sub-object.%%
+
+===== Signature =====
+
+
+@property content @pure_virtual {
+ get {}
+ set {
+ return: bool;
+ }
+ values {
+ content: Efl.Gfx.Entity;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_content_get(const Eo *obj);
+Eina_Bool efl_content_set(Eo *obj, Efl_Gfx_Entity *content);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:content:property:content|Efl.Content.content]]
+ * [[:develop:api:efl:ui:check:property:content|Efl.Ui.Check.content]]
+ * [[:develop:api:efl:ui:win:property:content|Efl.Ui.Win.content]]
+ * [[:develop:api:efl:ui:default_item:property:content|Efl.Ui.Default_Item.content]]
+ * [[:develop:api:efl:ui:win_part:property:content|Efl.Ui.Win_Part.content]]
+ * [[:develop:api:efl:canvas:layout_part_external:property:content|Efl.Canvas.Layout_Part_External.content]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:property:content|Efl.Ui.Navigation_Bar_Part_Back_Button.content]]
+ * [[:develop:api:efl:ui:layout_part_legacy:property:content|Efl.Ui.Layout_Part_Legacy.content]]
+ * [[:develop:api:elm:dayselector:part:property:content|Elm.Dayselector.Part.content]]
+ * [[:develop:api:elm:entry:part:property:content|Elm.Entry.Part.content]]
+ * [[:develop:api:elm:naviframe:part:property:content|Elm.Naviframe.Part.content]]
+ * [[:develop:api:elm:ctxpopup:part:property:content|Elm.Ctxpopup.Part.content]]
+ * [[:develop:api:elm:fileselector:entry:part:property:content|Elm.Fileselector.Entry.Part.content]]
+ * [[:develop:api:elm:popup:part:property:content|Elm.Popup.Part.content]]
+ * [[:develop:api:elm:hover:part:property:content|Elm.Hover.Part.content]]
+ * [[:develop:api:elm:scroller:part:property:content|Elm.Scroller.Part.content]]
+ * [[:develop:api:elm:player:part:property:content|Elm.Player.Part.content]]
+ * [[:develop:api:elm:notify:part:property:content|Elm.Notify.Part.content]]
+ * [[:develop:api:efl:ui:panel:property:content|Efl.Ui.Panel.content]]
+ * [[:develop:api:elm:panel:part:property:content|Elm.Panel.Part.content]]
+ * [[:develop:api:efl:ui:tab_page:property:content|Efl.Ui.Tab_Page.content]]
+ * [[:develop:api:efl:ui:list_placeholder_item:property:content|Efl.Ui.List_Placeholder_Item.content]]
+ * [[:develop:api:elm:mapbuf:part:property:content|Elm.Mapbuf.Part.content]]
+ * [[:develop:api:efl:ui:scroller:property:content|Efl.Ui.Scroller.content]]
+ * [[:develop:api:efl:ui:flip_part:property:content|Efl.Ui.Flip_Part.content]]
+ * [[:develop:api:efl:canvas:layout_part_swallow:property:content|Efl.Canvas.Layout_Part_Swallow.content]]
+ * [[:develop:api:efl:ui:pan:property:content|Efl.Ui.Pan.content]]
+ * [[:develop:api:efl:ui:frame:property:content|Efl.Ui.Frame.content]]
+ * [[:develop:api:efl:ui:progressbar:property:content|Efl.Ui.Progressbar.content]]
+ * [[:develop:api:efl:ui:popup:property:content|Efl.Ui.Popup.content]]
+ * [[:develop:api:efl:ui:navigation_layout:property:content|Efl.Ui.Navigation_Layout.content]]
+ * [[:develop:api:elm:flip:part:property:content|Elm.Flip.Part.content]]
+ * [[:develop:api:efl:ui:button:property:content|Efl.Ui.Button.content]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:content|Efl.Canvas.Layout_Part_Invalid.content]]
+ * [[:develop:api:efl:ui:layout_part_content:property:content|Efl.Ui.Layout_Part_Content.content]]
+ * [[:develop:api:efl:ui:progressbar_legacy_part:property:content|Efl.Ui.Progressbar_Legacy_Part.content]]
+ * [[:develop:api:efl:ui:check_legacy_part:property:content|Efl.Ui.Check_Legacy_Part.content]]
+ * [[:develop:api:efl:ui:button_legacy_part:property:content|Efl.Ui.Button_Legacy_Part.content]]
+ * [[:develop:api:efl:ui:navigation_bar_part:property:content|Efl.Ui.Navigation_Bar_Part.content]]
+ * [[:develop:api:efl:ui:radio_legacy_part:property:content|Efl.Ui.Radio_Legacy_Part.content]]
+
diff --git a/public_html/data/pages/develop/api/efl/event_animator_tick.txt b/public_html/data/pages/develop/api/efl/event_animator_tick.txt
new file mode 100644
index 00000000..84442a8e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/event_animator_tick.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Event_Animator_Tick~~
+
+===== Description =====
+
+%%EFL event animator tick data structure%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:event_animator_tick:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:event_animator_tick:fields&nouser&nolink&nodate}}
+
+ * **update_area** - %%Area of the canvas that will be pushed to screen.%%
+
+===== Signature =====
+
+
+struct Efl.Event_Animator_Tick {
+ update_area: Eina.Rect;
+}
+
+
+===== C signature =====
+
+
+typedef struct _Efl_Event_Animator_Tick {
+ Eina_Rect update_area;
+} Efl_Event_Animator_Tick;
+
diff --git a/public_html/data/pages/develop/api/efl/event_description.txt b/public_html/data/pages/develop/api/efl/event_description.txt
new file mode 100644
index 00000000..264d47fa
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/event_description.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Event_Description~~
+
+===== Description =====
+
+%%This struct holds the description of a specific event.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:event_description:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:event_description:fields&nouser&nolink&nodate}}
+
+ * **name** - %%name of the event.%%
+ * **unfreezable** - %%%%''true''%% if the event cannot be frozen.%%
+ * **legacy_is** - %%Internal use: %%''true''%% if a legacy event.%%
+ * **restart** - %%%%''true''%% if when the event is triggered again from a callback it'll start from where it was%%
+
+===== Signature =====
+
+
+struct Efl.Event_Description {
+ name: string;
+ unfreezable: bool;
+ legacy_is: bool;
+ restart: bool;
+}
+
+
+===== C signature =====
+
+
+typedef struct _Efl_Event_Description {
+ const char *name;
+ Eina_Bool unfreezable;
+ Eina_Bool legacy_is;
+ Eina_Bool restart;
+} Efl_Event_Description;
+
diff --git a/public_html/data/pages/develop/api/efl/file.txt b/public_html/data/pages/develop/api/efl/file.txt
new file mode 100644
index 00000000..dc76c3b7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/file.txt
@@ -0,0 +1,67 @@
+~~Title: Efl.File~~
+====== Efl.File (mixin) ======
+
+===== Description =====
+
+%%Efl file interface%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:file:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:file:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+>
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:file:property:file|file]]** //**(get, set)**//\\
+> %%The file path from where an object will fetch the data.%%
+
+const char *efl_file_get(const Eo *obj);
+Eina_Error efl_file_set(Eo *obj, const char *file);
+
+\\
+**[[:develop:api:efl:file:method:finalize|finalize]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+>
+
+Efl_Object *efl_finalize(Eo *obj);
+
+\\
+**[[:develop:api:efl:file:property:key|key]]** //**(get, set)**//\\
+> %%The key which corresponds to the target data within a file.%%
+
+const char *efl_file_key_get(const Eo *obj);
+void efl_file_key_set(Eo *obj, const char *key);
+
+\\
+**[[:develop:api:efl:file:method:load|load]]**\\
+> %%Perform all necessary operations to open and load file data into the object using the %%[[:develop:api:efl:file:property:file|Efl.File.file]]%% (or %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap]]%%) and %%[[:develop:api:efl:file:property:key|Efl.File.key]]%% properties.%%
+
+Eina_Error efl_file_load(Eo *obj);
+
+\\
+**[[:develop:api:efl:file:property:loaded|loaded]]** //**(get)**//\\
+>
+
+Eina_Bool efl_file_loaded_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:file:property:mmap|mmap]]** //**(get, set)**//\\
+> %%The mmaped file from where an object will fetch the real data (it must be an %%[[:develop:api:eina:file|Eina.File]]%%).%%
+
+const Eina_File efl_file_mmap_get(const Eo *obj);
+Eina_Error efl_file_mmap_set(Eo *obj, const Eina_File f);
+
+\\
+**[[:develop:api:efl:file:method:unload|unload]]**\\
+> %%Perform all necessary operations to unload file data from the object.%%
+
+void efl_file_unload(Eo *obj);
+
+\\
+
+===== Events =====
+
diff --git a/public_html/data/pages/develop/api/efl/file/method/destructor.txt b/public_html/data/pages/develop/api/efl/file/method/destructor.txt
new file mode 100644
index 00000000..6d22df36
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/file/method/destructor.txt
@@ -0,0 +1,179 @@
+~~Title: Efl.File.destructor~~
+====== Efl.File.destructor ======
+
+===== Description =====
+
+No description supplied.
+{{page>:develop:api-include:efl:file:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:file:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/file/method/finalize.txt b/public_html/data/pages/develop/api/efl/file/method/finalize.txt
new file mode 100644
index 00000000..1a8cd721
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/file/method/finalize.txt
@@ -0,0 +1,87 @@
+~~Title: Efl.File.finalize~~
+====== Efl.File.finalize ======
+
+===== Description =====
+
+No description supplied.
+{{page>:develop:api-include:efl:file:method:finalize:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:file:method:finalize|Efl.Object.finalize]].//===== Signature =====
+
+
+finalize {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_finalize(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]
+ * [[:develop:api:efl:loop_handler:method:finalize|Efl.Loop_Handler.finalize]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:finalize|Efl.Ui.Position_Manager.Grid.finalize]]
+ * [[:develop:api:efl:canvas:layout_part:method:finalize|Efl.Canvas.Layout_Part.finalize]]
+ * [[:develop:api:efl:net:server_udp_client:method:finalize|Efl.Net.Server_Udp_Client.finalize]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:finalize|Efl.Ui.Widget_Part_Bg.finalize]]
+ * [[:develop:api:efl:ui:layout_part_bg:method:finalize|Efl.Ui.Layout_Part_Bg.finalize]]
+ * [[:develop:api:efl:io:buffered_stream:method:finalize|Efl.Io.Buffered_Stream.finalize]]
+ * [[:develop:api:efl:net:dialer_simple:method:finalize|Efl.Net.Dialer_Simple.finalize]]
+ * [[:develop:api:efl:io:file:method:finalize|Efl.Io.File.finalize]]
+ * [[:develop:api:efl:net:server_fd:method:finalize|Efl.Net.Server_Fd.finalize]]
+ * [[:develop:api:efl:io:stderr:method:finalize|Efl.Io.Stderr.finalize]]
+ * [[:develop:api:efl:io:stdin:method:finalize|Efl.Io.Stdin.finalize]]
+ * [[:develop:api:efl:io:stdout:method:finalize|Efl.Io.Stdout.finalize]]
+ * [[:develop:api:efl:net:socket_fd:method:finalize|Efl.Net.Socket_Fd.finalize]]
+ * [[:develop:api:efl:net:socket_ssl:method:finalize|Efl.Net.Socket_Ssl.finalize]]
+ * [[:develop:api:efl:net:dialer_ssl:method:finalize|Efl.Net.Dialer_Ssl.finalize]]
+ * [[:develop:api:efl:canvas:object:method:finalize|Efl.Canvas.Object.finalize]]
+ * [[:develop:api:efl:canvas:image_internal:method:finalize|Efl.Canvas.Image_Internal.finalize]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:finalize|Efl.Ui.Internal.Text.Interactive.finalize]]
+ * [[:develop:api:efl:ui:widget:method:finalize|Efl.Ui.Widget.finalize]]
+ * [[:develop:api:efl:ui:win:method:finalize|Efl.Ui.Win.finalize]]
+ * [[:develop:api:efl:ui:win_socket:method:finalize|Efl.Ui.Win_Socket.finalize]]
+ * [[:develop:api:efl:ui:win_inlined:method:finalize|Efl.Ui.Win_Inlined.finalize]]
+ * [[:develop:api:efl:ui:layout_base:method:finalize|Efl.Ui.Layout_Base.finalize]]
+ * [[:develop:api:efl:ui:text:method:finalize|Efl.Ui.Text.finalize]]
+ * [[:develop:api:efl:ui:tab_bar:method:finalize|Efl.Ui.Tab_Bar.finalize]]
+ * [[:develop:api:efl:ui:item:method:finalize|Efl.Ui.Item.finalize]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:finalize|Efl.Ui.List_Placeholder_Item.finalize]]
+ * [[:develop:api:elm:code_widget:method:finalize|Elm.Code_Widget.finalize]]
+ * [[:develop:api:efl:ui:scroller:method:finalize|Efl.Ui.Scroller.finalize]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:finalize|Efl.Ui.Internal_Text_Scroller.finalize]]
+ * [[:develop:api:efl:ui:collection:method:finalize|Efl.Ui.Collection.finalize]]
+ * [[:develop:api:efl:ui:spotlight:container:method:finalize|Efl.Ui.Spotlight.Container.finalize]]
+ * [[:develop:api:efl:ui:tab_pager:method:finalize|Efl.Ui.Tab_Pager.finalize]]
+ * [[:develop:api:efl:ui:bg:method:finalize|Efl.Ui.Bg.finalize]]
+ * [[:develop:api:efl:canvas:vg:object:method:finalize|Efl.Canvas.Vg.Object.finalize]]
+ * [[:develop:api:efl:loop_timer:method:finalize|Efl.Loop_Timer.finalize]]
+ * [[:develop:api:eldbus:model:method:finalize|Eldbus.Model.finalize]]
+ * [[:develop:api:eldbus:model:proxy:method:finalize|Eldbus.Model.Proxy.finalize]]
+ * [[:develop:api:eldbus:model:arguments:method:finalize|Eldbus.Model.Arguments.finalize]]
+ * [[:develop:api:eldbus:model:method:method:finalize|Eldbus.Model.Method.finalize]]
+ * [[:develop:api:eldbus:model:object:method:finalize|Eldbus.Model.Object.finalize]]
+ * [[:develop:api:efl:composite_model:method:finalize|Efl.Composite_Model.finalize]]
+ * [[:develop:api:efl:container_model:method:finalize|Efl.Container_Model.finalize]]
+ * [[:develop:api:efl:ui:view_model:method:finalize|Efl.Ui.View_Model.finalize]]
+ * [[:develop:api:efl:io:model:method:finalize|Efl.Io.Model.finalize]]
+ * [[:develop:api:efl:net:server_simple:method:finalize|Efl.Net.Server_Simple.finalize]]
+ * [[:develop:api:efl:net:control:manager:method:finalize|Efl.Net.Control.Manager.finalize]]
+ * [[:develop:api:efl:ui:widget_factory:method:finalize|Efl.Ui.Widget_Factory.finalize]]
+ * [[:develop:api:efl:ui:caching_factory:method:finalize|Efl.Ui.Caching_Factory.finalize]]
+ * [[:develop:api:efl:thread:method:finalize|Efl.Thread.finalize]]
+ * [[:develop:api:efl:net:session:method:finalize|Efl.Net.Session.finalize]]
+ * [[:develop:api:efl:io:copier:method:finalize|Efl.Io.Copier.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:finalize|Efl.Ui.Focus.Manager_Calc.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:finalize|Efl.Ui.Focus.Manager_Root_Focus.finalize]]
+ * [[:develop:api:evas:canvas3d:node:method:finalize|Evas.Canvas3D.Node.finalize]]
+ * [[:develop:api:efl:net:ssl:context:method:finalize|Efl.Net.Ssl.Context.finalize]]
+ * [[:develop:api:efl:io:buffer:method:finalize|Efl.Io.Buffer.finalize]]
+ * [[:develop:api:efl:net:ip_address:method:finalize|Efl.Net.Ip_Address.finalize]]
+ * [[:develop:api:efl:io:queue:method:finalize|Efl.Io.Queue.finalize]]
+ * [[:develop:api:ector:renderer:method:finalize|Ector.Renderer.finalize]]
+
diff --git a/public_html/data/pages/develop/api/efl/file/method/load.txt b/public_html/data/pages/develop/api/efl/file/method/load.txt
new file mode 100644
index 00000000..0ae8db4d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/file/method/load.txt
@@ -0,0 +1,48 @@
+~~Title: Efl.File.load~~
+====== Efl.File.load ======
+
+===== Description =====
+
+%%Perform all necessary operations to open and load file data into the object using the %%[[:develop:api:efl:file:property:file|Efl.File.file]]%% (or %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap]]%%) and %%[[:develop:api:efl:file:property:key|Efl.File.key]]%% properties.%%
+
+%%In the case where %%[[:develop:api:efl:file:property:file|Efl.File.file.set]]%% has been called on an object, this will internally open the file and call %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap.set]]%% on the object using the opened file handle.%%
+
+%%Calling %%[[:develop:api:efl:file:method:load|Efl.File.load]]%% on an object which has already performed file operations based on the currently set properties will have no effect.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:file:method:load:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+load {
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_file_load(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:method:load|Efl.File.load]]
+ * [[:develop:api:evas:canvas3d:mesh:method:load|Evas.Canvas3D.Mesh.load]]
+ * [[:develop:api:efl:ui:win_part:method:load|Efl.Ui.Win_Part.load]]
+ * [[:develop:api:efl:canvas:video:method:load|Efl.Canvas.Video.load]]
+ * [[:develop:api:efl:ui:text:method:load|Efl.Ui.Text.load]]
+ * [[:develop:api:efl:canvas:image:method:load|Efl.Canvas.Image.load]]
+ * [[:develop:api:efl:canvas:layout:method:load|Efl.Canvas.Layout.load]]
+ * [[:develop:api:efl:ui:layout:method:load|Efl.Ui.Layout.load]]
+ * [[:develop:api:efl:ui:image:method:load|Efl.Ui.Image.load]]
+ * [[:develop:api:efl:ui:image_zoomable:method:load|Efl.Ui.Image_Zoomable.load]]
+ * [[:develop:api:efl:ui:animation_view:method:load|Efl.Ui.Animation_View.load]]
+ * [[:develop:api:evas:canvas3d:texture:method:load|Evas.Canvas3D.Texture.load]]
+ * [[:develop:api:efl:canvas:vg:object:method:load|Efl.Canvas.Vg.Object.load]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:load|Efl.Ui.Widget_Part_Bg.load]]
+ * [[:develop:api:efl:ui:video:method:load|Efl.Ui.Video.load]]
+ * [[:develop:api:efl:ui:popup_part_backwall:method:load|Efl.Ui.Popup_Part_Backwall.load]]
+ * [[:develop:api:efl:ui:bg:method:load|Efl.Ui.Bg.load]]
+
diff --git a/public_html/data/pages/develop/api/efl/file/method/unload.txt b/public_html/data/pages/develop/api/efl/file/method/unload.txt
new file mode 100644
index 00000000..7dbf46cf
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/file/method/unload.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.File.unload~~
+====== Efl.File.unload ======
+
+===== Description =====
+
+%%Perform all necessary operations to unload file data from the object.%%
+
+%%In the case where %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap.set]]%% has been externally called on an object, the file handle stored in the object will be preserved.%%
+
+%%Calling %%[[:develop:api:efl:file:method:unload|Efl.File.unload]]%% on an object which is not currently loaded will have no effect.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:file:method:unload:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+unload {}
+
+
+===== C signature =====
+
+
+void efl_file_unload(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:method:unload|Efl.File.unload]]
+ * [[:develop:api:evas:canvas3d:mesh:method:unload|Evas.Canvas3D.Mesh.unload]]
+ * [[:develop:api:efl:ui:win_part:method:unload|Efl.Ui.Win_Part.unload]]
+ * [[:develop:api:efl:canvas:video:method:unload|Efl.Canvas.Video.unload]]
+ * [[:develop:api:efl:ui:text:method:unload|Efl.Ui.Text.unload]]
+ * [[:develop:api:efl:canvas:image:method:unload|Efl.Canvas.Image.unload]]
+ * [[:develop:api:efl:canvas:layout:method:unload|Efl.Canvas.Layout.unload]]
+ * [[:develop:api:efl:ui:layout:method:unload|Efl.Ui.Layout.unload]]
+ * [[:develop:api:efl:ui:image:method:unload|Efl.Ui.Image.unload]]
+ * [[:develop:api:efl:ui:image_zoomable:method:unload|Efl.Ui.Image_Zoomable.unload]]
+ * [[:develop:api:efl:ui:animation_view:method:unload|Efl.Ui.Animation_View.unload]]
+ * [[:develop:api:evas:canvas3d:texture:method:unload|Evas.Canvas3D.Texture.unload]]
+ * [[:develop:api:efl:canvas:vg:object:method:unload|Efl.Canvas.Vg.Object.unload]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:unload|Efl.Ui.Widget_Part_Bg.unload]]
+ * [[:develop:api:efl:ui:video:method:unload|Efl.Ui.Video.unload]]
+ * [[:develop:api:efl:ui:popup_part_backwall:method:unload|Efl.Ui.Popup_Part_Backwall.unload]]
+ * [[:develop:api:efl:ui:bg:method:unload|Efl.Ui.Bg.unload]]
+
diff --git a/public_html/data/pages/develop/api/efl/file/property/file.txt b/public_html/data/pages/develop/api/efl/file/property/file.txt
new file mode 100644
index 00000000..17fc47b9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/file/property/file.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.File.file~~
+====== Efl.File.file ======
+
+===== Description =====
+
+%%The file path from where an object will fetch the data.%%
+
+%%If file is set during object construction, the object will automatically call %%[[:develop:api:efl:file:method:load|Efl.File.load]]%% during the finalize phase of construction.%%
+
+%%You must not modify the strings on the returned pointers.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:file:property:file:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **file** - %%The file path.%%
+
+===== Signature =====
+
+
+@property file {
+ get {}
+ set {
+ return: Eina.Error;
+ }
+ values {
+ file: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_file_get(const Eo *obj);
+Eina_Error efl_file_set(Eo *obj, const char *file);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:property:file|Efl.File.file]]
+ * [[:develop:api:efl:ui:win_part:property:file|Efl.Ui.Win_Part.file]]
+ * [[:develop:api:efl:canvas:video:property:file|Efl.Canvas.Video.file]]
+ * [[:develop:api:efl:ui:text:property:file|Efl.Ui.Text.file]]
+ * [[:develop:api:efl:ui:layout:property:file|Efl.Ui.Layout.file]]
+ * [[:develop:api:efl:ui:image_zoomable:property:file|Efl.Ui.Image_Zoomable.file]]
+ * [[:develop:api:efl:canvas:vg:object:property:file|Efl.Canvas.Vg.Object.file]]
+ * [[:develop:api:efl:ui:widget_part_bg:property:file|Efl.Ui.Widget_Part_Bg.file]]
+ * [[:develop:api:efl:ui:popup_part_backwall:property:file|Efl.Ui.Popup_Part_Backwall.file]]
+ * [[:develop:api:efl:ui:bg:property:file|Efl.Ui.Bg.file]]
+
diff --git a/public_html/data/pages/develop/api/efl/file/property/key.txt b/public_html/data/pages/develop/api/efl/file/property/key.txt
new file mode 100644
index 00000000..ec9ad73c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/file/property/key.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.File.key~~
+====== Efl.File.key ======
+
+===== Description =====
+
+%%The key which corresponds to the target data within a file.%%
+
+%%Some file types can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example %%[[:develop:api:efl:ui:image|Efl.Ui.Image]]%% or %%[[:develop:api:efl:ui:layout|Efl.Ui.Layout]]%%).%%
+
+%%You must not modify the strings on the returned pointers.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:file:property:key:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **key** - %%The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.%%
+
+===== Signature =====
+
+
+@property key {
+ get {}
+ set {}
+ values {
+ key: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_file_key_get(const Eo *obj);
+void efl_file_key_set(Eo *obj, const char *key);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:property:key|Efl.File.key]]
+ * [[:develop:api:efl:ui:win_part:property:key|Efl.Ui.Win_Part.key]]
+ * [[:develop:api:efl:ui:layout:property:key|Efl.Ui.Layout.key]]
+ * [[:develop:api:efl:ui:widget_part_bg:property:key|Efl.Ui.Widget_Part_Bg.key]]
+ * [[:develop:api:efl:ui:popup_part_backwall:property:key|Efl.Ui.Popup_Part_Backwall.key]]
+ * [[:develop:api:efl:ui:bg:property:key|Efl.Ui.Bg.key]]
+
diff --git a/public_html/data/pages/develop/api/efl/file/property/loaded.txt b/public_html/data/pages/develop/api/efl/file/property/loaded.txt
new file mode 100644
index 00000000..468183e1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/file/property/loaded.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.File.loaded~~
+====== Efl.File.loaded ======
+
+===== Values =====
+
+ * **loaded** - %%%%''true''%% if the object is loaded, %%''false''%% otherwise.%%
+
+
+\\ {{page>:develop:api-include:efl:file:property:loaded:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property loaded {
+ get {}
+ values {
+ loaded: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_file_loaded_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:property:loaded|Efl.File.loaded]]
+ * [[:develop:api:efl:canvas:video:property:loaded|Efl.Canvas.Video.loaded]]
+
diff --git a/public_html/data/pages/develop/api/efl/file/property/mmap.txt b/public_html/data/pages/develop/api/efl/file/property/mmap.txt
new file mode 100644
index 00000000..c5fa2e59
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/file/property/mmap.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.File.mmap~~
+====== Efl.File.mmap ======
+
+===== Description =====
+
+%%The mmaped file from where an object will fetch the real data (it must be an %%[[:develop:api:eina:file|Eina.File]]%%).%%
+
+%%If mmap is set during object construction, the object will automatically call %%[[:develop:api:efl:file:method:load|Efl.File.load]]%% during the finalize phase of construction.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:file:property:mmap:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **f** - %%The handle to the %%[[:develop:api:eina:file|Eina.File]]%% that will be used%%
+
+===== Signature =====
+
+
+@property mmap {
+ get {}
+ set {
+ return: Eina.Error;
+ }
+ values {
+ f: const(Eina.File);
+ }
+}
+
+
+===== C signature =====
+
+
+const Eina_File efl_file_mmap_get(const Eo *obj);
+Eina_Error efl_file_mmap_set(Eo *obj, const Eina_File f);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:property:mmap|Efl.File.mmap]]
+ * [[:develop:api:efl:ui:layout:property:mmap|Efl.Ui.Layout.mmap]]
+ * [[:develop:api:efl:ui:widget_part_bg:property:mmap|Efl.Ui.Widget_Part_Bg.mmap]]
+ * [[:develop:api:efl:ui:bg:property:mmap|Efl.Ui.Bg.mmap]]
+
diff --git a/public_html/data/pages/develop/api/efl/file_save.txt b/public_html/data/pages/develop/api/efl/file_save.txt
new file mode 100644
index 00000000..fca9b712
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/file_save.txt
@@ -0,0 +1,22 @@
+~~Title: Efl.File_Save~~
+====== Efl.File_Save (interface) ======
+
+===== Description =====
+
+%%Efl file saving interface%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:file_save:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:file_save:method:save|save]]**\\
+> %%Save the given image object's contents to an (image) file.%%
+
+Eina_Bool efl_file_save(const Eo *obj, const char *file, const char *key, const Efl_File_Save_Info info);
+
+\\
+
+===== Events =====
+
diff --git a/public_html/data/pages/develop/api/efl/file_save/method/save.txt b/public_html/data/pages/develop/api/efl/file_save/method/save.txt
new file mode 100644
index 00000000..021e041e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/file_save/method/save.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.File_Save.save~~
+====== Efl.File_Save.save ======
+
+===== Description =====
+
+%%Save the given image object's contents to an (image) file.%%
+
+%%The extension suffix on %%''file''%% will determine which saver module Evas is to use when saving, thus the final file's format. If the file supports multiple data stored in it (Eet ones), you can specify the key to be used as the index of the image in it.%%
+
+%%You can specify some flags when saving the image. Currently acceptable flags are %%''quality''%% and %%''compress''%%. Eg.: "quality=100 compress=9".%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:file_save:method:save:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+save @const @pure_virtual {
+ params {
+ @in file: string;
+ @in key: string;
+ @in info: const(Efl.File_Save_Info);
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_file_save(const Eo *obj, const char *file, const char *key, const Efl_File_Save_Info info);
+
+
+===== Parameters =====
+
+ * **file** //(in)// - %%The filename to be used to save the image (extension obligatory).%%
+ * **key** //(in)// - %%The image key in the file (if an Eet one), or %%''null''%%, otherwise.%%
+ * **info** //(in)// - %%The flags to be used (%%''null''%% for defaults).%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file_save:method:save|Efl.File_Save.save]]
+ * [[:develop:api:evas:canvas3d:mesh:method:save|Evas.Canvas3D.Mesh.save]]
+ * [[:develop:api:efl:canvas:image_internal:method:save|Efl.Canvas.Image_Internal.save]]
+ * [[:develop:api:efl:canvas:vg:object:method:save|Efl.Canvas.Vg.Object.save]]
+
diff --git a/public_html/data/pages/develop/api/efl/file_save_info.txt b/public_html/data/pages/develop/api/efl/file_save_info.txt
new file mode 100644
index 00000000..a871b812
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/file_save_info.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.File_Save_Info~~
+
+===== Description =====
+
+%%Info used to determine various attributes when saving a file.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:file_save_info:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:file_save_info:fields&nouser&nolink&nodate}}
+
+ * **quality** - %%The quality level (0-100) to save the file with; commonly used when saving image files.%%
+ * **compression** - %%The compression level (0-100) to save the file with.%%
+ * **encoding** - %%The encoding to use when saving the file.%%
+
+===== Signature =====
+
+
+struct Efl.File_Save_Info {
+ quality: uint;
+ compression: uint;
+ encoding: string;
+}
+
+
+===== C signature =====
+
+
+typedef struct _Efl_File_Save_Info {
+ unsigned int quality;
+ unsigned int compression;
+ const char *encoding;
+} Efl_File_Save_Info;
+
diff --git a/public_html/data/pages/develop/api/efl/generic_model.txt b/public_html/data/pages/develop/api/efl/generic_model.txt
new file mode 100644
index 00000000..847f9ba2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/generic_model.txt
@@ -0,0 +1,134 @@
+~~Title: Efl.Generic_Model~~
+====== Efl.Generic_Model (class) ======
+
+===== Description =====
+
+%%Generic model that allows any property to be manually set. Also children of the same type can be added and deleted.%%
+
+%%Intended to be used in scenarios where the user needs a manually defined data model, like in tests.%%
+
+%%It does not model anything in particular and does not affect anything else in the system.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:generic_model:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:loop_model|Efl.Loop_Model]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:loop_model|Efl.Loop_Model]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:model|Efl.Model]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:generic_model:method:child_add|child_add]]**// [Overridden from [[:develop:api:efl:model|Efl.Model]]]//\\
+> %%Add a new child.%%
+
+Efl_Object *efl_model_child_add(Eo *obj);
+
+\\
+**[[:develop:api:efl:generic_model:method:child_del|child_del]]**// [Overridden from [[:develop:api:efl:model|Efl.Model]]]//\\
+> %%Remove a child.%%
+
+void efl_model_child_del(Eo *obj, Efl_Object *child);
+
+\\
+**[[:develop:api:efl:generic_model:property:children_count|children_count]]** //**(get)**//// [Overridden from [[:develop:api:efl:model|Efl.Model]]]//\\
+>
+
+unsigned int efl_model_children_count_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:generic_model:method:children_slice_get|children_slice_get]]**// [Overridden from [[:develop:api:efl:model|Efl.Model]]]//\\
+> %%Get children slice OR full range.%%
+
+Eina_Future *efl_model_children_slice_get(Eo *obj, unsigned int start, unsigned int count);
+
+\\
+**[[:develop:api:efl:generic_model:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:generic_model:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:generic_model:property:properties|properties]]** //**(get)**//// [Overridden from [[:develop:api:efl:model|Efl.Model]]]//\\
+>
+
+Eina_Iterator *efl_model_properties_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:generic_model:property:property|property]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:model|Efl.Model]]]//\\
+> %%No description supplied.%%
+
+Eina_Value *efl_model_property_get(const Eo *obj, const char *property);
+Eina_Future *efl_model_property_set(Eo *obj, const char *property, Eina_Value *value);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:loop_model|Efl.Loop_Model]] ^^^
+| | **[[:develop:api:efl:loop_model:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:loop_model:method:property_ready_get|property_ready_get]]** | %%Get a future value when it changes to something that is not error:EAGAIN%% |
+| | **[[:develop:api:efl:loop_model:method:volatile_make|volatile_make]]** | %%To be called when a Child model is created by %%[[:develop:api:efl:model:method:children_slice_get|Efl.Model.children_slice_get]]%% by the one creating the child object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:model|Efl.Model]] ^^^
+| | **[[:develop:api:efl:model:event:child_added|child,added]]** | %%Event dispatched when new child is added.%% |
+| | **[[:develop:api:efl:model:event:child_removed|child,removed]]** | %%Event dispatched when child is removed.%% |
+| | **[[:develop:api:efl:model:event:children_count_changed|children,count,changed]]** | %%Event dispatched when children count is finished.%% |
+| | **[[:develop:api:efl:model:event:properties_changed|properties,changed]]** | %%Event dispatched when properties list is available.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
diff --git a/public_html/data/pages/develop/api/efl/generic_model/method/child_add.txt b/public_html/data/pages/develop/api/efl/generic_model/method/child_add.txt
new file mode 100644
index 00000000..1d0db4bc
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/generic_model/method/child_add.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Generic_Model.child_add~~
+====== Efl.Generic_Model.child_add ======
+
+===== Description =====
+
+%%Add a new child.%%
+
+%%Add a new child, possibly dummy, depending on the implementation, of a internal keeping. When the child is effectively added the event %%[[:develop:api:efl:model:event:child,added|Efl.Model.child,added]]%% is then raised and the new child is kept along with other children.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:generic_model:method:child_add:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:model:method:child_add|Efl.Model.child_add]].//===== Signature =====
+
+
+child_add @pure_virtual {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_model_child_add(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:model:method:child_add|Efl.Model.child_add]]
+ * [[:develop:api:efl:mono_model_internal_child:method:child_add|Efl.Mono_Model_Internal_Child.child_add]]
+ * [[:develop:api:efl:mono_model_internal:method:child_add|Efl.Mono_Model_Internal.child_add]]
+ * [[:develop:api:eldbus:model:method:child_add|Eldbus.Model.child_add]]
+ * [[:develop:api:efl:composite_model:method:child_add|Efl.Composite_Model.child_add]]
+ * [[:develop:api:efl:io:model:method:child_add|Efl.Io.Model.child_add]]
+ * [[:develop:api:efl:generic_model:method:child_add|Efl.Generic_Model.child_add]]
+
diff --git a/public_html/data/pages/develop/api/efl/generic_model/method/child_del.txt b/public_html/data/pages/develop/api/efl/generic_model/method/child_del.txt
new file mode 100644
index 00000000..6765ad3e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/generic_model/method/child_del.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Generic_Model.child_del~~
+====== Efl.Generic_Model.child_del ======
+
+===== Description =====
+
+%%Remove a child.%%
+
+%%Remove a child of a internal keeping. When the child is effectively removed the event %%[[:develop:api:efl:model:event:child,removed|Efl.Model.child,removed]]%% is then raised to give a chance for listeners to perform any cleanup and/or update references.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:generic_model:method:child_del:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:model:method:child_del|Efl.Model.child_del]].//===== Signature =====
+
+
+child_del @pure_virtual {
+ params {
+ @in child: Efl.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_model_child_del(Eo *obj, Efl_Object *child);
+
+
+===== Parameters =====
+
+ * **child** //(in)// - %%Child to be removed%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:model:method:child_del|Efl.Model.child_del]]
+ * [[:develop:api:eldbus:model:method:child_del|Eldbus.Model.child_del]]
+ * [[:develop:api:efl:composite_model:method:child_del|Efl.Composite_Model.child_del]]
+ * [[:develop:api:efl:io:model:method:child_del|Efl.Io.Model.child_del]]
+ * [[:develop:api:efl:generic_model:method:child_del|Efl.Generic_Model.child_del]]
+
diff --git a/public_html/data/pages/develop/api/efl/generic_model/method/children_slice_get.txt b/public_html/data/pages/develop/api/efl/generic_model/method/children_slice_get.txt
new file mode 100644
index 00000000..017cfff3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/generic_model/method/children_slice_get.txt
@@ -0,0 +1,61 @@
+~~Title: Efl.Generic_Model.children_slice_get~~
+====== Efl.Generic_Model.children_slice_get ======
+
+===== Description =====
+
+%%Get children slice OR full range.%%
+
+%%%%[[:develop:api:efl:model:method:children_slice_get|Efl.Model.children_slice_get]]%% behaves in two different ways, it may provide the slice if %%''count''%% is non-zero OR full range otherwise.%%
+
+%%Since 'slice' is a range, for example if we have 20 children a slice could be the range from 3(start) with 4(count), see:%%
+
+%%child 0 [no] child 1 [no] child 2 [no] child 3 [yes] child 4 [yes] child 5 [yes] child 6 [yes] child 7 [no]%%
+
+%%Optionally the user can call %%[[:develop:api:efl:model:property:children_count|Efl.Model.children_count.get]]%% to know the number of children so a valid range can be known in advance.%%
+
+%%See %%[[:develop:api:efl:model:property:children_count|Efl.Model.children_count.get]]%%%%
+
+
+children_slice_get @pure_virtual {
+ params {
+ @in start: uint;
+ @in count: uint;
+ }
+ return: future>;
+}
+
+
+===== C signature =====
+
+
+Eina_Future *efl_model_children_slice_get(Eo *obj, unsigned int start, unsigned int count);
+
+
+===== Parameters =====
+
+ * **start** //(in)// - %%Range begin - start from here.%%
+ * **count** //(in)// - %%Range size. If count is 0, start is ignored.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:model:method:children_slice_get|Efl.Model.children_slice_get]]
+ * [[:develop:api:efl:mono_model_internal:method:children_slice_get|Efl.Mono_Model_Internal.children_slice_get]]
+ * [[:develop:api:eldbus:model:method:children_slice_get|Eldbus.Model.children_slice_get]]
+ * [[:develop:api:eldbus:model:connection:method:children_slice_get|Eldbus.Model.Connection.children_slice_get]]
+ * [[:develop:api:eldbus:model:proxy:method:children_slice_get|Eldbus.Model.Proxy.children_slice_get]]
+ * [[:develop:api:eldbus:model:object:method:children_slice_get|Eldbus.Model.Object.children_slice_get]]
+ * [[:develop:api:efl:composite_model:method:children_slice_get|Efl.Composite_Model.children_slice_get]]
+ * [[:develop:api:efl:ui:view_model:method:children_slice_get|Efl.Ui.View_Model.children_slice_get]]
+ * [[:develop:api:efl:filter_model:method:children_slice_get|Efl.Filter_Model.children_slice_get]]
+ * [[:develop:api:efl:io:model:method:children_slice_get|Efl.Io.Model.children_slice_get]]
+ * [[:develop:api:efl:generic_model:method:children_slice_get|Efl.Generic_Model.children_slice_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/generic_model/method/constructor.txt b/public_html/data/pages/develop/api/efl/generic_model/method/constructor.txt
new file mode 100644
index 00000000..3aa7cdcf
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/generic_model/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Generic_Model.constructor~~
+====== Efl.Generic_Model.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:generic_model:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/generic_model/method/destructor.txt b/public_html/data/pages/develop/api/efl/generic_model/method/destructor.txt
new file mode 100644
index 00000000..75e9d678
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/generic_model/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Generic_Model.destructor~~
+====== Efl.Generic_Model.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:generic_model:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/generic_model/property/children_count.txt b/public_html/data/pages/develop/api/efl/generic_model/property/children_count.txt
new file mode 100644
index 00000000..80c12a32
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/generic_model/property/children_count.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Generic_Model.children_count~~
+====== Efl.Generic_Model.children_count ======
+
+===== Values =====
+
+ * **count** - %%Current known children count%%
+
+
+\\ {{page>:develop:api-include:efl:generic_model:property:children_count:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:model:property:children_count|Efl.Model.children_count]] **(get)**.//===== Signature =====
+
+
+@property children_count @pure_virtual {
+ get {}
+ values {
+ count: uint;
+ }
+}
+
+
+===== C signature =====
+
+
+unsigned int efl_model_children_count_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:model:property:children_count|Efl.Model.children_count]]
+ * [[:develop:api:efl:mono_model_internal:property:children_count|Efl.Mono_Model_Internal.children_count]]
+ * [[:develop:api:eldbus:model:property:children_count|Eldbus.Model.children_count]]
+ * [[:develop:api:eldbus:model:connection:property:children_count|Eldbus.Model.Connection.children_count]]
+ * [[:develop:api:eldbus:model:proxy:property:children_count|Eldbus.Model.Proxy.children_count]]
+ * [[:develop:api:eldbus:model:object:property:children_count|Eldbus.Model.Object.children_count]]
+ * [[:develop:api:efl:composite_model:property:children_count|Efl.Composite_Model.children_count]]
+ * [[:develop:api:efl:container_model:property:children_count|Efl.Container_Model.children_count]]
+ * [[:develop:api:efl:filter_model:property:children_count|Efl.Filter_Model.children_count]]
+ * [[:develop:api:efl:io:model:property:children_count|Efl.Io.Model.children_count]]
+ * [[:develop:api:efl:generic_model:property:children_count|Efl.Generic_Model.children_count]]
+
diff --git a/public_html/data/pages/develop/api/efl/generic_model/property/properties.txt b/public_html/data/pages/develop/api/efl/generic_model/property/properties.txt
new file mode 100644
index 00000000..ff4199f0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/generic_model/property/properties.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.Generic_Model.properties~~
+====== Efl.Generic_Model.properties ======
+
+===== Values =====
+
+ * **properties** - %%Array of current properties%%
+
+
+\\ {{page>:develop:api-include:efl:generic_model:property:properties:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:model:property:properties|Efl.Model.properties]] **(get)**.//===== Signature =====
+
+
+@property properties @pure_virtual {
+ get {}
+ values {
+ properties: iterator;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_model_properties_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:model:property:properties|Efl.Model.properties]]
+ * [[:develop:api:efl:mono_model_internal_child:property:properties|Efl.Mono_Model_Internal_Child.properties]]
+ * [[:develop:api:efl:mono_model_internal:property:properties|Efl.Mono_Model_Internal.properties]]
+ * [[:develop:api:eldbus:model:property:properties|Eldbus.Model.properties]]
+ * [[:develop:api:eldbus:model:proxy:property:properties|Eldbus.Model.Proxy.properties]]
+ * [[:develop:api:eldbus:model:arguments:property:properties|Eldbus.Model.Arguments.properties]]
+ * [[:develop:api:efl:composite_model:property:properties|Efl.Composite_Model.properties]]
+ * [[:develop:api:efl:boolean_model:property:properties|Efl.Boolean_Model.properties]]
+ * [[:develop:api:efl:ui:select_model:property:properties|Efl.Ui.Select_Model.properties]]
+ * [[:develop:api:efl:container_model:property:properties|Efl.Container_Model.properties]]
+ * [[:develop:api:efl:ui:view_model:property:properties|Efl.Ui.View_Model.properties]]
+ * [[:develop:api:efl:ui:size_model:property:properties|Efl.Ui.Size_Model.properties]]
+ * [[:develop:api:efl:io:model:property:properties|Efl.Io.Model.properties]]
+ * [[:develop:api:efl:generic_model:property:properties|Efl.Generic_Model.properties]]
+
diff --git a/public_html/data/pages/develop/api/efl/generic_model/property/property.txt b/public_html/data/pages/develop/api/efl/generic_model/property/property.txt
new file mode 100644
index 00000000..e3995a25
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/generic_model/property/property.txt
@@ -0,0 +1,91 @@
+~~Title: Efl.Generic_Model.property~~
+====== Efl.Generic_Model.property ======
+
+===== Description =====
+
+%%No description supplied.%%
+
+//Since 1.23//
+
+
+{{page>:develop:api-include:efl:generic_model:property:property:description&nouser&nolink&nodate}}
+
+===== Keys =====
+
+ * **property** - %%Property name%%
+===== Values =====
+
+ * **value** - %%Property value%%
+==== Getter ====
+
+%%Retrieve the value of a given property name.%%
+
+%%At this point the caller is free to get values from properties. The event %%[[:develop:api:efl:model:event:properties,changed|Efl.Model.properties,changed]]%% may be raised to notify listeners of the property/value.%%
+
+%%See %%[[:develop:api:efl:model:property:properties|Efl.Model.properties.get]]%%, %%[[:develop:api:efl:model:event:properties,changed|Efl.Model.properties,changed]]%%%%
+
+//Since 1.23//
+
+
+{{page>:develop:api-include:efl:generic_model:property:property:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Set a property value of a given property name.%%
+
+%%The caller must first read %%[[:develop:api:efl:model:property:properties|Efl.Model.properties]]%% to obtain the list of available properties before being able to access them through %%[[:develop:api:efl:model:property:property|Efl.Model.property]]%%. This function sets a new property value into given property name. Once the operation is completed the concrete implementation should raise %%[[:develop:api:efl:model:event:properties,changed|Efl.Model.properties,changed]]%% event in order to notify listeners of the new value of the property.%%
+
+%%If the model doesn't have the property then there are two possibilities, either raise an error or create the new property in model%%
+
+%%See %%[[:develop:api:efl:model:property:property|Efl.Model.property.get]]%%, %%[[:develop:api:efl:model:event:properties,changed|Efl.Model.properties,changed]]%%%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:generic_model:property:property:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:loop_model:property:property|Efl.Model.property]] **(get, set)**.//===== Signature =====
+
+
+@property property @pure_virtual {
+ get {}
+ set {
+ return: future;
+ }
+ keys {
+ property: string;
+ }
+ values {
+ value: any_value_ref;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Value *efl_model_property_get(const Eo *obj, const char *property);
+Eina_Future *efl_model_property_set(Eo *obj, const char *property, Eina_Value *value);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:model:property:property|Efl.Model.property]]
+ * [[:develop:api:efl:mono_model_internal_child:property:property|Efl.Mono_Model_Internal_Child.property]]
+ * [[:develop:api:efl:mono_model_internal:property:property|Efl.Mono_Model_Internal.property]]
+ * [[:develop:api:efl:loop_model:property:property|Efl.Loop_Model.property]]
+ * [[:develop:api:eldbus:model:property:property|Eldbus.Model.property]]
+ * [[:develop:api:eldbus:model:proxy:property:property|Eldbus.Model.Proxy.property]]
+ * [[:develop:api:eldbus:model:arguments:property:property|Eldbus.Model.Arguments.property]]
+ * [[:develop:api:efl:composite_model:property:property|Efl.Composite_Model.property]]
+ * [[:develop:api:efl:boolean_model:property:property|Efl.Boolean_Model.property]]
+ * [[:develop:api:efl:ui:select_model:property:property|Efl.Ui.Select_Model.property]]
+ * [[:develop:api:efl:ui:state_model:property:property|Efl.Ui.State_Model.property]]
+ * [[:develop:api:efl:container_model:property:property|Efl.Container_Model.property]]
+ * [[:develop:api:efl:ui:view_model:property:property|Efl.Ui.View_Model.property]]
+ * [[:develop:api:efl:ui:homogeneous_model:property:property|Efl.Ui.Homogeneous_Model.property]]
+ * [[:develop:api:efl:ui:exact_model:property:property|Efl.Ui.Exact_Model.property]]
+ * [[:develop:api:efl:ui:average_model:property:property|Efl.Ui.Average_Model.property]]
+ * [[:develop:api:efl:filter_model:property:property|Efl.Filter_Model.property]]
+ * [[:develop:api:efl:io:model:property:property|Efl.Io.Model.property]]
+ * [[:develop:api:efl:generic_model:property:property|Efl.Generic_Model.property]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/cap.txt b/public_html/data/pages/develop/api/efl/gfx/cap.txt
new file mode 100644
index 00000000..975c404b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/cap.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Gfx.Cap~~
+
+===== Description =====
+
+%%These values determine how the end of opened sub-paths are rendered in a stroke. %%[[:develop:api:efl:gfx:shape:property:stroke_cap|Efl.Gfx.Shape.stroke_cap.set]]%%%%
+
+//Since 1.14//
+
+{{page>:develop:api-include:efl:gfx:cap:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:gfx:cap:fields&nouser&nolink&nodate}}
+
+ * **butt** - %%The end of lines is rendered as a full stop on the last point itself.%%
+ * **round** - %%The end of lines is rendered as a half-circle around the last point.%%
+ * **square** - %%The end of lines is rendered as a square around the last point.%%
+ * **last** - %%Sentinel value to indicate last enum field during iteration%%
+
+===== Signature =====
+
+
+enum Efl.Gfx.Cap {
+ butt: 0,
+ round,
+ square,
+ last
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_GFX_CAP_BUTT = 0,
+ EFL_GFX_CAP_ROUND,
+ EFL_GFX_CAP_SQUARE,
+ EFL_GFX_CAP_LAST
+} Efl_Gfx_Cap;
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/center_fill_mode.txt b/public_html/data/pages/develop/api/efl/gfx/center_fill_mode.txt
new file mode 100644
index 00000000..47d2ee09
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/center_fill_mode.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Gfx.Center_Fill_Mode~~
+
+===== Description =====
+
+%%How an image's center region (the complement to the border region) should be rendered by EFL%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:gfx:center_fill_mode:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:gfx:center_fill_mode:fields&nouser&nolink&nodate}}
+
+ * **none** - %%Image's center region is %%''not''%% to be rendered%%
+ * **default** - %%Image's center region is to be %%''blended''%% with objects underneath it, if it has transparency. This is the default behavior for image objects%%
+ * **solid** - %%Image's center region is to be made solid, even if it has transparency on it%%
+
+===== Signature =====
+
+
+enum Efl.Gfx.Center_Fill_Mode {
+ none: 0,
+ default: 1,
+ solid: 2
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_GFX_CENTER_FILL_MODE_NONE = 0,
+ EFL_GFX_CENTER_FILL_MODE_DEFAULT = 1,
+ EFL_GFX_CENTER_FILL_MODE_SOLID = 2
+} Efl_Gfx_Center_Fill_Mode;
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/change_flag.txt b/public_html/data/pages/develop/api/efl/gfx/change_flag.txt
new file mode 100644
index 00000000..eb890a28
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/change_flag.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Gfx.Change_Flag~~
+
+===== Description =====
+
+%%What property got changed for this object%%
+
+//Since 1.18//
+
+{{page>:develop:api-include:efl:gfx:change_flag:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:gfx:change_flag:fields&nouser&nolink&nodate}}
+
+ * **none** - %%Nothing changed.%%
+ * **matrix** - %%Matrix got changed.%%
+ * **path** - %%Path got changed.%%
+ * **fill** - %%Coloring or fill information changed, not geometry.%%
+ * **all** - %%All properties got changed.%%
+
+===== Signature =====
+
+
+enum Efl.Gfx.Change_Flag {
+ none: 0,
+ matrix: 1,
+ path: 2,
+ fill: 4,
+ all: 65535
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_GFX_CHANGE_FLAG_NONE = 0,
+ EFL_GFX_CHANGE_FLAG_MATRIX = 1,
+ EFL_GFX_CHANGE_FLAG_PATH = 2,
+ EFL_GFX_CHANGE_FLAG_FILL = 4,
+ EFL_GFX_CHANGE_FLAG_ALL = 65535
+} Efl_Gfx_Change_Flag;
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/color.txt b/public_html/data/pages/develop/api/efl/gfx/color.txt
new file mode 100644
index 00000000..ad9a2958
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/color.txt
@@ -0,0 +1,30 @@
+~~Title: Efl.Gfx.Color~~
+====== Efl.Gfx.Color (mixin) ======
+
+===== Description =====
+
+%%Efl Gfx Color mixin class%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:gfx:color:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:gfx:color:property:color|color]]** //**(get, set)**//\\
+> %%The general/main color of the given Evas object.%%
+
+void efl_gfx_color_get(const Eo *obj, int *r, int *g, int *b, int *a);
+void efl_gfx_color_set(Eo *obj, int r, int g, int b, int a);
+
+\\
+**[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**//\\
+> %%Hexadecimal color code of given Evas object (#RRGGBBAA).%%
+
+const char *efl_gfx_color_code_get(const Eo *obj);
+void efl_gfx_color_code_set(Eo *obj, const char *colorcode);
+
+\\
+
+===== Events =====
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/color/property/color.txt b/public_html/data/pages/develop/api/efl/gfx/color/property/color.txt
new file mode 100644
index 00000000..f2b08cea
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/color/property/color.txt
@@ -0,0 +1,60 @@
+~~Title: Efl.Gfx.Color.color~~
+====== Efl.Gfx.Color.color ======
+
+===== Description =====
+
+%%The general/main color of the given Evas object.%%
+
+%%Represents the main color's RGB component (and alpha channel) values, which range from 0 to 255. For the alpha channel, which defines the object's transparency level, 0 means totally transparent, while 255 means opaque. These color values are premultiplied by the alpha value.%%
+
+%%Usually you'll use this attribute for text and rectangle objects, where the main color is the only color. If set for objects which themselves have colors, like the images one, those colors get modulated by this one.%%
+
+%%All newly created Evas rectangles get the default color values of 255 255 255 255 (opaque white).%%
+
+%%When reading this property, use %%''NULL''%% pointers on the components you're not interested in and they'll be ignored by the function.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:color:property:color:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **r** - No description supplied.
+ * **g** - No description supplied.
+ * **b** - No description supplied.
+ * **a** - No description supplied.
+
+===== Signature =====
+
+
+@property color @pure_virtual {
+ get {}
+ set {}
+ values {
+ r: int;
+ g: int;
+ b: int;
+ a: int;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_color_get(const Eo *obj, int *r, int *g, int *b, int *a);
+void efl_gfx_color_set(Eo *obj, int r, int g, int b, int a);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:color:property:color|Efl.Gfx.Color.color]]
+ * [[:develop:api:efl:canvas:vg:node:property:color|Efl.Canvas.Vg.Node.color]]
+ * [[:develop:api:efl:ui:win_part:property:color|Efl.Ui.Win_Part.color]]
+ * [[:develop:api:efl:ui:widget_part_shadow:property:color|Efl.Ui.Widget_Part_Shadow.color]]
+ * [[:develop:api:efl:canvas:object:property:color|Efl.Canvas.Object.color]]
+ * [[:develop:api:efl:canvas:group:property:color|Efl.Canvas.Group.color]]
+ * [[:develop:api:efl:ui:widget:property:color|Efl.Ui.Widget.color]]
+ * [[:develop:api:efl:ui:image:property:color|Efl.Ui.Image.color]]
+ * [[:develop:api:efl:ui:bg:property:color|Efl.Ui.Bg.color]]
+ * [[:develop:api:efl:ui:widget_part_bg:property:color|Efl.Ui.Widget_Part_Bg.color]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/color/property/color_code.txt b/public_html/data/pages/develop/api/efl/gfx/color/property/color_code.txt
new file mode 100644
index 00000000..0ba8f0c9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/color/property/color_code.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Gfx.Color.color_code~~
+====== Efl.Gfx.Color.color_code ======
+
+===== Description =====
+
+%%Hexadecimal color code of given Evas object (#RRGGBBAA).%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:color:property:color_code:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **colorcode** - %%the hex color code.%%
+
+===== Signature =====
+
+
+@property color_code {
+ get {}
+ set {}
+ values {
+ colorcode: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_gfx_color_code_get(const Eo *obj);
+void efl_gfx_color_code_set(Eo *obj, const char *colorcode);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:color:property:color_code|Efl.Gfx.Color.color_code]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/dash.txt b/public_html/data/pages/develop/api/efl/gfx/dash.txt
new file mode 100644
index 00000000..e9bccd8b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/dash.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Gfx.Dash~~
+
+===== Description =====
+
+%%Type describing dash. %%[[:develop:api:efl:gfx:shape:property:stroke_dash|Efl.Gfx.Shape.stroke_dash.set]]%%%%
+
+//Since 1.14//
+
+{{page>:develop:api-include:efl:gfx:dash:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:gfx:dash:fields&nouser&nolink&nodate}}
+
+ * **length** - %%Dash drawing length.%%
+ * **gap** - %%Distance between two dashes.%%
+
+===== Signature =====
+
+
+struct Efl.Gfx.Dash {
+ length: double;
+ gap: double;
+}
+
+
+===== C signature =====
+
+
+typedef struct _Efl_Gfx_Dash {
+ double length;
+ double gap;
+} Efl_Gfx_Dash;
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/entity.txt b/public_html/data/pages/develop/api/efl/gfx/entity.txt
new file mode 100644
index 00000000..ecdb2d66
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/entity.txt
@@ -0,0 +1,67 @@
+~~Title: Efl.Gfx.Entity~~
+====== Efl.Gfx.Entity (interface) ======
+
+===== Description =====
+
+%%Efl graphics interface%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:gfx:entity:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:gfx:entity:property:geometry|geometry]]** //**(get, set)**//\\
+> %%Rectangular geometry that combines both position and size.%%
+
+Eina_Rect efl_gfx_entity_geometry_get(const Eo *obj);
+void efl_gfx_entity_geometry_set(Eo *obj, Eina_Rect rect);
+
+\\
+**[[:develop:api:efl:gfx:entity:property:position|position]]** //**(get, set)**//\\
+> %%The 2D position of a canvas object.%%
+
+Eina_Position2D efl_gfx_entity_position_get(const Eo *obj);
+void efl_gfx_entity_position_set(Eo *obj, Eina_Position2D pos);
+
+\\
+**[[:develop:api:efl:gfx:entity:property:scale|scale]]** //**(get, set)**//\\
+> %%The scaling factor of an object.%%
+
+double efl_gfx_entity_scale_get(const Eo *obj);
+void efl_gfx_entity_scale_set(Eo *obj, double scale);
+
+\\
+**[[:develop:api:efl:gfx:entity:property:size|size]]** //**(get, set)**//\\
+> %%The 2D size of a canvas object.%%
+
+Eina_Size2D efl_gfx_entity_size_get(const Eo *obj);
+void efl_gfx_entity_size_set(Eo *obj, Eina_Size2D size);
+
+\\
+**[[:develop:api:efl:gfx:entity:property:visible|visible]]** //**(get, set)**//\\
+> %%The visibility of a canvas object.%%
+
+Eina_Bool efl_gfx_entity_visible_get(const Eo *obj);
+void efl_gfx_entity_visible_set(Eo *obj, Eina_Bool v);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]**\\
+> %%Object was moved, its position during the event is the new one.%%
+
+EFL_GFX_ENTITY_EVENT_POSITION_CHANGED(Eina_Position2D)
+
+\\ **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]**\\
+> %%Object was resized, its size during the event is the new one.%%
+
+EFL_GFX_ENTITY_EVENT_SIZE_CHANGED(Eina_Size2D)
+
+\\ **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]**\\
+> %%Object's visibility state changed, the event value is the new state.%%
+
+EFL_GFX_ENTITY_EVENT_VISIBILITY_CHANGED(Eina_Bool)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/gfx/entity/event/position_changed.txt b/public_html/data/pages/develop/api/efl/gfx/entity/event/position_changed.txt
new file mode 100644
index 00000000..faf36d5f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/entity/event/position_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Gfx.Entity: position,changed~~
+
+===== Description =====
+
+%%Object was moved, its position during the event is the new one.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:gfx:entity:event:position_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+position,changed: Eina.Position2D;
+
+
+===== C information =====
+
+
+EFL_GFX_ENTITY_EVENT_POSITION_CHANGED(Eina_Position2D)
+
+
+===== C usage =====
+
+
+static void
+on_efl_gfx_entity_event_position_changed(void *data, const Efl_Event *event)
+{
+ Eina_Position2D info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_GFX_ENTITY_EVENT_POSITION_CHANGED, on_efl_gfx_entity_event_position_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/entity/event/size_changed.txt b/public_html/data/pages/develop/api/efl/gfx/entity/event/size_changed.txt
new file mode 100644
index 00000000..f2dc9ea1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/entity/event/size_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Gfx.Entity: size,changed~~
+
+===== Description =====
+
+%%Object was resized, its size during the event is the new one.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:gfx:entity:event:size_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+size,changed: Eina.Size2D;
+
+
+===== C information =====
+
+
+EFL_GFX_ENTITY_EVENT_SIZE_CHANGED(Eina_Size2D)
+
+
+===== C usage =====
+
+
+static void
+on_efl_gfx_entity_event_size_changed(void *data, const Efl_Event *event)
+{
+ Eina_Size2D info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_GFX_ENTITY_EVENT_SIZE_CHANGED, on_efl_gfx_entity_event_size_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/entity/event/visibility_changed.txt b/public_html/data/pages/develop/api/efl/gfx/entity/event/visibility_changed.txt
new file mode 100644
index 00000000..b2980747
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/entity/event/visibility_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Gfx.Entity: visibility,changed~~
+
+===== Description =====
+
+%%Object's visibility state changed, the event value is the new state.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:gfx:entity:event:visibility_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+visibility,changed: bool;
+
+
+===== C information =====
+
+
+EFL_GFX_ENTITY_EVENT_VISIBILITY_CHANGED(Eina_Bool)
+
+
+===== C usage =====
+
+
+static void
+on_efl_gfx_entity_event_visibility_changed(void *data, const Efl_Event *event)
+{
+ Eina_Bool info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_GFX_ENTITY_EVENT_VISIBILITY_CHANGED, on_efl_gfx_entity_event_visibility_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/entity/property/geometry.txt b/public_html/data/pages/develop/api/efl/gfx/entity/property/geometry.txt
new file mode 100644
index 00000000..ae4fa559
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/entity/property/geometry.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Gfx.Entity.geometry~~
+====== Efl.Gfx.Entity.geometry ======
+
+===== Description =====
+
+%%Rectangular geometry that combines both position and size.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:entity:property:geometry:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **rect** - %%The X,Y position and W,H size, in pixels.%%
+
+===== Signature =====
+
+
+@property geometry @pure_virtual {
+ get {}
+ set {}
+ values {
+ rect: Eina.Rect;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Rect efl_gfx_entity_geometry_get(const Eo *obj);
+void efl_gfx_entity_geometry_set(Eo *obj, Eina_Rect rect);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:geometry|Efl.Gfx.Entity.geometry]]
+ * [[:develop:api:efl:canvas:vg:node:property:geometry|Efl.Canvas.Vg.Node.geometry]]
+ * [[:develop:api:efl:canvas:layout_part:property:geometry|Efl.Canvas.Layout_Part.geometry]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:geometry|Efl.Canvas.Layout_Part_Invalid.geometry]]
+ * [[:develop:api:efl:canvas:object:property:geometry|Efl.Canvas.Object.geometry]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/entity/property/position.txt b/public_html/data/pages/develop/api/efl/gfx/entity/property/position.txt
new file mode 100644
index 00000000..ce9d6c88
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/entity/property/position.txt
@@ -0,0 +1,76 @@
+~~Title: Efl.Gfx.Entity.position~~
+====== Efl.Gfx.Entity.position ======
+
+===== Description =====
+
+%%The 2D position of a canvas object.%%
+
+%%The position is absolute, in pixels, relative to the top-left corner of the window, within its border decorations (application space).%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:gfx:entity:property:position:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **pos** - %%A 2D coordinate in pixel units.%%
+==== Getter ====
+
+%%Retrieves the position of the given canvas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:gfx:entity:property:position:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Moves the given canvas object to the given location inside its canvas' viewport. If unchanged this call may be entirely skipped, but if changed this will trigger move events, as well as potential pointer,in or pointer,out events.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:entity:property:position:getter_description&nouser&nolink&nodate}}
+
+
+===== Signature =====
+
+
+@property position @pure_virtual {
+ get {}
+ set {}
+ values {
+ pos: Eina.Position2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Position2D efl_gfx_entity_position_get(const Eo *obj);
+void efl_gfx_entity_position_set(Eo *obj, Eina_Position2D pos);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:position|Efl.Gfx.Entity.position]]
+ * [[:develop:api:efl:canvas:vg:node:property:position|Efl.Canvas.Vg.Node.position]]
+ * [[:develop:api:efl:ui:win:property:position|Efl.Ui.Win.position]]
+ * [[:develop:api:efl:ui:image:property:position|Efl.Ui.Image.position]]
+ * [[:develop:api:efl:ui:image_zoomable:property:position|Efl.Ui.Image_Zoomable.position]]
+ * [[:develop:api:efl:ui:widget:property:position|Efl.Ui.Widget.position]]
+ * [[:develop:api:efl:ui:table:property:position|Efl.Ui.Table.position]]
+ * [[:develop:api:efl:ui:box:property:position|Efl.Ui.Box.position]]
+ * [[:develop:api:efl:ui:animation_view:property:position|Efl.Ui.Animation_View.position]]
+ * [[:develop:api:efl:ui:text:property:position|Efl.Ui.Text.position]]
+ * [[:develop:api:efl:ui:textpath:property:position|Efl.Ui.Textpath.position]]
+ * [[:develop:api:efl:ui:popup:property:position|Efl.Ui.Popup.position]]
+ * [[:develop:api:efl:ui:relative_layout:property:position|Efl.Ui.Relative_Layout.position]]
+ * [[:develop:api:efl:canvas:object:property:position|Efl.Canvas.Object.position]]
+ * [[:develop:api:efl:canvas:group:property:position|Efl.Canvas.Group.position]]
+ * [[:develop:api:efl:canvas:video:property:position|Efl.Canvas.Video.position]]
+ * [[:develop:api:efl:canvas:event_grabber:property:position|Efl.Canvas.Event_Grabber.position]]
+ * [[:develop:api:efl:canvas:layout:property:position|Efl.Canvas.Layout.position]]
+ * [[:develop:api:efl:ui:pan:property:position|Efl.Ui.Pan.position]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:property:position|Efl.Ui.Image_Zoomable_Pan.position]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/entity/property/scale.txt b/public_html/data/pages/develop/api/efl/gfx/entity/property/scale.txt
new file mode 100644
index 00000000..f850298f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/entity/property/scale.txt
@@ -0,0 +1,65 @@
+~~Title: Efl.Gfx.Entity.scale~~
+====== Efl.Gfx.Entity.scale ======
+
+===== Description =====
+
+%%The scaling factor of an object.%%
+
+%%This property is an individual scaling factor on the object (Edje or UI widget). This property (or Edje's global scaling factor, when applicable), will affect this object's part sizes. If scale is not zero, then the individual scaling will override any global scaling set, for the object obj's parts. Set it back to zero to get the effects of the global scaling again.%%
+
+
+@property scale @pure_virtual {
+ get {}
+ set {}
+ values {
+ scale: double (0.000000);
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_gfx_entity_scale_get(const Eo *obj);
+void efl_gfx_entity_scale_set(Eo *obj, double scale);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:scale|Efl.Gfx.Entity.scale]]
+ * [[:develop:api:efl:ui:widget:property:scale|Efl.Ui.Widget.scale]]
+ * [[:develop:api:efl:canvas:object:property:scale|Efl.Canvas.Object.scale]]
+ * [[:develop:api:efl:canvas:text:property:scale|Efl.Canvas.Text.scale]]
+ * [[:develop:api:efl:canvas:layout:property:scale|Efl.Canvas.Layout.scale]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/entity/property/size.txt b/public_html/data/pages/develop/api/efl/gfx/entity/property/size.txt
new file mode 100644
index 00000000..fe5341a3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/entity/property/size.txt
@@ -0,0 +1,76 @@
+~~Title: Efl.Gfx.Entity.size~~
+====== Efl.Gfx.Entity.size ======
+
+===== Description =====
+
+%%The 2D size of a canvas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:gfx:entity:property:size:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **size** - %%A 2D size in pixel units.%%
+==== Getter ====
+
+%%Retrieves the (rectangular) size of the given Evas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:gfx:entity:property:size:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Changes the size of the given object.%%
+
+%%Note that setting the actual size of an object might be the job of its container, so this function might have no effect. Look at %%[[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]%% instead, when manipulating widgets.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:entity:property:size:getter_description&nouser&nolink&nodate}}
+
+
+===== Signature =====
+
+
+@property size @pure_virtual {
+ get {}
+ set {}
+ values {
+ size: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_entity_size_get(const Eo *obj);
+void efl_gfx_entity_size_set(Eo *obj, Eina_Size2D size);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:size|Efl.Gfx.Entity.size]]
+ * [[:develop:api:efl:canvas:vg:node:property:size|Efl.Canvas.Vg.Node.size]]
+ * [[:develop:api:efl:ui:win:property:size|Efl.Ui.Win.size]]
+ * [[:develop:api:efl:ui:image:property:size|Efl.Ui.Image.size]]
+ * [[:develop:api:efl:ui:image_zoomable:property:size|Efl.Ui.Image_Zoomable.size]]
+ * [[:develop:api:efl:ui:widget:property:size|Efl.Ui.Widget.size]]
+ * [[:develop:api:efl:ui:table:property:size|Efl.Ui.Table.size]]
+ * [[:develop:api:efl:ui:box:property:size|Efl.Ui.Box.size]]
+ * [[:develop:api:efl:ui:animation_view:property:size|Efl.Ui.Animation_View.size]]
+ * [[:develop:api:efl:ui:text:property:size|Efl.Ui.Text.size]]
+ * [[:develop:api:efl:ui:panel:property:size|Efl.Ui.Panel.size]]
+ * [[:develop:api:efl:ui:textpath:property:size|Efl.Ui.Textpath.size]]
+ * [[:develop:api:efl:ui:popup:property:size|Efl.Ui.Popup.size]]
+ * [[:develop:api:efl:ui:relative_layout:property:size|Efl.Ui.Relative_Layout.size]]
+ * [[:develop:api:efl:canvas:object:property:size|Efl.Canvas.Object.size]]
+ * [[:develop:api:efl:canvas:video:property:size|Efl.Canvas.Video.size]]
+ * [[:develop:api:efl:canvas:event_grabber:property:size|Efl.Canvas.Event_Grabber.size]]
+ * [[:develop:api:efl:canvas:layout:property:size|Efl.Canvas.Layout.size]]
+ * [[:develop:api:efl:ui:pan:property:size|Efl.Ui.Pan.size]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:property:size|Efl.Ui.Image_Zoomable_Pan.size]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/entity/property/visible.txt b/public_html/data/pages/develop/api/efl/gfx/entity/property/visible.txt
new file mode 100644
index 00000000..8c648dc1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/entity/property/visible.txt
@@ -0,0 +1,72 @@
+~~Title: Efl.Gfx.Entity.visible~~
+====== Efl.Gfx.Entity.visible ======
+
+===== Description =====
+
+%%The visibility of a canvas object.%%
+
+%%All canvas objects will become visible by default just before render. This means that it is not required to call %%[[:develop:api:efl:gfx:entity:property:visible|Efl.Gfx.Entity.visible.set]]%% after creating an object unless you want to create it without showing it. Note that this behavior is new since 1.21, and only applies to canvas objects created with the EO API (i.e. not the legacy C-only API). Other types of Gfx objects may or may not be visible by default.%%
+
+%%Note that many other parameters can prevent a visible object from actually being "visible" on screen. For instance if its color is fully transparent, or its parent is hidden, or it is clipped out, etc...%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:gfx:entity:property:visible:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **v** - %%%%''true''%% if to make the object visible, %%''false''%% otherwise%%
+==== Getter ====
+
+%%Retrieves whether or not the given canvas object is visible.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:gfx:entity:property:visible:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Shows or hides this object.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:entity:property:visible:getter_description&nouser&nolink&nodate}}
+
+
+===== Signature =====
+
+
+@property visible @pure_virtual {
+ get {}
+ set {}
+ values {
+ v: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_gfx_entity_visible_get(const Eo *obj);
+void efl_gfx_entity_visible_set(Eo *obj, Eina_Bool v);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:visible|Efl.Gfx.Entity.visible]]
+ * [[:develop:api:efl:canvas:vg:node:property:visible|Efl.Canvas.Vg.Node.visible]]
+ * [[:develop:api:efl:ui:win:property:visible|Efl.Ui.Win.visible]]
+ * [[:develop:api:efl:ui:image:property:visible|Efl.Ui.Image.visible]]
+ * [[:develop:api:efl:ui:widget:property:visible|Efl.Ui.Widget.visible]]
+ * [[:develop:api:efl:ui:animation_view:property:visible|Efl.Ui.Animation_View.visible]]
+ * [[:develop:api:efl:ui:text:property:visible|Efl.Ui.Text.visible]]
+ * [[:develop:api:efl:ui:popup:property:visible|Efl.Ui.Popup.visible]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:property:visible|Efl.Ui.Navigation_Bar_Part_Back_Button.visible]]
+ * [[:develop:api:efl:canvas:object:property:visible|Efl.Canvas.Object.visible]]
+ * [[:develop:api:efl:canvas:group:property:visible|Efl.Canvas.Group.visible]]
+ * [[:develop:api:efl:canvas:event_grabber:property:visible|Efl.Canvas.Event_Grabber.visible]]
+ * [[:develop:api:efl:canvas:layout:property:visible|Efl.Canvas.Layout.visible]]
+ * [[:develop:api:efl:ui:pan:property:visible|Efl.Ui.Pan.visible]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/event/render_post.txt b/public_html/data/pages/develop/api/efl/gfx/event/render_post.txt
new file mode 100644
index 00000000..48d8be88
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/event/render_post.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Gfx.Event.Render_Post~~
+
+===== Description =====
+
+%%Data sent along a "render,post" event, after a frame has been rendered.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:gfx:event:render_post:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:gfx:event:render_post:fields&nouser&nolink&nodate}}
+
+ * **updated_area** - %%A list of rectangles that were updated in the canvas.%%
+
+===== Signature =====
+
+
+struct Efl.Gfx.Event.Render_Post {
+ updated_area: list;
+}
+
+
+===== C signature =====
+
+
+typedef struct _Efl_Gfx_Event_Render_Post {
+ Eina_List *updated_area;
+} Efl_Gfx_Event_Render_Post;
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/gradient_spread.txt b/public_html/data/pages/develop/api/efl/gfx/gradient_spread.txt
new file mode 100644
index 00000000..d3923cf3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/gradient_spread.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Gfx.Gradient_Spread~~
+
+===== Description =====
+
+%%Specifies how the area outside the gradient area should be filled. %%[[:develop:api:efl:gfx:gradient:property:spread|Efl.Gfx.Gradient.spread.set]]%%%%
+
+//Since 1.14//
+
+{{page>:develop:api-include:efl:gfx:gradient_spread:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:gfx:gradient_spread:fields&nouser&nolink&nodate}}
+
+ * **pad** - %%The area is filled with the closest stop color. This is the default.%%
+ * **reflect** - %%The gradient is reflected outside the gradient area.%%
+ * **repeat** - %%The gradient is repeated outside the gradient area.%%
+ * **last** - %%Sentinel value to indicate last enum field during iteration%%
+
+===== Signature =====
+
+
+enum Efl.Gfx.Gradient_Spread {
+ pad: 0,
+ reflect,
+ repeat,
+ last
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_GFX_GRADIENT_SPREAD_PAD = 0,
+ EFL_GFX_GRADIENT_SPREAD_REFLECT,
+ EFL_GFX_GRADIENT_SPREAD_REPEAT,
+ EFL_GFX_GRADIENT_SPREAD_LAST
+} Efl_Gfx_Gradient_Spread;
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/gradient_stop.txt b/public_html/data/pages/develop/api/efl/gfx/gradient_stop.txt
new file mode 100644
index 00000000..9765e0d7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/gradient_stop.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Gfx.Gradient_Stop~~
+
+===== Description =====
+
+%%Type defining gradient stops. Describes the location and color of a transition point in a gradient.%%
+
+//Since 1.14//
+
+{{page>:develop:api-include:efl:gfx:gradient_stop:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:gfx:gradient_stop:fields&nouser&nolink&nodate}}
+
+ * **offset** - %%The location of the gradient stop within the gradient vector%%
+ * **r** - %%The component R color of the gradient stop%%
+ * **g** - %%The component G color of the gradient stop%%
+ * **b** - %%The component B color of the gradient stop%%
+ * **a** - %%The component A color of the gradient stop%%
+
+===== Signature =====
+
+
+struct Efl.Gfx.Gradient_Stop {
+ offset: double;
+ r: int;
+ g: int;
+ b: int;
+ a: int;
+}
+
+
+===== C signature =====
+
+
+typedef struct _Efl_Gfx_Gradient_Stop {
+ double offset;
+ int r;
+ int g;
+ int b;
+ int a;
+} Efl_Gfx_Gradient_Stop;
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/hint.txt b/public_html/data/pages/develop/api/efl/gfx/hint.txt
new file mode 100644
index 00000000..b37ae6f4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/hint.txt
@@ -0,0 +1,97 @@
+~~Title: Efl.Gfx.Hint~~
+====== Efl.Gfx.Hint (interface) ======
+
+===== Description =====
+
+%%Efl graphics hint interface%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:gfx:hint:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:gfx:hint:property:hint_align|hint_align]]** //**(get, set)**//\\
+> %%Hints for an object's alignment.%%
+
+void efl_gfx_hint_align_get(const Eo *obj, double *x, double *y);
+void efl_gfx_hint_align_set(Eo *obj, double x, double y);
+
+\\
+**[[:develop:api:efl:gfx:hint:property:hint_aspect|hint_aspect]]** //**(get, set)**//\\
+> %%Defines the aspect ratio to respect when scaling this object.%%
+
+void efl_gfx_hint_aspect_get(const Eo *obj, Efl_Gfx_Hint_Aspect *mode, Eina_Size2D *sz);
+void efl_gfx_hint_aspect_set(Eo *obj, Efl_Gfx_Hint_Aspect mode, Eina_Size2D sz);
+
+\\
+**[[:develop:api:efl:gfx:hint:property:hint_fill|hint_fill]]** //**(get, set)**//\\
+> %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%%
+
+void efl_gfx_hint_fill_get(const Eo *obj, Eina_Bool *x, Eina_Bool *y);
+void efl_gfx_hint_fill_set(Eo *obj, Eina_Bool x, Eina_Bool y);
+
+\\
+**[[:develop:api:efl:gfx:hint:property:hint_margin|hint_margin]]** //**(get, set)**//\\
+> %%Hints for an object's margin or padding space.%%
+
+void efl_gfx_hint_margin_get(const Eo *obj, int *l, int *r, int *t, int *b);
+void efl_gfx_hint_margin_set(Eo *obj, int l, int r, int t, int b);
+
+\\
+**[[:develop:api:efl:gfx:hint:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**//\\
+>
+
+Eina_Size2D efl_gfx_hint_size_combined_max_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:gfx:hint:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**//\\
+>
+
+Eina_Size2D efl_gfx_hint_size_combined_min_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:gfx:hint:property:hint_size_max|hint_size_max]]** //**(get, set)**//\\
+> %%Hints on the object's maximum size.%%
+
+Eina_Size2D efl_gfx_hint_size_max_get(const Eo *obj);
+void efl_gfx_hint_size_max_set(Eo *obj, Eina_Size2D sz);
+
+\\
+**[[:develop:api:efl:gfx:hint:property:hint_size_min|hint_size_min]]** //**(get, set)**//\\
+> %%Hints on the object's minimum size.%%
+
+Eina_Size2D efl_gfx_hint_size_min_get(const Eo *obj);
+void efl_gfx_hint_size_min_set(Eo *obj, Eina_Size2D sz);
+
+\\
+**[[:develop:api:efl:gfx:hint:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// ''protected set''\\
+> %%Internal hints for an object's maximum size.%%
+
+Eina_Size2D efl_gfx_hint_size_restricted_max_get(const Eo *obj);
+void efl_gfx_hint_size_restricted_max_set(Eo *obj, Eina_Size2D sz);
+
+\\
+**[[:develop:api:efl:gfx:hint:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// ''protected set''\\
+> %%Internal hints for an object's minimum size.%%
+
+Eina_Size2D efl_gfx_hint_size_restricted_min_get(const Eo *obj);
+void efl_gfx_hint_size_restricted_min_set(Eo *obj, Eina_Size2D sz);
+
+\\
+**[[:develop:api:efl:gfx:hint:property:hint_weight|hint_weight]]** //**(get, set)**//\\
+> %%Hints for an object's weight.%%
+
+void efl_gfx_hint_weight_get(const Eo *obj, double *x, double *y);
+void efl_gfx_hint_weight_set(Eo *obj, double x, double y);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]**\\
+> %%Object hints changed.%%
+
+EFL_GFX_ENTITY_EVENT_HINTS_CHANGED(void)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/gfx/hint/event/hints_changed.txt b/public_html/data/pages/develop/api/efl/gfx/hint/event/hints_changed.txt
new file mode 100644
index 00000000..3547c20e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/hint/event/hints_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Gfx.Hint: hints,changed~~
+
+===== Description =====
+
+%%Object hints changed.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:gfx:hint:event:hints_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+hints,changed;
+
+
+===== C information =====
+
+
+EFL_GFX_ENTITY_EVENT_HINTS_CHANGED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_gfx_entity_event_hints_changed(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_GFX_ENTITY_EVENT_HINTS_CHANGED, on_efl_gfx_entity_event_hints_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_align.txt b/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_align.txt
new file mode 100644
index 00000000..8acf101f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_align.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Gfx.Hint.hint_align~~
+====== Efl.Gfx.Hint.hint_align ======
+
+===== Description =====
+
+%%Hints for an object's alignment.%%
+
+%%These are hints on how to align an object inside the boundaries of a container/manager. Accepted values are in the 0.0 to 1.0 range.%%
+
+%%For the horizontal component, 0.0 means the start of the axis in the direction that the current language reads, 1.0 means the end of the axis.%%
+
+%%For the vertical component, 0.0 to the top, 1.0 means to the bottom.%%
+
+%%This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.%%
+
+
+@property hint_align @pure_virtual {
+ get {}
+ set {}
+ values {
+ x: double;
+ y: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_hint_align_get(const Eo *obj, double *x, double *y);
+void efl_gfx_hint_align_set(Eo *obj, double x, double y);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_align|Efl.Gfx.Hint.hint_align]]
+ * [[:develop:api:efl:canvas:object:property:hint_align|Efl.Canvas.Object.hint_align]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_aspect.txt b/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_aspect.txt
new file mode 100644
index 00000000..59b61f11
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_aspect.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Gfx.Hint.hint_aspect~~
+====== Efl.Gfx.Hint.hint_aspect ======
+
+===== Description =====
+
+%%Defines the aspect ratio to respect when scaling this object.%%
+
+%%The aspect ratio is defined as the width / height ratio of the object. Depending on the object and its container, this hint may or may not be fully respected.%%
+
+%%If any of the given aspect ratio terms are 0, the object's container will ignore the aspect and scale this object to occupy the whole available area, for any given policy.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:hint:property:hint_aspect:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **mode** - %%Mode of interpretation.%%
+ * **sz** - %%Base size to use for aspecting.%%
+
+===== Signature =====
+
+
+@property hint_aspect @pure_virtual {
+ get {}
+ set {}
+ values {
+ mode: Efl.Gfx.Hint_Aspect;
+ sz: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_hint_aspect_get(const Eo *obj, Efl_Gfx_Hint_Aspect *mode, Eina_Size2D *sz);
+void efl_gfx_hint_aspect_set(Eo *obj, Efl_Gfx_Hint_Aspect mode, Eina_Size2D sz);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_aspect|Efl.Gfx.Hint.hint_aspect]]
+ * [[:develop:api:efl:canvas:object:property:hint_aspect|Efl.Canvas.Object.hint_aspect]]
+ * [[:develop:api:efl:ui:win:property:hint_aspect|Efl.Ui.Win.hint_aspect]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_fill.txt b/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_fill.txt
new file mode 100644
index 00000000..084d3398
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_fill.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Gfx.Hint.hint_fill~~
+====== Efl.Gfx.Hint.hint_fill ======
+
+===== Description =====
+
+%%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%%
+
+%%Maximum hints should be enforced with higher priority, if they are set. Also, any %%[[:develop:api:efl:gfx:hint:property:hint_margin|Efl.Gfx.Hint.hint_margin]]%% set on objects should add up to the object space on the final scene composition.%%
+
+%%See documentation of possible users: in Evas, they are the %%[[:develop:api:efl:ui:box|Efl.Ui.Box]]%% "box" and %%[[:develop:api:efl:ui:table|Efl.Ui.Table]]%% "table" smart objects.%%
+
+%%This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.%%
+
+
+@property hint_fill @pure_virtual {
+ get {}
+ set {}
+ values {
+ x: bool;
+ y: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_hint_fill_get(const Eo *obj, Eina_Bool *x, Eina_Bool *y);
+void efl_gfx_hint_fill_set(Eo *obj, Eina_Bool x, Eina_Bool y);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]
+ * [[:develop:api:efl:canvas:object:property:hint_fill|Efl.Canvas.Object.hint_fill]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_margin.txt b/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_margin.txt
new file mode 100644
index 00000000..e0a5bf89
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_margin.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Gfx.Hint.hint_margin~~
+====== Efl.Gfx.Hint.hint_margin ======
+
+===== Description =====
+
+%%Hints for an object's margin or padding space.%%
+
+%%This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.%%
+
+%%The object container is in charge of fetching this property and placing the object accordingly.%%
+
+
+@property hint_margin @pure_virtual {
+ get {}
+ set {}
+ values {
+ l: int;
+ r: int;
+ t: int;
+ b: int;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_hint_margin_get(const Eo *obj, int *l, int *r, int *t, int *b);
+void efl_gfx_hint_margin_set(Eo *obj, int l, int r, int t, int b);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_margin|Efl.Gfx.Hint.hint_margin]]
+ * [[:develop:api:efl:canvas:object:property:hint_margin|Efl.Canvas.Object.hint_margin]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_size_combined_max.txt b/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_size_combined_max.txt
new file mode 100644
index 00000000..ed5e09c1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_size_combined_max.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.Gfx.Hint.hint_size_combined_max~~
+====== Efl.Gfx.Hint.hint_size_combined_max ======
+
+===== Values =====
+
+ * **sz** - %%Maximum size (hint) in pixels.%%
+
+
+\\ {{page>:develop:api-include:efl:gfx:hint:property:hint_size_combined_max:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property hint_size_combined_max @pure_virtual {
+ get {}
+ values {
+ sz: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_hint_size_combined_max_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_size_combined_max|Efl.Gfx.Hint.hint_size_combined_max]]
+ * [[:develop:api:efl:canvas:object:property:hint_size_combined_max|Efl.Canvas.Object.hint_size_combined_max]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_size_combined_min.txt b/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_size_combined_min.txt
new file mode 100644
index 00000000..7eb820cc
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_size_combined_min.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.Gfx.Hint.hint_size_combined_min~~
+====== Efl.Gfx.Hint.hint_size_combined_min ======
+
+===== Values =====
+
+ * **sz** - %%Minimum size (hint) in pixels.%%
+
+
+\\ {{page>:develop:api-include:efl:gfx:hint:property:hint_size_combined_min:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property hint_size_combined_min @pure_virtual {
+ get {}
+ values {
+ sz: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_hint_size_combined_min_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_size_combined_min|Efl.Gfx.Hint.hint_size_combined_min]]
+ * [[:develop:api:efl:canvas:object:property:hint_size_combined_min|Efl.Canvas.Object.hint_size_combined_min]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_size_max.txt b/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_size_max.txt
new file mode 100644
index 00000000..726ab2db
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_size_max.txt
@@ -0,0 +1,53 @@
+~~Title: Efl.Gfx.Hint.hint_size_max~~
+====== Efl.Gfx.Hint.hint_size_max ======
+
+===== Description =====
+
+%%Hints on the object's maximum size.%%
+
+%%This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.%%
+
+%%The object container is in charge of fetching this property and placing the object accordingly.%%
+
+%%Values -1 will be treated as unset hint components, when queried by managers.%%
+
+
+@property hint_size_max @pure_virtual {
+ get {}
+ set {}
+ values {
+ sz: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_hint_size_max_get(const Eo *obj);
+void efl_gfx_hint_size_max_set(Eo *obj, Eina_Size2D sz);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_size_max|Efl.Gfx.Hint.hint_size_max]]
+ * [[:develop:api:efl:canvas:object:property:hint_size_max|Efl.Canvas.Object.hint_size_max]]
+ * [[:develop:api:efl:ui:win:property:hint_size_max|Efl.Ui.Win.hint_size_max]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_size_min.txt b/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_size_min.txt
new file mode 100644
index 00000000..f665f8c8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_size_min.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Gfx.Hint.hint_size_min~~
+====== Efl.Gfx.Hint.hint_size_min ======
+
+===== Description =====
+
+%%Hints on the object's minimum size.%%
+
+%%This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate. The object container is in charge of fetching this property and placing the object accordingly.%%
+
+%%Value 0 will be treated as unset hint components, when queried by managers.%%
+
+
+@property hint_size_min @pure_virtual {
+ get {}
+ set {}
+ values {
+ sz: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_hint_size_min_get(const Eo *obj);
+void efl_gfx_hint_size_min_set(Eo *obj, Eina_Size2D sz);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_size_min|Efl.Gfx.Hint.hint_size_min]]
+ * [[:develop:api:efl:canvas:object:property:hint_size_min|Efl.Canvas.Object.hint_size_min]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_size_restricted_max.txt b/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_size_restricted_max.txt
new file mode 100644
index 00000000..c6bdf4cb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_size_restricted_max.txt
@@ -0,0 +1,59 @@
+~~Title: Efl.Gfx.Hint.hint_size_restricted_max~~
+====== Efl.Gfx.Hint.hint_size_restricted_max ======
+
+===== Description =====
+
+%%Internal hints for an object's maximum size.%%
+
+%%This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.%%
+
+%%Values -1 will be treated as unset hint components, when queried by managers.%%
+
+
+@property hint_size_restricted_max @pure_virtual {
+ get {}
+ set @protected {}
+ values {
+ sz: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_hint_size_restricted_max_get(const Eo *obj);
+void efl_gfx_hint_size_restricted_max_set(Eo *obj, Eina_Size2D sz);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_size_restricted_max|Efl.Gfx.Hint.hint_size_restricted_max]]
+ * [[:develop:api:efl:canvas:object:property:hint_size_restricted_max|Efl.Canvas.Object.hint_size_restricted_max]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_size_restricted_min.txt b/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_size_restricted_min.txt
new file mode 100644
index 00000000..be31e29a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_size_restricted_min.txt
@@ -0,0 +1,68 @@
+~~Title: Efl.Gfx.Hint.hint_size_restricted_min~~
+====== Efl.Gfx.Hint.hint_size_restricted_min ======
+
+===== Description =====
+
+%%Internal hints for an object's minimum size.%%
+
+%%This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.%%
+
+%%Values 0 will be treated as unset hint components, when queried by managers.%%
+
+
+@property hint_size_restricted_min @pure_virtual {
+ get {}
+ set @protected {}
+ values {
+ sz: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_hint_size_restricted_min_get(const Eo *obj);
+void efl_gfx_hint_size_restricted_min_set(Eo *obj, Eina_Size2D sz);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_size_restricted_min|Efl.Gfx.Hint.hint_size_restricted_min]]
+ * [[:develop:api:efl:canvas:object:property:hint_size_restricted_min|Efl.Canvas.Object.hint_size_restricted_min]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_weight.txt b/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_weight.txt
new file mode 100644
index 00000000..e94a9430
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/hint/property/hint_weight.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Gfx.Hint.hint_weight~~
+====== Efl.Gfx.Hint.hint_weight ======
+
+===== Description =====
+
+%%Hints for an object's weight.%%
+
+%%This is a hint on how a container object should resize a given child within its area. Containers may adhere to the simpler logic of just expanding the child object's dimensions to fit its own (see the %%[[:develop:api:efl:gfx:hint_expand|Efl.Gfx.Hint_Expand]]%% helper weight macro) or the complete one of taking each child's weight hint as real weights to how much of its size to allocate for them in each axis. A container is supposed to, after normalizing the weights of its children (with weight hints), distribut the space it has to layout them by those factors -- most weighted children get larger in this process than the least ones.%%
+
+%%Accepted values are zero or positive values. Some containers might use this hint as a boolean, but some others might consider it as a proportion, see documentation of each container.%%
+
+
+@property hint_weight @pure_virtual {
+ get {}
+ set {}
+ values {
+ x: double;
+ y: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_hint_weight_get(const Eo *obj, double *x, double *y);
+void efl_gfx_hint_weight_set(Eo *obj, double x, double y);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_weight|Efl.Gfx.Hint.hint_weight]]
+ * [[:develop:api:efl:canvas:object:property:hint_weight|Efl.Canvas.Object.hint_weight]]
+ * [[:develop:api:efl:ui:win:property:hint_weight|Efl.Ui.Win.hint_weight]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/hint_align_bottom.txt b/public_html/data/pages/develop/api/efl/gfx/hint_align_bottom.txt
new file mode 100644
index 00000000..a7c3abd2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/hint_align_bottom.txt
@@ -0,0 +1,21 @@
+~~Title: Efl.Gfx.Hint_Align_Bottom~~
+
+===== Description =====
+
+%%Use with %%[[:develop:api:efl:gfx:hint:property:hint_align|Efl.Gfx.Hint.hint_align]]%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:gfx:hint_align_bottom:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+const Efl.Gfx.Hint_Align_Bottom: double = 1.000000;
+
+
+===== C signature =====
+
+
+#define EFL_GFX_HINT_ALIGN_BOTTOM 1.000000
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/hint_align_center.txt b/public_html/data/pages/develop/api/efl/gfx/hint_align_center.txt
new file mode 100644
index 00000000..95a3fd35
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/hint_align_center.txt
@@ -0,0 +1,21 @@
+~~Title: Efl.Gfx.Hint_Align_Center~~
+
+===== Description =====
+
+%%Use with %%[[:develop:api:efl:gfx:hint:property:hint_align|Efl.Gfx.Hint.hint_align]]%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:gfx:hint_align_center:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+const Efl.Gfx.Hint_Align_Center: double = 0.500000;
+
+
+===== C signature =====
+
+
+#define EFL_GFX_HINT_ALIGN_CENTER 0.500000
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/hint_align_left.txt b/public_html/data/pages/develop/api/efl/gfx/hint_align_left.txt
new file mode 100644
index 00000000..7377eb2c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/hint_align_left.txt
@@ -0,0 +1,21 @@
+~~Title: Efl.Gfx.Hint_Align_Left~~
+
+===== Description =====
+
+%%Use with %%[[:develop:api:efl:gfx:hint:property:hint_align|Efl.Gfx.Hint.hint_align]]%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:gfx:hint_align_left:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+const Efl.Gfx.Hint_Align_Left: double = 0.000000;
+
+
+===== C signature =====
+
+
+#define EFL_GFX_HINT_ALIGN_LEFT 0.000000
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/hint_align_right.txt b/public_html/data/pages/develop/api/efl/gfx/hint_align_right.txt
new file mode 100644
index 00000000..91d3b8a1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/hint_align_right.txt
@@ -0,0 +1,21 @@
+~~Title: Efl.Gfx.Hint_Align_Right~~
+
+===== Description =====
+
+%%Use with %%[[:develop:api:efl:gfx:hint:property:hint_align|Efl.Gfx.Hint.hint_align]]%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:gfx:hint_align_right:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+const Efl.Gfx.Hint_Align_Right: double = 1.000000;
+
+
+===== C signature =====
+
+
+#define EFL_GFX_HINT_ALIGN_RIGHT 1.000000
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/hint_align_top.txt b/public_html/data/pages/develop/api/efl/gfx/hint_align_top.txt
new file mode 100644
index 00000000..bc83ff59
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/hint_align_top.txt
@@ -0,0 +1,21 @@
+~~Title: Efl.Gfx.Hint_Align_Top~~
+
+===== Description =====
+
+%%Use with %%[[:develop:api:efl:gfx:hint:property:hint_align|Efl.Gfx.Hint.hint_align]]%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:gfx:hint_align_top:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+const Efl.Gfx.Hint_Align_Top: double = 0.000000;
+
+
+===== C signature =====
+
+
+#define EFL_GFX_HINT_ALIGN_TOP 0.000000
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/hint_aspect.txt b/public_html/data/pages/develop/api/efl/gfx/hint_aspect.txt
new file mode 100644
index 00000000..f50e43c2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/hint_aspect.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Gfx.Hint_Aspect~~
+
+===== Description =====
+
+%%Aspect types/policies for scaling size hints.%%
+
+%%See also %%[[:develop:api:efl:gfx:hint:property:hint_aspect|Efl.Gfx.Hint.hint_aspect]]%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:gfx:hint_aspect:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:gfx:hint_aspect:fields&nouser&nolink&nodate}}
+
+ * **none** - %%No preference on either direction of the container for aspect ratio control.%%
+ * **neither** - %%Same effect as disabling aspect ratio preference%%
+ * **horizontal** - %%Use all horizontal container space to place an object, using the given aspect.%%
+ * **vertical** - %%Use all vertical container space to place an object, using the given aspect.%%
+ * **both** - %%Use all horizontal and vertical container spaces to place an object (never growing it out of those bounds), using the given aspect.%%
+
+===== Signature =====
+
+
+enum Efl.Gfx.Hint_Aspect {
+ none: 0,
+ neither: 1,
+ horizontal: 2,
+ vertical: 3,
+ both: 4
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_GFX_HINT_ASPECT_NONE = 0,
+ EFL_GFX_HINT_ASPECT_NEITHER = 1,
+ EFL_GFX_HINT_ASPECT_HORIZONTAL = 2,
+ EFL_GFX_HINT_ASPECT_VERTICAL = 3,
+ EFL_GFX_HINT_ASPECT_BOTH = 4
+} Efl_Gfx_Hint_Aspect;
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/hint_expand.txt b/public_html/data/pages/develop/api/efl/gfx/hint_expand.txt
new file mode 100644
index 00000000..056bce0e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/hint_expand.txt
@@ -0,0 +1,21 @@
+~~Title: Efl.Gfx.Hint_Expand~~
+
+===== Description =====
+
+%%Use with %%[[:develop:api:efl:gfx:hint:property:hint_weight|Efl.Gfx.Hint.hint_weight]]%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:gfx:hint_expand:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+const Efl.Gfx.Hint_Expand: double = 1.000000;
+
+
+===== C signature =====
+
+
+#define EFL_GFX_HINT_EXPAND 1.000000
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image.txt b/public_html/data/pages/develop/api/efl/gfx/image.txt
new file mode 100644
index 00000000..c098e83a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image.txt
@@ -0,0 +1,123 @@
+~~Title: Efl.Gfx.Image~~
+====== Efl.Gfx.Image (interface) ======
+
+===== Description =====
+
+%%This interface defines a set of common APIs which should be implemented by image objects.%%
+
+%%These APIs provide the ability to manipulate how images will be rendered, e.g., determining whether to allow upscaling and downscaling at render time, as well as functionality for detecting errors during the loading process.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:gfx:image:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:gfx:image:property:border_insets|border_insets]]** //**(get, set)**//\\
+> %%Dimensions of this image's border, a region that does not scale with the center area.%%
+
+void efl_gfx_image_border_insets_get(const Eo *obj, int *l, int *r, int *t, int *b);
+void efl_gfx_image_border_insets_set(Eo *obj, int l, int r, int t, int b);
+
+\\
+**[[:develop:api:efl:gfx:image:property:border_insets_scale|border_insets_scale]]** //**(get, set)**//\\
+> %%Scaling factor applied to the image borders.%%
+
+double efl_gfx_image_border_insets_scale_get(const Eo *obj);
+void efl_gfx_image_border_insets_scale_set(Eo *obj, double scale);
+
+\\
+**[[:develop:api:efl:gfx:image:property:can_downscale|can_downscale]]** //**(get, set)**//\\
+> %%If %%''true''%%, the image may be scaled to a smaller size. If %%''false''%%, the image will never be resized smaller than its native size.%%
+
+Eina_Bool efl_gfx_image_can_downscale_get(const Eo *obj);
+void efl_gfx_image_can_downscale_set(Eo *obj, Eina_Bool downscale);
+
+\\
+**[[:develop:api:efl:gfx:image:property:can_upscale|can_upscale]]** //**(get, set)**//\\
+> %%If %%''true''%%, the image may be scaled to a larger size. If %%''false''%%, the image will never be resized larger than its native size.%%
+
+Eina_Bool efl_gfx_image_can_upscale_get(const Eo *obj);
+void efl_gfx_image_can_upscale_set(Eo *obj, Eina_Bool upscale);
+
+\\
+**[[:develop:api:efl:gfx:image:property:center_fill_mode|center_fill_mode]]** //**(get, set)**//\\
+> %%Specifies how the center part of the object (not the borders) should be drawn when EFL is rendering it.%%
+
+Efl_Gfx_Center_Fill_Mode efl_gfx_image_center_fill_mode_get(const Eo *obj);
+void efl_gfx_image_center_fill_mode_set(Eo *obj, Efl_Gfx_Center_Fill_Mode fill);
+
+\\
+**[[:develop:api:efl:gfx:image:property:content_hint|content_hint]]** //**(get, set)**//\\
+> %%Content hint setting for the image. These hints might be used by EFL to enable optimizations.%%
+
+Efl_Gfx_Image_Content_Hint efl_gfx_image_content_hint_get(const Eo *obj);
+void efl_gfx_image_content_hint_set(Eo *obj, Efl_Gfx_Image_Content_Hint hint);
+
+\\
+**[[:develop:api:efl:gfx:image:property:content_region|content_region]]** //**(get)**//\\
+>
+
+Eina_Rect efl_gfx_image_content_region_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:gfx:image:property:image_load_error|image_load_error]]** //**(get)**//\\
+>
+
+Eina_Error efl_gfx_image_load_error_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:gfx:image:property:image_size|image_size]]** //**(get)**//\\
+>
+
+Eina_Size2D efl_gfx_image_size_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:gfx:image:property:ratio|ratio]]** //**(get)**//\\
+>
+
+double efl_gfx_image_ratio_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:gfx:image:property:scale_hint|scale_hint]]** //**(get, set)**//\\
+> %%The scale hint of a given image of the canvas.%%
+
+Efl_Gfx_Image_Scale_Hint efl_gfx_image_scale_hint_get(const Eo *obj);
+void efl_gfx_image_scale_hint_set(Eo *obj, Efl_Gfx_Image_Scale_Hint hint);
+
+\\
+**[[:develop:api:efl:gfx:image:property:scale_method|scale_method]]** //**(get, set)**//\\
+> %%Determine how the image is scaled at render time.%%
+
+Efl_Gfx_Image_Scale_Method efl_gfx_image_scale_method_get(const Eo *obj);
+void efl_gfx_image_scale_method_set(Eo *obj, Efl_Gfx_Image_Scale_Method scale_method);
+
+\\
+**[[:develop:api:efl:gfx:image:property:smooth_scale|smooth_scale]]** //**(get, set)**//\\
+> %%Whether to use high-quality image scaling algorithm for this image.%%
+
+Eina_Bool efl_gfx_image_smooth_scale_get(const Eo *obj);
+void efl_gfx_image_smooth_scale_set(Eo *obj, Eina_Bool smooth_scale);
+
+\\
+**[[:develop:api:efl:gfx:image:property:stretch_region|stretch_region]]** //**(get, set)**//\\
+> %%This property defines the stretchable pixels region of an image.%%
+
+void efl_gfx_image_stretch_region_get(const Eo *obj, Eina_Iterator **horizontal, Eina_Iterator **vertical);
+Eina_Error efl_gfx_image_stretch_region_set(Eo *obj, Eina_Iterator *horizontal, Eina_Iterator *vertical);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:gfx:image:event:image_preload_state_changed|image,preload_state,changed]]**\\
+> %%If %%''true''%%, image data has been preloaded and can be displayed. If %%''false''%%, the image data has been unloaded and can no longer be displayed.%%
+
+EFL_GFX_IMAGE_EVENT_IMAGE_PRELOAD_STATE_CHANGED(Eina_Bool)
+
+\\ **[[:develop:api:efl:gfx:image:event:image_resized|image,resized]]**\\
+> %%Image was resized (its pixel data). The event data is the image's new size.%%
+
+EFL_GFX_IMAGE_EVENT_IMAGE_RESIZED(Eina_Size2D)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/gfx/image/event/image_preload_state_changed.txt b/public_html/data/pages/develop/api/efl/gfx/image/event/image_preload_state_changed.txt
new file mode 100644
index 00000000..092b22da
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image/event/image_preload_state_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Gfx.Image: image,preload_state,changed~~
+
+===== Description =====
+
+%%If %%''true''%%, image data has been preloaded and can be displayed. If %%''false''%%, the image data has been unloaded and can no longer be displayed.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:gfx:image:event:image_preload_state_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+image,preload_state,changed: bool;
+
+
+===== C information =====
+
+
+EFL_GFX_IMAGE_EVENT_IMAGE_PRELOAD_STATE_CHANGED(Eina_Bool)
+
+
+===== C usage =====
+
+
+static void
+on_efl_gfx_image_event_image_preload_state_changed(void *data, const Efl_Event *event)
+{
+ Eina_Bool info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_GFX_IMAGE_EVENT_IMAGE_PRELOAD_STATE_CHANGED, on_efl_gfx_image_event_image_preload_state_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image/event/image_resized.txt b/public_html/data/pages/develop/api/efl/gfx/image/event/image_resized.txt
new file mode 100644
index 00000000..e81c8ee8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image/event/image_resized.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Gfx.Image: image,resized~~
+
+===== Description =====
+
+%%Image was resized (its pixel data). The event data is the image's new size.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:gfx:image:event:image_resized:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+image,resized: Eina.Size2D;
+
+
+===== C information =====
+
+
+EFL_GFX_IMAGE_EVENT_IMAGE_RESIZED(Eina_Size2D)
+
+
+===== C usage =====
+
+
+static void
+on_efl_gfx_image_event_image_resized(void *data, const Efl_Event *event)
+{
+ Eina_Size2D info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_GFX_IMAGE_EVENT_IMAGE_RESIZED, on_efl_gfx_image_event_image_resized, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image/property/border_insets.txt b/public_html/data/pages/develop/api/efl/gfx/image/property/border_insets.txt
new file mode 100644
index 00000000..9a342a9f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image/property/border_insets.txt
@@ -0,0 +1,61 @@
+~~Title: Efl.Gfx.Image.border_insets~~
+====== Efl.Gfx.Image.border_insets ======
+
+===== Description =====
+
+%%Dimensions of this image's border, a region that does not scale with the center area.%%
+
+%%When EFL renders an image, its source may be scaled to fit the size of the object. This function sets an area from the borders of the image inwards which is not to be scaled. This function is useful for making frames and for widget theming, where, for example, buttons may be of varying sizes, but their border size must remain constant.%%
+
+%%The units used for %%''l''%%, %%''r''%%, %%''t''%% and %%''b''%% are canvas units (pixels).%%
+
+
+@property border_insets @pure_virtual {
+ get {}
+ set {}
+ values {
+ l: int (0);
+ r: int (0);
+ t: int (0);
+ b: int (0);
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_image_border_insets_get(const Eo *obj, int *l, int *r, int *t, int *b);
+void efl_gfx_image_border_insets_set(Eo *obj, int l, int r, int t, int b);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:border_insets|Efl.Gfx.Image.border_insets]]
+ * [[:develop:api:efl:canvas:image_internal:property:border_insets|Efl.Canvas.Image_Internal.border_insets]]
+ * [[:develop:api:efl:ui:image:property:border_insets|Efl.Ui.Image.border_insets]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image/property/border_insets_scale.txt b/public_html/data/pages/develop/api/efl/gfx/image/property/border_insets_scale.txt
new file mode 100644
index 00000000..dbb1aa15
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image/property/border_insets_scale.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Gfx.Image.border_insets_scale~~
+====== Efl.Gfx.Image.border_insets_scale ======
+
+===== Description =====
+
+%%Scaling factor applied to the image borders.%%
+
+%%This value multiplies the size of the %%[[:develop:api:efl:gfx:image:property:border_insets|Efl.Gfx.Image.border_insets]]%% when scaling an object.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:gfx:image:property:border_insets_scale:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **scale** - %%The scale factor.%%
+
+===== Signature =====
+
+
+@property border_insets_scale @pure_virtual {
+ get {}
+ set {}
+ values {
+ scale: double (1.000000);
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_gfx_image_border_insets_scale_get(const Eo *obj);
+void efl_gfx_image_border_insets_scale_set(Eo *obj, double scale);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:border_insets_scale|Efl.Gfx.Image.border_insets_scale]]
+ * [[:develop:api:efl:canvas:image_internal:property:border_insets_scale|Efl.Canvas.Image_Internal.border_insets_scale]]
+ * [[:develop:api:efl:ui:image:property:border_insets_scale|Efl.Ui.Image.border_insets_scale]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image/property/can_downscale.txt b/public_html/data/pages/develop/api/efl/gfx/image/property/can_downscale.txt
new file mode 100644
index 00000000..70e0fdb6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image/property/can_downscale.txt
@@ -0,0 +1,38 @@
+~~Title: Efl.Gfx.Image.can_downscale~~
+====== Efl.Gfx.Image.can_downscale ======
+
+===== Description =====
+
+%%If %%''true''%%, the image may be scaled to a smaller size. If %%''false''%%, the image will never be resized smaller than its native size.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:gfx:image:property:can_downscale:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **downscale** - %%Whether to allow image downscaling.%%
+
+===== Signature =====
+
+
+@property can_downscale @pure_virtual {
+ get {}
+ set {}
+ values {
+ downscale: bool (true);
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_gfx_image_can_downscale_get(const Eo *obj);
+void efl_gfx_image_can_downscale_set(Eo *obj, Eina_Bool downscale);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:can_downscale|Efl.Gfx.Image.can_downscale]]
+ * [[:develop:api:efl:ui:image:property:can_downscale|Efl.Ui.Image.can_downscale]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image/property/can_upscale.txt b/public_html/data/pages/develop/api/efl/gfx/image/property/can_upscale.txt
new file mode 100644
index 00000000..a8d9daef
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image/property/can_upscale.txt
@@ -0,0 +1,38 @@
+~~Title: Efl.Gfx.Image.can_upscale~~
+====== Efl.Gfx.Image.can_upscale ======
+
+===== Description =====
+
+%%If %%''true''%%, the image may be scaled to a larger size. If %%''false''%%, the image will never be resized larger than its native size.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:gfx:image:property:can_upscale:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **upscale** - %%Whether to allow image upscaling.%%
+
+===== Signature =====
+
+
+@property can_upscale @pure_virtual {
+ get {}
+ set {}
+ values {
+ upscale: bool (true);
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_gfx_image_can_upscale_get(const Eo *obj);
+void efl_gfx_image_can_upscale_set(Eo *obj, Eina_Bool upscale);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:can_upscale|Efl.Gfx.Image.can_upscale]]
+ * [[:develop:api:efl:ui:image:property:can_upscale|Efl.Ui.Image.can_upscale]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image/property/center_fill_mode.txt b/public_html/data/pages/develop/api/efl/gfx/image/property/center_fill_mode.txt
new file mode 100644
index 00000000..6a7d2ab7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image/property/center_fill_mode.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Gfx.Image.center_fill_mode~~
+====== Efl.Gfx.Image.center_fill_mode ======
+
+===== Description =====
+
+%%Specifies how the center part of the object (not the borders) should be drawn when EFL is rendering it.%%
+
+%%This function sets how the center part of the image object's source image is to be drawn, which must be one of the values in %%[[:develop:api:efl:gfx:center_fill_mode|Efl.Gfx.Center_Fill_Mode]]%%. By center we mean the complementary part of that defined by %%[[:develop:api:efl:gfx:image:property:border_insets|Efl.Gfx.Image.border_insets.set]]%%. This is very useful for making frames and decorations. You would most probably also be using a filled image (as in %%[[:develop:api:efl:gfx:fill:property:fill_auto|Efl.Gfx.Fill.fill_auto]]%%) to use as a frame.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:gfx:image:property:center_fill_mode:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **fill** - %%Fill mode of the center region. The default behavior is to render and scale the center area, respecting its transparency.%%
+
+===== Signature =====
+
+
+@property center_fill_mode @pure_virtual {
+ get {}
+ set {}
+ values {
+ fill: Efl.Gfx.Center_Fill_Mode (Efl.Gfx.Center_Fill_Mode.default);
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Center_Fill_Mode efl_gfx_image_center_fill_mode_get(const Eo *obj);
+void efl_gfx_image_center_fill_mode_set(Eo *obj, Efl_Gfx_Center_Fill_Mode fill);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:center_fill_mode|Efl.Gfx.Image.center_fill_mode]]
+ * [[:develop:api:efl:canvas:image_internal:property:center_fill_mode|Efl.Canvas.Image_Internal.center_fill_mode]]
+ * [[:develop:api:efl:ui:image:property:center_fill_mode|Efl.Ui.Image.center_fill_mode]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image/property/content_hint.txt b/public_html/data/pages/develop/api/efl/gfx/image/property/content_hint.txt
new file mode 100644
index 00000000..3dd41570
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image/property/content_hint.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Gfx.Image.content_hint~~
+====== Efl.Gfx.Image.content_hint ======
+
+===== Description =====
+
+%%Content hint setting for the image. These hints might be used by EFL to enable optimizations.%%
+
+%%For example, if you're on the GL engine and your driver implementation supports it, setting this hint to %%[[:develop:api:efl:gfx:image_content_hint|Efl.Gfx.Image_Content_Hint.dynamic]]%% will make it need zero copies at texture upload time, which is an "expensive" operation.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:gfx:image:property:content_hint:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **hint** - %%Dynamic or static content hint.%%
+
+===== Signature =====
+
+
+@property content_hint @pure_virtual {
+ get {}
+ set {}
+ values {
+ hint: Efl.Gfx.Image_Content_Hint (Efl.Gfx.Image_Content_Hint.none);
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Image_Content_Hint efl_gfx_image_content_hint_get(const Eo *obj);
+void efl_gfx_image_content_hint_set(Eo *obj, Efl_Gfx_Image_Content_Hint hint);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:content_hint|Efl.Gfx.Image.content_hint]]
+ * [[:develop:api:efl:canvas:image_internal:property:content_hint|Efl.Canvas.Image_Internal.content_hint]]
+ * [[:develop:api:efl:ui:image:property:content_hint|Efl.Ui.Image.content_hint]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image/property/content_region.txt b/public_html/data/pages/develop/api/efl/gfx/image/property/content_region.txt
new file mode 100644
index 00000000..7cfb1e20
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image/property/content_region.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Gfx.Image.content_region~~
+====== Efl.Gfx.Image.content_region ======
+
+===== Values =====
+
+ * **region** - %%A rectangle inside the object boundary where content is expected. The default value is the image object's geometry with the %%[[:develop:api:efl:gfx:image:property:border_insets|Efl.Gfx.Image.border_insets]]%% values subtracted.%%
+
+
+\\ {{page>:develop:api-include:efl:gfx:image:property:content_region:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property content_region @pure_virtual {
+ get {}
+ values {
+ region: Eina.Rect;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Rect efl_gfx_image_content_region_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:content_region|Efl.Gfx.Image.content_region]]
+ * [[:develop:api:efl:canvas:image_internal:property:content_region|Efl.Canvas.Image_Internal.content_region]]
+ * [[:develop:api:efl:ui:image:property:content_region|Efl.Ui.Image.content_region]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image/property/image_load_error.txt b/public_html/data/pages/develop/api/efl/gfx/image/property/image_load_error.txt
new file mode 100644
index 00000000..06c59b61
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image/property/image_load_error.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Gfx.Image.image_load_error~~
+====== Efl.Gfx.Image.image_load_error ======
+
+===== Values =====
+
+ * **error** - %%The load error code. A value of $0 indicates no error.%%
+
+
+\\ {{page>:develop:api-include:efl:gfx:image:property:image_load_error:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property image_load_error @pure_virtual {
+ get {}
+ values {
+ error: Eina.Error;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_gfx_image_load_error_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:image_load_error|Efl.Gfx.Image.image_load_error]]
+ * [[:develop:api:efl:canvas:image_internal:property:image_load_error|Efl.Canvas.Image_Internal.image_load_error]]
+ * [[:develop:api:efl:ui:image:property:image_load_error|Efl.Ui.Image.image_load_error]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image/property/image_size.txt b/public_html/data/pages/develop/api/efl/gfx/image/property/image_size.txt
new file mode 100644
index 00000000..163dab9e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image/property/image_size.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Gfx.Image.image_size~~
+====== Efl.Gfx.Image.image_size ======
+
+===== Values =====
+
+ * **size** - %%The size in pixels. The default value is the size of the image's internal buffer.%%
+
+
+\\ {{page>:develop:api-include:efl:gfx:image:property:image_size:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property image_size @pure_virtual {
+ get {}
+ values {
+ size: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_image_size_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:image_size|Efl.Gfx.Image.image_size]]
+ * [[:develop:api:efl:canvas:image_internal:property:image_size|Efl.Canvas.Image_Internal.image_size]]
+ * [[:develop:api:efl:ui:image:property:image_size|Efl.Ui.Image.image_size]]
+ * [[:develop:api:efl:ui:image_zoomable:property:image_size|Efl.Ui.Image_Zoomable.image_size]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image/property/ratio.txt b/public_html/data/pages/develop/api/efl/gfx/image/property/ratio.txt
new file mode 100644
index 00000000..67933be8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image/property/ratio.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Gfx.Image.ratio~~
+====== Efl.Gfx.Image.ratio ======
+
+===== Values =====
+
+ * **ratio** - %%The image's ratio.%%
+
+
+\\ {{page>:develop:api-include:efl:gfx:image:property:ratio:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property ratio @pure_virtual {
+ get {}
+ values {
+ ratio: double (1.000000);
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_gfx_image_ratio_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:ratio|Efl.Gfx.Image.ratio]]
+ * [[:develop:api:efl:canvas:image_internal:property:ratio|Efl.Canvas.Image_Internal.ratio]]
+ * [[:develop:api:efl:canvas:video:property:ratio|Efl.Canvas.Video.ratio]]
+ * [[:develop:api:efl:ui:image:property:ratio|Efl.Ui.Image.ratio]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image/property/scale_hint.txt b/public_html/data/pages/develop/api/efl/gfx/image/property/scale_hint.txt
new file mode 100644
index 00000000..5553ea32
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image/property/scale_hint.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Gfx.Image.scale_hint~~
+====== Efl.Gfx.Image.scale_hint ======
+
+===== Description =====
+
+%%The scale hint of a given image of the canvas.%%
+
+%%The scale hint affects how EFL is to cache scaled versions of its original source image.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:gfx:image:property:scale_hint:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **hint** - %%Scalable or static size hint.%%
+
+===== Signature =====
+
+
+@property scale_hint @pure_virtual {
+ get {}
+ set {}
+ values {
+ hint: Efl.Gfx.Image_Scale_Hint (Efl.Gfx.Image_Scale_Hint.none);
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Image_Scale_Hint efl_gfx_image_scale_hint_get(const Eo *obj);
+void efl_gfx_image_scale_hint_set(Eo *obj, Efl_Gfx_Image_Scale_Hint hint);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:scale_hint|Efl.Gfx.Image.scale_hint]]
+ * [[:develop:api:efl:canvas:image_internal:property:scale_hint|Efl.Canvas.Image_Internal.scale_hint]]
+ * [[:develop:api:efl:ui:image:property:scale_hint|Efl.Ui.Image.scale_hint]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image/property/scale_method.txt b/public_html/data/pages/develop/api/efl/gfx/image/property/scale_method.txt
new file mode 100644
index 00000000..3ed23e7e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image/property/scale_method.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Gfx.Image.scale_method~~
+====== Efl.Gfx.Image.scale_method ======
+
+===== Description =====
+
+%%Determine how the image is scaled at render time.%%
+
+%%This allows more granular controls for how an image object should display its internal buffer. The underlying image data will not be modified.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:gfx:image:property:scale_method:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **scale_method** - %%Image scale type to use.%%
+
+===== Signature =====
+
+
+@property scale_method @pure_virtual {
+ get {}
+ set {}
+ values {
+ scale_method: Efl.Gfx.Image_Scale_Method (Efl.Gfx.Image_Scale_Method.none);
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Image_Scale_Method efl_gfx_image_scale_method_get(const Eo *obj);
+void efl_gfx_image_scale_method_set(Eo *obj, Efl_Gfx_Image_Scale_Method scale_method);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:scale_method|Efl.Gfx.Image.scale_method]]
+ * [[:develop:api:efl:ui:image:property:scale_method|Efl.Ui.Image.scale_method]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image/property/smooth_scale.txt b/public_html/data/pages/develop/api/efl/gfx/image/property/smooth_scale.txt
new file mode 100644
index 00000000..6ad9d065
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image/property/smooth_scale.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Gfx.Image.smooth_scale~~
+====== Efl.Gfx.Image.smooth_scale ======
+
+===== Description =====
+
+%%Whether to use high-quality image scaling algorithm for this image.%%
+
+%%When enabled, a higher quality image scaling algorithm is used when scaling images to sizes other than the source image's original one. This gives better results but is more computationally expensive.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:gfx:image:property:smooth_scale:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **smooth_scale** - %%Whether to use smooth scale or not.%%
+
+===== Signature =====
+
+
+@property smooth_scale @pure_virtual {
+ get {}
+ set {}
+ values {
+ smooth_scale: bool (true);
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_gfx_image_smooth_scale_get(const Eo *obj);
+void efl_gfx_image_smooth_scale_set(Eo *obj, Eina_Bool smooth_scale);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:smooth_scale|Efl.Gfx.Image.smooth_scale]]
+ * [[:develop:api:efl:canvas:image_internal:property:smooth_scale|Efl.Canvas.Image_Internal.smooth_scale]]
+ * [[:develop:api:efl:canvas:video:property:smooth_scale|Efl.Canvas.Video.smooth_scale]]
+ * [[:develop:api:efl:ui:image:property:smooth_scale|Efl.Ui.Image.smooth_scale]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image/property/stretch_region.txt b/public_html/data/pages/develop/api/efl/gfx/image/property/stretch_region.txt
new file mode 100644
index 00000000..b8527beb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image/property/stretch_region.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Gfx.Image.stretch_region~~
+====== Efl.Gfx.Image.stretch_region ======
+
+===== Description =====
+
+%%This property defines the stretchable pixels region of an image.%%
+
+%%When the regions are set by the user, the method will walk the iterators once and then destroy them. When the regions are retrieved by the user, it is his responsibility to destroy the iterators.. It will remember the information for the lifetime of the object. It will ignore all value of %%[[:develop:api:efl:gfx:image:property:border_insets|Efl.Gfx.Image.border_insets]]%%, %%[[:develop:api:efl:gfx:image:property:border_insets_scale|Efl.Gfx.Image.border_insets_scale]]%% and %%[[:develop:api:efl:gfx:image:property:center_fill_mode|Efl.Gfx.Image.center_fill_mode]]%% . To reset the object you can just pass %%''null''%% to both horizontal and vertical at the same time.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:gfx:image:property:stretch_region:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **horizontal** - %%Representation of areas that are stretchable in the image horizontal space.%%
+ * **vertical** - %%Representation of areas that are stretchable in the image vertical space.%%
+
+===== Signature =====
+
+
+@property stretch_region @pure_virtual {
+ get {}
+ set {
+ return: Eina.Error;
+ }
+ values {
+ horizontal: iterator (null);
+ vertical: iterator (null);
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_image_stretch_region_get(const Eo *obj, Eina_Iterator **horizontal, Eina_Iterator **vertical);
+Eina_Error efl_gfx_image_stretch_region_set(Eo *obj, Eina_Iterator *horizontal, Eina_Iterator *vertical);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:stretch_region|Efl.Gfx.Image.stretch_region]]
+ * [[:develop:api:efl:canvas:image_internal:property:stretch_region|Efl.Canvas.Image_Internal.stretch_region]]
+ * [[:develop:api:efl:ui:image:property:stretch_region|Efl.Ui.Image.stretch_region]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image_content_hint.txt b/public_html/data/pages/develop/api/efl/gfx/image_content_hint.txt
new file mode 100644
index 00000000..0e07d826
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image_content_hint.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Gfx.Image_Content_Hint~~
+
+===== Description =====
+
+%%How an image's data is to be treated by EFL, for optimization.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:gfx:image_content_hint:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:gfx:image_content_hint:fields&nouser&nolink&nodate}}
+
+ * **none** - %%No hint on the content (default).%%
+ * **dynamic** - %%The content will change over time.%%
+ * **static** - %%The content won't change over time.%%
+
+===== Signature =====
+
+
+enum Efl.Gfx.Image_Content_Hint {
+ none: 0,
+ dynamic: 1,
+ static: 2
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_GFX_IMAGE_CONTENT_HINT_NONE = 0,
+ EFL_GFX_IMAGE_CONTENT_HINT_DYNAMIC = 1,
+ EFL_GFX_IMAGE_CONTENT_HINT_STATIC = 2
+} Efl_Gfx_Image_Content_Hint;
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image_load_controller.txt b/public_html/data/pages/develop/api/efl/gfx/image_load_controller.txt
new file mode 100644
index 00000000..de97af46
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image_load_controller.txt
@@ -0,0 +1,76 @@
+~~Title: Efl.Gfx.Image_Load_Controller~~
+====== Efl.Gfx.Image_Load_Controller (interface) ======
+
+===== Description =====
+
+%%Common APIs for all loadable 2D images.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:gfx:image_load_controller:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:gfx:image_load_controller:method:load_async_cancel|load_async_cancel]]**\\
+> %%Cancel preloading an image object's image data in the background.%%
+
+void efl_gfx_image_load_controller_load_async_cancel(Eo *obj);
+
+\\
+**[[:develop:api:efl:gfx:image_load_controller:method:load_async_start|load_async_start]]**\\
+> %%Begin preloading an image object's image data in the background.%%
+
+void efl_gfx_image_load_controller_load_async_start(Eo *obj);
+
+\\
+**[[:develop:api:efl:gfx:image_load_controller:property:load_dpi|load_dpi]]** //**(get, set)**//\\
+> %%The DPI resolution of an image object's source image.%%
+
+double efl_gfx_image_load_controller_load_dpi_get(const Eo *obj);
+void efl_gfx_image_load_controller_load_dpi_set(Eo *obj, double dpi);
+
+\\
+**[[:develop:api:efl:gfx:image_load_controller:property:load_orientation|load_orientation]]** //**(get, set)**//\\
+> %%Defines whether the orientation information in the image file should be honored.%%
+
+Eina_Bool efl_gfx_image_load_controller_load_orientation_get(const Eo *obj);
+void efl_gfx_image_load_controller_load_orientation_set(Eo *obj, Eina_Bool enable);
+
+\\
+**[[:develop:api:efl:gfx:image_load_controller:property:load_region|load_region]]** //**(get, set)**//\\
+> %%Inform a given image object to load a selective region of its source image.%%
+
+Eina_Rect efl_gfx_image_load_controller_load_region_get(const Eo *obj);
+void efl_gfx_image_load_controller_load_region_set(Eo *obj, Eina_Rect region);
+
+\\
+**[[:develop:api:efl:gfx:image_load_controller:property:load_region_support|load_region_support]]** //**(get)**//\\
+>
+
+Eina_Bool efl_gfx_image_load_controller_load_region_support_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:gfx:image_load_controller:property:load_scale_down|load_scale_down]]** //**(get, set)**//\\
+> %%The scale down factor is a divider on the original image size.%%
+
+int efl_gfx_image_load_controller_load_scale_down_get(const Eo *obj);
+void efl_gfx_image_load_controller_load_scale_down_set(Eo *obj, int div);
+
+\\
+**[[:develop:api:efl:gfx:image_load_controller:property:load_size|load_size]]** //**(get, set)**//\\
+> %%The load size of an image.%%
+
+Eina_Size2D efl_gfx_image_load_controller_load_size_get(const Eo *obj);
+void efl_gfx_image_load_controller_load_size_set(Eo *obj, Eina_Size2D size);
+
+\\
+**[[:develop:api:efl:gfx:image_load_controller:property:load_skip_header|load_skip_header]]** //**(get, set)**//\\
+> %%Initial load should skip header check and leave it all to data load.%%
+
+Eina_Bool efl_gfx_image_load_controller_load_skip_header_get(const Eo *obj);
+void efl_gfx_image_load_controller_load_skip_header_set(Eo *obj, Eina_Bool skip);
+
+\\
+
+===== Events =====
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image_load_controller/method/load_async_cancel.txt b/public_html/data/pages/develop/api/efl/gfx/image_load_controller/method/load_async_cancel.txt
new file mode 100644
index 00000000..93c5ddf9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image_load_controller/method/load_async_cancel.txt
@@ -0,0 +1,30 @@
+~~Title: Efl.Gfx.Image_Load_Controller.load_async_cancel~~
+====== Efl.Gfx.Image_Load_Controller.load_async_cancel ======
+
+===== Description =====
+
+%%Cancel preloading an image object's image data in the background.%%
+
+%%The object should be left in a state where it has no image data. If cancel is called too late, the image will be kept in memory.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:gfx:image_load_controller:method:load_async_cancel:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+load_async_cancel @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_gfx_image_load_controller_load_async_cancel(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image_load_controller:method:load_async_cancel|Efl.Gfx.Image_Load_Controller.load_async_cancel]]
+ * [[:develop:api:efl:canvas:image:method:load_async_cancel|Efl.Canvas.Image.load_async_cancel]]
+ * [[:develop:api:efl:ui:image:method:load_async_cancel|Efl.Ui.Image.load_async_cancel]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image_load_controller/method/load_async_start.txt b/public_html/data/pages/develop/api/efl/gfx/image_load_controller/method/load_async_start.txt
new file mode 100644
index 00000000..925452e0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image_load_controller/method/load_async_start.txt
@@ -0,0 +1,30 @@
+~~Title: Efl.Gfx.Image_Load_Controller.load_async_start~~
+====== Efl.Gfx.Image_Load_Controller.load_async_start ======
+
+===== Description =====
+
+%%Begin preloading an image object's image data in the background.%%
+
+%%Once the background task is complete the event @[.load,done] will be emitted if loading succeeded, @[.load,error] otherwise.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:gfx:image_load_controller:method:load_async_start:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+load_async_start @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_gfx_image_load_controller_load_async_start(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image_load_controller:method:load_async_start|Efl.Gfx.Image_Load_Controller.load_async_start]]
+ * [[:develop:api:efl:canvas:image:method:load_async_start|Efl.Canvas.Image.load_async_start]]
+ * [[:develop:api:efl:ui:image:method:load_async_start|Efl.Ui.Image.load_async_start]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image_load_controller/property/load_dpi.txt b/public_html/data/pages/develop/api/efl/gfx/image_load_controller/property/load_dpi.txt
new file mode 100644
index 00000000..62b92afc
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image_load_controller/property/load_dpi.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Gfx.Image_Load_Controller.load_dpi~~
+====== Efl.Gfx.Image_Load_Controller.load_dpi ======
+
+===== Description =====
+
+%%The DPI resolution of an image object's source image.%%
+
+%%Most useful for the SVG image loader.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:gfx:image_load_controller:property:load_dpi:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **dpi** - %%The DPI resolution.%%
+
+===== Signature =====
+
+
+@property load_dpi @pure_virtual {
+ get {}
+ set {}
+ values {
+ dpi: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_gfx_image_load_controller_load_dpi_get(const Eo *obj);
+void efl_gfx_image_load_controller_load_dpi_set(Eo *obj, double dpi);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image_load_controller:property:load_dpi|Efl.Gfx.Image_Load_Controller.load_dpi]]
+ * [[:develop:api:efl:canvas:image:property:load_dpi|Efl.Canvas.Image.load_dpi]]
+ * [[:develop:api:efl:ui:image:property:load_dpi|Efl.Ui.Image.load_dpi]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image_load_controller/property/load_orientation.txt b/public_html/data/pages/develop/api/efl/gfx/image_load_controller/property/load_orientation.txt
new file mode 100644
index 00000000..b282e3ef
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image_load_controller/property/load_orientation.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Gfx.Image_Load_Controller.load_orientation~~
+====== Efl.Gfx.Image_Load_Controller.load_orientation ======
+
+===== Description =====
+
+%%Defines whether the orientation information in the image file should be honored.%%
+
+%%The orientation can for instance be set in the EXIF tags of a JPEG image. If this flag is %%''false''%%, then the orientation will be ignored at load time, otherwise the image will be loaded with the proper orientation.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:gfx:image_load_controller:property:load_orientation:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **enable** - %%%%''true''%% means that it should honor the orientation information.%%
+
+===== Signature =====
+
+
+@property load_orientation @pure_virtual {
+ get {}
+ set {}
+ values {
+ enable: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_gfx_image_load_controller_load_orientation_get(const Eo *obj);
+void efl_gfx_image_load_controller_load_orientation_set(Eo *obj, Eina_Bool enable);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image_load_controller:property:load_orientation|Efl.Gfx.Image_Load_Controller.load_orientation]]
+ * [[:develop:api:efl:canvas:image:property:load_orientation|Efl.Canvas.Image.load_orientation]]
+ * [[:develop:api:efl:ui:image:property:load_orientation|Efl.Ui.Image.load_orientation]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image_load_controller/property/load_region.txt b/public_html/data/pages/develop/api/efl/gfx/image_load_controller/property/load_region.txt
new file mode 100644
index 00000000..17ff86e1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image_load_controller/property/load_region.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Gfx.Image_Load_Controller.load_region~~
+====== Efl.Gfx.Image_Load_Controller.load_region ======
+
+===== Description =====
+
+%%Inform a given image object to load a selective region of its source image.%%
+
+%%This property is useful when one is not showing all of an image's area on its image object.%%
+
+
+@property load_region @pure_virtual {
+ get {}
+ set {}
+ values {
+ region: Eina.Rect;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Rect efl_gfx_image_load_controller_load_region_get(const Eo *obj);
+void efl_gfx_image_load_controller_load_region_set(Eo *obj, Eina_Rect region);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image_load_controller:property:load_region|Efl.Gfx.Image_Load_Controller.load_region]]
+ * [[:develop:api:efl:canvas:image:property:load_region|Efl.Canvas.Image.load_region]]
+ * [[:develop:api:efl:ui:image:property:load_region|Efl.Ui.Image.load_region]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image_load_controller/property/load_region_support.txt b/public_html/data/pages/develop/api/efl/gfx/image_load_controller/property/load_region_support.txt
new file mode 100644
index 00000000..c4bd65f4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image_load_controller/property/load_region_support.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Gfx.Image_Load_Controller.load_region_support~~
+====== Efl.Gfx.Image_Load_Controller.load_region_support ======
+
+===== Values =====
+
+ * **support** - %%%%''true''%% if region load of the image is supported, %%''false''%% otherwise.%%
+
+
+\\ {{page>:develop:api-include:efl:gfx:image_load_controller:property:load_region_support:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property load_region_support @pure_virtual {
+ get {}
+ values {
+ support: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_gfx_image_load_controller_load_region_support_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image_load_controller:property:load_region_support|Efl.Gfx.Image_Load_Controller.load_region_support]]
+ * [[:develop:api:efl:canvas:image:property:load_region_support|Efl.Canvas.Image.load_region_support]]
+ * [[:develop:api:efl:ui:image:property:load_region_support|Efl.Ui.Image.load_region_support]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image_load_controller/property/load_scale_down.txt b/public_html/data/pages/develop/api/efl/gfx/image_load_controller/property/load_scale_down.txt
new file mode 100644
index 00000000..a7c57de0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image_load_controller/property/load_scale_down.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Gfx.Image_Load_Controller.load_scale_down~~
+====== Efl.Gfx.Image_Load_Controller.load_scale_down ======
+
+===== Description =====
+
+%%The scale down factor is a divider on the original image size.%%
+
+%%Setting the scale down factor can reduce load time and memory usage at the cost of having a scaled down image in memory.%%
+
+%%This function sets the scale down factor of a given canvas image. Most useful for the SVG image loader but also applies to JPEG, PNG and BMP.%%
+
+%%Powers of two (2, 4, 8, ...) are best supported (especially with JPEG).%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:gfx:image_load_controller:property:load_scale_down:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **div** - %%The scale down dividing factor.%%
+
+===== Signature =====
+
+
+@property load_scale_down @pure_virtual {
+ get {}
+ set {}
+ values {
+ div: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_gfx_image_load_controller_load_scale_down_get(const Eo *obj);
+void efl_gfx_image_load_controller_load_scale_down_set(Eo *obj, int div);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image_load_controller:property:load_scale_down|Efl.Gfx.Image_Load_Controller.load_scale_down]]
+ * [[:develop:api:efl:canvas:image:property:load_scale_down|Efl.Canvas.Image.load_scale_down]]
+ * [[:develop:api:efl:ui:image:property:load_scale_down|Efl.Ui.Image.load_scale_down]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image_load_controller/property/load_size.txt b/public_html/data/pages/develop/api/efl/gfx/image_load_controller/property/load_size.txt
new file mode 100644
index 00000000..732b013d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image_load_controller/property/load_size.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Gfx.Image_Load_Controller.load_size~~
+====== Efl.Gfx.Image_Load_Controller.load_size ======
+
+===== Description =====
+
+%%The load size of an image.%%
+
+%%The image will be loaded into memory as if it was the specified size instead of its original size. This can save a lot of memory and is important for scalable types like SVG.%%
+
+%%EFL will try to load an image of the requested size but does not guarantee an exact match between the request and the loaded image dimensions.%%
+
+%%By default, the load size is not specified, so it is %%''0x0''%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:gfx:image_load_controller:property:load_size:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **size** - %%The image load size.%%
+
+===== Signature =====
+
+
+@property load_size @pure_virtual {
+ get {}
+ set {}
+ values {
+ size: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_image_load_controller_load_size_get(const Eo *obj);
+void efl_gfx_image_load_controller_load_size_set(Eo *obj, Eina_Size2D size);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image_load_controller:property:load_size|Efl.Gfx.Image_Load_Controller.load_size]]
+ * [[:develop:api:efl:canvas:video:property:load_size|Efl.Canvas.Video.load_size]]
+ * [[:develop:api:efl:canvas:image:property:load_size|Efl.Canvas.Image.load_size]]
+ * [[:develop:api:efl:ui:image:property:load_size|Efl.Ui.Image.load_size]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image_load_controller/property/load_skip_header.txt b/public_html/data/pages/develop/api/efl/gfx/image_load_controller/property/load_skip_header.txt
new file mode 100644
index 00000000..72ccd98c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image_load_controller/property/load_skip_header.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Gfx.Image_Load_Controller.load_skip_header~~
+====== Efl.Gfx.Image_Load_Controller.load_skip_header ======
+
+===== Description =====
+
+%%Initial load should skip header check and leave it all to data load.%%
+
+%%If this is %%''true''%%, then future loads of images will defer header loading to a preload stage and/or data load later on rather than at the start when the load begins (e.g. when file is set).%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:gfx:image_load_controller:property:load_skip_header:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **skip** - %%%%''true''%% if header is to be skipped.%%
+
+===== Signature =====
+
+
+@property load_skip_header @pure_virtual {
+ get {}
+ set {}
+ values {
+ skip: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_gfx_image_load_controller_load_skip_header_get(const Eo *obj);
+void efl_gfx_image_load_controller_load_skip_header_set(Eo *obj, Eina_Bool skip);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image_load_controller:property:load_skip_header|Efl.Gfx.Image_Load_Controller.load_skip_header]]
+ * [[:develop:api:efl:canvas:image:property:load_skip_header|Efl.Canvas.Image.load_skip_header]]
+ * [[:develop:api:efl:ui:image:property:load_skip_header|Efl.Ui.Image.load_skip_header]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image_orientable.txt b/public_html/data/pages/develop/api/efl/gfx/image_orientable.txt
new file mode 100644
index 00000000..aa4f6cce
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image_orientable.txt
@@ -0,0 +1,25 @@
+~~Title: Efl.Gfx.Image_Orientable~~
+====== Efl.Gfx.Image_Orientable (interface) ======
+
+===== Description =====
+
+%%Interface for images which can be rotated or flipped (mirrored).%%
+
+%%Compare with %%[[:develop:api:efl:ui:layout_orientable|Efl.Ui.Layout_Orientable]]%% which works for layout objects and does not include rotation.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:gfx:image_orientable:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:gfx:image_orientable:property:image_orientation|image_orientation]]** //**(get, set)**//\\
+> %%Control the orientation (rotation and flipping) of a visual object.%%
+
+Efl_Gfx_Image_Orientation efl_gfx_image_orientation_get(const Eo *obj);
+void efl_gfx_image_orientation_set(Eo *obj, Efl_Gfx_Image_Orientation dir);
+
+\\
+
+===== Events =====
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image_orientable/property/image_orientation.txt b/public_html/data/pages/develop/api/efl/gfx/image_orientable/property/image_orientation.txt
new file mode 100644
index 00000000..3999aef4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image_orientable/property/image_orientation.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Gfx.Image_Orientable.image_orientation~~
+====== Efl.Gfx.Image_Orientable.image_orientation ======
+
+===== Description =====
+
+%%Control the orientation (rotation and flipping) of a visual object.%%
+
+%%This can be used to set the rotation on an image or a window, for instance.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:gfx:image_orientable:property:image_orientation:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **dir** - %%The final orientation of the object.%%
+
+===== Signature =====
+
+
+@property image_orientation @pure_virtual {
+ get {}
+ set {}
+ values {
+ dir: Efl.Gfx.Image_Orientation (Efl.Gfx.Image_Orientation.none);
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Image_Orientation efl_gfx_image_orientation_get(const Eo *obj);
+void efl_gfx_image_orientation_set(Eo *obj, Efl_Gfx_Image_Orientation dir);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image_orientable:property:image_orientation|Efl.Gfx.Image_Orientable.image_orientation]]
+ * [[:develop:api:efl:canvas:image_internal:property:image_orientation|Efl.Canvas.Image_Internal.image_orientation]]
+ * [[:develop:api:efl:ui:image:property:image_orientation|Efl.Ui.Image.image_orientation]]
+ * [[:develop:api:efl:ui:image_zoomable:property:image_orientation|Efl.Ui.Image_Zoomable.image_orientation]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image_orientation.txt b/public_html/data/pages/develop/api/efl/gfx/image_orientation.txt
new file mode 100644
index 00000000..fa1afc49
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image_orientation.txt
@@ -0,0 +1,57 @@
+~~Title: Efl.Gfx.Image_Orientation~~
+
+===== Description =====
+
+%%An orientation type, to rotate and flip images.%%
+
+%%This is similar to EXIF's orientation. Directional values (%%''up''%%, %%''down''%%, %%''left''%%, %%''right''%%) indicate the final direction in which the top of the image will be facing (e.g. a picture of a house will have its roof pointing to the right if the %%''right''%% orientation is used). Flipping values (%%''flip_horizontal''%% and %%''flip_vertical''%%) can be additionally added to produce a mirroring in each axis. Not to be confused with %%[[:develop:api:efl:ui:layout_orientation|Efl.Ui.Layout_Orientation]]%% which is meant for widgets, rather than images and canvases. This enum is used to rotate images, videos and the like.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:gfx:image_orientation:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:gfx:image_orientation:fields&nouser&nolink&nodate}}
+
+ * **none** - %%Default, same as up, do not rotate.%%
+ * **up** - %%Orient up, do not rotate.%%
+ * **right** - %%Orient right, rotate 90 degrees clock-wise.%%
+ * **down** - %%Orient down, rotate 180 degrees.%%
+ * **left** - %%Orient left, rotate 270 degrees clock-wise.%%
+ * **rotation_bitmask** - %%Bitmask that can be used to isolate rotation values, that is, %%''none''%%, %%''up''%%, %%''down''%%, %%''left''%% and %%''right''%%.%%
+ * **flip_horizontal** - %%Mirror horizontally. Can be added to the other values.%%
+ * **flip_vertical** - %%Mirror vertically. Can be added to the other values.%%
+ * **flip_bitmask** - %%Bitmask that can be used to isolate flipping values, that is, %%''flip_vertical''%% and %%''flip_horizontal''%%.%%
+
+===== Signature =====
+
+
+enum Efl.Gfx.Image_Orientation {
+ none: 0,
+ up: 0,
+ right: 1,
+ down: 2,
+ left: 3,
+ rotation_bitmask: 3,
+ flip_horizontal: 4,
+ flip_vertical: 8,
+ flip_bitmask: 12
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_GFX_IMAGE_ORIENTATION_NONE = 0,
+ EFL_GFX_IMAGE_ORIENTATION_UP = 0,
+ EFL_GFX_IMAGE_ORIENTATION_RIGHT = 1,
+ EFL_GFX_IMAGE_ORIENTATION_DOWN = 2,
+ EFL_GFX_IMAGE_ORIENTATION_LEFT = 3,
+ EFL_GFX_IMAGE_ORIENTATION_ROTATION_BITMASK = 3,
+ EFL_GFX_IMAGE_ORIENTATION_FLIP_HORIZONTAL = 4,
+ EFL_GFX_IMAGE_ORIENTATION_FLIP_VERTICAL = 8,
+ EFL_GFX_IMAGE_ORIENTATION_FLIP_BITMASK = 12
+} Efl_Gfx_Image_Orientation;
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image_scale_hint.txt b/public_html/data/pages/develop/api/efl/gfx/image_scale_hint.txt
new file mode 100644
index 00000000..b2552d1f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image_scale_hint.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Gfx.Image_Scale_Hint~~
+
+===== Description =====
+
+%%How an image's data is to be treated by EFL, with regard to scaling cache.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:gfx:image_scale_hint:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:gfx:image_scale_hint:fields&nouser&nolink&nodate}}
+
+ * **none** - %%No hint on the scaling (default).%%
+ * **dynamic** - %%Image will be re-scaled over time, thus turning scaling cache OFF for its data.%%
+ * **static** - %%Image will not be re-scaled over time, thus turning scaling cache ON for its data.%%
+
+===== Signature =====
+
+
+enum Efl.Gfx.Image_Scale_Hint {
+ none: 0,
+ dynamic: 1,
+ static: 2
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_GFX_IMAGE_SCALE_HINT_NONE = 0,
+ EFL_GFX_IMAGE_SCALE_HINT_DYNAMIC = 1,
+ EFL_GFX_IMAGE_SCALE_HINT_STATIC = 2
+} Efl_Gfx_Image_Scale_Hint;
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image_scale_method.txt b/public_html/data/pages/develop/api/efl/gfx/image_scale_method.txt
new file mode 100644
index 00000000..1e5660dc
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image_scale_method.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Gfx.Image_Scale_Method~~
+
+===== Description =====
+
+%%Enumeration that defines scaling methods to be used when rendering an image.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:gfx:image_scale_method:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:gfx:image_scale_method:fields&nouser&nolink&nodate}}
+
+ * **none** - %%Use the image's natural size.%%
+ * **fill** - %%Scale the image so that it matches the object's area exactly. The image's aspect ratio might be changed.%%
+ * **fit** - %%Scale the image so that it fits completely inside the object's area while maintaining the aspect ratio. At least one of the dimensions of the image will be equal to the corresponding dimension of the object.%%
+ * **fit_width** - %%Scale the image so that it covers the entire object area horizontally while maintaining the aspect ratio. The image may become taller than the object.%%
+ * **fit_height** - %%Scale the image so that it covers the entire object area vertically while maintaining the aspect ratio. The image may become wider than the object.%%
+ * **expand** - %%Scale the image so that it covers the entire object area on one axis while maintaining the aspect ratio, preferring whichever axis is largest. The image may become larger than the object.%%
+ * **tile** - %%Tile image at its original size.%%
+
+===== Signature =====
+
+
+enum Efl.Gfx.Image_Scale_Method {
+ none: 0,
+ fill,
+ fit,
+ fit_width,
+ fit_height,
+ expand,
+ tile
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_GFX_IMAGE_SCALE_METHOD_NONE = 0,
+ EFL_GFX_IMAGE_SCALE_METHOD_FILL,
+ EFL_GFX_IMAGE_SCALE_METHOD_FIT,
+ EFL_GFX_IMAGE_SCALE_METHOD_FIT_WIDTH,
+ EFL_GFX_IMAGE_SCALE_METHOD_FIT_HEIGHT,
+ EFL_GFX_IMAGE_SCALE_METHOD_EXPAND,
+ EFL_GFX_IMAGE_SCALE_METHOD_TILE
+} Efl_Gfx_Image_Scale_Method;
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/image_stretch_region.txt b/public_html/data/pages/develop/api/efl/gfx/image_stretch_region.txt
new file mode 100644
index 00000000..fd996e00
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/image_stretch_region.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Gfx.Image_Stretch_Region~~
+
+===== Description =====
+
+%%This struct holds the description of a stretchable region in one dimension (vertical or horizontal). Used when scaling an image.%%
+
+%%%%''offset''%% + %%''length''%% should be smaller than image size in that dimension.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:gfx:image_stretch_region:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:gfx:image_stretch_region:fields&nouser&nolink&nodate}}
+
+ * **offset** - %%First pixel of the stretchable region, starting at 0.%%
+ * **length** - %%Length of the stretchable region in pixels.%%
+
+===== Signature =====
+
+
+struct Efl.Gfx.Image_Stretch_Region {
+ offset: uint;
+ length: uint;
+}
+
+
+===== C signature =====
+
+
+typedef struct _Efl_Gfx_Image_Stretch_Region {
+ unsigned int offset;
+ unsigned int length;
+} Efl_Gfx_Image_Stretch_Region;
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/join.txt b/public_html/data/pages/develop/api/efl/gfx/join.txt
new file mode 100644
index 00000000..458066ac
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/join.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Gfx.Join~~
+
+===== Description =====
+
+%%These values determine how two joining lines are rendered in a stroker. %%[[:develop:api:efl:gfx:shape:property:stroke_join|Efl.Gfx.Shape.stroke_join.set]]%%%%
+
+//Since 1.14//
+
+{{page>:develop:api-include:efl:gfx:join:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:gfx:join:fields&nouser&nolink&nodate}}
+
+ * **miter** - %%Used to render rounded line joins. Circular arcs are used to join two lines smoothly.%%
+ * **round** - %%Used to render beveled line joins. The outer corner of the joined lines is filled by enclosing the triangular region of the corner with a straight line between the outer corners of each stroke.%%
+ * **bevel** - %%Used to render mitered line joins. The intersection of the strokes is clipped at a line perpendicular to the bisector of the angle between the strokes, at the distance from the intersection of the segments equal to the product of the miter limit value and the border radius. This prevents long spikes being created.%%
+ * **last** - %%Sentinel value to indicate last enum field during iteration%%
+
+===== Signature =====
+
+
+enum Efl.Gfx.Join {
+ miter: 0,
+ round,
+ bevel,
+ last
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_GFX_JOIN_MITER = 0,
+ EFL_GFX_JOIN_ROUND,
+ EFL_GFX_JOIN_BEVEL,
+ EFL_GFX_JOIN_LAST
+} Efl_Gfx_Join;
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping.txt b/public_html/data/pages/develop/api/efl/gfx/mapping.txt
new file mode 100644
index 00000000..9c0edc69
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping.txt
@@ -0,0 +1,174 @@
+~~Title: Efl.Gfx.Mapping~~
+====== Efl.Gfx.Mapping (mixin) ======
+
+===== Description =====
+
+%%Texture UV mapping for all objects (rotation, perspective, 3d, ...).%%
+
+%%Evas allows different transformations to be applied to all kinds of objects. These are applied by means of UV mapping.%%
+
+%%With UV mapping, one maps points in the source object to a 3D space positioning at target. This allows rotation, perspective, scale and lots of other effects, depending on the map that is used.%%
+
+%%Each map point may carry a multiplier color. If properly calculated, these can do shading effects on the object, producing 3D effects.%%
+
+%%At the moment of writing, maps can only have 4 points (no more, no less).%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:gfx:mapping:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:gfx:mapping:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+>
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:gfx:mapping:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+>
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]**\\
+> %%Apply a lighting effect on the object.%%
+
+void efl_gfx_mapping_lighting_3d(Eo *obj, const Efl_Gfx_Entity *pivot, double lx, double ly, double lz, int lr, int lg, int lb, int ar, int ag, int ab);
+
+\\
+**[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]**\\
+> %%Apply a lighting effect to the object.%%
+
+void efl_gfx_mapping_lighting_3d_absolute(Eo *obj, double lx, double ly, double lz, int lr, int lg, int lb, int ar, int ag, int ab);
+
+\\
+**[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**//\\
+> %%Alpha flag for map rendering.%%
+
+Eina_Bool efl_gfx_mapping_alpha_get(const Eo *obj);
+void efl_gfx_mapping_alpha_set(Eo *obj, Eina_Bool alpha);
+
+\\
+**[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**//\\
+>
+
+Eina_Bool efl_gfx_mapping_clockwise_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**//\\
+> %%Color of a vertex in the map.%%
+
+void efl_gfx_mapping_color_get(const Eo *obj, int idx, int *r, int *g, int *b, int *a);
+void efl_gfx_mapping_color_set(Eo *obj, int idx, int r, int g, int b, int a);
+
+\\
+**[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**//\\
+> %%A point's absolute coordinate on the canvas.%%
+
+void efl_gfx_mapping_coord_absolute_get(const Eo *obj, int idx, double *x, double *y, double *z);
+void efl_gfx_mapping_coord_absolute_set(Eo *obj, int idx, double x, double y, double z);
+
+\\
+**[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]**\\
+> %%Read-only property indicating whether an object is mapped.%%
+
+Eina_Bool efl_gfx_mapping_has(Eo *obj);
+
+\\
+**[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**//\\
+> %%Number of points of a map.%%
+
+int efl_gfx_mapping_point_count_get(const Eo *obj);
+void efl_gfx_mapping_point_count_set(Eo *obj, int count);
+
+\\
+**[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]**\\
+> %%Resets the map transformation to its default state.%%
+
+void efl_gfx_mapping_reset(Eo *obj);
+
+\\
+**[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**//\\
+> %%Smoothing state for map rendering.%%
+
+Eina_Bool efl_gfx_mapping_smooth_get(const Eo *obj);
+void efl_gfx_mapping_smooth_set(Eo *obj, Eina_Bool smooth);
+
+\\
+**[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**//\\
+> %%Map point's U and V texture source point.%%
+
+void efl_gfx_mapping_uv_get(const Eo *obj, int idx, double *u, double *v);
+void efl_gfx_mapping_uv_set(Eo *obj, int idx, double u, double v);
+
+\\
+**[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]**\\
+> %%Apply a perspective transform to the map%%
+
+void efl_gfx_mapping_perspective_3d(Eo *obj, const Efl_Gfx_Entity *pivot, double px, double py, double z0, double foc);
+
+\\
+**[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]**\\
+> %%Apply a perspective transform to the map%%
+
+void efl_gfx_mapping_perspective_3d_absolute(Eo *obj, double px, double py, double z0, double foc);
+
+\\
+**[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]**\\
+> %%Apply a rotation to the object.%%
+
+void efl_gfx_mapping_rotate(Eo *obj, double degrees, const Efl_Gfx_Entity *pivot, double cx, double cy);
+
+\\
+**[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]**\\
+> %%Rotate the object around 3 axes in 3D.%%
+
+void efl_gfx_mapping_rotate_3d(Eo *obj, double dx, double dy, double dz, const Efl_Gfx_Entity *pivot, double cx, double cy, double cz);
+
+\\
+**[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]**\\
+> %%Rotate the object around 3 axes in 3D, using absolute coordinates.%%
+
+void efl_gfx_mapping_rotate_3d_absolute(Eo *obj, double dx, double dy, double dz, double cx, double cy, double cz);
+
+\\
+**[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]**\\
+> %%Apply a rotation to the object, using absolute coordinates.%%
+
+void efl_gfx_mapping_rotate_absolute(Eo *obj, double degrees, double cx, double cy);
+
+\\
+**[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]**\\
+> %%Rotate the object in 3D using a unit quaternion.%%
+
+void efl_gfx_mapping_rotate_quat(Eo *obj, double qx, double qy, double qz, double qw, const Efl_Gfx_Entity *pivot, double cx, double cy, double cz);
+
+\\
+**[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]**\\
+> %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%%
+
+void efl_gfx_mapping_rotate_quat_absolute(Eo *obj, double qx, double qy, double qz, double qw, double cx, double cy, double cz);
+
+\\
+**[[:develop:api:efl:gfx:mapping:method:translate|translate]]**\\
+> %%Apply a translation to the object using map.%%
+
+void efl_gfx_mapping_translate(Eo *obj, double dx, double dy, double dz);
+
+\\
+**[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]**\\
+> %%Apply a zoom to the object.%%
+
+void efl_gfx_mapping_zoom(Eo *obj, double zoomx, double zoomy, const Efl_Gfx_Entity *pivot, double cx, double cy);
+
+\\
+**[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]**\\
+> %%Apply a zoom to the object, using absolute coordinates.%%
+
+void efl_gfx_mapping_zoom_absolute(Eo *obj, double zoomx, double zoomy, double cx, double cy);
+
+\\
+
+===== Events =====
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping/method/constructor.txt b/public_html/data/pages/develop/api/efl/gfx/mapping/method/constructor.txt
new file mode 100644
index 00000000..5bca2035
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping/method/constructor.txt
@@ -0,0 +1,228 @@
+~~Title: Efl.Gfx.Mapping.constructor~~
+====== Efl.Gfx.Mapping.constructor ======
+
+===== Description =====
+
+No description supplied.
+{{page>:develop:api-include:efl:gfx:mapping:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:gfx:mapping:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping/method/destructor.txt b/public_html/data/pages/develop/api/efl/gfx/mapping/method/destructor.txt
new file mode 100644
index 00000000..1c7e197c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping/method/destructor.txt
@@ -0,0 +1,179 @@
+~~Title: Efl.Gfx.Mapping.destructor~~
+====== Efl.Gfx.Mapping.destructor ======
+
+===== Description =====
+
+No description supplied.
+{{page>:develop:api-include:efl:gfx:mapping:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:gfx:mapping:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping/method/lighting_3d.txt b/public_html/data/pages/develop/api/efl/gfx/mapping/method/lighting_3d.txt
new file mode 100644
index 00000000..2603b977
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping/method/lighting_3d.txt
@@ -0,0 +1,56 @@
+~~Title: Efl.Gfx.Mapping.lighting_3d~~
+====== Efl.Gfx.Mapping.lighting_3d ======
+
+===== Description =====
+
+%%Apply a lighting effect on the object.%%
+
+%%This is used to apply lighting calculations (from a single light source) to a given mapped object. The R, G and B values of each vertex will be modified to reflect the lighting based on the light point coordinates, the light color and the ambient color, and at what angle the map is facing the light source. A surface should have its points be declared in a clockwise fashion if the face is "facing" towards you (as opposed to away from you) as faces have a "logical" side for lighting.%%
+
+%%The coordinates are set relative to the given %%''pivot''%% object. If its geometry changes, then the absolute position of the rotation center will change accordingly. The Z position is absolute. If the %%''pivot''%% is %%''null''%% then this object will be its own pivot.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:mapping:method:lighting_3d:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+lighting_3d {
+ params {
+ @in pivot: const(Efl.Gfx.Entity);
+ @in lx: double;
+ @in ly: double;
+ @in lz: double;
+ @in lr: int;
+ @in lg: int;
+ @in lb: int;
+ @in ar: int;
+ @in ag: int;
+ @in ab: int;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_mapping_lighting_3d(Eo *obj, const Efl_Gfx_Entity *pivot, double lx, double ly, double lz, int lr, int lg, int lb, int ar, int ag, int ab);
+
+
+===== Parameters =====
+
+ * **pivot** //(in)// - %%A pivot object for the light point, can be %%''null''%%.%%
+ * **lx** //(in)// - %%X relative coordinate in space of light point.%%
+ * **ly** //(in)// - %%Y relative coordinate in space of light point.%%
+ * **lz** //(in)// - %%Z absolute coordinate in space of light point.%%
+ * **lr** //(in)// - %%Light red value (0 - 255).%%
+ * **lg** //(in)// - %%Light green value (0 - 255).%%
+ * **lb** //(in)// - %%Light blue value (0 - 255).%%
+ * **ar** //(in)// - %%Ambient color red value (0 - 255).%%
+ * **ag** //(in)// - %%Ambient color green value (0 - 255).%%
+ * **ab** //(in)// - %%Ambient color blue value (0 - 255).%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:mapping:method:lighting_3d|Efl.Gfx.Mapping.lighting_3d]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping/method/lighting_3d_absolute.txt b/public_html/data/pages/develop/api/efl/gfx/mapping/method/lighting_3d_absolute.txt
new file mode 100644
index 00000000..a4c23366
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping/method/lighting_3d_absolute.txt
@@ -0,0 +1,54 @@
+~~Title: Efl.Gfx.Mapping.lighting_3d_absolute~~
+====== Efl.Gfx.Mapping.lighting_3d_absolute ======
+
+===== Description =====
+
+%%Apply a lighting effect to the object.%%
+
+%%This is used to apply lighting calculations (from a single light source) to a given mapped object. The RGB values of each vertex will be modified to reflect the lighting based on the light point coordinates, the light color, the ambient color and at what angle the map is facing the light source. A surface should have its points be declared in a clockwise fashion if the face is "facing" towards you (as opposed to away from you) as faces have a "logical" side for lighting.%%
+
+%%The coordinates of the center point are given in absolute canvas coordinates. See also %%[[:develop:api:efl:gfx:mapping:method:lighting_3d|Efl.Gfx.Mapping.lighting_3d]]%% for a pivot-based lighting effect.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:mapping:method:lighting_3d_absolute:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+lighting_3d_absolute {
+ params {
+ @in lx: double;
+ @in ly: double;
+ @in lz: double;
+ @in lr: int;
+ @in lg: int;
+ @in lb: int;
+ @in ar: int;
+ @in ag: int;
+ @in ab: int;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_mapping_lighting_3d_absolute(Eo *obj, double lx, double ly, double lz, int lr, int lg, int lb, int ar, int ag, int ab);
+
+
+===== Parameters =====
+
+ * **lx** //(in)// - %%X absolute coordinate in pixels of the light point.%%
+ * **ly** //(in)// - %%y absolute coordinate in pixels of the light point.%%
+ * **lz** //(in)// - %%Z absolute coordinate in space of light point.%%
+ * **lr** //(in)// - %%Light red value (0 - 255).%%
+ * **lg** //(in)// - %%Light green value (0 - 255).%%
+ * **lb** //(in)// - %%Light blue value (0 - 255).%%
+ * **ar** //(in)// - %%Ambient color red value (0 - 255).%%
+ * **ag** //(in)// - %%Ambient color green value (0 - 255).%%
+ * **ab** //(in)// - %%Ambient color blue value (0 - 255).%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|Efl.Gfx.Mapping.lighting_3d_absolute]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping/method/mapping_has.txt b/public_html/data/pages/develop/api/efl/gfx/mapping/method/mapping_has.txt
new file mode 100644
index 00000000..fae8148c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping/method/mapping_has.txt
@@ -0,0 +1,30 @@
+~~Title: Efl.Gfx.Mapping.mapping_has~~
+====== Efl.Gfx.Mapping.mapping_has ======
+
+===== Description =====
+
+%%Read-only property indicating whether an object is mapped.%%
+
+%%This will be %%''true''%% if any transformation is applied to this object.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:mapping:method:mapping_has:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+mapping_has {
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_gfx_mapping_has(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:mapping:method:mapping_has|Efl.Gfx.Mapping.mapping_has]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping/method/mapping_reset.txt b/public_html/data/pages/develop/api/efl/gfx/mapping/method/mapping_reset.txt
new file mode 100644
index 00000000..e593b8fc
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping/method/mapping_reset.txt
@@ -0,0 +1,28 @@
+~~Title: Efl.Gfx.Mapping.mapping_reset~~
+====== Efl.Gfx.Mapping.mapping_reset ======
+
+===== Description =====
+
+%%Resets the map transformation to its default state.%%
+
+%%This will reset all transformations to identity, meaning the points' colors, positions and UV coordinates will be reset to their default values. %%[[:develop:api:efl:gfx:mapping:method:mapping_has|Efl.Gfx.Mapping.mapping_has]]%% will then return %%''false''%%. This function will not modify the values of %%[[:develop:api:efl:gfx:mapping:property:mapping_smooth|Efl.Gfx.Mapping.mapping_smooth]]%% or %%[[:develop:api:efl:gfx:mapping:property:mapping_alpha|Efl.Gfx.Mapping.mapping_alpha]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:mapping:method:mapping_reset:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+mapping_reset {}
+
+
+===== C signature =====
+
+
+void efl_gfx_mapping_reset(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:mapping:method:mapping_reset|Efl.Gfx.Mapping.mapping_reset]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping/method/perspective_3d.txt b/public_html/data/pages/develop/api/efl/gfx/mapping/method/perspective_3d.txt
new file mode 100644
index 00000000..9e1eddec
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping/method/perspective_3d.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Gfx.Mapping.perspective_3d~~
+====== Efl.Gfx.Mapping.perspective_3d ======
+
+===== Description =====
+
+%%Apply a perspective transform to the map%%
+
+%%This applies a given perspective (3D) to the map coordinates. X, Y and Z values are used. The px and py points specify the "infinite distance" point in the 3D conversion (where all lines converge to like when artists draw 3D by hand). The %%''z0''%% value specifies the z value at which there is a 1:1 mapping between spatial coordinates and screen coordinates. Any points on this z value will not have their X and Y values modified in the transform. Those further away (Z value higher) will shrink into the distance, and those under this value will expand and become bigger. The %%''foc''%% value determines the "focal length" of the camera. This is in reality the distance between the camera lens plane itself (at or closer than this rendering results are undefined) and the "z0" z value. This allows for some "depth" control and %%''foc''%% must be greater than 0.%%
+
+%%The coordinates are set relative to the given %%''pivot''%% object. If its geometry changes, then the absolute position of the rotation center will change accordingly. The Z position is absolute. If the %%''pivot''%% is %%''null''%% then this object will be its own pivot.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:mapping:method:perspective_3d:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+perspective_3d {
+ params {
+ @in pivot: const(Efl.Gfx.Entity);
+ @in px: double;
+ @in py: double;
+ @in z0: double;
+ @in foc: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_mapping_perspective_3d(Eo *obj, const Efl_Gfx_Entity *pivot, double px, double py, double z0, double foc);
+
+
+===== Parameters =====
+
+ * **pivot** //(in)// - %%A pivot object for the infinite point, can be %%''null''%%.%%
+ * **px** //(in)// - %%The perspective distance X relative coordinate.%%
+ * **py** //(in)// - %%The perspective distance Y relative coordinate.%%
+ * **z0** //(in)// - %%The "0" Z plane value.%%
+ * **foc** //(in)// - %%The focal distance, must be greater than 0.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:mapping:method:perspective_3d|Efl.Gfx.Mapping.perspective_3d]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping/method/perspective_3d_absolute.txt b/public_html/data/pages/develop/api/efl/gfx/mapping/method/perspective_3d_absolute.txt
new file mode 100644
index 00000000..37ffabb6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping/method/perspective_3d_absolute.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.Gfx.Mapping.perspective_3d_absolute~~
+====== Efl.Gfx.Mapping.perspective_3d_absolute ======
+
+===== Description =====
+
+%%Apply a perspective transform to the map%%
+
+%%This applies a given perspective (3D) to the map coordinates. X, Y and Z values are used. The px and py points specify the "infinite distance" point in the 3D conversion (where all lines converge to like when artists draw 3D by hand). The %%''z0''%% value specifies the z value at which there is a 1:1 mapping between spatial coordinates and screen coordinates. Any points on this z value will not have their X and Y values modified in the transform. Those further away (Z value higher) will shrink into the distance, and those less than this value will expand and become bigger. The %%''foc''%% value determines the "focal length" of the camera. This is in reality the distance between the camera lens plane itself (at or closer than this rendering results are undefined) and the "z0" z value. This allows for some "depth" control and %%''foc''%% must be greater than 0.%%
+
+%%The coordinates of the center point are given in absolute canvas coordinates. See also %%[[:develop:api:efl:gfx:mapping:method:perspective_3d|Efl.Gfx.Mapping.perspective_3d]]%% for a pivot-based perspective effect.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:mapping:method:perspective_3d_absolute:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+perspective_3d_absolute {
+ params {
+ @in px: double;
+ @in py: double;
+ @in z0: double;
+ @in foc: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_mapping_perspective_3d_absolute(Eo *obj, double px, double py, double z0, double foc);
+
+
+===== Parameters =====
+
+ * **px** //(in)// - %%The perspective distance X relative coordinate.%%
+ * **py** //(in)// - %%The perspective distance Y relative coordinate.%%
+ * **z0** //(in)// - %%The "0" Z plane value.%%
+ * **foc** //(in)// - %%The focal distance, must be greater than 0.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|Efl.Gfx.Mapping.perspective_3d_absolute]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping/method/rotate.txt b/public_html/data/pages/develop/api/efl/gfx/mapping/method/rotate.txt
new file mode 100644
index 00000000..214dc48e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping/method/rotate.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Gfx.Mapping.rotate~~
+====== Efl.Gfx.Mapping.rotate ======
+
+===== Description =====
+
+%%Apply a rotation to the object.%%
+
+%%This rotates the object clockwise by %%''degrees''%% degrees, around the center specified by the relative position (%%''cx''%%, %%''cy''%%) in the %%''pivot''%% object. If %%''pivot''%% is %%''null''%% then this object is used as its own pivot center. 360 degrees is a full rotation, equivalent to no rotation. Negative values for %%''degrees''%% will rotate clockwise by that amount.%%
+
+%%The coordinates are set relative to the given %%''pivot''%% object. If its geometry changes, then the absolute position of the rotation center will change accordingly.%%
+
+%%By default, the center is at (0.5, 0.5). 0.0 means left or top while 1.0 means right or bottom of the %%''pivot''%% object.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:mapping:method:rotate:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+rotate {
+ params {
+ @in degrees: double;
+ @in pivot: const(Efl.Gfx.Entity);
+ @in cx: double;
+ @in cy: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_mapping_rotate(Eo *obj, double degrees, const Efl_Gfx_Entity *pivot, double cx, double cy);
+
+
+===== Parameters =====
+
+ * **degrees** //(in)// - %%CCW rotation in degrees.%%
+ * **pivot** //(in)// - %%A pivot object for the center point, can be %%''null''%%.%%
+ * **cx** //(in)// - %%X relative coordinate of the center point.%%
+ * **cy** //(in)// - %%y relative coordinate of the center point.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:mapping:method:rotate|Efl.Gfx.Mapping.rotate]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping/method/rotate_3d.txt b/public_html/data/pages/develop/api/efl/gfx/mapping/method/rotate_3d.txt
new file mode 100644
index 00000000..41c74646
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping/method/rotate_3d.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Gfx.Mapping.rotate_3d~~
+====== Efl.Gfx.Mapping.rotate_3d ======
+
+===== Description =====
+
+%%Rotate the object around 3 axes in 3D.%%
+
+%%This will rotate in 3D, not just around the "Z" axis as is the case with %%[[:develop:api:efl:gfx:mapping:method:rotate|Efl.Gfx.Mapping.rotate]]%%. You can rotate around the X, Y and Z axes. The Z axis points "into" the screen with low values at the screen and higher values further away. The X axis runs from left to right on the screen and the Y axis from top to bottom.%%
+
+%%As with %%[[:develop:api:efl:gfx:mapping:method:rotate|Efl.Gfx.Mapping.rotate]]%%, you provide a pivot and center point to rotate around (in 3D). The Z coordinate of this center point is an absolute value, and not a relative one like X and Y, as objects are flat in a 2D space.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:mapping:method:rotate_3d:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+rotate_3d {
+ params {
+ @in dx: double;
+ @in dy: double;
+ @in dz: double;
+ @in pivot: const(Efl.Gfx.Entity);
+ @in cx: double;
+ @in cy: double;
+ @in cz: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_mapping_rotate_3d(Eo *obj, double dx, double dy, double dz, const Efl_Gfx_Entity *pivot, double cx, double cy, double cz);
+
+
+===== Parameters =====
+
+ * **dx** //(in)// - %%Rotation in degrees around X axis (0 to 360).%%
+ * **dy** //(in)// - %%Rotation in degrees around Y axis (0 to 360).%%
+ * **dz** //(in)// - %%Rotation in degrees around Z axis (0 to 360).%%
+ * **pivot** //(in)// - %%A pivot object for the center point, can be %%''null''%%.%%
+ * **cx** //(in)// - %%X relative coordinate of the center point.%%
+ * **cy** //(in)// - %%y relative coordinate of the center point.%%
+ * **cz** //(in)// - %%Z absolute coordinate of the center point.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:mapping:method:rotate_3d|Efl.Gfx.Mapping.rotate_3d]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping/method/rotate_3d_absolute.txt b/public_html/data/pages/develop/api/efl/gfx/mapping/method/rotate_3d_absolute.txt
new file mode 100644
index 00000000..359c1e72
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping/method/rotate_3d_absolute.txt
@@ -0,0 +1,48 @@
+~~Title: Efl.Gfx.Mapping.rotate_3d_absolute~~
+====== Efl.Gfx.Mapping.rotate_3d_absolute ======
+
+===== Description =====
+
+%%Rotate the object around 3 axes in 3D, using absolute coordinates.%%
+
+%%This will rotate in 3D and not just around the "Z" axis as the case with %%[[:develop:api:efl:gfx:mapping:method:rotate|Efl.Gfx.Mapping.rotate]]%%. This will rotate around the X, Y and Z axes. The Z axis points "into" the screen with low values at the screen and higher values further away. The X axis runs from left to right on the screen and the Y axis from top to bottom.%%
+
+%%The coordinates of the center point are given in absolute canvas coordinates. See also %%[[:develop:api:efl:gfx:mapping:method:rotate_3d|Efl.Gfx.Mapping.rotate_3d]]%% for a pivot-based 3D rotation.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:mapping:method:rotate_3d_absolute:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+rotate_3d_absolute {
+ params {
+ @in dx: double;
+ @in dy: double;
+ @in dz: double;
+ @in cx: double;
+ @in cy: double;
+ @in cz: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_mapping_rotate_3d_absolute(Eo *obj, double dx, double dy, double dz, double cx, double cy, double cz);
+
+
+===== Parameters =====
+
+ * **dx** //(in)// - %%Rotation in degrees around X axis (0 to 360).%%
+ * **dy** //(in)// - %%Rotation in degrees around Y axis (0 to 360).%%
+ * **dz** //(in)// - %%Rotation in degrees around Z axis (0 to 360).%%
+ * **cx** //(in)// - %%X absolute coordinate in pixels of the center point.%%
+ * **cy** //(in)// - %%y absolute coordinate in pixels of the center point.%%
+ * **cz** //(in)// - %%Z absolute coordinate of the center point.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|Efl.Gfx.Mapping.rotate_3d_absolute]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping/method/rotate_absolute.txt b/public_html/data/pages/develop/api/efl/gfx/mapping/method/rotate_absolute.txt
new file mode 100644
index 00000000..ce7082b8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping/method/rotate_absolute.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Gfx.Mapping.rotate_absolute~~
+====== Efl.Gfx.Mapping.rotate_absolute ======
+
+===== Description =====
+
+%%Apply a rotation to the object, using absolute coordinates.%%
+
+%%This rotates the object clockwise by %%''degrees''%% degrees, around the center specified by the relative position (%%''cx''%%, %%''cy''%%) in the %%''pivot''%% object. If %%''pivot''%% is %%''null''%% then this object is used as its own pivot center. 360 degrees is a full rotation, equivalent to no rotation. Negative values for %%''degrees''%% will rotate clockwise by that amount.%%
+
+%%The given coordinates are absolute values in pixels. See also %%[[:develop:api:efl:gfx:mapping:method:rotate|Efl.Gfx.Mapping.rotate]]%% for a relative coordinate version.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:mapping:method:rotate_absolute:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+rotate_absolute {
+ params {
+ @in degrees: double;
+ @in cx: double;
+ @in cy: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_mapping_rotate_absolute(Eo *obj, double degrees, double cx, double cy);
+
+
+===== Parameters =====
+
+ * **degrees** //(in)// - %%CCW rotation in degrees.%%
+ * **cx** //(in)// - %%X absolute coordinate in pixels of the center point.%%
+ * **cy** //(in)// - %%y absolute coordinate in pixels of the center point.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:mapping:method:rotate_absolute|Efl.Gfx.Mapping.rotate_absolute]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping/method/rotate_quat.txt b/public_html/data/pages/develop/api/efl/gfx/mapping/method/rotate_quat.txt
new file mode 100644
index 00000000..357e439f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping/method/rotate_quat.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Gfx.Mapping.rotate_quat~~
+====== Efl.Gfx.Mapping.rotate_quat ======
+
+===== Description =====
+
+%%Rotate the object in 3D using a unit quaternion.%%
+
+%%This is similar to %%[[:develop:api:efl:gfx:mapping:method:rotate_3d|Efl.Gfx.Mapping.rotate_3d]]%% but uses a unit quaternion (also known as versor) rather than a direct angle-based rotation around a center point. Use this to avoid gimbal locks.%%
+
+%%As with %%[[:develop:api:efl:gfx:mapping:method:rotate|Efl.Gfx.Mapping.rotate]]%%, you provide a pivot and center point to rotate around (in 3D). The Z coordinate of this center point is an absolute value, and not a relative one like X and Y, as objects are flat in a 2D space.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:mapping:method:rotate_quat:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+rotate_quat {
+ params {
+ @in qx: double;
+ @in qy: double;
+ @in qz: double;
+ @in qw: double;
+ @in pivot: const(Efl.Gfx.Entity);
+ @in cx: double;
+ @in cy: double;
+ @in cz: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_mapping_rotate_quat(Eo *obj, double qx, double qy, double qz, double qw, const Efl_Gfx_Entity *pivot, double cx, double cy, double cz);
+
+
+===== Parameters =====
+
+ * **qx** //(in)// - %%The x component of the imaginary part of the quaternion.%%
+ * **qy** //(in)// - %%The y component of the imaginary part of the quaternion.%%
+ * **qz** //(in)// - %%The z component of the imaginary part of the quaternion.%%
+ * **qw** //(in)// - %%The w component of the real part of the quaternion.%%
+ * **pivot** //(in)// - %%A pivot object for the center point, can be %%''null''%%.%%
+ * **cx** //(in)// - %%X relative coordinate of the center point.%%
+ * **cy** //(in)// - %%y relative coordinate of the center point.%%
+ * **cz** //(in)// - %%Z absolute coordinate of the center point.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:mapping:method:rotate_quat|Efl.Gfx.Mapping.rotate_quat]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping/method/rotate_quat_absolute.txt b/public_html/data/pages/develop/api/efl/gfx/mapping/method/rotate_quat_absolute.txt
new file mode 100644
index 00000000..011898f4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping/method/rotate_quat_absolute.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Gfx.Mapping.rotate_quat_absolute~~
+====== Efl.Gfx.Mapping.rotate_quat_absolute ======
+
+===== Description =====
+
+%%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%%
+
+%%This is similar to %%[[:develop:api:efl:gfx:mapping:method:rotate_3d|Efl.Gfx.Mapping.rotate_3d]]%% but uses a unit quaternion (also known as versor) rather than a direct angle-based rotation around a center point. Use this to avoid gimbal locks.%%
+
+%%The coordinates of the center point are given in absolute canvas coordinates. See also %%[[:develop:api:efl:gfx:mapping:method:rotate_quat|Efl.Gfx.Mapping.rotate_quat]]%% for a pivot-based 3D rotation.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:mapping:method:rotate_quat_absolute:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+rotate_quat_absolute {
+ params {
+ @in qx: double;
+ @in qy: double;
+ @in qz: double;
+ @in qw: double;
+ @in cx: double;
+ @in cy: double;
+ @in cz: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_mapping_rotate_quat_absolute(Eo *obj, double qx, double qy, double qz, double qw, double cx, double cy, double cz);
+
+
+===== Parameters =====
+
+ * **qx** //(in)// - %%The x component of the imaginary part of the quaternion.%%
+ * **qy** //(in)// - %%The y component of the imaginary part of the quaternion.%%
+ * **qz** //(in)// - %%The z component of the imaginary part of the quaternion.%%
+ * **qw** //(in)// - %%The w component of the real part of the quaternion.%%
+ * **cx** //(in)// - %%X absolute coordinate in pixels of the center point.%%
+ * **cy** //(in)// - %%y absolute coordinate in pixels of the center point.%%
+ * **cz** //(in)// - %%Z absolute coordinate of the center point.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|Efl.Gfx.Mapping.rotate_quat_absolute]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping/method/translate.txt b/public_html/data/pages/develop/api/efl/gfx/mapping/method/translate.txt
new file mode 100644
index 00000000..f2a46cdb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping/method/translate.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Gfx.Mapping.translate~~
+====== Efl.Gfx.Mapping.translate ======
+
+===== Description =====
+
+%%Apply a translation to the object using map.%%
+
+%%This does not change the real geometry of the object but will affect its visible position.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:mapping:method:translate:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+translate {
+ params {
+ @in dx: double;
+ @in dy: double;
+ @in dz: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_mapping_translate(Eo *obj, double dx, double dy, double dz);
+
+
+===== Parameters =====
+
+ * **dx** //(in)// - %%Distance in pixels along the X axis.%%
+ * **dy** //(in)// - %%Distance in pixels along the Y axis.%%
+ * **dz** //(in)// - %%Distance in pixels along the Z axis.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:mapping:method:translate|Efl.Gfx.Mapping.translate]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping/method/zoom.txt b/public_html/data/pages/develop/api/efl/gfx/mapping/method/zoom.txt
new file mode 100644
index 00000000..586c7962
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping/method/zoom.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Gfx.Mapping.zoom~~
+====== Efl.Gfx.Mapping.zoom ======
+
+===== Description =====
+
+%%Apply a zoom to the object.%%
+
+%%This zooms the points of the map from a center point. That center is defined by %%''cx''%% and %%''cy''%%. The %%''zoomx''%% and %%''zoomy''%% parameters specify how much to zoom in the X and Y direction respectively. A value of 1.0 means "don't zoom". 2.0 means "double the size". 0.5 is "half the size" etc.%%
+
+%%By default, the center is at (0.5, 0.5). 0.0 means left or top while 1.0 means right or bottom.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:mapping:method:zoom:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+zoom {
+ params {
+ @in zoomx: double;
+ @in zoomy: double;
+ @in pivot: const(Efl.Gfx.Entity);
+ @in cx: double;
+ @in cy: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_mapping_zoom(Eo *obj, double zoomx, double zoomy, const Efl_Gfx_Entity *pivot, double cx, double cy);
+
+
+===== Parameters =====
+
+ * **zoomx** //(in)// - %%Zoom in X direction%%
+ * **zoomy** //(in)// - %%Zoom in Y direction%%
+ * **pivot** //(in)// - %%A pivot object for the center point, can be %%''null''%%.%%
+ * **cx** //(in)// - %%X relative coordinate of the center point.%%
+ * **cy** //(in)// - %%y relative coordinate of the center point.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:mapping:method:zoom|Efl.Gfx.Mapping.zoom]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping/method/zoom_absolute.txt b/public_html/data/pages/develop/api/efl/gfx/mapping/method/zoom_absolute.txt
new file mode 100644
index 00000000..4dcd0cfe
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping/method/zoom_absolute.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.Gfx.Mapping.zoom_absolute~~
+====== Efl.Gfx.Mapping.zoom_absolute ======
+
+===== Description =====
+
+%%Apply a zoom to the object, using absolute coordinates.%%
+
+%%This zooms the points of the map from a center point. That center is defined by %%''cx''%% and %%''cy''%%. The %%''zoomx''%% and %%''zoomy''%% parameters specify how much to zoom in the X and Y direction respectively. A value of 1.0 means "don't zoom". 2.0 means "double the size". 0.5 is "half the size" etc.%%
+
+%%The coordinates of the center point are given in absolute canvas coordinates. See also %%[[:develop:api:efl:gfx:mapping:method:zoom|Efl.Gfx.Mapping.zoom]]%% for a pivot-based zoom.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:mapping:method:zoom_absolute:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+zoom_absolute {
+ params {
+ @in zoomx: double;
+ @in zoomy: double;
+ @in cx: double;
+ @in cy: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_mapping_zoom_absolute(Eo *obj, double zoomx, double zoomy, double cx, double cy);
+
+
+===== Parameters =====
+
+ * **zoomx** //(in)// - %%Zoom in X direction%%
+ * **zoomy** //(in)// - %%Zoom in Y direction%%
+ * **cx** //(in)// - %%X absolute coordinate in pixels of the center point.%%
+ * **cy** //(in)// - %%y absolute coordinate in pixels of the center point.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:mapping:method:zoom_absolute|Efl.Gfx.Mapping.zoom_absolute]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping/property/mapping_alpha.txt b/public_html/data/pages/develop/api/efl/gfx/mapping/property/mapping_alpha.txt
new file mode 100644
index 00000000..58680ce5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping/property/mapping_alpha.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Gfx.Mapping.mapping_alpha~~
+====== Efl.Gfx.Mapping.mapping_alpha ======
+
+===== Description =====
+
+%%Alpha flag for map rendering.%%
+
+%%This sets alpha flag for map rendering. If the object is a type that has its own alpha settings, then this will take precedence. Only image objects support this currently (%%[[:develop:api:efl:canvas:image|Efl.Canvas.Image]]%% and its friends). Setting this to off stops alpha blending of the map area, and is useful if you know the object and/or all sub-objects is 100% solid.%%
+
+%%Note that this may conflict with %%[[:develop:api:efl:gfx:mapping:property:mapping_smooth|Efl.Gfx.Mapping.mapping_smooth]]%% depending on which algorithm is used for anti-aliasing.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:mapping:property:mapping_alpha:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **alpha** - %%%%''true''%% by default.%%
+
+===== Signature =====
+
+
+@property mapping_alpha {
+ get {}
+ set {}
+ values {
+ alpha: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_gfx_mapping_alpha_get(const Eo *obj);
+void efl_gfx_mapping_alpha_set(Eo *obj, Eina_Bool alpha);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:mapping:property:mapping_alpha|Efl.Gfx.Mapping.mapping_alpha]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping/property/mapping_clockwise.txt b/public_html/data/pages/develop/api/efl/gfx/mapping/property/mapping_clockwise.txt
new file mode 100644
index 00000000..ecebd15e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping/property/mapping_clockwise.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Gfx.Mapping.mapping_clockwise~~
+====== Efl.Gfx.Mapping.mapping_clockwise ======
+
+===== Values =====
+
+ * **cw** - %%%%''true''%% if clockwise, %%''false''%% if counter clockwise%%
+
+
+\\ {{page>:develop:api-include:efl:gfx:mapping:property:mapping_clockwise:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property mapping_clockwise {
+ get {}
+ values {
+ cw: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_gfx_mapping_clockwise_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:mapping:property:mapping_clockwise|Efl.Gfx.Mapping.mapping_clockwise]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping/property/mapping_color.txt b/public_html/data/pages/develop/api/efl/gfx/mapping/property/mapping_color.txt
new file mode 100644
index 00000000..26c31e03
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping/property/mapping_color.txt
@@ -0,0 +1,53 @@
+~~Title: Efl.Gfx.Mapping.mapping_color~~
+====== Efl.Gfx.Mapping.mapping_color ======
+
+===== Description =====
+
+%%Color of a vertex in the map.%%
+
+%%This sets the color of the vertex in the map. Colors will be linearly interpolated between vertex points through the map. Color will multiply the "texture" pixels (like GL_MODULATE in OpenGL). The default color of a vertex in a map is white solid (255, 255, 255, 255) which means it will have no affect on modifying the texture pixels.%%
+
+%%The color values must be premultiplied (ie. %%''a''%% >= {%%''r''%%, %%''g''%%, %%''b''%%}).%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:mapping:property:mapping_color:description&nouser&nolink&nodate}}
+
+===== Keys =====
+
+ * **idx** - %%ID of the point, from 0 to 3 (included). -1 can be used to set the color for all points, but it is invalid for get().%%
+===== Values =====
+
+ * **r** - %%Red (0 - 255)%%
+ * **g** - %%Green (0 - 255)%%
+ * **b** - %%Blue (0 - 255)%%
+ * **a** - %%Alpha (0 - 255)%%
+
+===== Signature =====
+
+
+@property mapping_color {
+ get {}
+ set {}
+ keys {
+ idx: int;
+ }
+ values {
+ r: int;
+ g: int;
+ b: int;
+ a: int;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_mapping_color_get(const Eo *obj, int idx, int *r, int *g, int *b, int *a);
+void efl_gfx_mapping_color_set(Eo *obj, int idx, int r, int g, int b, int a);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:mapping:property:mapping_color|Efl.Gfx.Mapping.mapping_color]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping/property/mapping_coord_absolute.txt b/public_html/data/pages/develop/api/efl/gfx/mapping/property/mapping_coord_absolute.txt
new file mode 100644
index 00000000..efb22fc9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping/property/mapping_coord_absolute.txt
@@ -0,0 +1,55 @@
+~~Title: Efl.Gfx.Mapping.mapping_coord_absolute~~
+====== Efl.Gfx.Mapping.mapping_coord_absolute ======
+
+===== Description =====
+
+%%A point's absolute coordinate on the canvas.%%
+
+%%This sets/gets the fixed point's coordinate in the map. Note that points describe the outline of a quadrangle and are ordered either clockwise or counter-clockwise. Try to keep your quadrangles concave and non-complex. Though these polygon modes may work, they may not render a desired set of output. The quadrangle will use points 0 and 1 , 1 and 2, 2 and 3, and 3 and 0 to describe the edges of the quadrangle.%%
+
+%%The X and Y and Z coordinates are in canvas units. Z is optional and may or may not be honored in drawing. Z is a hint and does not affect the X and Y rendered coordinates. It may be used for calculating fills with perspective correct rendering.%%
+
+%%Remember all coordinates are canvas global ones as with move and resize in the canvas.%%
+
+%%This property can be read to get the 4 points positions on the canvas, or set to manually place them.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:mapping:property:mapping_coord_absolute:description&nouser&nolink&nodate}}
+
+===== Keys =====
+
+ * **idx** - %%ID of the point, from 0 to 3 (included).%%
+===== Values =====
+
+ * **x** - %%Point X coordinate in absolute pixel coordinates.%%
+ * **y** - %%Point Y coordinate in absolute pixel coordinates.%%
+ * **z** - %%Point Z coordinate hint (pre-perspective transform).%%
+
+===== Signature =====
+
+
+@property mapping_coord_absolute {
+ get {}
+ set {}
+ keys {
+ idx: int;
+ }
+ values {
+ x: double;
+ y: double;
+ z: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_mapping_coord_absolute_get(const Eo *obj, int idx, double *x, double *y, double *z);
+void efl_gfx_mapping_coord_absolute_set(Eo *obj, int idx, double x, double y, double z);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|Efl.Gfx.Mapping.mapping_coord_absolute]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping/property/mapping_point_count.txt b/public_html/data/pages/develop/api/efl/gfx/mapping/property/mapping_point_count.txt
new file mode 100644
index 00000000..3ba3c711
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping/property/mapping_point_count.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Gfx.Mapping.mapping_point_count~~
+====== Efl.Gfx.Mapping.mapping_point_count ======
+
+===== Description =====
+
+%%Number of points of a map.%%
+
+%%This sets the number of points of map. Currently, the number of points must be multiples of 4.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:mapping:property:mapping_point_count:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **count** - %%The number of points of map%%
+
+===== Signature =====
+
+
+@property mapping_point_count {
+ get {}
+ set {}
+ values {
+ count: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_gfx_mapping_point_count_get(const Eo *obj);
+void efl_gfx_mapping_point_count_set(Eo *obj, int count);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:mapping:property:mapping_point_count|Efl.Gfx.Mapping.mapping_point_count]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping/property/mapping_smooth.txt b/public_html/data/pages/develop/api/efl/gfx/mapping/property/mapping_smooth.txt
new file mode 100644
index 00000000..14041976
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping/property/mapping_smooth.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Gfx.Mapping.mapping_smooth~~
+====== Efl.Gfx.Mapping.mapping_smooth ======
+
+===== Description =====
+
+%%Smoothing state for map rendering.%%
+
+%%This sets smoothing for map rendering. If the object is a type that has its own smoothing settings, then both the smooth settings for this object and the map must be turned off. By default smooth maps are enabled.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:mapping:property:mapping_smooth:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **smooth** - %%%%''true''%% by default.%%
+
+===== Signature =====
+
+
+@property mapping_smooth {
+ get {}
+ set {}
+ values {
+ smooth: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_gfx_mapping_smooth_get(const Eo *obj);
+void efl_gfx_mapping_smooth_set(Eo *obj, Eina_Bool smooth);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:mapping:property:mapping_smooth|Efl.Gfx.Mapping.mapping_smooth]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/mapping/property/mapping_uv.txt b/public_html/data/pages/develop/api/efl/gfx/mapping/property/mapping_uv.txt
new file mode 100644
index 00000000..ebca297c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/mapping/property/mapping_uv.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Gfx.Mapping.mapping_uv~~
+====== Efl.Gfx.Mapping.mapping_uv ======
+
+===== Description =====
+
+%%Map point's U and V texture source point.%%
+
+%%This sets/gets the U and V coordinates for the point. This determines which coordinate in the source image is mapped to the given point, much like OpenGL and textures. Valid values range from 0.0 to 1.0.%%
+
+%%By default the points are set in a clockwise order, as such: - 0: top-left, i.e. (0.0, 0.0), - 1: top-right, i.e. (1.0, 0.0), - 2: bottom-right, i.e. (1.0, 1.0), - 3: bottom-left, i.e. (0.0, 1.0).%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:mapping:property:mapping_uv:description&nouser&nolink&nodate}}
+
+===== Keys =====
+
+ * **idx** - %%ID of the point, from 0 to 3 (included).%%
+===== Values =====
+
+ * **u** - %%Relative X coordinate within the image, from 0 to 1.%%
+ * **v** - %%Relative Y coordinate within the image, from 0 to 1.%%
+
+===== Signature =====
+
+
+@property mapping_uv {
+ get {}
+ set {}
+ keys {
+ idx: int;
+ }
+ values {
+ u: double;
+ v: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_mapping_uv_get(const Eo *obj, int idx, double *u, double *v);
+void efl_gfx_mapping_uv_set(Eo *obj, int idx, double u, double v);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:mapping:property:mapping_uv|Efl.Gfx.Mapping.mapping_uv]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/path_command_type.txt b/public_html/data/pages/develop/api/efl/gfx/path_command_type.txt
new file mode 100644
index 00000000..8e391a7b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/path_command_type.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Gfx.Path_Command_Type~~
+
+===== Description =====
+
+%%These values determine how the points are interpreted in a stream of points.%%
+
+//Since 1.14//
+
+{{page>:develop:api-include:efl:gfx:path_command_type:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:gfx:path_command_type:fields&nouser&nolink&nodate}}
+
+ * **end** - %%The end of stream , no more points to process.%%
+ * **move_to** - %%The next point is the start point of a sub path.%%
+ * **line_to** - %%The next point is used to draw a line from current point.%%
+ * **cubic_to** - %%The next three point is used to draw a cubic bezier curve from current point.%%
+ * **close** - %%Close the current subpath by drawing a line between current point and the first point of current subpath.%%
+ * **last** - %%Sentinel value to indicate last enum field during iteration%%
+
+===== Signature =====
+
+
+enum Efl.Gfx.Path_Command_Type {
+ end: 0,
+ move_to,
+ line_to,
+ cubic_to,
+ close,
+ last
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_GFX_PATH_COMMAND_TYPE_END = 0,
+ EFL_GFX_PATH_COMMAND_TYPE_MOVE_TO,
+ EFL_GFX_PATH_COMMAND_TYPE_LINE_TO,
+ EFL_GFX_PATH_COMMAND_TYPE_CUBIC_TO,
+ EFL_GFX_PATH_COMMAND_TYPE_CLOSE,
+ EFL_GFX_PATH_COMMAND_TYPE_LAST
+} Efl_Gfx_Path_Command_Type;
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/render_op.txt b/public_html/data/pages/develop/api/efl/gfx/render_op.txt
new file mode 100644
index 00000000..c45adbd8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/render_op.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Gfx.Render_Op~~
+
+===== Description =====
+
+%%Graphics render operation mode%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:gfx:render_op:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:gfx:render_op:fields&nouser&nolink&nodate}}
+
+ * **blend** - %%Alpha blending onto destination (default); d = d*(1-sa) + s.%%
+ * **copy** - %%Copy source to destination; d = s.%%
+ * **last** - %%Sentinel value to indicate last enum field during iteration%%
+
+===== Signature =====
+
+
+enum Efl.Gfx.Render_Op {
+ blend: 0,
+ copy: 1,
+ last
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_GFX_RENDER_OP_BLEND = 0,
+ EFL_GFX_RENDER_OP_COPY = 1,
+ EFL_GFX_RENDER_OP_LAST
+} Efl_Gfx_Render_Op;
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/stack.txt b/public_html/data/pages/develop/api/efl/gfx/stack.txt
new file mode 100644
index 00000000..6ce704e8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/stack.txt
@@ -0,0 +1,65 @@
+~~Title: Efl.Gfx.Stack~~
+====== Efl.Gfx.Stack (interface) ======
+
+===== Description =====
+
+%%Efl graphics stack interface%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:gfx:stack:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:gfx:stack:property:above|above]]** //**(get)**//\\
+>
+
+Efl_Gfx_Stack *efl_gfx_stack_above_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:gfx:stack:property:below|below]]** //**(get)**//\\
+>
+
+Efl_Gfx_Stack *efl_gfx_stack_below_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:gfx:stack:property:layer|layer]]** //**(get, set)**//\\
+> %%The layer of its canvas that the given object will be part of.%%
+
+short efl_gfx_stack_layer_get(const Eo *obj);
+void efl_gfx_stack_layer_set(Eo *obj, short l);
+
+\\
+**[[:develop:api:efl:gfx:stack:method:lower_to_bottom|lower_to_bottom]]**\\
+> %%Lower %%''obj''%% to the bottom of its layer.%%
+
+void efl_gfx_stack_lower_to_bottom(Eo *obj);
+
+\\
+**[[:develop:api:efl:gfx:stack:method:raise_to_top|raise_to_top]]**\\
+> %%Raise %%''obj''%% to the top of its layer.%%
+
+void efl_gfx_stack_raise_to_top(Eo *obj);
+
+\\
+**[[:develop:api:efl:gfx:stack:method:stack_above|stack_above]]**\\
+> %%Stack %%''obj''%% immediately %%''above''%%%%
+
+void efl_gfx_stack_above(Eo *obj, Efl_Gfx_Stack *above);
+
+\\
+**[[:develop:api:efl:gfx:stack:method:stack_below|stack_below]]**\\
+> %%Stack %%''obj''%% immediately %%''below''%%%%
+
+void efl_gfx_stack_below(Eo *obj, Efl_Gfx_Stack *below);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]**\\
+> %%Object stacking was changed.%%
+
+EFL_GFX_ENTITY_EVENT_STACKING_CHANGED(void)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/gfx/stack/event/stacking_changed.txt b/public_html/data/pages/develop/api/efl/gfx/stack/event/stacking_changed.txt
new file mode 100644
index 00000000..637dab28
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/stack/event/stacking_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Gfx.Stack: stacking,changed~~
+
+===== Description =====
+
+%%Object stacking was changed.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:gfx:stack:event:stacking_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+stacking,changed;
+
+
+===== C information =====
+
+
+EFL_GFX_ENTITY_EVENT_STACKING_CHANGED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_gfx_entity_event_stacking_changed(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_GFX_ENTITY_EVENT_STACKING_CHANGED, on_efl_gfx_entity_event_stacking_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/stack/method/lower_to_bottom.txt b/public_html/data/pages/develop/api/efl/gfx/stack/method/lower_to_bottom.txt
new file mode 100644
index 00000000..9a2a3c25
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/stack/method/lower_to_bottom.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Gfx.Stack.lower_to_bottom~~
+====== Efl.Gfx.Stack.lower_to_bottom ======
+
+===== Description =====
+
+%%Lower %%''obj''%% to the bottom of its layer.%%
+
+%%%%''obj''%% will, then, be the lowest one in the layer it belongs to. Objects on other layers won't get touched.%%
+
+%%See also %%[[:develop:api:efl:gfx:stack:method:stack_above|Efl.Gfx.Stack.stack_above]]%%(), %%[[:develop:api:efl:gfx:stack:method:stack_below|Efl.Gfx.Stack.stack_below]]%%() and %%[[:develop:api:efl:gfx:stack:method:raise_to_top|Efl.Gfx.Stack.raise_to_top]]%%()%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:stack:method:lower_to_bottom:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+lower_to_bottom @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_gfx_stack_lower_to_bottom(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:stack:method:lower_to_bottom|Efl.Gfx.Stack.lower_to_bottom]]
+ * [[:develop:api:efl:canvas:vg:node:method:lower_to_bottom|Efl.Canvas.Vg.Node.lower_to_bottom]]
+ * [[:develop:api:efl:ui:win:method:lower_to_bottom|Efl.Ui.Win.lower_to_bottom]]
+ * [[:develop:api:efl:canvas:object:method:lower_to_bottom|Efl.Canvas.Object.lower_to_bottom]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/stack/method/raise_to_top.txt b/public_html/data/pages/develop/api/efl/gfx/stack/method/raise_to_top.txt
new file mode 100644
index 00000000..0bdc6ad2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/stack/method/raise_to_top.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Gfx.Stack.raise_to_top~~
+====== Efl.Gfx.Stack.raise_to_top ======
+
+===== Description =====
+
+%%Raise %%''obj''%% to the top of its layer.%%
+
+%%%%''obj''%% will, then, be the highest one in the layer it belongs to. Object on other layers won't get touched.%%
+
+%%See also %%[[:develop:api:efl:gfx:stack:method:stack_above|Efl.Gfx.Stack.stack_above]]%%(), %%[[:develop:api:efl:gfx:stack:method:stack_below|Efl.Gfx.Stack.stack_below]]%%() and %%[[:develop:api:efl:gfx:stack:method:lower_to_bottom|Efl.Gfx.Stack.lower_to_bottom]]%%()%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:stack:method:raise_to_top:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+raise_to_top @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_gfx_stack_raise_to_top(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:stack:method:raise_to_top|Efl.Gfx.Stack.raise_to_top]]
+ * [[:develop:api:efl:canvas:vg:node:method:raise_to_top|Efl.Canvas.Vg.Node.raise_to_top]]
+ * [[:develop:api:efl:ui:win:method:raise_to_top|Efl.Ui.Win.raise_to_top]]
+ * [[:develop:api:efl:canvas:object:method:raise_to_top|Efl.Canvas.Object.raise_to_top]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/stack/method/stack_above.txt b/public_html/data/pages/develop/api/efl/gfx/stack/method/stack_above.txt
new file mode 100644
index 00000000..f2be16f5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/stack/method/stack_above.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Gfx.Stack.stack_above~~
+====== Efl.Gfx.Stack.stack_above ======
+
+===== Description =====
+
+%%Stack %%''obj''%% immediately %%''above''%%%%
+
+%%Objects, in a given canvas, are stacked in the order they're added. This means that, if they overlap, the highest ones will cover the lowest ones, in that order. This function is a way to change the stacking order for the objects.%%
+
+%%Its intended to be used with objects belonging to the same layer in a given canvas, otherwise it will fail (and accomplish nothing).%%
+
+%%If you have smart objects on your canvas and %%''obj''%% is a member of one of them, then %%''above''%% must also be a member of the same smart object.%%
+
+%%Similarly, if %%''obj''%% is not a member of a smart object, %%''above''%% must not be either.%%
+
+%%See also %%[[:develop:api:efl:gfx:stack:property:layer|Efl.Gfx.Stack.layer.get]]%%(), %%[[:develop:api:efl:gfx:stack:property:layer|Efl.Gfx.Stack.layer.set]]%%() and %%[[:develop:api:efl:gfx:stack:method:stack_below|Efl.Gfx.Stack.stack_below]]%%()%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:stack:method:stack_above:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+stack_above @pure_virtual {
+ params {
+ @in above: Efl.Gfx.Stack;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_stack_above(Eo *obj, Efl_Gfx_Stack *above);
+
+
+===== Parameters =====
+
+ * **above** //(in)// - %%The object above which to stack%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:stack:method:stack_above|Efl.Gfx.Stack.stack_above]]
+ * [[:develop:api:efl:canvas:vg:node:method:stack_above|Efl.Canvas.Vg.Node.stack_above]]
+ * [[:develop:api:efl:canvas:object:method:stack_above|Efl.Canvas.Object.stack_above]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/stack/method/stack_below.txt b/public_html/data/pages/develop/api/efl/gfx/stack/method/stack_below.txt
new file mode 100644
index 00000000..cfa006b8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/stack/method/stack_below.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Gfx.Stack.stack_below~~
+====== Efl.Gfx.Stack.stack_below ======
+
+===== Description =====
+
+%%Stack %%''obj''%% immediately %%''below''%%%%
+
+%%Objects, in a given canvas, are stacked in the order they're added. This means that, if they overlap, the highest ones will cover the lowest ones, in that order. This function is a way to change the stacking order for the objects.%%
+
+%%Its intended to be used with objects belonging to the same layer in a given canvas, otherwise it will fail (and accomplish nothing).%%
+
+%%If you have smart objects on your canvas and %%''obj''%% is a member of one of them, then %%''below''%% must also be a member of the same smart object.%%
+
+%%Similarly, if %%''obj''%% is not a member of a smart object, %%''below''%% must not be either.%%
+
+%%See also %%[[:develop:api:efl:gfx:stack:property:layer|Efl.Gfx.Stack.layer.get]]%%(), %%[[:develop:api:efl:gfx:stack:property:layer|Efl.Gfx.Stack.layer.set]]%%() and %%[[:develop:api:efl:gfx:stack:method:stack_below|Efl.Gfx.Stack.stack_below]]%%()%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:gfx:stack:method:stack_below:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+stack_below @pure_virtual {
+ params {
+ @in below: Efl.Gfx.Stack;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_stack_below(Eo *obj, Efl_Gfx_Stack *below);
+
+
+===== Parameters =====
+
+ * **below** //(in)// - %%The object below which to stack%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:stack:method:stack_below|Efl.Gfx.Stack.stack_below]]
+ * [[:develop:api:efl:canvas:vg:node:method:stack_below|Efl.Canvas.Vg.Node.stack_below]]
+ * [[:develop:api:efl:canvas:object:method:stack_below|Efl.Canvas.Object.stack_below]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/stack/property/above.txt b/public_html/data/pages/develop/api/efl/gfx/stack/property/above.txt
new file mode 100644
index 00000000..6b5fbae2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/stack/property/above.txt
@@ -0,0 +1,29 @@
+~~Title: Efl.Gfx.Stack.above~~
+====== Efl.Gfx.Stack.above ======
+
+
+
+\\ {{page>:develop:api-include:efl:gfx:stack:property:above:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property above @pure_virtual {
+ get {
+ return: Efl.Gfx.Stack @no_unused;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Stack *efl_gfx_stack_above_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:stack:property:above|Efl.Gfx.Stack.above]]
+ * [[:develop:api:efl:canvas:vg:node:property:above|Efl.Canvas.Vg.Node.above]]
+ * [[:develop:api:efl:canvas:object:property:above|Efl.Canvas.Object.above]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/stack/property/below.txt b/public_html/data/pages/develop/api/efl/gfx/stack/property/below.txt
new file mode 100644
index 00000000..38ca3df0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/stack/property/below.txt
@@ -0,0 +1,29 @@
+~~Title: Efl.Gfx.Stack.below~~
+====== Efl.Gfx.Stack.below ======
+
+
+
+\\ {{page>:develop:api-include:efl:gfx:stack:property:below:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property below @pure_virtual {
+ get {
+ return: Efl.Gfx.Stack @no_unused;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Stack *efl_gfx_stack_below_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:stack:property:below|Efl.Gfx.Stack.below]]
+ * [[:develop:api:efl:canvas:vg:node:property:below|Efl.Canvas.Vg.Node.below]]
+ * [[:develop:api:efl:canvas:object:property:below|Efl.Canvas.Object.below]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/stack/property/layer.txt b/public_html/data/pages/develop/api/efl/gfx/stack/property/layer.txt
new file mode 100644
index 00000000..6ce8fa4b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/stack/property/layer.txt
@@ -0,0 +1,47 @@
+~~Title: Efl.Gfx.Stack.layer~~
+====== Efl.Gfx.Stack.layer ======
+
+===== Description =====
+
+%%The layer of its canvas that the given object will be part of.%%
+
+%%If you don't use this property, you'll be dealing with a unique layer of objects (the default one). Additional layers are handy when you don't want a set of objects to interfere with another set with regard to stacking. Two layers are completely disjoint in that matter.%%
+
+%%This is a low-level function, which you'd be using when something should be always on top, for example.%%
+
+
+@property layer @pure_virtual {
+ get {}
+ set {}
+ values {
+ l: short;
+ }
+}
+
+
+===== C signature =====
+
+
+short efl_gfx_stack_layer_get(const Eo *obj);
+void efl_gfx_stack_layer_set(Eo *obj, short l);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:stack:property:layer|Efl.Gfx.Stack.layer]]
+ * [[:develop:api:efl:canvas:object:property:layer|Efl.Canvas.Object.layer]]
+ * [[:develop:api:efl:canvas:event_grabber:property:layer|Efl.Canvas.Event_Grabber.layer]]
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/stack_layer_max.txt b/public_html/data/pages/develop/api/efl/gfx/stack_layer_max.txt
new file mode 100644
index 00000000..55b8f660
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/stack_layer_max.txt
@@ -0,0 +1,21 @@
+~~Title: Efl.Gfx.Stack_Layer_Max~~
+
+===== Description =====
+
+%%top-most layer number%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:gfx:stack_layer_max:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+const Efl.Gfx.Stack_Layer_Max: short = 32767;
+
+
+===== C signature =====
+
+
+#define EFL_GFX_STACK_LAYER_MAX 32767
+
diff --git a/public_html/data/pages/develop/api/efl/gfx/stack_layer_min.txt b/public_html/data/pages/develop/api/efl/gfx/stack_layer_min.txt
new file mode 100644
index 00000000..7b44761e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/gfx/stack_layer_min.txt
@@ -0,0 +1,21 @@
+~~Title: Efl.Gfx.Stack_Layer_Min~~
+
+===== Description =====
+
+%%bottom-most layer number%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:gfx:stack_layer_min:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+const Efl.Gfx.Stack_Layer_Min: short = +32768;
+
+
+===== C signature =====
+
+
+#define EFL_GFX_STACK_LAYER_MIN -32768/* +32768 */
+
diff --git a/public_html/data/pages/develop/api/efl/input/clickable.txt b/public_html/data/pages/develop/api/efl/input/clickable.txt
new file mode 100644
index 00000000..53640318
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/clickable.txt
@@ -0,0 +1,72 @@
+~~Title: Efl.Input.Clickable~~
+====== Efl.Input.Clickable (mixin) ======
+
+===== Description =====
+
+%%Efl input clickable interface.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:clickable:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:input:clickable:property:interaction|interaction]]** //**(get)**//\\
+>
+
+Eina_Bool efl_input_clickable_interaction_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:input:clickable:method:button_state_reset|button_state_reset]]** ''protected''\\
+> %%This aborts the internal state after a press call.%%
+
+void efl_input_clickable_button_state_reset(Eo *obj, unsigned int button);
+
+\\
+**[[:develop:api:efl:input:clickable:method:longpress_abort|longpress_abort]]** ''protected''\\
+> %%This aborts ongoing longpress event.%%
+
+void efl_input_clickable_longpress_abort(Eo *obj, unsigned int button);
+
+\\
+**[[:develop:api:efl:input:clickable:method:press|press]]** ''protected''\\
+> %%Change internal states that a button got pressed.%%
+
+void efl_input_clickable_press(Eo *obj, unsigned int button);
+
+\\
+**[[:develop:api:efl:input:clickable:method:unpress|unpress]]** ''protected''\\
+> %%Change internal states that a button got unpressed.%%
+
+void efl_input_clickable_unpress(Eo *obj, unsigned int button);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:input:clickable:event:clicked|clicked]]**\\
+> %%Called when object is in sequence pressed and unpressed by the primary button%%
+
+EFL_INPUT_EVENT_CLICKED(Efl_Input_Clickable_Clicked)
+
+\\ **[[:develop:api:efl:input:clickable:event:clicked_any|clicked,any]]**\\
+> %%Called when object is in sequence pressed and unpressed by any button. The button that triggered the event can be found in the event information.%%
+
+EFL_INPUT_EVENT_CLICKED_ANY(Efl_Input_Clickable_Clicked)
+
+\\ **[[:develop:api:efl:input:clickable:event:longpressed|longpressed]]**\\
+> %%Called when the object receives a long press, event_info is the button that got pressed%%
+
+EFL_INPUT_EVENT_LONGPRESSED(int)
+
+\\ **[[:develop:api:efl:input:clickable:event:pressed|pressed]]**\\
+> %%Called when the object is pressed, event_info is the button that got pressed%%
+
+EFL_INPUT_EVENT_PRESSED(int)
+
+\\ **[[:develop:api:efl:input:clickable:event:unpressed|unpressed]]**\\
+> %%Called when the object is no longer pressed, event_info is the button that got pressed%%
+
+EFL_INPUT_EVENT_UNPRESSED(int)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/input/clickable/event/clicked.txt b/public_html/data/pages/develop/api/efl/input/clickable/event/clicked.txt
new file mode 100644
index 00000000..5b92812f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/clickable/event/clicked.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Input.Clickable: clicked~~
+
+===== Description =====
+
+%%Called when object is in sequence pressed and unpressed by the primary button%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:clickable:event:clicked:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+clicked: Efl.Input.Clickable_Clicked;
+
+
+===== C information =====
+
+
+EFL_INPUT_EVENT_CLICKED(Efl_Input_Clickable_Clicked)
+
+
+===== C usage =====
+
+
+static void
+on_efl_input_event_clicked(void *data, const Efl_Event *event)
+{
+ Efl_Input_Clickable_Clicked info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_INPUT_EVENT_CLICKED, on_efl_input_event_clicked, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/input/clickable/event/clicked_any.txt b/public_html/data/pages/develop/api/efl/input/clickable/event/clicked_any.txt
new file mode 100644
index 00000000..ae4b374f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/clickable/event/clicked_any.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Input.Clickable: clicked,any~~
+
+===== Description =====
+
+%%Called when object is in sequence pressed and unpressed by any button. The button that triggered the event can be found in the event information.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:clickable:event:clicked_any:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+clicked,any: Efl.Input.Clickable_Clicked;
+
+
+===== C information =====
+
+
+EFL_INPUT_EVENT_CLICKED_ANY(Efl_Input_Clickable_Clicked)
+
+
+===== C usage =====
+
+
+static void
+on_efl_input_event_clicked_any(void *data, const Efl_Event *event)
+{
+ Efl_Input_Clickable_Clicked info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_INPUT_EVENT_CLICKED_ANY, on_efl_input_event_clicked_any, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/input/clickable/event/longpressed.txt b/public_html/data/pages/develop/api/efl/input/clickable/event/longpressed.txt
new file mode 100644
index 00000000..56465292
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/clickable/event/longpressed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Input.Clickable: longpressed~~
+
+===== Description =====
+
+%%Called when the object receives a long press, event_info is the button that got pressed%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:clickable:event:longpressed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+longpressed: int;
+
+
+===== C information =====
+
+
+EFL_INPUT_EVENT_LONGPRESSED(int)
+
+
+===== C usage =====
+
+
+static void
+on_efl_input_event_longpressed(void *data, const Efl_Event *event)
+{
+ int info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_INPUT_EVENT_LONGPRESSED, on_efl_input_event_longpressed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/input/clickable/event/pressed.txt b/public_html/data/pages/develop/api/efl/input/clickable/event/pressed.txt
new file mode 100644
index 00000000..d0055e81
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/clickable/event/pressed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Input.Clickable: pressed~~
+
+===== Description =====
+
+%%Called when the object is pressed, event_info is the button that got pressed%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:clickable:event:pressed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+pressed: int;
+
+
+===== C information =====
+
+
+EFL_INPUT_EVENT_PRESSED(int)
+
+
+===== C usage =====
+
+
+static void
+on_efl_input_event_pressed(void *data, const Efl_Event *event)
+{
+ int info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_INPUT_EVENT_PRESSED, on_efl_input_event_pressed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/input/clickable/event/unpressed.txt b/public_html/data/pages/develop/api/efl/input/clickable/event/unpressed.txt
new file mode 100644
index 00000000..53f7b57d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/clickable/event/unpressed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Input.Clickable: unpressed~~
+
+===== Description =====
+
+%%Called when the object is no longer pressed, event_info is the button that got pressed%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:clickable:event:unpressed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+unpressed: int;
+
+
+===== C information =====
+
+
+EFL_INPUT_EVENT_UNPRESSED(int)
+
+
+===== C usage =====
+
+
+static void
+on_efl_input_event_unpressed(void *data, const Efl_Event *event)
+{
+ int info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_INPUT_EVENT_UNPRESSED, on_efl_input_event_unpressed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/input/clickable/method/button_state_reset.txt b/public_html/data/pages/develop/api/efl/input/clickable/method/button_state_reset.txt
new file mode 100644
index 00000000..0ecb0078
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/clickable/method/button_state_reset.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Input.Clickable.button_state_reset~~
+====== Efl.Input.Clickable.button_state_reset ======
+
+===== Description =====
+
+%%This aborts the internal state after a press call.%%
+
+%%This will stop the timer for longpress and set the state of the clickable mixin back into the unpressed state.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:clickable:method:button_state_reset:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+button_state_reset @protected {
+ params {
+ @in button: uint;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_input_clickable_button_state_reset(Eo *obj, unsigned int button);
+
+
+===== Parameters =====
+
+ * **button** //(in)// - No description supplied.
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:clickable:method:button_state_reset|Efl.Input.Clickable.button_state_reset]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/clickable/method/longpress_abort.txt b/public_html/data/pages/develop/api/efl/input/clickable/method/longpress_abort.txt
new file mode 100644
index 00000000..b1247bc2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/clickable/method/longpress_abort.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Input.Clickable.longpress_abort~~
+====== Efl.Input.Clickable.longpress_abort ======
+
+===== Description =====
+
+%%This aborts ongoing longpress event.%%
+
+%%That is, this will stop the timer for longpress.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:clickable:method:longpress_abort:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+longpress_abort @protected {
+ params {
+ @in button: uint;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_input_clickable_longpress_abort(Eo *obj, unsigned int button);
+
+
+===== Parameters =====
+
+ * **button** //(in)// - No description supplied.
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:clickable:method:longpress_abort|Efl.Input.Clickable.longpress_abort]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/clickable/method/press.txt b/public_html/data/pages/develop/api/efl/input/clickable/method/press.txt
new file mode 100644
index 00000000..1fc32463
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/clickable/method/press.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Input.Clickable.press~~
+====== Efl.Input.Clickable.press ======
+
+===== Description =====
+
+%%Change internal states that a button got pressed.%%
+
+%%When the button is already pressed, this is silently ignored.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:clickable:method:press:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+press @protected {
+ params {
+ @in button: uint;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_input_clickable_press(Eo *obj, unsigned int button);
+
+
+===== Parameters =====
+
+ * **button** //(in)// - %%The number of the button. FIXME ensure to have the right interval of possible input%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:clickable:method:press|Efl.Input.Clickable.press]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/clickable/method/unpress.txt b/public_html/data/pages/develop/api/efl/input/clickable/method/unpress.txt
new file mode 100644
index 00000000..4edf3df5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/clickable/method/unpress.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Input.Clickable.unpress~~
+====== Efl.Input.Clickable.unpress ======
+
+===== Description =====
+
+%%Change internal states that a button got unpressed.%%
+
+%%When the button is not pressed, this is silently ignored.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:clickable:method:unpress:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+unpress @protected {
+ params {
+ @in button: uint;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_input_clickable_unpress(Eo *obj, unsigned int button);
+
+
+===== Parameters =====
+
+ * **button** //(in)// - %%The number of the button. FIXME ensure to have the right interval of possible input%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:clickable:method:unpress|Efl.Input.Clickable.unpress]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/clickable/property/interaction.txt b/public_html/data/pages/develop/api/efl/input/clickable/property/interaction.txt
new file mode 100644
index 00000000..cef818d5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/clickable/property/interaction.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Input.Clickable.interaction~~
+====== Efl.Input.Clickable.interaction ======
+
+===== Values =====
+
+ * **interaction** - No description supplied.
+
+
+\\ {{page>:develop:api-include:efl:input:clickable:property:interaction:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property interaction {
+ get {}
+ values {
+ interaction: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_input_clickable_interaction_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:clickable:property:interaction|Efl.Input.Clickable.interaction]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/clickable_clicked.txt b/public_html/data/pages/develop/api/efl/input/clickable_clicked.txt
new file mode 100644
index 00000000..2389cd5a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/clickable_clicked.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Input.Clickable_Clicked~~
+
+===== Description =====
+
+%%A struct that expresses a click in elementary.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:clickable_clicked:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:input:clickable_clicked:fields&nouser&nolink&nodate}}
+
+ * **repeated** - %%The amount of how often the clicked event was repeated in a certain amount of time%%
+ * **button** - %%The Button that is pressed%%
+
+===== Signature =====
+
+
+struct Efl.Input.Clickable_Clicked {
+ repeated: uint;
+ button: uint;
+}
+
+
+===== C signature =====
+
+
+typedef struct _Efl_Input_Clickable_Clicked {
+ unsigned int repeated;
+ unsigned int button;
+} Efl_Input_Clickable_Clicked;
+
diff --git a/public_html/data/pages/develop/api/efl/input/device.txt b/public_html/data/pages/develop/api/efl/input/device.txt
new file mode 100644
index 00000000..6bf80def
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/device.txt
@@ -0,0 +1,128 @@
+~~Title: Efl.Input.Device~~
+====== Efl.Input.Device (class) ======
+
+===== Description =====
+
+%%Represents a pointing device such as a touch finger, pen or mouse.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:device:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:input:device:method:children_iterate|children_iterate]]**\\
+> %%Lists the children attached to this device.%%
+
+Eina_Iterator *efl_input_device_children_iterate(Eo *obj);
+
+\\
+**[[:develop:api:efl:input:device:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:input:device:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:input:device:property:device_type|device_type]]** //**(get, set)**//\\
+> %%Device type property%%
+
+Efl_Input_Device_Type efl_input_device_type_get(const Eo *obj);
+void efl_input_device_type_set(Eo *obj, Efl_Input_Device_Type klass);
+
+\\
+**[[:develop:api:efl:input:device:property:is_pointer_type|is_pointer_type]]** //**(get)**//\\
+>
+
+Eina_Bool efl_input_device_is_pointer_type_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:input:device:property:parent|parent]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%The parent of an object.%%
+
+Efl_Object *efl_parent_get(const Eo *obj);
+void efl_parent_set(Eo *obj, Efl_Object *parent);
+
+\\
+**[[:develop:api:efl:input:device:property:pointer_device_count|pointer_device_count]]** //**(get)**//\\
+>
+
+int efl_input_device_pointer_device_count_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:input:device:property:seat|seat]]** //**(get)**//\\
+>
+
+Efl_Input_Device *efl_input_device_seat_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:input:device:property:seat_id|seat_id]]** //**(get, set)**//\\
+> %%Seat id number%%
+
+unsigned int efl_input_device_seat_id_get(const Eo *obj);
+void efl_input_device_seat_id_set(Eo *obj, unsigned int id);
+
+\\
+**[[:develop:api:efl:input:device:property:source|source]]** //**(get, set)**//\\
+> %%Device source property%%
+
+Efl_Input_Device *efl_input_device_source_get(const Eo *obj);
+void efl_input_device_source_set(Eo *obj, Efl_Input_Device *src);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
diff --git a/public_html/data/pages/develop/api/efl/input/device/method/children_iterate.txt b/public_html/data/pages/develop/api/efl/input/device/method/children_iterate.txt
new file mode 100644
index 00000000..fe25fae5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/device/method/children_iterate.txt
@@ -0,0 +1,30 @@
+~~Title: Efl.Input.Device.children_iterate~~
+====== Efl.Input.Device.children_iterate ======
+
+===== Description =====
+
+%%Lists the children attached to this device.%%
+
+%%This is only meaningful with seat devices, as they are groups of real input devices.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:device:method:children_iterate:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+children_iterate {
+ return: iterator;
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_input_device_children_iterate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:device:method:children_iterate|Efl.Input.Device.children_iterate]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/device/method/constructor.txt b/public_html/data/pages/develop/api/efl/input/device/method/constructor.txt
new file mode 100644
index 00000000..0ea0e6c1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/device/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Input.Device.constructor~~
+====== Efl.Input.Device.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:input:device:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/device/method/destructor.txt b/public_html/data/pages/develop/api/efl/input/device/method/destructor.txt
new file mode 100644
index 00000000..c71f7146
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/device/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Input.Device.destructor~~
+====== Efl.Input.Device.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:input:device:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/device/property/device_type.txt b/public_html/data/pages/develop/api/efl/input/device/property/device_type.txt
new file mode 100644
index 00000000..8734865f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/device/property/device_type.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Input.Device.device_type~~
+====== Efl.Input.Device.device_type ======
+
+===== Description =====
+
+%%Device type property%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:device:property:device_type:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **klass** - %%Input device class%%
+
+===== Signature =====
+
+
+@property device_type {
+ get {}
+ set {}
+ values {
+ klass: Efl.Input.Device_Type;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Input_Device_Type efl_input_device_type_get(const Eo *obj);
+void efl_input_device_type_set(Eo *obj, Efl_Input_Device_Type klass);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:device:property:device_type|Efl.Input.Device.device_type]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/device/property/is_pointer_type.txt b/public_html/data/pages/develop/api/efl/input/device/property/is_pointer_type.txt
new file mode 100644
index 00000000..9e1ed4f2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/device/property/is_pointer_type.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Input.Device.is_pointer_type~~
+====== Efl.Input.Device.is_pointer_type ======
+
+===== Values =====
+
+ * **pointer_type** - %%%%''true''%% if the device has pointing capabilities.%%
+
+
+\\ {{page>:develop:api-include:efl:input:device:property:is_pointer_type:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property is_pointer_type {
+ get {}
+ values {
+ pointer_type: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_input_device_is_pointer_type_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:device:property:is_pointer_type|Efl.Input.Device.is_pointer_type]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/device/property/parent.txt b/public_html/data/pages/develop/api/efl/input/device/property/parent.txt
new file mode 100644
index 00000000..36260d4f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/device/property/parent.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Input.Device.parent~~
+====== Efl.Input.Device.parent ======
+
+===== Description =====
+
+%%The parent of an object.%%
+
+%%Parents keep references to their children and will release these references when destroyed. In this way, objects can be assigned to a parent upon creation, tying their life cycle so the programmer does not need to worry about destroying the child object. In order to destroy an object before its parent, set the parent to %%''NULL''%% and use efl_unref(), or use efl_del() directly.%%
+
+%%The Eo parent is conceptually user set. That means that a parent should not be changed behind the scenes in an unexpected way.%%
+
+%%For example: If you have a widget which can swallow objects into an internal box, the parent of the swallowed objects should be the widget, not the internal box. The user is not even aware of the existence of the internal box.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:input:device:property:parent:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **parent** - %%The new parent.%%
+
+//Overridden from [[:develop:api:efl:object:property:parent|Efl.Object.parent]] **(set)**.//===== Signature =====
+
+
+@property parent {
+ get {}
+ set {}
+ values {
+ parent: Efl.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_parent_get(const Eo *obj);
+void efl_parent_set(Eo *obj, Efl_Object *parent);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:property:parent|Efl.Object.parent]]
+ * [[:develop:api:efl:loop_handler:property:parent|Efl.Loop_Handler.parent]]
+ * [[:develop:api:efl:canvas:vg:node:property:parent|Efl.Canvas.Vg.Node.parent]]
+ * [[:develop:api:efl:canvas:vg:container:property:parent|Efl.Canvas.Vg.Container.parent]]
+ * [[:develop:api:efl:input:device:property:parent|Efl.Input.Device.parent]]
+ * [[:develop:api:efl:loop_consumer:property:parent|Efl.Loop_Consumer.parent]]
+ * [[:develop:api:efl:loop_fd:property:parent|Efl.Loop_Fd.parent]]
+ * [[:develop:api:efl:loop_timer:property:parent|Efl.Loop_Timer.parent]]
+ * [[:develop:api:efl:task:property:parent|Efl.Task.parent]]
+ * [[:develop:api:efl:thread:property:parent|Efl.Thread.parent]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/device/property/pointer_device_count.txt b/public_html/data/pages/develop/api/efl/input/device/property/pointer_device_count.txt
new file mode 100644
index 00000000..9c473a81
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/device/property/pointer_device_count.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Input.Device.pointer_device_count~~
+====== Efl.Input.Device.pointer_device_count ======
+
+===== Values =====
+
+ * **devices** - %%The number of pointer devices.%%
+
+
+\\ {{page>:develop:api-include:efl:input:device:property:pointer_device_count:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property pointer_device_count {
+ get {}
+ values {
+ devices: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_input_device_pointer_device_count_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:device:property:pointer_device_count|Efl.Input.Device.pointer_device_count]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/device/property/seat.txt b/public_html/data/pages/develop/api/efl/input/device/property/seat.txt
new file mode 100644
index 00000000..ea74a406
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/device/property/seat.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Input.Device.seat~~
+====== Efl.Input.Device.seat ======
+
+===== Values =====
+
+ * **seat** - %%The seat this device belongs to.%%
+
+
+\\ {{page>:develop:api-include:efl:input:device:property:seat:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property seat {
+ get {}
+ values {
+ seat: Efl.Input.Device;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Input_Device *efl_input_device_seat_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:device:property:seat|Efl.Input.Device.seat]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/device/property/seat_id.txt b/public_html/data/pages/develop/api/efl/input/device/property/seat_id.txt
new file mode 100644
index 00000000..4ae5c5da
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/device/property/seat_id.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Input.Device.seat_id~~
+====== Efl.Input.Device.seat_id ======
+
+===== Description =====
+
+%%Seat id number%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:device:property:seat_id:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **id** - %%The id of the seat%%
+
+===== Signature =====
+
+
+@property seat_id {
+ get {}
+ set {}
+ values {
+ id: uint;
+ }
+}
+
+
+===== C signature =====
+
+
+unsigned int efl_input_device_seat_id_get(const Eo *obj);
+void efl_input_device_seat_id_set(Eo *obj, unsigned int id);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:device:property:seat_id|Efl.Input.Device.seat_id]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/device/property/source.txt b/public_html/data/pages/develop/api/efl/input/device/property/source.txt
new file mode 100644
index 00000000..a0ff0095
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/device/property/source.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Input.Device.source~~
+====== Efl.Input.Device.source ======
+
+===== Description =====
+
+%%Device source property%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:device:property:source:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **src** - %%Input device%%
+
+===== Signature =====
+
+
+@property source {
+ get {}
+ set {}
+ values {
+ src: Efl.Input.Device;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Input_Device *efl_input_device_source_get(const Eo *obj);
+void efl_input_device_source_set(Eo *obj, Efl_Input_Device *src);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:device:property:source|Efl.Input.Device.source]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/device_type.txt b/public_html/data/pages/develop/api/efl/input/device_type.txt
new file mode 100644
index 00000000..13f1eae8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/device_type.txt
@@ -0,0 +1,54 @@
+~~Title: Efl.Input.Device_Type~~
+
+===== Description =====
+
+%%General type of input device.%%
+
+%%Legacy support since 1.8 as %%''Evas_Device_Class''%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:device_type:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:input:device_type:fields&nouser&nolink&nodate}}
+
+ * **none** - %%Not a device.%%
+ * **seat** - %%The user/seat (the user themselves).%%
+ * **keyboard** - %%A regular keyboard, numberpad or attached buttons.%%
+ * **mouse** - %%A mouse, trackball or touchpad relative motion device.%%
+ * **touch** - %%A touchscreen with fingers or stylus.%%
+ * **pen** - %%A special pen device.%%
+ * **wand** - %%A laser pointer, wii-style or "Minority Report" pointing device.%%
+ * **gamepad** - %%A gamepad controller or joystick.%%
+
+===== Signature =====
+
+
+enum Efl.Input.Device_Type {
+ none: 0,
+ seat,
+ keyboard,
+ mouse,
+ touch,
+ pen,
+ wand,
+ gamepad
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_INPUT_DEVICE_TYPE_NONE = 0,
+ EFL_INPUT_DEVICE_TYPE_SEAT,
+ EFL_INPUT_DEVICE_TYPE_KEYBOARD,
+ EFL_INPUT_DEVICE_TYPE_MOUSE,
+ EFL_INPUT_DEVICE_TYPE_TOUCH,
+ EFL_INPUT_DEVICE_TYPE_PEN,
+ EFL_INPUT_DEVICE_TYPE_WAND,
+ EFL_INPUT_DEVICE_TYPE_GAMEPAD
+} Efl_Input_Device_Type;
+
diff --git a/public_html/data/pages/develop/api/efl/input/event.txt b/public_html/data/pages/develop/api/efl/input/event.txt
new file mode 100644
index 00000000..b1c0a432
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/event.txt
@@ -0,0 +1,87 @@
+~~Title: Efl.Input.Event~~
+====== Efl.Input.Event (mixin) ======
+
+===== Description =====
+
+%%Represents a generic event data.%%
+
+
+Efl_Input_Device *efl_input_device_get(const Eo *obj);
+void efl_input_device_set(Eo *obj, Efl_Input_Device *dev);
+
+\\
+**[[:develop:api:efl:input:event:property:event_flags|event_flags]]** //**(get, set)**//\\
+> %%Extra flags for this event, may be changed by the user.%%
+
+Efl_Input_Flags efl_input_event_flags_get(const Eo *obj);
+void efl_input_event_flags_set(Eo *obj, Efl_Input_Flags flags);
+
+\\
+**[[:develop:api:efl:input:event:property:fake|fake]]** //**(get)**//\\
+>
+
+Eina_Bool efl_input_fake_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:input:event:property:processed|processed]]** //**(get, set)**//\\
+> %%%%''true''%% if %%[[:develop:api:efl:input:event:property:event_flags|Efl.Input.Event.event_flags]]%% indicates the event is on hold.%%
+
+Eina_Bool efl_input_processed_get(const Eo *obj);
+void efl_input_processed_set(Eo *obj, Eina_Bool val);
+
+\\
+**[[:develop:api:efl:input:event:method:provider_find|provider_find]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+>
+
+Efl_Object *efl_provider_find(const Eo *obj, const Efl_Class *klass);
+
+\\
+**[[:develop:api:efl:input:event:method:reset|reset]]**\\
+> %%Resets the internal data to 0 or default values.%%
+
+void efl_input_reset(Eo *obj);
+
+\\
+**[[:develop:api:efl:input:event:property:scrolling|scrolling]]** //**(get, set)**//\\
+> %%%%''true''%% if %%[[:develop:api:efl:input:event:property:event_flags|Efl.Input.Event.event_flags]]%% indicates the event happened while scrolling.%%
+
+Eina_Bool efl_input_scrolling_get(const Eo *obj);
+void efl_input_scrolling_set(Eo *obj, Eina_Bool val);
+
+\\
+**[[:develop:api:efl:input:event:property:timestamp|timestamp]]** //**(get, set)**//\\
+> %%The time at which an event was generated.%%
+
+double efl_input_timestamp_get(const Eo *obj);
+void efl_input_timestamp_set(Eo *obj, double ms);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:duplicate|Efl.Duplicate]] ^^^
+| | **[[:develop:api:efl:duplicate:method:duplicate|duplicate]]** | %%Creates a carbon copy of this object and returns it.%% |
+
+===== Events =====
+
diff --git a/public_html/data/pages/develop/api/efl/input/event/method/provider_find.txt b/public_html/data/pages/develop/api/efl/input/event/method/provider_find.txt
new file mode 100644
index 00000000..97cded94
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/event/method/provider_find.txt
@@ -0,0 +1,38 @@
+~~Title: Efl.Input.Event.provider_find~~
+====== Efl.Input.Event.provider_find ======
+
+===== Description =====
+
+No description supplied.
+{{page>:develop:api-include:efl:input:event:method:provider_find:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:input:event:method:provider_find|Efl.Object.provider_find]].//===== Signature =====
+
+
+provider_find @const {
+ params {
+ @in klass: const(Efl.Class);
+ }
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_provider_find(const Eo *obj, const Efl_Class *klass);
+
+
+===== Parameters =====
+
+ * **klass** //(in)// - %%The class identifier to search for.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]
+ * [[:develop:api:efl:canvas:object:method:provider_find|Efl.Canvas.Object.provider_find]]
+ * [[:develop:api:efl:ui:widget:method:provider_find|Efl.Ui.Widget.provider_find]]
+ * [[:develop:api:efl:ui:win:method:provider_find|Efl.Ui.Win.provider_find]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:provider_find|Efl.Ui.Focus.Manager_Calc.provider_find]]
+ * [[:develop:api:evas:canvas3d:object:method:provider_find|Evas.Canvas3D.Object.provider_find]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/event/method/reset.txt b/public_html/data/pages/develop/api/efl/input/event/method/reset.txt
new file mode 100644
index 00000000..3ffeab86
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/event/method/reset.txt
@@ -0,0 +1,30 @@
+~~Title: Efl.Input.Event.reset~~
+====== Efl.Input.Event.reset ======
+
+===== Description =====
+
+%%Resets the internal data to 0 or default values.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:event:method:reset:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+reset @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_input_reset(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:method:reset|Efl.Input.Event.reset]]
+ * [[:develop:api:efl:input:pointer:method:reset|Efl.Input.Pointer.reset]]
+ * [[:develop:api:efl:input:key:method:reset|Efl.Input.Key.reset]]
+ * [[:develop:api:efl:input:hold:method:reset|Efl.Input.Hold.reset]]
+ * [[:develop:api:efl:input:focus:method:reset|Efl.Input.Focus.reset]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/event/property/device.txt b/public_html/data/pages/develop/api/efl/input/event/property/device.txt
new file mode 100644
index 00000000..36ed4502
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/event/property/device.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Input.Event.device~~
+====== Efl.Input.Event.device ======
+
+===== Description =====
+
+%%Input device that originated this event.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:event:property:device:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **dev** - %%Input device origin%%
+
+===== Signature =====
+
+
+@property device @pure_virtual {
+ get {}
+ set {}
+ values {
+ dev: Efl.Input.Device;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Input_Device *efl_input_device_get(const Eo *obj);
+void efl_input_device_set(Eo *obj, Efl_Input_Device *dev);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:property:device|Efl.Input.Event.device]]
+ * [[:develop:api:efl:input:pointer:property:device|Efl.Input.Pointer.device]]
+ * [[:develop:api:efl:input:key:property:device|Efl.Input.Key.device]]
+ * [[:develop:api:efl:input:hold:property:device|Efl.Input.Hold.device]]
+ * [[:develop:api:efl:input:focus:property:device|Efl.Input.Focus.device]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/event/property/event_flags.txt b/public_html/data/pages/develop/api/efl/input/event/property/event_flags.txt
new file mode 100644
index 00000000..303d315b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/event/property/event_flags.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Input.Event.event_flags~~
+====== Efl.Input.Event.event_flags ======
+
+===== Description =====
+
+%%Extra flags for this event, may be changed by the user.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:event:property:event_flags:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **flags** - %%Input event flags%%
+
+===== Signature =====
+
+
+@property event_flags @pure_virtual {
+ get {}
+ set {}
+ values {
+ flags: Efl.Input.Flags;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Input_Flags efl_input_event_flags_get(const Eo *obj);
+void efl_input_event_flags_set(Eo *obj, Efl_Input_Flags flags);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:property:event_flags|Efl.Input.Event.event_flags]]
+ * [[:develop:api:efl:input:pointer:property:event_flags|Efl.Input.Pointer.event_flags]]
+ * [[:develop:api:efl:input:key:property:event_flags|Efl.Input.Key.event_flags]]
+ * [[:develop:api:efl:input:hold:property:event_flags|Efl.Input.Hold.event_flags]]
+ * [[:develop:api:efl:input:focus:property:event_flags|Efl.Input.Focus.event_flags]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/event/property/fake.txt b/public_html/data/pages/develop/api/efl/input/event/property/fake.txt
new file mode 100644
index 00000000..c5f19c50
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/event/property/fake.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Input.Event.fake~~
+====== Efl.Input.Event.fake ======
+
+===== Values =====
+
+ * **val** - %%%%''true''%% if the event was not from real hardware, %%''false''%% otherwise%%
+
+
+\\ {{page>:develop:api-include:efl:input:event:property:fake:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property fake {
+ get {}
+ values {
+ val: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_input_fake_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:property:fake|Efl.Input.Event.fake]]
+ * [[:develop:api:efl:input:pointer:property:fake|Efl.Input.Pointer.fake]]
+ * [[:develop:api:efl:input:key:property:fake|Efl.Input.Key.fake]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/event/property/processed.txt b/public_html/data/pages/develop/api/efl/input/event/property/processed.txt
new file mode 100644
index 00000000..a086d8bf
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/event/property/processed.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Input.Event.processed~~
+====== Efl.Input.Event.processed ======
+
+===== Description =====
+
+%%%%''true''%% if %%[[:develop:api:efl:input:event:property:event_flags|Efl.Input.Event.event_flags]]%% indicates the event is on hold.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:event:property:processed:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **val** - %%%%''true''%% if the event is on hold, %%''false''%% otherwise%%
+
+===== Signature =====
+
+
+@property processed {
+ get {}
+ set {}
+ values {
+ val: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_input_processed_get(const Eo *obj);
+void efl_input_processed_set(Eo *obj, Eina_Bool val);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:property:processed|Efl.Input.Event.processed]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/event/property/scrolling.txt b/public_html/data/pages/develop/api/efl/input/event/property/scrolling.txt
new file mode 100644
index 00000000..39835adf
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/event/property/scrolling.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Input.Event.scrolling~~
+====== Efl.Input.Event.scrolling ======
+
+===== Description =====
+
+%%%%''true''%% if %%[[:develop:api:efl:input:event:property:event_flags|Efl.Input.Event.event_flags]]%% indicates the event happened while scrolling.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:event:property:scrolling:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **val** - %%%%''true''%% if the event happened while scrolling, %%''false''%% otherwise%%
+
+===== Signature =====
+
+
+@property scrolling {
+ get {}
+ set {}
+ values {
+ val: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_input_scrolling_get(const Eo *obj);
+void efl_input_scrolling_set(Eo *obj, Eina_Bool val);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:property:scrolling|Efl.Input.Event.scrolling]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/event/property/timestamp.txt b/public_html/data/pages/develop/api/efl/input/event/property/timestamp.txt
new file mode 100644
index 00000000..3a213e9b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/event/property/timestamp.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Input.Event.timestamp~~
+====== Efl.Input.Event.timestamp ======
+
+===== Description =====
+
+%%The time at which an event was generated.%%
+
+%%If the event is generated by a server (eg. X.org or Wayland), then the time may be set by the server. Usually this time will be based on the monotonic clock, if available, but this class can not guarantee it.%%
+
+//Since 1.23//
+
+
+{{page>:develop:api-include:efl:input:event:property:timestamp:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **ms** - %%Time in milliseconds when the event happened.%%
+==== Setter ====
+
+%%Call this when generating events manually.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:event:property:timestamp:getter_description&nouser&nolink&nodate}}
+
+
+===== Signature =====
+
+
+@property timestamp @pure_virtual {
+ get {}
+ set {}
+ values {
+ ms: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_input_timestamp_get(const Eo *obj);
+void efl_input_timestamp_set(Eo *obj, double ms);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:property:timestamp|Efl.Input.Event.timestamp]]
+ * [[:develop:api:efl:input:pointer:property:timestamp|Efl.Input.Pointer.timestamp]]
+ * [[:develop:api:efl:input:key:property:timestamp|Efl.Input.Key.timestamp]]
+ * [[:develop:api:efl:input:hold:property:timestamp|Efl.Input.Hold.timestamp]]
+ * [[:develop:api:efl:input:focus:property:timestamp|Efl.Input.Focus.timestamp]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/flags.txt b/public_html/data/pages/develop/api/efl/input/flags.txt
new file mode 100644
index 00000000..6e7a64e0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/flags.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Input.Flags~~
+
+===== Description =====
+
+%%Special flags set during an input event propagation.%%
+
+//Since 1.19//
+
+{{page>:develop:api-include:efl:input:flags:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:input:flags:fields&nouser&nolink&nodate}}
+
+ * **none** - %%No fancy flags set%%
+ * **processed** - %%This event is being delivered and has been processed, so it should be put "on hold" until the flag is unset. The event should be used for informational purposes and maybe some indications visually, but not actually perform anything.%%
+ * **scrolling** - %%This event flag indicates the event occurs while scrolling; for example, DOWN event occurs during scrolling. The event should be used for informational purposes and maybe some indications visually, but not actually perform anything.%%
+
+===== Signature =====
+
+
+enum Efl.Input.Flags {
+ none: 0,
+ processed: 1 >> 0,
+ scrolling: 1 >> 1
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_INPUT_FLAGS_NONE = 0,
+ EFL_INPUT_FLAGS_PROCESSED = 1 /* 1 >> 0 */,
+ EFL_INPUT_FLAGS_SCROLLING = 2 /* 1 >> 1 */
+} Efl_Input_Flags;
+
diff --git a/public_html/data/pages/develop/api/efl/input/focus.txt b/public_html/data/pages/develop/api/efl/input/focus.txt
new file mode 100644
index 00000000..b006ce73
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/focus.txt
@@ -0,0 +1,123 @@
+~~Title: Efl.Input.Focus~~
+====== Efl.Input.Focus (class) ======
+
+===== Description =====
+
+%%Represents a focus event.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:input:focus:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:input:event|Efl.Input.Event]] //(mixin)//
+ * [[:develop:api:efl:duplicate|Efl.Duplicate]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:input:focus:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:input:focus:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:input:focus:property:device|device]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:input:event|Efl.Input.Event]]]//\\
+> %%Input device that originated this event.%%
+
+Efl_Input_Device *efl_input_device_get(const Eo *obj);
+void efl_input_device_set(Eo *obj, Efl_Input_Device *dev);
+
+\\
+**[[:develop:api:efl:input:focus:method:duplicate|duplicate]]**// [Overridden from [[:develop:api:efl:duplicate|Efl.Duplicate]]]//\\
+> %%Creates a copy of this event. %%[[:develop:api:efl:input:event:property:fake|Efl.Input.Event.fake]]%% is %%''true''%%.%%
+
+Efl_Duplicate *efl_duplicate(const Eo *obj);
+
+\\
+**[[:develop:api:efl:input:focus:property:event_flags|event_flags]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:input:event|Efl.Input.Event]]]//\\
+> %%Extra flags for this event, may be changed by the user.%%
+
+Efl_Input_Flags efl_input_event_flags_get(const Eo *obj);
+void efl_input_event_flags_set(Eo *obj, Efl_Input_Flags flags);
+
+\\
+**[[:develop:api:efl:input:focus:property:object|object]]** //**(get, set)**//\\
+> %%The focused object.%%
+
+Efl_Object *efl_input_focus_object_get(const Eo *obj);
+void efl_input_focus_object_set(Eo *obj, Efl_Object *object);
+
+\\
+**[[:develop:api:efl:input:focus:method:reset|reset]]**// [Overridden from [[:develop:api:efl:input:event|Efl.Input.Event]]]//\\
+> %%Resets the internal data to 0 or default values.%%
+
+void efl_input_reset(Eo *obj);
+
+\\
+**[[:develop:api:efl:input:focus:property:timestamp|timestamp]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:input:event|Efl.Input.Event]]]//\\
+> %%The time at which an event was generated.%%
+
+double efl_input_timestamp_get(const Eo *obj);
+void efl_input_timestamp_set(Eo *obj, double ms);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:input:event|Efl.Input.Event]] ^^^
+| | **[[:develop:api:efl:input:event:property:fake|fake]]** //**(get)**// | |
+| | **[[:develop:api:efl:input:event:property:processed|processed]]** //**(get, set)**// | %%%%''true''%% if %%[[:develop:api:efl:input:event:property:event_flags|Efl.Input.Event.event_flags]]%% indicates the event is on hold.%% |
+| | **[[:develop:api:efl:input:event:property:scrolling|scrolling]]** //**(get, set)**// | %%%%''true''%% if %%[[:develop:api:efl:input:event:property:event_flags|Efl.Input.Event.event_flags]]%% indicates the event happened while scrolling.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
diff --git a/public_html/data/pages/develop/api/efl/input/focus/method/constructor.txt b/public_html/data/pages/develop/api/efl/input/focus/method/constructor.txt
new file mode 100644
index 00000000..cdf36caf
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/focus/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Input.Focus.constructor~~
+====== Efl.Input.Focus.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:input:focus:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/focus/method/destructor.txt b/public_html/data/pages/develop/api/efl/input/focus/method/destructor.txt
new file mode 100644
index 00000000..ba2b0090
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/focus/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Input.Focus.destructor~~
+====== Efl.Input.Focus.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:input:focus:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/focus/method/duplicate.txt b/public_html/data/pages/develop/api/efl/input/focus/method/duplicate.txt
new file mode 100644
index 00000000..922dff9f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/focus/method/duplicate.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Input.Focus.duplicate~~
+====== Efl.Input.Focus.duplicate ======
+
+===== Description =====
+
+%%Creates a copy of this event. %%[[:develop:api:efl:input:event:property:fake|Efl.Input.Event.fake]]%% is %%''true''%%.%%
+
+%%The returned event object is similar to the given object in most ways except that %%[[:develop:api:efl:input:event:property:fake|Efl.Input.Event.fake]]%% will be %%''true''%%.%%
+
+
+duplicate @const @pure_virtual {
+ return: Efl.Duplicate;
+}
+
+
+===== C signature =====
+
+
+Efl_Duplicate *efl_duplicate(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:duplicate:method:duplicate|Efl.Duplicate.duplicate]]
+ * [[:develop:api:efl:canvas:vg:node:method:duplicate|Efl.Canvas.Vg.Node.duplicate]]
+ * [[:develop:api:efl:canvas:vg:shape:method:duplicate|Efl.Canvas.Vg.Shape.duplicate]]
+ * [[:develop:api:efl:canvas:vg:container:method:duplicate|Efl.Canvas.Vg.Container.duplicate]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:duplicate|Efl.Canvas.Vg.Gradient.duplicate]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:duplicate|Efl.Canvas.Vg.Gradient_Linear.duplicate]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:duplicate|Efl.Canvas.Vg.Gradient_Radial.duplicate]]
+ * [[:develop:api:efl:input:pointer:method:duplicate|Efl.Input.Pointer.duplicate]]
+ * [[:develop:api:efl:input:key:method:duplicate|Efl.Input.Key.duplicate]]
+ * [[:develop:api:efl:input:hold:method:duplicate|Efl.Input.Hold.duplicate]]
+ * [[:develop:api:efl:input:focus:method:duplicate|Efl.Input.Focus.duplicate]]
+ * [[:develop:api:efl:core:env:method:duplicate|Efl.Core.Env.duplicate]]
+ * [[:develop:api:efl:core:proc_env:method:duplicate|Efl.Core.Proc_Env.duplicate]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/focus/method/reset.txt b/public_html/data/pages/develop/api/efl/input/focus/method/reset.txt
new file mode 100644
index 00000000..676df8f0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/focus/method/reset.txt
@@ -0,0 +1,30 @@
+~~Title: Efl.Input.Focus.reset~~
+====== Efl.Input.Focus.reset ======
+
+===== Description =====
+
+%%Resets the internal data to 0 or default values.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:focus:method:reset:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:input:event:method:reset|Efl.Input.Event.reset]].//===== Signature =====
+
+
+reset @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_input_reset(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:method:reset|Efl.Input.Event.reset]]
+ * [[:develop:api:efl:input:pointer:method:reset|Efl.Input.Pointer.reset]]
+ * [[:develop:api:efl:input:key:method:reset|Efl.Input.Key.reset]]
+ * [[:develop:api:efl:input:hold:method:reset|Efl.Input.Hold.reset]]
+ * [[:develop:api:efl:input:focus:method:reset|Efl.Input.Focus.reset]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/focus/property/device.txt b/public_html/data/pages/develop/api/efl/input/focus/property/device.txt
new file mode 100644
index 00000000..12d82db2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/focus/property/device.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Input.Focus.device~~
+====== Efl.Input.Focus.device ======
+
+===== Description =====
+
+%%Input device that originated this event.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:focus:property:device:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **dev** - %%Input device origin%%
+
+//Overridden from [[:develop:api:efl:input:event:property:device|Efl.Input.Event.device]] **(get, set)**.//===== Signature =====
+
+
+@property device @pure_virtual {
+ get {}
+ set {}
+ values {
+ dev: Efl.Input.Device;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Input_Device *efl_input_device_get(const Eo *obj);
+void efl_input_device_set(Eo *obj, Efl_Input_Device *dev);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:property:device|Efl.Input.Event.device]]
+ * [[:develop:api:efl:input:pointer:property:device|Efl.Input.Pointer.device]]
+ * [[:develop:api:efl:input:key:property:device|Efl.Input.Key.device]]
+ * [[:develop:api:efl:input:hold:property:device|Efl.Input.Hold.device]]
+ * [[:develop:api:efl:input:focus:property:device|Efl.Input.Focus.device]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/focus/property/event_flags.txt b/public_html/data/pages/develop/api/efl/input/focus/property/event_flags.txt
new file mode 100644
index 00000000..c9cded51
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/focus/property/event_flags.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Input.Focus.event_flags~~
+====== Efl.Input.Focus.event_flags ======
+
+===== Description =====
+
+%%Extra flags for this event, may be changed by the user.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:focus:property:event_flags:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **flags** - %%Input event flags%%
+
+//Overridden from [[:develop:api:efl:input:event:property:event_flags|Efl.Input.Event.event_flags]] **(get, set)**.//===== Signature =====
+
+
+@property event_flags @pure_virtual {
+ get {}
+ set {}
+ values {
+ flags: Efl.Input.Flags;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Input_Flags efl_input_event_flags_get(const Eo *obj);
+void efl_input_event_flags_set(Eo *obj, Efl_Input_Flags flags);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:property:event_flags|Efl.Input.Event.event_flags]]
+ * [[:develop:api:efl:input:pointer:property:event_flags|Efl.Input.Pointer.event_flags]]
+ * [[:develop:api:efl:input:key:property:event_flags|Efl.Input.Key.event_flags]]
+ * [[:develop:api:efl:input:hold:property:event_flags|Efl.Input.Hold.event_flags]]
+ * [[:develop:api:efl:input:focus:property:event_flags|Efl.Input.Focus.event_flags]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/focus/property/object.txt b/public_html/data/pages/develop/api/efl/input/focus/property/object.txt
new file mode 100644
index 00000000..c62042d1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/focus/property/object.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Input.Focus.object~~
+====== Efl.Input.Focus.object ======
+
+===== Description =====
+
+%%The focused object.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:input:focus:property:object:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **object** - %%The focused object, or %%''NULL''%% if the event comes from the canvas.%%
+
+===== Signature =====
+
+
+@property object {
+ get {}
+ set {}
+ values {
+ object: Efl.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_input_focus_object_get(const Eo *obj);
+void efl_input_focus_object_set(Eo *obj, Efl_Object *object);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:focus:property:object|Efl.Input.Focus.object]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/focus/property/timestamp.txt b/public_html/data/pages/develop/api/efl/input/focus/property/timestamp.txt
new file mode 100644
index 00000000..c6776984
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/focus/property/timestamp.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Input.Focus.timestamp~~
+====== Efl.Input.Focus.timestamp ======
+
+===== Description =====
+
+%%The time at which an event was generated.%%
+
+%%If the event is generated by a server (eg. X.org or Wayland), then the time may be set by the server. Usually this time will be based on the monotonic clock, if available, but this class can not guarantee it.%%
+
+//Since 1.23//
+
+
+{{page>:develop:api-include:efl:input:focus:property:timestamp:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **ms** - %%Time in milliseconds when the event happened.%%
+==== Setter ====
+
+%%Call this when generating events manually.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:focus:property:timestamp:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:input:event:property:timestamp|Efl.Input.Event.timestamp]] **(get, set)**.//===== Signature =====
+
+
+@property timestamp @pure_virtual {
+ get {}
+ set {}
+ values {
+ ms: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_input_timestamp_get(const Eo *obj);
+void efl_input_timestamp_set(Eo *obj, double ms);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:property:timestamp|Efl.Input.Event.timestamp]]
+ * [[:develop:api:efl:input:pointer:property:timestamp|Efl.Input.Pointer.timestamp]]
+ * [[:develop:api:efl:input:key:property:timestamp|Efl.Input.Key.timestamp]]
+ * [[:develop:api:efl:input:hold:property:timestamp|Efl.Input.Hold.timestamp]]
+ * [[:develop:api:efl:input:focus:property:timestamp|Efl.Input.Focus.timestamp]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/hold.txt b/public_html/data/pages/develop/api/efl/input/hold.txt
new file mode 100644
index 00000000..5ba7e332
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/hold.txt
@@ -0,0 +1,123 @@
+~~Title: Efl.Input.Hold~~
+====== Efl.Input.Hold (class) ======
+
+===== Description =====
+
+%%Event data sent when inputs are put on hold or resumed.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:hold:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:input:event|Efl.Input.Event]] //(mixin)//
+ * [[:develop:api:efl:duplicate|Efl.Duplicate]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:input:hold:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:input:hold:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:input:hold:property:device|device]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:input:event|Efl.Input.Event]]]//\\
+> %%Input device that originated this event.%%
+
+Efl_Input_Device *efl_input_device_get(const Eo *obj);
+void efl_input_device_set(Eo *obj, Efl_Input_Device *dev);
+
+\\
+**[[:develop:api:efl:input:hold:method:duplicate|duplicate]]**// [Overridden from [[:develop:api:efl:duplicate|Efl.Duplicate]]]//\\
+> %%Creates a copy of this event. %%[[:develop:api:efl:input:event:property:fake|Efl.Input.Event.fake]]%% is %%''true''%%.%%
+
+Efl_Duplicate *efl_duplicate(const Eo *obj);
+
+\\
+**[[:develop:api:efl:input:hold:property:event_flags|event_flags]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:input:event|Efl.Input.Event]]]//\\
+> %%Extra flags for this event, may be changed by the user.%%
+
+Efl_Input_Flags efl_input_event_flags_get(const Eo *obj);
+void efl_input_event_flags_set(Eo *obj, Efl_Input_Flags flags);
+
+\\
+**[[:develop:api:efl:input:hold:property:input_hold|input_hold]]** //**(get, set)**//\\
+> %%Property to show if inputs are now on hold.%%
+
+Eina_Bool efl_input_hold_get(const Eo *obj);
+void efl_input_hold_set(Eo *obj, Eina_Bool val);
+
+\\
+**[[:develop:api:efl:input:hold:method:reset|reset]]**// [Overridden from [[:develop:api:efl:input:event|Efl.Input.Event]]]//\\
+> %%Resets the internal data to 0 or default values.%%
+
+void efl_input_reset(Eo *obj);
+
+\\
+**[[:develop:api:efl:input:hold:property:timestamp|timestamp]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:input:event|Efl.Input.Event]]]//\\
+> %%The time at which an event was generated.%%
+
+double efl_input_timestamp_get(const Eo *obj);
+void efl_input_timestamp_set(Eo *obj, double ms);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:input:event|Efl.Input.Event]] ^^^
+| | **[[:develop:api:efl:input:event:property:fake|fake]]** //**(get)**// | |
+| | **[[:develop:api:efl:input:event:property:processed|processed]]** //**(get, set)**// | %%%%''true''%% if %%[[:develop:api:efl:input:event:property:event_flags|Efl.Input.Event.event_flags]]%% indicates the event is on hold.%% |
+| | **[[:develop:api:efl:input:event:property:scrolling|scrolling]]** //**(get, set)**// | %%%%''true''%% if %%[[:develop:api:efl:input:event:property:event_flags|Efl.Input.Event.event_flags]]%% indicates the event happened while scrolling.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
diff --git a/public_html/data/pages/develop/api/efl/input/hold/method/constructor.txt b/public_html/data/pages/develop/api/efl/input/hold/method/constructor.txt
new file mode 100644
index 00000000..f41b9f03
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/hold/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Input.Hold.constructor~~
+====== Efl.Input.Hold.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:input:hold:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/hold/method/destructor.txt b/public_html/data/pages/develop/api/efl/input/hold/method/destructor.txt
new file mode 100644
index 00000000..33779079
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/hold/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Input.Hold.destructor~~
+====== Efl.Input.Hold.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:input:hold:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/hold/method/duplicate.txt b/public_html/data/pages/develop/api/efl/input/hold/method/duplicate.txt
new file mode 100644
index 00000000..4e2118f2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/hold/method/duplicate.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Input.Hold.duplicate~~
+====== Efl.Input.Hold.duplicate ======
+
+===== Description =====
+
+%%Creates a copy of this event. %%[[:develop:api:efl:input:event:property:fake|Efl.Input.Event.fake]]%% is %%''true''%%.%%
+
+%%The returned event object is similar to the given object in most ways except that %%[[:develop:api:efl:input:event:property:fake|Efl.Input.Event.fake]]%% will be %%''true''%%.%%
+
+
+duplicate @const @pure_virtual {
+ return: Efl.Duplicate;
+}
+
+
+===== C signature =====
+
+
+Efl_Duplicate *efl_duplicate(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:duplicate:method:duplicate|Efl.Duplicate.duplicate]]
+ * [[:develop:api:efl:canvas:vg:node:method:duplicate|Efl.Canvas.Vg.Node.duplicate]]
+ * [[:develop:api:efl:canvas:vg:shape:method:duplicate|Efl.Canvas.Vg.Shape.duplicate]]
+ * [[:develop:api:efl:canvas:vg:container:method:duplicate|Efl.Canvas.Vg.Container.duplicate]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:duplicate|Efl.Canvas.Vg.Gradient.duplicate]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:duplicate|Efl.Canvas.Vg.Gradient_Linear.duplicate]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:duplicate|Efl.Canvas.Vg.Gradient_Radial.duplicate]]
+ * [[:develop:api:efl:input:pointer:method:duplicate|Efl.Input.Pointer.duplicate]]
+ * [[:develop:api:efl:input:key:method:duplicate|Efl.Input.Key.duplicate]]
+ * [[:develop:api:efl:input:hold:method:duplicate|Efl.Input.Hold.duplicate]]
+ * [[:develop:api:efl:input:focus:method:duplicate|Efl.Input.Focus.duplicate]]
+ * [[:develop:api:efl:core:env:method:duplicate|Efl.Core.Env.duplicate]]
+ * [[:develop:api:efl:core:proc_env:method:duplicate|Efl.Core.Proc_Env.duplicate]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/hold/method/reset.txt b/public_html/data/pages/develop/api/efl/input/hold/method/reset.txt
new file mode 100644
index 00000000..2a52bfe3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/hold/method/reset.txt
@@ -0,0 +1,30 @@
+~~Title: Efl.Input.Hold.reset~~
+====== Efl.Input.Hold.reset ======
+
+===== Description =====
+
+%%Resets the internal data to 0 or default values.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:hold:method:reset:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:input:event:method:reset|Efl.Input.Event.reset]].//===== Signature =====
+
+
+reset @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_input_reset(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:method:reset|Efl.Input.Event.reset]]
+ * [[:develop:api:efl:input:pointer:method:reset|Efl.Input.Pointer.reset]]
+ * [[:develop:api:efl:input:key:method:reset|Efl.Input.Key.reset]]
+ * [[:develop:api:efl:input:hold:method:reset|Efl.Input.Hold.reset]]
+ * [[:develop:api:efl:input:focus:method:reset|Efl.Input.Focus.reset]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/hold/property/device.txt b/public_html/data/pages/develop/api/efl/input/hold/property/device.txt
new file mode 100644
index 00000000..72896168
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/hold/property/device.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Input.Hold.device~~
+====== Efl.Input.Hold.device ======
+
+===== Description =====
+
+%%Input device that originated this event.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:hold:property:device:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **dev** - %%Input device origin%%
+
+//Overridden from [[:develop:api:efl:input:event:property:device|Efl.Input.Event.device]] **(get, set)**.//===== Signature =====
+
+
+@property device @pure_virtual {
+ get {}
+ set {}
+ values {
+ dev: Efl.Input.Device;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Input_Device *efl_input_device_get(const Eo *obj);
+void efl_input_device_set(Eo *obj, Efl_Input_Device *dev);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:property:device|Efl.Input.Event.device]]
+ * [[:develop:api:efl:input:pointer:property:device|Efl.Input.Pointer.device]]
+ * [[:develop:api:efl:input:key:property:device|Efl.Input.Key.device]]
+ * [[:develop:api:efl:input:hold:property:device|Efl.Input.Hold.device]]
+ * [[:develop:api:efl:input:focus:property:device|Efl.Input.Focus.device]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/hold/property/event_flags.txt b/public_html/data/pages/develop/api/efl/input/hold/property/event_flags.txt
new file mode 100644
index 00000000..153473c7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/hold/property/event_flags.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Input.Hold.event_flags~~
+====== Efl.Input.Hold.event_flags ======
+
+===== Description =====
+
+%%Extra flags for this event, may be changed by the user.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:hold:property:event_flags:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **flags** - %%Input event flags%%
+
+//Overridden from [[:develop:api:efl:input:event:property:event_flags|Efl.Input.Event.event_flags]] **(get, set)**.//===== Signature =====
+
+
+@property event_flags @pure_virtual {
+ get {}
+ set {}
+ values {
+ flags: Efl.Input.Flags;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Input_Flags efl_input_event_flags_get(const Eo *obj);
+void efl_input_event_flags_set(Eo *obj, Efl_Input_Flags flags);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:property:event_flags|Efl.Input.Event.event_flags]]
+ * [[:develop:api:efl:input:pointer:property:event_flags|Efl.Input.Pointer.event_flags]]
+ * [[:develop:api:efl:input:key:property:event_flags|Efl.Input.Key.event_flags]]
+ * [[:develop:api:efl:input:hold:property:event_flags|Efl.Input.Hold.event_flags]]
+ * [[:develop:api:efl:input:focus:property:event_flags|Efl.Input.Focus.event_flags]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/hold/property/input_hold.txt b/public_html/data/pages/develop/api/efl/input/hold/property/input_hold.txt
new file mode 100644
index 00000000..9cb7bad4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/hold/property/input_hold.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Input.Hold.input_hold~~
+====== Efl.Input.Hold.input_hold ======
+
+===== Description =====
+
+%%Property to show if inputs are now on hold.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:hold:property:input_hold:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **val** - %%%%''true''%% if inputs are on hold, %%''false''%% otherwise%%
+
+===== Signature =====
+
+
+@property input_hold {
+ get {}
+ set {}
+ values {
+ val: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_input_hold_get(const Eo *obj);
+void efl_input_hold_set(Eo *obj, Eina_Bool val);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:hold:property:input_hold|Efl.Input.Hold.input_hold]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/hold/property/timestamp.txt b/public_html/data/pages/develop/api/efl/input/hold/property/timestamp.txt
new file mode 100644
index 00000000..c2729f26
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/hold/property/timestamp.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Input.Hold.timestamp~~
+====== Efl.Input.Hold.timestamp ======
+
+===== Description =====
+
+%%The time at which an event was generated.%%
+
+%%If the event is generated by a server (eg. X.org or Wayland), then the time may be set by the server. Usually this time will be based on the monotonic clock, if available, but this class can not guarantee it.%%
+
+//Since 1.23//
+
+
+{{page>:develop:api-include:efl:input:hold:property:timestamp:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **ms** - %%Time in milliseconds when the event happened.%%
+==== Setter ====
+
+%%Call this when generating events manually.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:hold:property:timestamp:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:input:event:property:timestamp|Efl.Input.Event.timestamp]] **(get, set)**.//===== Signature =====
+
+
+@property timestamp @pure_virtual {
+ get {}
+ set {}
+ values {
+ ms: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_input_timestamp_get(const Eo *obj);
+void efl_input_timestamp_set(Eo *obj, double ms);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:property:timestamp|Efl.Input.Event.timestamp]]
+ * [[:develop:api:efl:input:pointer:property:timestamp|Efl.Input.Pointer.timestamp]]
+ * [[:develop:api:efl:input:key:property:timestamp|Efl.Input.Key.timestamp]]
+ * [[:develop:api:efl:input:hold:property:timestamp|Efl.Input.Hold.timestamp]]
+ * [[:develop:api:efl:input:focus:property:timestamp|Efl.Input.Focus.timestamp]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/interface.txt b/public_html/data/pages/develop/api/efl/input/interface.txt
new file mode 100644
index 00000000..994e7b8d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/interface.txt
@@ -0,0 +1,112 @@
+~~Title: Efl.Input.Interface~~
+====== Efl.Input.Interface (interface) ======
+
+===== Description =====
+
+%%An object implementing this interface can send pointer events.%%
+
+%%Windows and canvas objects may send input events.%%
+
+%%A "pointer" refers to the main pointing device, which could be a mouse, trackpad, finger, pen, etc... In other words, the finger id in any pointer event will always be 0.%%
+
+%%A "finger" refers to a single point of input, usually in an absolute coordinates input device, and that can support more than one input position at at time (think multi-touch screens). The first finger (id 0) is sent along with a pointer event, so be careful to not handle those events twice. Note that if the input device can support "hovering", it is entirely possible to receive move events without down coming first.%%
+
+%%A "key" is a key press from a keyboard or equivalent type of input device. Long, repeated, key presses will always happen like this: down...up,down...up,down...up (not down...up or down...down...down...up).%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:interface:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:input:interface:property:seat_event_filter|seat_event_filter]]** //**(get, set)**//\\
+> %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%%
+
+Eina_Bool efl_input_seat_event_filter_get(const Eo *obj, Efl_Input_Device *seat);
+void efl_input_seat_event_filter_set(Eo *obj, Efl_Input_Device *seat, Eina_Bool enable);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:input:interface:event:finger_down|finger,down]]**\\
+> %%Finger pressed (finger id is known).%%
+
+EFL_EVENT_FINGER_DOWN(Efl_Input_Pointer *)
+
+\\ **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]**\\
+> %%Finger moved (current and previous positions are known).%%
+
+EFL_EVENT_FINGER_MOVE(Efl_Input_Pointer *)
+
+\\ **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]**\\
+> %%Finger released (finger id is known).%%
+
+EFL_EVENT_FINGER_UP(Efl_Input_Pointer *)
+
+\\ **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]**\\
+> %%A focus in event.%%
+
+EFL_EVENT_FOCUS_IN(Efl_Input_Focus *)
+
+\\ **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]**\\
+> %%A focus out event.%%
+
+EFL_EVENT_FOCUS_OUT(Efl_Input_Focus *)
+
+\\ **[[:develop:api:efl:input:interface:event:hold|hold]]**\\
+> %%All input events are on hold or resumed.%%
+
+EFL_EVENT_HOLD(Efl_Input_Hold *)
+
+\\ **[[:develop:api:efl:input:interface:event:key_down|key,down]]**\\
+> %%Keyboard key press.%%
+
+EFL_EVENT_KEY_DOWN(Efl_Input_Key *)
+
+\\ **[[:develop:api:efl:input:interface:event:key_up|key,up]]**\\
+> %%Keyboard key release.%%
+
+EFL_EVENT_KEY_UP(Efl_Input_Key *)
+
+\\ **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]**\\
+> %%Pen or other axis event update.%%
+
+EFL_EVENT_POINTER_AXIS(Efl_Input_Pointer *)
+
+\\ **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]**\\
+> %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%%
+
+EFL_EVENT_POINTER_CANCEL(Efl_Input_Pointer *)
+
+\\ **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]**\\
+> %%Main pointer button pressed (button id is known).%%
+
+EFL_EVENT_POINTER_DOWN(Efl_Input_Pointer *)
+
+\\ **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]**\\
+> %%Pointer entered a window or a widget.%%
+
+EFL_EVENT_POINTER_IN(Efl_Input_Pointer *)
+
+\\ **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]**\\
+> %%Main pointer move (current and previous positions are known).%%
+
+EFL_EVENT_POINTER_MOVE(Efl_Input_Pointer *)
+
+\\ **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]**\\
+> %%Pointer left a window or a widget.%%
+
+EFL_EVENT_POINTER_OUT(Efl_Input_Pointer *)
+
+\\ **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]**\\
+> %%Main pointer button released (button id is known).%%
+
+EFL_EVENT_POINTER_UP(Efl_Input_Pointer *)
+
+\\ **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]**\\
+> %%Mouse wheel event.%%
+
+EFL_EVENT_POINTER_WHEEL(Efl_Input_Pointer *)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/input/interface/event/finger_down.txt b/public_html/data/pages/develop/api/efl/input/interface/event/finger_down.txt
new file mode 100644
index 00000000..aa21a168
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/interface/event/finger_down.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Input.Interface: finger,down~~
+
+===== Description =====
+
+%%Finger pressed (finger id is known).%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:interface:event:finger_down:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+finger,down: Efl.Input.Pointer;
+
+
+===== C information =====
+
+
+EFL_EVENT_FINGER_DOWN(Efl_Input_Pointer *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_event_finger_down(void *data, const Efl_Event *event)
+{
+ Efl_Input_Pointer *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_EVENT_FINGER_DOWN, on_efl_event_finger_down, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/input/interface/event/finger_move.txt b/public_html/data/pages/develop/api/efl/input/interface/event/finger_move.txt
new file mode 100644
index 00000000..0e0db223
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/interface/event/finger_move.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Input.Interface: finger,move~~
+
+===== Description =====
+
+%%Finger moved (current and previous positions are known).%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:interface:event:finger_move:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+finger,move: Efl.Input.Pointer;
+
+
+===== C information =====
+
+
+EFL_EVENT_FINGER_MOVE(Efl_Input_Pointer *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_event_finger_move(void *data, const Efl_Event *event)
+{
+ Efl_Input_Pointer *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_EVENT_FINGER_MOVE, on_efl_event_finger_move, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/input/interface/event/finger_up.txt b/public_html/data/pages/develop/api/efl/input/interface/event/finger_up.txt
new file mode 100644
index 00000000..1c89e4b1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/interface/event/finger_up.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Input.Interface: finger,up~~
+
+===== Description =====
+
+%%Finger released (finger id is known).%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:interface:event:finger_up:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+finger,up: Efl.Input.Pointer;
+
+
+===== C information =====
+
+
+EFL_EVENT_FINGER_UP(Efl_Input_Pointer *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_event_finger_up(void *data, const Efl_Event *event)
+{
+ Efl_Input_Pointer *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_EVENT_FINGER_UP, on_efl_event_finger_up, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/input/interface/event/focus_in.txt b/public_html/data/pages/develop/api/efl/input/interface/event/focus_in.txt
new file mode 100644
index 00000000..c8b8dca4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/interface/event/focus_in.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Input.Interface: focus,in~~
+
+===== Description =====
+
+%%A focus in event.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:interface:event:focus_in:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+focus,in: Efl.Input.Focus;
+
+
+===== C information =====
+
+
+EFL_EVENT_FOCUS_IN(Efl_Input_Focus *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_event_focus_in(void *data, const Efl_Event *event)
+{
+ Efl_Input_Focus *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_EVENT_FOCUS_IN, on_efl_event_focus_in, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/input/interface/event/focus_out.txt b/public_html/data/pages/develop/api/efl/input/interface/event/focus_out.txt
new file mode 100644
index 00000000..2744e771
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/interface/event/focus_out.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Input.Interface: focus,out~~
+
+===== Description =====
+
+%%A focus out event.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:interface:event:focus_out:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+focus,out: Efl.Input.Focus;
+
+
+===== C information =====
+
+
+EFL_EVENT_FOCUS_OUT(Efl_Input_Focus *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_event_focus_out(void *data, const Efl_Event *event)
+{
+ Efl_Input_Focus *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_EVENT_FOCUS_OUT, on_efl_event_focus_out, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/input/interface/event/hold.txt b/public_html/data/pages/develop/api/efl/input/interface/event/hold.txt
new file mode 100644
index 00000000..e23584ed
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/interface/event/hold.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Input.Interface: hold~~
+
+===== Description =====
+
+%%All input events are on hold or resumed.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:interface:event:hold:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+hold: Efl.Input.Hold;
+
+
+===== C information =====
+
+
+EFL_EVENT_HOLD(Efl_Input_Hold *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_event_hold(void *data, const Efl_Event *event)
+{
+ Efl_Input_Hold *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_EVENT_HOLD, on_efl_event_hold, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/input/interface/event/key_down.txt b/public_html/data/pages/develop/api/efl/input/interface/event/key_down.txt
new file mode 100644
index 00000000..373dbb26
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/interface/event/key_down.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Input.Interface: key,down~~
+
+===== Description =====
+
+%%Keyboard key press.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:interface:event:key_down:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+key,down: Efl.Input.Key;
+
+
+===== C information =====
+
+
+EFL_EVENT_KEY_DOWN(Efl_Input_Key *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_event_key_down(void *data, const Efl_Event *event)
+{
+ Efl_Input_Key *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_EVENT_KEY_DOWN, on_efl_event_key_down, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/input/interface/event/key_up.txt b/public_html/data/pages/develop/api/efl/input/interface/event/key_up.txt
new file mode 100644
index 00000000..dea592b6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/interface/event/key_up.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Input.Interface: key,up~~
+
+===== Description =====
+
+%%Keyboard key release.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:interface:event:key_up:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+key,up: Efl.Input.Key;
+
+
+===== C information =====
+
+
+EFL_EVENT_KEY_UP(Efl_Input_Key *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_event_key_up(void *data, const Efl_Event *event)
+{
+ Efl_Input_Key *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_EVENT_KEY_UP, on_efl_event_key_up, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/input/interface/event/pointer_axis.txt b/public_html/data/pages/develop/api/efl/input/interface/event/pointer_axis.txt
new file mode 100644
index 00000000..34398faa
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/interface/event/pointer_axis.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Input.Interface: pointer,axis~~
+
+===== Description =====
+
+%%Pen or other axis event update.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:interface:event:pointer_axis:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+pointer,axis: Efl.Input.Pointer;
+
+
+===== C information =====
+
+
+EFL_EVENT_POINTER_AXIS(Efl_Input_Pointer *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_event_pointer_axis(void *data, const Efl_Event *event)
+{
+ Efl_Input_Pointer *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_EVENT_POINTER_AXIS, on_efl_event_pointer_axis, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/input/interface/event/pointer_cancel.txt b/public_html/data/pages/develop/api/efl/input/interface/event/pointer_cancel.txt
new file mode 100644
index 00000000..e2ead968
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/interface/event/pointer_cancel.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Input.Interface: pointer,cancel~~
+
+===== Description =====
+
+%%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:interface:event:pointer_cancel:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+pointer,cancel: Efl.Input.Pointer;
+
+
+===== C information =====
+
+
+EFL_EVENT_POINTER_CANCEL(Efl_Input_Pointer *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_event_pointer_cancel(void *data, const Efl_Event *event)
+{
+ Efl_Input_Pointer *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_EVENT_POINTER_CANCEL, on_efl_event_pointer_cancel, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/input/interface/event/pointer_down.txt b/public_html/data/pages/develop/api/efl/input/interface/event/pointer_down.txt
new file mode 100644
index 00000000..8ce9fffb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/interface/event/pointer_down.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Input.Interface: pointer,down~~
+
+===== Description =====
+
+%%Main pointer button pressed (button id is known).%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:interface:event:pointer_down:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+pointer,down: Efl.Input.Pointer;
+
+
+===== C information =====
+
+
+EFL_EVENT_POINTER_DOWN(Efl_Input_Pointer *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_event_pointer_down(void *data, const Efl_Event *event)
+{
+ Efl_Input_Pointer *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_EVENT_POINTER_DOWN, on_efl_event_pointer_down, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/input/interface/event/pointer_in.txt b/public_html/data/pages/develop/api/efl/input/interface/event/pointer_in.txt
new file mode 100644
index 00000000..c6ad16b4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/interface/event/pointer_in.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Input.Interface: pointer,in~~
+
+===== Description =====
+
+%%Pointer entered a window or a widget.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:interface:event:pointer_in:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+pointer,in: Efl.Input.Pointer;
+
+
+===== C information =====
+
+
+EFL_EVENT_POINTER_IN(Efl_Input_Pointer *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_event_pointer_in(void *data, const Efl_Event *event)
+{
+ Efl_Input_Pointer *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_EVENT_POINTER_IN, on_efl_event_pointer_in, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/input/interface/event/pointer_move.txt b/public_html/data/pages/develop/api/efl/input/interface/event/pointer_move.txt
new file mode 100644
index 00000000..b987053c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/interface/event/pointer_move.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Input.Interface: pointer,move~~
+
+===== Description =====
+
+%%Main pointer move (current and previous positions are known).%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:interface:event:pointer_move:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+pointer,move: Efl.Input.Pointer;
+
+
+===== C information =====
+
+
+EFL_EVENT_POINTER_MOVE(Efl_Input_Pointer *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_event_pointer_move(void *data, const Efl_Event *event)
+{
+ Efl_Input_Pointer *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_EVENT_POINTER_MOVE, on_efl_event_pointer_move, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/input/interface/event/pointer_out.txt b/public_html/data/pages/develop/api/efl/input/interface/event/pointer_out.txt
new file mode 100644
index 00000000..67d1c013
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/interface/event/pointer_out.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Input.Interface: pointer,out~~
+
+===== Description =====
+
+%%Pointer left a window or a widget.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:interface:event:pointer_out:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+pointer,out: Efl.Input.Pointer;
+
+
+===== C information =====
+
+
+EFL_EVENT_POINTER_OUT(Efl_Input_Pointer *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_event_pointer_out(void *data, const Efl_Event *event)
+{
+ Efl_Input_Pointer *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_EVENT_POINTER_OUT, on_efl_event_pointer_out, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/input/interface/event/pointer_up.txt b/public_html/data/pages/develop/api/efl/input/interface/event/pointer_up.txt
new file mode 100644
index 00000000..9af37932
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/interface/event/pointer_up.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Input.Interface: pointer,up~~
+
+===== Description =====
+
+%%Main pointer button released (button id is known).%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:interface:event:pointer_up:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+pointer,up: Efl.Input.Pointer;
+
+
+===== C information =====
+
+
+EFL_EVENT_POINTER_UP(Efl_Input_Pointer *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_event_pointer_up(void *data, const Efl_Event *event)
+{
+ Efl_Input_Pointer *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_EVENT_POINTER_UP, on_efl_event_pointer_up, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/input/interface/event/pointer_wheel.txt b/public_html/data/pages/develop/api/efl/input/interface/event/pointer_wheel.txt
new file mode 100644
index 00000000..320156bc
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/interface/event/pointer_wheel.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Input.Interface: pointer,wheel~~
+
+===== Description =====
+
+%%Mouse wheel event.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:interface:event:pointer_wheel:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+pointer,wheel: Efl.Input.Pointer;
+
+
+===== C information =====
+
+
+EFL_EVENT_POINTER_WHEEL(Efl_Input_Pointer *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_event_pointer_wheel(void *data, const Efl_Event *event)
+{
+ Efl_Input_Pointer *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_EVENT_POINTER_WHEEL, on_efl_event_pointer_wheel, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/input/interface/property/seat_event_filter.txt b/public_html/data/pages/develop/api/efl/input/interface/property/seat_event_filter.txt
new file mode 100644
index 00000000..845f8bcc
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/interface/property/seat_event_filter.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.Input.Interface.seat_event_filter~~
+====== Efl.Input.Interface.seat_event_filter ======
+
+===== Description =====
+
+%%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:interface:property:seat_event_filter:description&nouser&nolink&nodate}}
+
+===== Keys =====
+
+ * **seat** - %%The seat to act on.%%
+===== Values =====
+
+ * **enable** - %%%%''true''%% to enable events for a seat or %%''false''%% otherwise.%%
+
+===== Signature =====
+
+
+@property seat_event_filter @beta @pure_virtual {
+ get {}
+ set {}
+ keys {
+ seat: Efl.Input.Device;
+ }
+ values {
+ enable: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_input_seat_event_filter_get(const Eo *obj, Efl_Input_Device *seat);
+void efl_input_seat_event_filter_set(Eo *obj, Efl_Input_Device *seat, Eina_Bool enable);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:interface:property:seat_event_filter|Efl.Input.Interface.seat_event_filter]]
+ * [[:develop:api:efl:canvas:object:property:seat_event_filter|Efl.Canvas.Object.seat_event_filter]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/key.txt b/public_html/data/pages/develop/api/efl/input/key.txt
new file mode 100644
index 00000000..8f0449f8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/key.txt
@@ -0,0 +1,176 @@
+~~Title: Efl.Input.Key~~
+====== Efl.Input.Key (class) ======
+
+===== Description =====
+
+%%Represents a single key event from a keyboard or similar device.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:key:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:input:event|Efl.Input.Event]] //(mixin)//
+ * [[:develop:api:efl:duplicate|Efl.Duplicate]] //(interface)//
+ * [[:develop:api:efl:input:state|Efl.Input.State]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:input:key:property:compose_string|compose_string]]** //**(get, set)**//\\
+> %%A UTF8 string if this keystroke has modified a string in the middle of being composed.%%
+
+const char *efl_input_key_compose_string_get(const Eo *obj);
+void efl_input_key_compose_string_set(Eo *obj, const char *val);
+
+\\
+**[[:develop:api:efl:input:key:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:input:key:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:input:key:property:device|device]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:input:event|Efl.Input.Event]]]//\\
+> %%Input device that originated this event.%%
+
+Efl_Input_Device *efl_input_device_get(const Eo *obj);
+void efl_input_device_set(Eo *obj, Efl_Input_Device *dev);
+
+\\
+**[[:develop:api:efl:input:key:method:duplicate|duplicate]]**// [Overridden from [[:develop:api:efl:duplicate|Efl.Duplicate]]]//\\
+> %%Creates a copy of this event. %%[[:develop:api:efl:input:event:property:fake|Efl.Input.Event.fake]]%% is %%''true''%%.%%
+
+Efl_Duplicate *efl_duplicate(const Eo *obj);
+
+\\
+**[[:develop:api:efl:input:key:property:event_flags|event_flags]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:input:event|Efl.Input.Event]]]//\\
+> %%Extra flags for this event, may be changed by the user.%%
+
+Efl_Input_Flags efl_input_event_flags_get(const Eo *obj);
+void efl_input_event_flags_set(Eo *obj, Efl_Input_Flags flags);
+
+\\
+**[[:develop:api:efl:input:key:property:fake|fake]]** //**(get)**//// [Overridden from [[:develop:api:efl:input:event|Efl.Input.Event]]]//\\
+>
+
+Eina_Bool efl_input_fake_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:input:key:property:key_code|key_code]]** //**(get, set)**//\\
+> %%Keyboard scan code of the physical key that produced this event.%%
+
+int efl_input_key_code_get(const Eo *obj);
+void efl_input_key_code_set(Eo *obj, int val);
+
+\\
+**[[:develop:api:efl:input:key:property:key_name|key_name]]** //**(get, set)**//\\
+> %%Name string of the physical key that produced this event.%%
+
+const char *efl_input_key_name_get(const Eo *obj);
+void efl_input_key_name_set(Eo *obj, const char *val);
+
+\\
+**[[:develop:api:efl:input:key:property:key_sym|key_sym]]** //**(get, set)**//\\
+> %%Name of the symbol produced by this key event.%%
+
+const char *efl_input_key_sym_get(const Eo *obj);
+void efl_input_key_sym_set(Eo *obj, const char *val);
+
+\\
+**[[:develop:api:efl:input:key:property:lock_enabled|lock_enabled]]** //**(get)**//// [Overridden from [[:develop:api:efl:input:state|Efl.Input.State]]]//\\
+>
+
+Eina_Bool efl_input_lock_enabled_get(const Eo *obj, Efl_Input_Lock lock, const Efl_Input_Device *seat);
+
+\\
+**[[:develop:api:efl:input:key:property:modifier_enabled|modifier_enabled]]** //**(get)**//// [Overridden from [[:develop:api:efl:input:state|Efl.Input.State]]]//\\
+>
+
+Eina_Bool efl_input_modifier_enabled_get(const Eo *obj, Efl_Input_Modifier mod, const Efl_Input_Device *seat);
+
+\\
+**[[:develop:api:efl:input:key:property:pressed|pressed]]** //**(get, set)**//\\
+> %%%%''true''%% if the key is down, %%''false''%% if it is released.%%
+
+Eina_Bool efl_input_key_pressed_get(const Eo *obj);
+void efl_input_key_pressed_set(Eo *obj, Eina_Bool val);
+
+\\
+**[[:develop:api:efl:input:key:method:reset|reset]]**// [Overridden from [[:develop:api:efl:input:event|Efl.Input.Event]]]//\\
+> %%Resets the internal data to 0 or default values.%%
+
+void efl_input_reset(Eo *obj);
+
+\\
+**[[:develop:api:efl:input:key:property:string|string]]** //**(get, set)**//\\
+> %%A UTF8 string if this keystroke has produced a visible string to be added.%%
+
+const char *efl_input_key_string_get(const Eo *obj);
+void efl_input_key_string_set(Eo *obj, const char *val);
+
+\\
+**[[:develop:api:efl:input:key:property:timestamp|timestamp]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:input:event|Efl.Input.Event]]]//\\
+> %%The time at which an event was generated.%%
+
+double efl_input_timestamp_get(const Eo *obj);
+void efl_input_timestamp_set(Eo *obj, double ms);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:input:event|Efl.Input.Event]] ^^^
+| | **[[:develop:api:efl:input:event:property:processed|processed]]** //**(get, set)**// | %%%%''true''%% if %%[[:develop:api:efl:input:event:property:event_flags|Efl.Input.Event.event_flags]]%% indicates the event is on hold.%% |
+| | **[[:develop:api:efl:input:event:property:scrolling|scrolling]]** //**(get, set)**// | %%%%''true''%% if %%[[:develop:api:efl:input:event:property:event_flags|Efl.Input.Event.event_flags]]%% indicates the event happened while scrolling.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
diff --git a/public_html/data/pages/develop/api/efl/input/key/method/constructor.txt b/public_html/data/pages/develop/api/efl/input/key/method/constructor.txt
new file mode 100644
index 00000000..92e12a1a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/key/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Input.Key.constructor~~
+====== Efl.Input.Key.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:input:key:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/key/method/destructor.txt b/public_html/data/pages/develop/api/efl/input/key/method/destructor.txt
new file mode 100644
index 00000000..450a4eb7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/key/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Input.Key.destructor~~
+====== Efl.Input.Key.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:input:key:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/key/method/duplicate.txt b/public_html/data/pages/develop/api/efl/input/key/method/duplicate.txt
new file mode 100644
index 00000000..9d364747
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/key/method/duplicate.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Input.Key.duplicate~~
+====== Efl.Input.Key.duplicate ======
+
+===== Description =====
+
+%%Creates a copy of this event. %%[[:develop:api:efl:input:event:property:fake|Efl.Input.Event.fake]]%% is %%''true''%%.%%
+
+%%The returned event object is similar to the given object in most ways except that %%[[:develop:api:efl:input:event:property:fake|Efl.Input.Event.fake]]%% will be %%''true''%%.%%
+
+
+duplicate @const @pure_virtual {
+ return: Efl.Duplicate;
+}
+
+
+===== C signature =====
+
+
+Efl_Duplicate *efl_duplicate(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:duplicate:method:duplicate|Efl.Duplicate.duplicate]]
+ * [[:develop:api:efl:canvas:vg:node:method:duplicate|Efl.Canvas.Vg.Node.duplicate]]
+ * [[:develop:api:efl:canvas:vg:shape:method:duplicate|Efl.Canvas.Vg.Shape.duplicate]]
+ * [[:develop:api:efl:canvas:vg:container:method:duplicate|Efl.Canvas.Vg.Container.duplicate]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:duplicate|Efl.Canvas.Vg.Gradient.duplicate]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:duplicate|Efl.Canvas.Vg.Gradient_Linear.duplicate]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:duplicate|Efl.Canvas.Vg.Gradient_Radial.duplicate]]
+ * [[:develop:api:efl:input:pointer:method:duplicate|Efl.Input.Pointer.duplicate]]
+ * [[:develop:api:efl:input:key:method:duplicate|Efl.Input.Key.duplicate]]
+ * [[:develop:api:efl:input:hold:method:duplicate|Efl.Input.Hold.duplicate]]
+ * [[:develop:api:efl:input:focus:method:duplicate|Efl.Input.Focus.duplicate]]
+ * [[:develop:api:efl:core:env:method:duplicate|Efl.Core.Env.duplicate]]
+ * [[:develop:api:efl:core:proc_env:method:duplicate|Efl.Core.Proc_Env.duplicate]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/key/method/reset.txt b/public_html/data/pages/develop/api/efl/input/key/method/reset.txt
new file mode 100644
index 00000000..3a207c8b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/key/method/reset.txt
@@ -0,0 +1,30 @@
+~~Title: Efl.Input.Key.reset~~
+====== Efl.Input.Key.reset ======
+
+===== Description =====
+
+%%Resets the internal data to 0 or default values.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:key:method:reset:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:input:event:method:reset|Efl.Input.Event.reset]].//===== Signature =====
+
+
+reset @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_input_reset(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:method:reset|Efl.Input.Event.reset]]
+ * [[:develop:api:efl:input:pointer:method:reset|Efl.Input.Pointer.reset]]
+ * [[:develop:api:efl:input:key:method:reset|Efl.Input.Key.reset]]
+ * [[:develop:api:efl:input:hold:method:reset|Efl.Input.Hold.reset]]
+ * [[:develop:api:efl:input:focus:method:reset|Efl.Input.Focus.reset]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/key/property/compose_string.txt b/public_html/data/pages/develop/api/efl/input/key/property/compose_string.txt
new file mode 100644
index 00000000..8a50a3b6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/key/property/compose_string.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Input.Key.compose_string~~
+====== Efl.Input.Key.compose_string ======
+
+===== Description =====
+
+%%A UTF8 string if this keystroke has modified a string in the middle of being composed.%%
+
+
+@property compose_string {
+ get {}
+ set {}
+ values {
+ val: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_input_key_compose_string_get(const Eo *obj);
+void efl_input_key_compose_string_set(Eo *obj, const char *val);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:key:property:compose_string|Efl.Input.Key.compose_string]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/key/property/device.txt b/public_html/data/pages/develop/api/efl/input/key/property/device.txt
new file mode 100644
index 00000000..ee2a766a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/key/property/device.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Input.Key.device~~
+====== Efl.Input.Key.device ======
+
+===== Description =====
+
+%%Input device that originated this event.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:key:property:device:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **dev** - %%Input device origin%%
+
+//Overridden from [[:develop:api:efl:input:event:property:device|Efl.Input.Event.device]] **(get, set)**.//===== Signature =====
+
+
+@property device @pure_virtual {
+ get {}
+ set {}
+ values {
+ dev: Efl.Input.Device;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Input_Device *efl_input_device_get(const Eo *obj);
+void efl_input_device_set(Eo *obj, Efl_Input_Device *dev);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:property:device|Efl.Input.Event.device]]
+ * [[:develop:api:efl:input:pointer:property:device|Efl.Input.Pointer.device]]
+ * [[:develop:api:efl:input:key:property:device|Efl.Input.Key.device]]
+ * [[:develop:api:efl:input:hold:property:device|Efl.Input.Hold.device]]
+ * [[:develop:api:efl:input:focus:property:device|Efl.Input.Focus.device]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/key/property/event_flags.txt b/public_html/data/pages/develop/api/efl/input/key/property/event_flags.txt
new file mode 100644
index 00000000..afed4dcf
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/key/property/event_flags.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Input.Key.event_flags~~
+====== Efl.Input.Key.event_flags ======
+
+===== Description =====
+
+%%Extra flags for this event, may be changed by the user.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:key:property:event_flags:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **flags** - %%Input event flags%%
+
+//Overridden from [[:develop:api:efl:input:event:property:event_flags|Efl.Input.Event.event_flags]] **(get, set)**.//===== Signature =====
+
+
+@property event_flags @pure_virtual {
+ get {}
+ set {}
+ values {
+ flags: Efl.Input.Flags;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Input_Flags efl_input_event_flags_get(const Eo *obj);
+void efl_input_event_flags_set(Eo *obj, Efl_Input_Flags flags);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:property:event_flags|Efl.Input.Event.event_flags]]
+ * [[:develop:api:efl:input:pointer:property:event_flags|Efl.Input.Pointer.event_flags]]
+ * [[:develop:api:efl:input:key:property:event_flags|Efl.Input.Key.event_flags]]
+ * [[:develop:api:efl:input:hold:property:event_flags|Efl.Input.Hold.event_flags]]
+ * [[:develop:api:efl:input:focus:property:event_flags|Efl.Input.Focus.event_flags]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/key/property/fake.txt b/public_html/data/pages/develop/api/efl/input/key/property/fake.txt
new file mode 100644
index 00000000..c87cbdba
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/key/property/fake.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Input.Key.fake~~
+====== Efl.Input.Key.fake ======
+
+===== Values =====
+
+ * **val** - %%%%''true''%% if the event was not from real hardware, %%''false''%% otherwise%%
+
+
+\\ {{page>:develop:api-include:efl:input:key:property:fake:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:input:event:property:fake|Efl.Input.Event.fake]] **(get)**.//===== Signature =====
+
+
+@property fake {
+ get {}
+ values {
+ val: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_input_fake_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:property:fake|Efl.Input.Event.fake]]
+ * [[:develop:api:efl:input:pointer:property:fake|Efl.Input.Pointer.fake]]
+ * [[:develop:api:efl:input:key:property:fake|Efl.Input.Key.fake]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/key/property/key_code.txt b/public_html/data/pages/develop/api/efl/input/key/property/key_code.txt
new file mode 100644
index 00000000..e0d0faef
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/key/property/key_code.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Input.Key.key_code~~
+====== Efl.Input.Key.key_code ======
+
+===== Description =====
+
+%%Keyboard scan code of the physical key that produced this event.%%
+
+%%You typically do not need to use this field, because the system maps scan codes to the more convenient %%[[:develop:api:efl:input:key:property:key_name|Efl.Input.Key.key_name]]%%. Us this in keyboard remapping applications or when trying to use a keyboard unknown to your operating system.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:key:property:key_code:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **val** - %%Keyboard scan code.%%
+
+===== Signature =====
+
+
+@property key_code {
+ get {}
+ set {}
+ values {
+ val: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_input_key_code_get(const Eo *obj);
+void efl_input_key_code_set(Eo *obj, int val);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:key:property:key_code|Efl.Input.Key.key_code]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/key/property/key_name.txt b/public_html/data/pages/develop/api/efl/input/key/property/key_name.txt
new file mode 100644
index 00000000..b1929cbc
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/key/property/key_name.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Input.Key.key_name~~
+====== Efl.Input.Key.key_name ======
+
+===== Description =====
+
+%%Name string of the physical key that produced this event.%%
+
+%%This typically matches what is printed on the key. For example, "1" or "a". Note that both "a" and "A" are obtained with the same physical key, so both events will have the same %%[[:develop:api:efl:input:key:property:key_name|Efl.Input.Key.key_name]]%% "a" but different %%[[:develop:api:efl:input:key:property:key_sym|Efl.Input.Key.key_sym]]%%.%%
+
+%%Commonly used in keyboard remapping menus to uniquely identify a physical key.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:key:property:key_name:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **val** - %%Name of the key that produced this event.%%
+
+===== Signature =====
+
+
+@property key_name {
+ get {}
+ set {}
+ values {
+ val: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_input_key_name_get(const Eo *obj);
+void efl_input_key_name_set(Eo *obj, const char *val);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:key:property:key_name|Efl.Input.Key.key_name]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/key/property/key_sym.txt b/public_html/data/pages/develop/api/efl/input/key/property/key_sym.txt
new file mode 100644
index 00000000..872cb870
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/key/property/key_sym.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Input.Key.key_sym~~
+====== Efl.Input.Key.key_sym ======
+
+===== Description =====
+
+%%Name of the symbol produced by this key event.%%
+
+%%For example, "a", "A", "1" or "exclam". The same physical key can produce different symbols when combined with other keys like "shift" or "alt gr". For example, "a" and "A" have different %%[[:develop:api:efl:input:key:property:key_sym|Efl.Input.Key.key_sym]]%% but the same %%[[:develop:api:efl:input:key:property:key_name|Efl.Input.Key.key_name]]%% "a".%%
+
+%%This is the field you typically use to uniquely identify a keyboard symbol, in keyboard shortcuts for example.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:key:property:key_sym:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **val** - %%Symbol name produced by key event.%%
+
+===== Signature =====
+
+
+@property key_sym {
+ get {}
+ set {}
+ values {
+ val: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_input_key_sym_get(const Eo *obj);
+void efl_input_key_sym_set(Eo *obj, const char *val);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:key:property:key_sym|Efl.Input.Key.key_sym]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/key/property/lock_enabled.txt b/public_html/data/pages/develop/api/efl/input/key/property/lock_enabled.txt
new file mode 100644
index 00000000..e9c8e6e4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/key/property/lock_enabled.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Input.Key.lock_enabled~~
+====== Efl.Input.Key.lock_enabled ======
+
+===== Keys =====
+
+ * **lock** - %%The lock key to test.%%
+ * **seat** - %%The seat device, may be %%''null''%%%%
+===== Values =====
+
+ * **is_set** - %%%%''true''%% if the key lock is on.%%
+
+
+\\ {{page>:develop:api-include:efl:input:key:property:lock_enabled:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:input:state:property:lock_enabled|Efl.Input.State.lock_enabled]] **(get)**.//===== Signature =====
+
+
+@property lock_enabled @beta @pure_virtual {
+ get {
+ keys {
+ lock: Efl.Input.Lock;
+ seat: const(Efl.Input.Device) @optional;
+ }
+ }
+ values {
+ is_set: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_input_lock_enabled_get(const Eo *obj, Efl_Input_Lock lock, const Efl_Input_Device *seat);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:state:property:lock_enabled|Efl.Input.State.lock_enabled]]
+ * [[:develop:api:efl:ui:win:property:lock_enabled|Efl.Ui.Win.lock_enabled]]
+ * [[:develop:api:efl:input:pointer:property:lock_enabled|Efl.Input.Pointer.lock_enabled]]
+ * [[:develop:api:efl:input:key:property:lock_enabled|Efl.Input.Key.lock_enabled]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/key/property/modifier_enabled.txt b/public_html/data/pages/develop/api/efl/input/key/property/modifier_enabled.txt
new file mode 100644
index 00000000..23febf69
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/key/property/modifier_enabled.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Input.Key.modifier_enabled~~
+====== Efl.Input.Key.modifier_enabled ======
+
+===== Keys =====
+
+ * **mod** - %%The modifier key to test.%%
+ * **seat** - %%The seat device, may be %%''null''%%%%
+===== Values =====
+
+ * **is_set** - %%%%''true''%% if the key modifier is pressed.%%
+
+
+\\ {{page>:develop:api-include:efl:input:key:property:modifier_enabled:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:input:state:property:modifier_enabled|Efl.Input.State.modifier_enabled]] **(get)**.//===== Signature =====
+
+
+@property modifier_enabled @beta @pure_virtual {
+ get {
+ keys {
+ mod: Efl.Input.Modifier;
+ seat: const(Efl.Input.Device) @optional;
+ }
+ }
+ values {
+ is_set: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_input_modifier_enabled_get(const Eo *obj, Efl_Input_Modifier mod, const Efl_Input_Device *seat);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:state:property:modifier_enabled|Efl.Input.State.modifier_enabled]]
+ * [[:develop:api:efl:ui:win:property:modifier_enabled|Efl.Ui.Win.modifier_enabled]]
+ * [[:develop:api:efl:input:pointer:property:modifier_enabled|Efl.Input.Pointer.modifier_enabled]]
+ * [[:develop:api:efl:input:key:property:modifier_enabled|Efl.Input.Key.modifier_enabled]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/key/property/pressed.txt b/public_html/data/pages/develop/api/efl/input/key/property/pressed.txt
new file mode 100644
index 00000000..f490d17e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/key/property/pressed.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Input.Key.pressed~~
+====== Efl.Input.Key.pressed ======
+
+===== Description =====
+
+%%%%''true''%% if the key is down, %%''false''%% if it is released.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:key:property:pressed:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **val** - %%%%''true''%% if the key is pressed, %%''false''%% otherwise.%%
+
+===== Signature =====
+
+
+@property pressed {
+ get {}
+ set {}
+ values {
+ val: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_input_key_pressed_get(const Eo *obj);
+void efl_input_key_pressed_set(Eo *obj, Eina_Bool val);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:key:property:pressed|Efl.Input.Key.pressed]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/key/property/string.txt b/public_html/data/pages/develop/api/efl/input/key/property/string.txt
new file mode 100644
index 00000000..6fe62a7e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/key/property/string.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Input.Key.string~~
+====== Efl.Input.Key.string ======
+
+===== Description =====
+
+%%A UTF8 string if this keystroke has produced a visible string to be added.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:key:property:string:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **val** - %%Visible string produced by this key event, in UTF8.%%
+
+===== Signature =====
+
+
+@property string {
+ get {}
+ set {}
+ values {
+ val: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_input_key_string_get(const Eo *obj);
+void efl_input_key_string_set(Eo *obj, const char *val);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:key:property:string|Efl.Input.Key.string]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/key/property/timestamp.txt b/public_html/data/pages/develop/api/efl/input/key/property/timestamp.txt
new file mode 100644
index 00000000..c38ea253
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/key/property/timestamp.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Input.Key.timestamp~~
+====== Efl.Input.Key.timestamp ======
+
+===== Description =====
+
+%%The time at which an event was generated.%%
+
+%%If the event is generated by a server (eg. X.org or Wayland), then the time may be set by the server. Usually this time will be based on the monotonic clock, if available, but this class can not guarantee it.%%
+
+//Since 1.23//
+
+
+{{page>:develop:api-include:efl:input:key:property:timestamp:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **ms** - %%Time in milliseconds when the event happened.%%
+==== Setter ====
+
+%%Call this when generating events manually.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:key:property:timestamp:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:input:event:property:timestamp|Efl.Input.Event.timestamp]] **(get, set)**.//===== Signature =====
+
+
+@property timestamp @pure_virtual {
+ get {}
+ set {}
+ values {
+ ms: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_input_timestamp_get(const Eo *obj);
+void efl_input_timestamp_set(Eo *obj, double ms);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:property:timestamp|Efl.Input.Event.timestamp]]
+ * [[:develop:api:efl:input:pointer:property:timestamp|Efl.Input.Pointer.timestamp]]
+ * [[:develop:api:efl:input:key:property:timestamp|Efl.Input.Key.timestamp]]
+ * [[:develop:api:efl:input:hold:property:timestamp|Efl.Input.Hold.timestamp]]
+ * [[:develop:api:efl:input:focus:property:timestamp|Efl.Input.Focus.timestamp]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/lock.txt b/public_html/data/pages/develop/api/efl/input/lock.txt
new file mode 100644
index 00000000..5359920b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/lock.txt
@@ -0,0 +1,47 @@
+~~Title: Efl.Input.Lock~~
+
+===== Description =====
+
+%%Key locks such as Num Lock, Scroll Lock and Caps Lock.%%
+
+%%This enum may be used as a bitmask with OR operations, depending on the API.%%
+
+%%The available keys may vary depending on the physical keyboard layout, or language and keyboard settings, or depending on the platform.%%
+
+//Since 1.20//
+
+{{page>:develop:api-include:efl:input:lock:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:input:lock:fields&nouser&nolink&nodate}}
+
+ * **none** - %%No key modifier%%
+ * **num** - %%Num Lock for numeric key pad use%%
+ * **caps** - %%Caps Lock for writing in all caps%%
+ * **scroll** - %%Scroll Lock%%
+ * **shift** - %%Shift Lock%%
+
+===== Signature =====
+
+
+enum Efl.Input.Lock {
+ none: 0,
+ num: 1 >> 0,
+ caps: 1 >> 1,
+ scroll: 1 >> 2,
+ shift: 1 >> 3
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_INPUT_LOCK_NONE = 0,
+ EFL_INPUT_LOCK_NUM = 1 /* 1 >> 0 */,
+ EFL_INPUT_LOCK_CAPS = 2 /* 1 >> 1 */,
+ EFL_INPUT_LOCK_SCROLL = 4 /* 1 >> 2 */,
+ EFL_INPUT_LOCK_SHIFT = 8 /* 1 >> 3 */
+} Efl_Input_Lock;
+
diff --git a/public_html/data/pages/develop/api/efl/input/modifier.txt b/public_html/data/pages/develop/api/efl/input/modifier.txt
new file mode 100644
index 00000000..4c3df668
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/modifier.txt
@@ -0,0 +1,56 @@
+~~Title: Efl.Input.Modifier~~
+
+===== Description =====
+
+%%Key modifiers such as Control, Alt, etc...%%
+
+%%This enum may be used as a bitmask with OR operations, depending on the API.%%
+
+%%The available keys may vary depending on the physical keyboard layout, or language and keyboard settings, or depending on the platform.%%
+
+//Since 1.20//
+
+{{page>:develop:api-include:efl:input:modifier:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:input:modifier:fields&nouser&nolink&nodate}}
+
+ * **none** - %%No key modifier%%
+ * **alt** - %%Alt key modifier%%
+ * **control** - %%Control key modifier ("Ctrl" key)%%
+ * **shift** - %%Shift key modifier%%
+ * **meta** - %%Meta key modifier (often the "Windows" key)%%
+ * **altgr** - %%AltGr key modifier (not present on all keyboards)%%
+ * **hyper** - %%Hyper key modifier (may be "Windows" key)%%
+ * **super** - %%Super key modifier (may be "Windows" key)%%
+
+===== Signature =====
+
+
+enum Efl.Input.Modifier {
+ none: 0,
+ alt: 1 >> 0,
+ control: 1 >> 1,
+ shift: 1 >> 2,
+ meta: 1 >> 3,
+ altgr: 1 >> 4,
+ hyper: 1 >> 5,
+ super: 1 >> 6
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_INPUT_MODIFIER_NONE = 0,
+ EFL_INPUT_MODIFIER_ALT = 1 /* 1 >> 0 */,
+ EFL_INPUT_MODIFIER_CONTROL = 2 /* 1 >> 1 */,
+ EFL_INPUT_MODIFIER_SHIFT = 4 /* 1 >> 2 */,
+ EFL_INPUT_MODIFIER_META = 8 /* 1 >> 3 */,
+ EFL_INPUT_MODIFIER_ALTGR = 16 /* 1 >> 4 */,
+ EFL_INPUT_MODIFIER_HYPER = 32 /* 1 >> 5 */,
+ EFL_INPUT_MODIFIER_SUPER = 64 /* 1 >> 6 */
+} Efl_Input_Modifier;
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer.txt b/public_html/data/pages/develop/api/efl/input/pointer.txt
new file mode 100644
index 00000000..4b763d46
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer.txt
@@ -0,0 +1,238 @@
+~~Title: Efl.Input.Pointer~~
+====== Efl.Input.Pointer (class) ======
+
+===== Description =====
+
+%%Event data carried over with any pointer event (mouse, touch, pen, ...)%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:input:pointer:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:input:event|Efl.Input.Event]] //(mixin)//
+ * [[:develop:api:efl:duplicate|Efl.Duplicate]] //(interface)//
+ * [[:develop:api:efl:input:state|Efl.Input.State]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:input:pointer:property:action|action]]** //**(get, set)**//\\
+> %%The action represented by this event.%%
+
+Efl_Pointer_Action efl_input_pointer_action_get(const Eo *obj);
+void efl_input_pointer_action_set(Eo *obj, Efl_Pointer_Action act);
+
+\\
+**[[:develop:api:efl:input:pointer:property:button|button]]** //**(get, set)**//\\
+> %%The mouse button that triggered the event.%%
+
+int efl_input_pointer_button_get(const Eo *obj);
+void efl_input_pointer_button_set(Eo *obj, int but);
+
+\\
+**[[:develop:api:efl:input:pointer:property:button_flags|button_flags]]** //**(get, set)**//\\
+> %%Double or triple click information.%%
+
+Efl_Pointer_Flags efl_input_pointer_button_flags_get(const Eo *obj);
+void efl_input_pointer_button_flags_set(Eo *obj, Efl_Pointer_Flags flags);
+
+\\
+**[[:develop:api:efl:input:pointer:property:button_pressed|button_pressed]]** //**(get, set)**//\\
+> %%Whether a mouse button is pressed at the moment of the event.%%
+
+Eina_Bool efl_input_pointer_button_pressed_get(const Eo *obj, int button);
+void efl_input_pointer_button_pressed_set(Eo *obj, int button, Eina_Bool pressed);
+
+\\
+**[[:develop:api:efl:input:pointer:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:input:pointer:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:input:pointer:property:device|device]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:input:event|Efl.Input.Event]]]//\\
+> %%Input device that originated this event.%%
+
+Efl_Input_Device *efl_input_device_get(const Eo *obj);
+void efl_input_device_set(Eo *obj, Efl_Input_Device *dev);
+
+\\
+**[[:develop:api:efl:input:pointer:property:double_click|double_click]]** //**(get, set)**//\\
+> %%%%''true''%% if %%[[:develop:api:efl:input:pointer:property:button_flags|Efl.Input.Pointer.button_flags]]%% indicates a double click (2nd press).%%
+
+Eina_Bool efl_input_pointer_double_click_get(const Eo *obj);
+void efl_input_pointer_double_click_set(Eo *obj, Eina_Bool val);
+
+\\
+**[[:develop:api:efl:input:pointer:method:duplicate|duplicate]]**// [Overridden from [[:develop:api:efl:duplicate|Efl.Duplicate]]]//\\
+> %%Creates a copy of this event. %%[[:develop:api:efl:input:event:property:fake|Efl.Input.Event.fake]]%% is %%''true''%%.%%
+
+Efl_Duplicate *efl_duplicate(const Eo *obj);
+
+\\
+**[[:develop:api:efl:input:pointer:property:event_flags|event_flags]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:input:event|Efl.Input.Event]]]//\\
+> %%Extra flags for this event, may be changed by the user.%%
+
+Efl_Input_Flags efl_input_event_flags_get(const Eo *obj);
+void efl_input_event_flags_set(Eo *obj, Efl_Input_Flags flags);
+
+\\
+**[[:develop:api:efl:input:pointer:property:fake|fake]]** //**(get)**//// [Overridden from [[:develop:api:efl:input:event|Efl.Input.Event]]]//\\
+>
+
+Eina_Bool efl_input_fake_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:input:pointer:property:lock_enabled|lock_enabled]]** //**(get)**//// [Overridden from [[:develop:api:efl:input:state|Efl.Input.State]]]//\\
+>
+
+Eina_Bool efl_input_lock_enabled_get(const Eo *obj, Efl_Input_Lock lock, const Efl_Input_Device *seat);
+
+\\
+**[[:develop:api:efl:input:pointer:property:modifier_enabled|modifier_enabled]]** //**(get)**//// [Overridden from [[:develop:api:efl:input:state|Efl.Input.State]]]//\\
+>
+
+Eina_Bool efl_input_modifier_enabled_get(const Eo *obj, Efl_Input_Modifier mod, const Efl_Input_Device *seat);
+
+\\
+**[[:develop:api:efl:input:pointer:property:position|position]]** //**(get, set)**//\\
+> %%Position where the event happened, relative to the window.%%
+
+Eina_Position2D efl_input_pointer_position_get(const Eo *obj);
+void efl_input_pointer_position_set(Eo *obj, Eina_Position2D pos);
+
+\\
+**[[:develop:api:efl:input:pointer:property:precise_position|precise_position]]** //**(get, set)**//\\
+> %%Position where the event happened, relative to the window.%%
+
+Eina_Vector2 efl_input_pointer_precise_position_get(const Eo *obj);
+void efl_input_pointer_precise_position_set(Eo *obj, Eina_Vector2 pos);
+
+\\
+**[[:develop:api:efl:input:pointer:property:previous_position|previous_position]]** //**(get, set)**//\\
+> %%Position of the previous event, valid for move events.%%
+
+Eina_Position2D efl_input_pointer_previous_position_get(const Eo *obj);
+void efl_input_pointer_previous_position_set(Eo *obj, Eina_Position2D pos);
+
+\\
+**[[:develop:api:efl:input:pointer:method:reset|reset]]**// [Overridden from [[:develop:api:efl:input:event|Efl.Input.Event]]]//\\
+> %%Resets the internal data to 0 or default values.%%
+
+void efl_input_reset(Eo *obj);
+
+\\
+**[[:develop:api:efl:input:pointer:property:source|source]]** //**(get, set)**//\\
+> %%The object where this event first originated, in case of propagation or repetition of the event.%%
+
+Efl_Object *efl_input_pointer_source_get(const Eo *obj);
+void efl_input_pointer_source_set(Eo *obj, Efl_Object *src);
+
+\\
+**[[:develop:api:efl:input:pointer:property:timestamp|timestamp]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:input:event|Efl.Input.Event]]]//\\
+> %%The time at which an event was generated.%%
+
+double efl_input_timestamp_get(const Eo *obj);
+void efl_input_timestamp_set(Eo *obj, double ms);
+
+\\
+**[[:develop:api:efl:input:pointer:property:touch_id|touch_id]]** //**(get, set)**//\\
+> %%The ID associated with this pointer.%%
+
+int efl_input_pointer_touch_id_get(const Eo *obj);
+void efl_input_pointer_touch_id_set(Eo *obj, int id);
+
+\\
+**[[:develop:api:efl:input:pointer:property:triple_click|triple_click]]** //**(get, set)**//\\
+> %%%%''true''%% if %%[[:develop:api:efl:input:pointer:property:button_flags|Efl.Input.Pointer.button_flags]]%% indicates a triple click (3rd press).%%
+
+Eina_Bool efl_input_pointer_triple_click_get(const Eo *obj);
+void efl_input_pointer_triple_click_set(Eo *obj, Eina_Bool val);
+
+\\
+**[[:develop:api:efl:input:pointer:property:value|value]]** //**(get, set)**//\\
+> %%Represents a generic value for this event.%%
+
+double efl_input_pointer_value_get(const Eo *obj, Efl_Input_Value key);
+Eina_Bool efl_input_pointer_value_set(Eo *obj, Efl_Input_Value key, double val);
+
+\\
+**[[:develop:api:efl:input:pointer:property:value_has|value_has]]** //**(get)**//\\
+>
+
+Eina_Bool efl_input_pointer_value_has_get(const Eo *obj, Efl_Input_Value key);
+
+\\
+**[[:develop:api:efl:input:pointer:property:wheel_delta|wheel_delta]]** //**(get, set)**//\\
+> %%Delta movement of the wheel in discrete steps.%%
+
+int efl_input_pointer_wheel_delta_get(const Eo *obj);
+void efl_input_pointer_wheel_delta_set(Eo *obj, int dist);
+
+\\
+**[[:develop:api:efl:input:pointer:property:wheel_horizontal|wheel_horizontal]]** //**(get, set)**//\\
+> %%Direction of the wheel, usually vertical.%%
+
+Eina_Bool efl_input_pointer_wheel_horizontal_get(const Eo *obj);
+void efl_input_pointer_wheel_horizontal_set(Eo *obj, Eina_Bool horizontal);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:input:event|Efl.Input.Event]] ^^^
+| | **[[:develop:api:efl:input:event:property:processed|processed]]** //**(get, set)**// | %%%%''true''%% if %%[[:develop:api:efl:input:event:property:event_flags|Efl.Input.Event.event_flags]]%% indicates the event is on hold.%% |
+| | **[[:develop:api:efl:input:event:property:scrolling|scrolling]]** //**(get, set)**// | %%%%''true''%% if %%[[:develop:api:efl:input:event:property:event_flags|Efl.Input.Event.event_flags]]%% indicates the event happened while scrolling.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/method/constructor.txt b/public_html/data/pages/develop/api/efl/input/pointer/method/constructor.txt
new file mode 100644
index 00000000..5f77270f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Input.Pointer.constructor~~
+====== Efl.Input.Pointer.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:input:pointer:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/method/destructor.txt b/public_html/data/pages/develop/api/efl/input/pointer/method/destructor.txt
new file mode 100644
index 00000000..ebbde843
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Input.Pointer.destructor~~
+====== Efl.Input.Pointer.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:input:pointer:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/method/duplicate.txt b/public_html/data/pages/develop/api/efl/input/pointer/method/duplicate.txt
new file mode 100644
index 00000000..35fe7c97
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/method/duplicate.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Input.Pointer.duplicate~~
+====== Efl.Input.Pointer.duplicate ======
+
+===== Description =====
+
+%%Creates a copy of this event. %%[[:develop:api:efl:input:event:property:fake|Efl.Input.Event.fake]]%% is %%''true''%%.%%
+
+%%The returned event object is similar to the given object in most ways except that %%[[:develop:api:efl:input:event:property:fake|Efl.Input.Event.fake]]%% will be %%''true''%%.%%
+
+
+duplicate @const @pure_virtual {
+ return: Efl.Duplicate;
+}
+
+
+===== C signature =====
+
+
+Efl_Duplicate *efl_duplicate(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:duplicate:method:duplicate|Efl.Duplicate.duplicate]]
+ * [[:develop:api:efl:canvas:vg:node:method:duplicate|Efl.Canvas.Vg.Node.duplicate]]
+ * [[:develop:api:efl:canvas:vg:shape:method:duplicate|Efl.Canvas.Vg.Shape.duplicate]]
+ * [[:develop:api:efl:canvas:vg:container:method:duplicate|Efl.Canvas.Vg.Container.duplicate]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:duplicate|Efl.Canvas.Vg.Gradient.duplicate]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:duplicate|Efl.Canvas.Vg.Gradient_Linear.duplicate]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:duplicate|Efl.Canvas.Vg.Gradient_Radial.duplicate]]
+ * [[:develop:api:efl:input:pointer:method:duplicate|Efl.Input.Pointer.duplicate]]
+ * [[:develop:api:efl:input:key:method:duplicate|Efl.Input.Key.duplicate]]
+ * [[:develop:api:efl:input:hold:method:duplicate|Efl.Input.Hold.duplicate]]
+ * [[:develop:api:efl:input:focus:method:duplicate|Efl.Input.Focus.duplicate]]
+ * [[:develop:api:efl:core:env:method:duplicate|Efl.Core.Env.duplicate]]
+ * [[:develop:api:efl:core:proc_env:method:duplicate|Efl.Core.Proc_Env.duplicate]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/method/reset.txt b/public_html/data/pages/develop/api/efl/input/pointer/method/reset.txt
new file mode 100644
index 00000000..4dc80ba9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/method/reset.txt
@@ -0,0 +1,30 @@
+~~Title: Efl.Input.Pointer.reset~~
+====== Efl.Input.Pointer.reset ======
+
+===== Description =====
+
+%%Resets the internal data to 0 or default values.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:pointer:method:reset:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:input:event:method:reset|Efl.Input.Event.reset]].//===== Signature =====
+
+
+reset @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_input_reset(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:method:reset|Efl.Input.Event.reset]]
+ * [[:develop:api:efl:input:pointer:method:reset|Efl.Input.Pointer.reset]]
+ * [[:develop:api:efl:input:key:method:reset|Efl.Input.Key.reset]]
+ * [[:develop:api:efl:input:hold:method:reset|Efl.Input.Hold.reset]]
+ * [[:develop:api:efl:input:focus:method:reset|Efl.Input.Focus.reset]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/property/action.txt b/public_html/data/pages/develop/api/efl/input/pointer/property/action.txt
new file mode 100644
index 00000000..eb339b55
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/property/action.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Input.Pointer.action~~
+====== Efl.Input.Pointer.action ======
+
+===== Description =====
+
+%%The action represented by this event.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:pointer:property:action:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **act** - %%Event action%%
+
+===== Signature =====
+
+
+@property action {
+ get {}
+ set {}
+ values {
+ act: Efl.Pointer.Action;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Pointer_Action efl_input_pointer_action_get(const Eo *obj);
+void efl_input_pointer_action_set(Eo *obj, Efl_Pointer_Action act);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:pointer:property:action|Efl.Input.Pointer.action]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/property/button.txt b/public_html/data/pages/develop/api/efl/input/pointer/property/button.txt
new file mode 100644
index 00000000..e812319b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/property/button.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Input.Pointer.button~~
+====== Efl.Input.Pointer.button ======
+
+===== Description =====
+
+%%The mouse button that triggered the event.%%
+
+%%Valid if and only if %%[[:develop:api:efl:input:pointer:property:value_has|Efl.Input.Pointer.value_has]]%%(%%''button''%%) is %%''true''%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:pointer:property:button:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **but** - %%1 to 32, 0 if not a button event.%%
+
+===== Signature =====
+
+
+@property button {
+ get {}
+ set {}
+ values {
+ but: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_input_pointer_button_get(const Eo *obj);
+void efl_input_pointer_button_set(Eo *obj, int but);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:pointer:property:button|Efl.Input.Pointer.button]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/property/button_flags.txt b/public_html/data/pages/develop/api/efl/input/pointer/property/button_flags.txt
new file mode 100644
index 00000000..6bc1404e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/property/button_flags.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Input.Pointer.button_flags~~
+====== Efl.Input.Pointer.button_flags ======
+
+===== Description =====
+
+%%Double or triple click information.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:pointer:property:button_flags:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **flags** - %%Button information flags%%
+
+===== Signature =====
+
+
+@property button_flags {
+ get {}
+ set {}
+ values {
+ flags: Efl.Pointer.Flags;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Pointer_Flags efl_input_pointer_button_flags_get(const Eo *obj);
+void efl_input_pointer_button_flags_set(Eo *obj, Efl_Pointer_Flags flags);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:pointer:property:button_flags|Efl.Input.Pointer.button_flags]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/property/button_pressed.txt b/public_html/data/pages/develop/api/efl/input/pointer/property/button_pressed.txt
new file mode 100644
index 00000000..017112c8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/property/button_pressed.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Input.Pointer.button_pressed~~
+====== Efl.Input.Pointer.button_pressed ======
+
+===== Description =====
+
+%%Whether a mouse button is pressed at the moment of the event.%%
+
+%%Valid if and only if %%[[:develop:api:efl:input:pointer:property:value_has|Efl.Input.Pointer.value_has]]%%(%%''button_pressed''%%) is %%''true''%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:pointer:property:button_pressed:description&nouser&nolink&nodate}}
+
+===== Keys =====
+
+ * **button** - %%1 to 32, 0 if not a button event.%%
+===== Values =====
+
+ * **pressed** - %%%%''true''%% when the button was pressed, %%''false''%% otherwise%%
+
+===== Signature =====
+
+
+@property button_pressed {
+ get {}
+ set {}
+ keys {
+ button: int;
+ }
+ values {
+ pressed: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_input_pointer_button_pressed_get(const Eo *obj, int button);
+void efl_input_pointer_button_pressed_set(Eo *obj, int button, Eina_Bool pressed);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:pointer:property:button_pressed|Efl.Input.Pointer.button_pressed]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/property/device.txt b/public_html/data/pages/develop/api/efl/input/pointer/property/device.txt
new file mode 100644
index 00000000..4a16cea7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/property/device.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Input.Pointer.device~~
+====== Efl.Input.Pointer.device ======
+
+===== Description =====
+
+%%Input device that originated this event.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:pointer:property:device:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **dev** - %%Input device origin%%
+
+//Overridden from [[:develop:api:efl:input:event:property:device|Efl.Input.Event.device]] **(get, set)**.//===== Signature =====
+
+
+@property device @pure_virtual {
+ get {}
+ set {}
+ values {
+ dev: Efl.Input.Device;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Input_Device *efl_input_device_get(const Eo *obj);
+void efl_input_device_set(Eo *obj, Efl_Input_Device *dev);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:property:device|Efl.Input.Event.device]]
+ * [[:develop:api:efl:input:pointer:property:device|Efl.Input.Pointer.device]]
+ * [[:develop:api:efl:input:key:property:device|Efl.Input.Key.device]]
+ * [[:develop:api:efl:input:hold:property:device|Efl.Input.Hold.device]]
+ * [[:develop:api:efl:input:focus:property:device|Efl.Input.Focus.device]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/property/double_click.txt b/public_html/data/pages/develop/api/efl/input/pointer/property/double_click.txt
new file mode 100644
index 00000000..17c7e4a4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/property/double_click.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Input.Pointer.double_click~~
+====== Efl.Input.Pointer.double_click ======
+
+===== Description =====
+
+%%%%''true''%% if %%[[:develop:api:efl:input:pointer:property:button_flags|Efl.Input.Pointer.button_flags]]%% indicates a double click (2nd press).%%
+
+%%This is just a helper function around %%[[:develop:api:efl:input:pointer:property:button_flags|Efl.Input.Pointer.button_flags]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:pointer:property:double_click:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **val** - %%%%''true''%% if the button press was a double click, %%''false''%% otherwise%%
+
+===== Signature =====
+
+
+@property double_click {
+ get {}
+ set {}
+ values {
+ val: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_input_pointer_double_click_get(const Eo *obj);
+void efl_input_pointer_double_click_set(Eo *obj, Eina_Bool val);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:pointer:property:double_click|Efl.Input.Pointer.double_click]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/property/event_flags.txt b/public_html/data/pages/develop/api/efl/input/pointer/property/event_flags.txt
new file mode 100644
index 00000000..7f92748a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/property/event_flags.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Input.Pointer.event_flags~~
+====== Efl.Input.Pointer.event_flags ======
+
+===== Description =====
+
+%%Extra flags for this event, may be changed by the user.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:pointer:property:event_flags:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **flags** - %%Input event flags%%
+
+//Overridden from [[:develop:api:efl:input:event:property:event_flags|Efl.Input.Event.event_flags]] **(get, set)**.//===== Signature =====
+
+
+@property event_flags @pure_virtual {
+ get {}
+ set {}
+ values {
+ flags: Efl.Input.Flags;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Input_Flags efl_input_event_flags_get(const Eo *obj);
+void efl_input_event_flags_set(Eo *obj, Efl_Input_Flags flags);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:property:event_flags|Efl.Input.Event.event_flags]]
+ * [[:develop:api:efl:input:pointer:property:event_flags|Efl.Input.Pointer.event_flags]]
+ * [[:develop:api:efl:input:key:property:event_flags|Efl.Input.Key.event_flags]]
+ * [[:develop:api:efl:input:hold:property:event_flags|Efl.Input.Hold.event_flags]]
+ * [[:develop:api:efl:input:focus:property:event_flags|Efl.Input.Focus.event_flags]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/property/fake.txt b/public_html/data/pages/develop/api/efl/input/pointer/property/fake.txt
new file mode 100644
index 00000000..f0cc33a2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/property/fake.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Input.Pointer.fake~~
+====== Efl.Input.Pointer.fake ======
+
+===== Values =====
+
+ * **val** - %%%%''true''%% if the event was not from real hardware, %%''false''%% otherwise%%
+
+
+\\ {{page>:develop:api-include:efl:input:pointer:property:fake:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:input:event:property:fake|Efl.Input.Event.fake]] **(get)**.//===== Signature =====
+
+
+@property fake {
+ get {}
+ values {
+ val: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_input_fake_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:property:fake|Efl.Input.Event.fake]]
+ * [[:develop:api:efl:input:pointer:property:fake|Efl.Input.Pointer.fake]]
+ * [[:develop:api:efl:input:key:property:fake|Efl.Input.Key.fake]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/property/lock_enabled.txt b/public_html/data/pages/develop/api/efl/input/pointer/property/lock_enabled.txt
new file mode 100644
index 00000000..ecdf4f4f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/property/lock_enabled.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Input.Pointer.lock_enabled~~
+====== Efl.Input.Pointer.lock_enabled ======
+
+===== Keys =====
+
+ * **lock** - %%The lock key to test.%%
+ * **seat** - %%The seat device, may be %%''null''%%%%
+===== Values =====
+
+ * **is_set** - %%%%''true''%% if the key lock is on.%%
+
+
+\\ {{page>:develop:api-include:efl:input:pointer:property:lock_enabled:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:input:state:property:lock_enabled|Efl.Input.State.lock_enabled]] **(get)**.//===== Signature =====
+
+
+@property lock_enabled @beta @pure_virtual {
+ get {
+ keys {
+ lock: Efl.Input.Lock;
+ seat: const(Efl.Input.Device) @optional;
+ }
+ }
+ values {
+ is_set: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_input_lock_enabled_get(const Eo *obj, Efl_Input_Lock lock, const Efl_Input_Device *seat);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:state:property:lock_enabled|Efl.Input.State.lock_enabled]]
+ * [[:develop:api:efl:ui:win:property:lock_enabled|Efl.Ui.Win.lock_enabled]]
+ * [[:develop:api:efl:input:pointer:property:lock_enabled|Efl.Input.Pointer.lock_enabled]]
+ * [[:develop:api:efl:input:key:property:lock_enabled|Efl.Input.Key.lock_enabled]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/property/modifier_enabled.txt b/public_html/data/pages/develop/api/efl/input/pointer/property/modifier_enabled.txt
new file mode 100644
index 00000000..46ce5a7b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/property/modifier_enabled.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Input.Pointer.modifier_enabled~~
+====== Efl.Input.Pointer.modifier_enabled ======
+
+===== Keys =====
+
+ * **mod** - %%The modifier key to test.%%
+ * **seat** - %%The seat device, may be %%''null''%%%%
+===== Values =====
+
+ * **is_set** - %%%%''true''%% if the key modifier is pressed.%%
+
+
+\\ {{page>:develop:api-include:efl:input:pointer:property:modifier_enabled:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:input:state:property:modifier_enabled|Efl.Input.State.modifier_enabled]] **(get)**.//===== Signature =====
+
+
+@property modifier_enabled @beta @pure_virtual {
+ get {
+ keys {
+ mod: Efl.Input.Modifier;
+ seat: const(Efl.Input.Device) @optional;
+ }
+ }
+ values {
+ is_set: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_input_modifier_enabled_get(const Eo *obj, Efl_Input_Modifier mod, const Efl_Input_Device *seat);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:state:property:modifier_enabled|Efl.Input.State.modifier_enabled]]
+ * [[:develop:api:efl:ui:win:property:modifier_enabled|Efl.Ui.Win.modifier_enabled]]
+ * [[:develop:api:efl:input:pointer:property:modifier_enabled|Efl.Input.Pointer.modifier_enabled]]
+ * [[:develop:api:efl:input:key:property:modifier_enabled|Efl.Input.Key.modifier_enabled]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/property/position.txt b/public_html/data/pages/develop/api/efl/input/pointer/property/position.txt
new file mode 100644
index 00000000..831f17fb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/property/position.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Input.Pointer.position~~
+====== Efl.Input.Pointer.position ======
+
+===== Description =====
+
+%%Position where the event happened, relative to the window.%%
+
+%%See %%[[:develop:api:efl:input:pointer:property:precise_position|Efl.Input.Pointer.precise_position]]%% for floating point precision (subpixel location).%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:pointer:property:position:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **pos** - %%The position of the event, in pixels.%%
+
+===== Signature =====
+
+
+@property position {
+ get {}
+ set {}
+ values {
+ pos: Eina.Position2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Position2D efl_input_pointer_position_get(const Eo *obj);
+void efl_input_pointer_position_set(Eo *obj, Eina_Position2D pos);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:pointer:property:position|Efl.Input.Pointer.position]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/property/precise_position.txt b/public_html/data/pages/develop/api/efl/input/pointer/property/precise_position.txt
new file mode 100644
index 00000000..8ec1a47c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/property/precise_position.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Input.Pointer.precise_position~~
+====== Efl.Input.Pointer.precise_position ======
+
+===== Description =====
+
+%%Position where the event happened, relative to the window.%%
+
+%%This position is in floating point values, for more precise coordinates, in subpixels. Note that many input devices are unable to give better precision than a single pixel, so this may be equal to %%[[:develop:api:efl:input:pointer:property:position|Efl.Input.Pointer.position]]%%.%%
+
+%%See also %%[[:develop:api:efl:input:pointer:property:position|Efl.Input.Pointer.position]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:pointer:property:precise_position:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **pos** - %%The position of the event, in pixels.%%
+
+===== Signature =====
+
+
+@property precise_position {
+ get {}
+ set {}
+ values {
+ pos: Eina.Vector2;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Vector2 efl_input_pointer_precise_position_get(const Eo *obj);
+void efl_input_pointer_precise_position_set(Eo *obj, Eina_Vector2 pos);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:pointer:property:precise_position|Efl.Input.Pointer.precise_position]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/property/previous_position.txt b/public_html/data/pages/develop/api/efl/input/pointer/property/previous_position.txt
new file mode 100644
index 00000000..4cb25212
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/property/previous_position.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Input.Pointer.previous_position~~
+====== Efl.Input.Pointer.previous_position ======
+
+===== Description =====
+
+%%Position of the previous event, valid for move events.%%
+
+%%Relative to the window. May be equal to %%[[:develop:api:efl:input:pointer:property:position|Efl.Input.Pointer.position]]%% (by default).%%
+
+%%This position, in integers, is an approximation of %%[[:develop:api:efl:input:pointer:property:value|Efl.Input.Pointer.value.get]]%%(%%''previous_x''%%), %%[[:develop:api:efl:input:pointer:property:value|Efl.Input.Pointer.value.get]]%%(%%''previous_y''%%). Use %%[[:develop:api:efl:input:pointer:property:previous_position|Efl.Input.Pointer.previous_position]]%% if you need simple pixel positions, but prefer the generic interface if you need precise coordinates.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:pointer:property:previous_position:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **pos** - %%The position of the event, in pixels.%%
+
+===== Signature =====
+
+
+@property previous_position {
+ get {}
+ set {}
+ values {
+ pos: Eina.Position2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Position2D efl_input_pointer_previous_position_get(const Eo *obj);
+void efl_input_pointer_previous_position_set(Eo *obj, Eina_Position2D pos);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:pointer:property:previous_position|Efl.Input.Pointer.previous_position]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/property/source.txt b/public_html/data/pages/develop/api/efl/input/pointer/property/source.txt
new file mode 100644
index 00000000..ef281071
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/property/source.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Input.Pointer.source~~
+====== Efl.Input.Pointer.source ======
+
+===== Description =====
+
+%%The object where this event first originated, in case of propagation or repetition of the event.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:pointer:property:source:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **src** - %%Source object: %%[[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]%%%%
+
+===== Signature =====
+
+
+@property source {
+ get {}
+ set {}
+ values {
+ src: Efl.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_input_pointer_source_get(const Eo *obj);
+void efl_input_pointer_source_set(Eo *obj, Efl_Object *src);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:pointer:property:source|Efl.Input.Pointer.source]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/property/timestamp.txt b/public_html/data/pages/develop/api/efl/input/pointer/property/timestamp.txt
new file mode 100644
index 00000000..3450ab31
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/property/timestamp.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Input.Pointer.timestamp~~
+====== Efl.Input.Pointer.timestamp ======
+
+===== Description =====
+
+%%The time at which an event was generated.%%
+
+%%If the event is generated by a server (eg. X.org or Wayland), then the time may be set by the server. Usually this time will be based on the monotonic clock, if available, but this class can not guarantee it.%%
+
+//Since 1.23//
+
+
+{{page>:develop:api-include:efl:input:pointer:property:timestamp:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **ms** - %%Time in milliseconds when the event happened.%%
+==== Setter ====
+
+%%Call this when generating events manually.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:pointer:property:timestamp:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:input:event:property:timestamp|Efl.Input.Event.timestamp]] **(get, set)**.//===== Signature =====
+
+
+@property timestamp @pure_virtual {
+ get {}
+ set {}
+ values {
+ ms: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_input_timestamp_get(const Eo *obj);
+void efl_input_timestamp_set(Eo *obj, double ms);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:event:property:timestamp|Efl.Input.Event.timestamp]]
+ * [[:develop:api:efl:input:pointer:property:timestamp|Efl.Input.Pointer.timestamp]]
+ * [[:develop:api:efl:input:key:property:timestamp|Efl.Input.Key.timestamp]]
+ * [[:develop:api:efl:input:hold:property:timestamp|Efl.Input.Hold.timestamp]]
+ * [[:develop:api:efl:input:focus:property:timestamp|Efl.Input.Focus.timestamp]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/property/touch_id.txt b/public_html/data/pages/develop/api/efl/input/pointer/property/touch_id.txt
new file mode 100644
index 00000000..d84a9204
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/property/touch_id.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Input.Pointer.touch_id~~
+====== Efl.Input.Pointer.touch_id ======
+
+===== Description =====
+
+%%The ID associated with this pointer.%%
+
+%%In case there are multiple pointers (for example when multiple fingers are touching the screen) this number uniquely identifies each pointer, for as long as it is present. This is, when a finger is lifted its ID can be later reused by another finger touching the screen.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:pointer:property:touch_id:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **id** - %%An ID uniquely identifying this pointer among the currently present pointers.%%
+
+===== Signature =====
+
+
+@property touch_id {
+ get {}
+ set {}
+ values {
+ id: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_input_pointer_touch_id_get(const Eo *obj);
+void efl_input_pointer_touch_id_set(Eo *obj, int id);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:pointer:property:touch_id|Efl.Input.Pointer.touch_id]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/property/triple_click.txt b/public_html/data/pages/develop/api/efl/input/pointer/property/triple_click.txt
new file mode 100644
index 00000000..9da02ad4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/property/triple_click.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Input.Pointer.triple_click~~
+====== Efl.Input.Pointer.triple_click ======
+
+===== Description =====
+
+%%%%''true''%% if %%[[:develop:api:efl:input:pointer:property:button_flags|Efl.Input.Pointer.button_flags]]%% indicates a triple click (3rd press).%%
+
+%%This is just a helper function around %%[[:develop:api:efl:input:pointer:property:button_flags|Efl.Input.Pointer.button_flags]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:pointer:property:triple_click:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **val** - %%%%''true''%% if the button press was a triple click, %%''false''%% otherwise%%
+
+===== Signature =====
+
+
+@property triple_click {
+ get {}
+ set {}
+ values {
+ val: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_input_pointer_triple_click_get(const Eo *obj);
+void efl_input_pointer_triple_click_set(Eo *obj, Eina_Bool val);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:pointer:property:triple_click|Efl.Input.Pointer.triple_click]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/property/value.txt b/public_html/data/pages/develop/api/efl/input/pointer/property/value.txt
new file mode 100644
index 00000000..138b7c8d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/property/value.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Input.Pointer.value~~
+====== Efl.Input.Pointer.value ======
+
+===== Description =====
+
+%%Represents a generic value for this event.%%
+
+%%Refer to the documentation of %%[[:develop:api:efl:input:value|Efl.Input.Value]]%% for each value's meaning, type and range. Call %%[[:develop:api:efl:input:pointer:property:value_has|Efl.Input.Pointer.value_has.get]]%% to determine whether the returned value is valid or not for this event.%%
+
+%%Most values are precise floating point values, usually in pixels, radians, or in a range of [-1, 1] or [0, 1]. Some values are discrete values (integers) and thus should preferably be queried with the other methods of this class.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:pointer:property:value:description&nouser&nolink&nodate}}
+
+===== Keys =====
+
+ * **key** - %%%%''key''%%%%
+===== Values =====
+
+ * **val** - %%%%''key''%% value%%
+
+===== Signature =====
+
+
+@property value @beta {
+ get {}
+ set {
+ return: bool;
+ }
+ keys {
+ key: Efl.Input.Value;
+ }
+ values {
+ val: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_input_pointer_value_get(const Eo *obj, Efl_Input_Value key);
+Eina_Bool efl_input_pointer_value_set(Eo *obj, Efl_Input_Value key, double val);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:pointer:property:value|Efl.Input.Pointer.value]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/property/value_has.txt b/public_html/data/pages/develop/api/efl/input/pointer/property/value_has.txt
new file mode 100644
index 00000000..5eb43d42
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/property/value_has.txt
@@ -0,0 +1,38 @@
+~~Title: Efl.Input.Pointer.value_has~~
+====== Efl.Input.Pointer.value_has ======
+
+===== Keys =====
+
+ * **key** - %%Pressed %%''key''%%%%
+===== Values =====
+
+ * **has** - %%%%''true''%% if input value is valid, %%''false''%% otherwise%%
+
+
+\\ {{page>:develop:api-include:efl:input:pointer:property:value_has:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property value_has @beta {
+ get {
+ keys {
+ key: Efl.Input.Value;
+ }
+ }
+ values {
+ has: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_input_pointer_value_has_get(const Eo *obj, Efl_Input_Value key);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:pointer:property:value_has|Efl.Input.Pointer.value_has]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/property/wheel_delta.txt b/public_html/data/pages/develop/api/efl/input/pointer/property/wheel_delta.txt
new file mode 100644
index 00000000..ad6f95d7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/property/wheel_delta.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Input.Pointer.wheel_delta~~
+====== Efl.Input.Pointer.wheel_delta ======
+
+===== Description =====
+
+%%Delta movement of the wheel in discrete steps.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:pointer:property:wheel_delta:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **dist** - %%Wheel movement delta%%
+
+===== Signature =====
+
+
+@property wheel_delta {
+ get {}
+ set {}
+ values {
+ dist: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_input_pointer_wheel_delta_get(const Eo *obj);
+void efl_input_pointer_wheel_delta_set(Eo *obj, int dist);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:pointer:property:wheel_delta|Efl.Input.Pointer.wheel_delta]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/pointer/property/wheel_horizontal.txt b/public_html/data/pages/develop/api/efl/input/pointer/property/wheel_horizontal.txt
new file mode 100644
index 00000000..e42cf64d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/pointer/property/wheel_horizontal.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Input.Pointer.wheel_horizontal~~
+====== Efl.Input.Pointer.wheel_horizontal ======
+
+===== Description =====
+
+%%Direction of the wheel, usually vertical.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:input:pointer:property:wheel_horizontal:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **horizontal** - %%If %%''true''%% this was a horizontal wheel.%%
+
+===== Signature =====
+
+
+@property wheel_horizontal {
+ get {}
+ set {}
+ values {
+ horizontal: bool (false);
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_input_pointer_wheel_horizontal_get(const Eo *obj);
+void efl_input_pointer_wheel_horizontal_set(Eo *obj, Eina_Bool horizontal);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:pointer:property:wheel_horizontal|Efl.Input.Pointer.wheel_horizontal]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/state.txt b/public_html/data/pages/develop/api/efl/input/state.txt
new file mode 100644
index 00000000..04b67a78
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/state.txt
@@ -0,0 +1,28 @@
+~~Title: Efl.Input.State~~
+====== Efl.Input.State (interface) ======
+
+===== Description =====
+
+%%Efl input state interface.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:input:state:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:input:state:property:lock_enabled|lock_enabled]]** //**(get)**//\\
+>
+
+Eina_Bool efl_input_lock_enabled_get(const Eo *obj, Efl_Input_Lock lock, const Efl_Input_Device *seat);
+
+\\
+**[[:develop:api:efl:input:state:property:modifier_enabled|modifier_enabled]]** //**(get)**//\\
+>
+
+Eina_Bool efl_input_modifier_enabled_get(const Eo *obj, Efl_Input_Modifier mod, const Efl_Input_Device *seat);
+
+\\
+
+===== Events =====
+
diff --git a/public_html/data/pages/develop/api/efl/input/state/property/lock_enabled.txt b/public_html/data/pages/develop/api/efl/input/state/property/lock_enabled.txt
new file mode 100644
index 00000000..782fc204
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/state/property/lock_enabled.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Input.State.lock_enabled~~
+====== Efl.Input.State.lock_enabled ======
+
+===== Keys =====
+
+ * **lock** - %%The lock key to test.%%
+ * **seat** - %%The seat device, may be %%''null''%%%%
+===== Values =====
+
+ * **is_set** - %%%%''true''%% if the key lock is on.%%
+
+
+\\ {{page>:develop:api-include:efl:input:state:property:lock_enabled:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property lock_enabled @beta @pure_virtual {
+ get {
+ keys {
+ lock: Efl.Input.Lock;
+ seat: const(Efl.Input.Device) @optional;
+ }
+ }
+ values {
+ is_set: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_input_lock_enabled_get(const Eo *obj, Efl_Input_Lock lock, const Efl_Input_Device *seat);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:state:property:lock_enabled|Efl.Input.State.lock_enabled]]
+ * [[:develop:api:efl:ui:win:property:lock_enabled|Efl.Ui.Win.lock_enabled]]
+ * [[:develop:api:efl:input:pointer:property:lock_enabled|Efl.Input.Pointer.lock_enabled]]
+ * [[:develop:api:efl:input:key:property:lock_enabled|Efl.Input.Key.lock_enabled]]
+
diff --git a/public_html/data/pages/develop/api/efl/input/state/property/modifier_enabled.txt b/public_html/data/pages/develop/api/efl/input/state/property/modifier_enabled.txt
new file mode 100644
index 00000000..8be12991
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/input/state/property/modifier_enabled.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Input.State.modifier_enabled~~
+====== Efl.Input.State.modifier_enabled ======
+
+===== Keys =====
+
+ * **mod** - %%The modifier key to test.%%
+ * **seat** - %%The seat device, may be %%''null''%%%%
+===== Values =====
+
+ * **is_set** - %%%%''true''%% if the key modifier is pressed.%%
+
+
+\\ {{page>:develop:api-include:efl:input:state:property:modifier_enabled:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property modifier_enabled @beta @pure_virtual {
+ get {
+ keys {
+ mod: Efl.Input.Modifier;
+ seat: const(Efl.Input.Device) @optional;
+ }
+ }
+ values {
+ is_set: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_input_modifier_enabled_get(const Eo *obj, Efl_Input_Modifier mod, const Efl_Input_Device *seat);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:state:property:modifier_enabled|Efl.Input.State.modifier_enabled]]
+ * [[:develop:api:efl:ui:win:property:modifier_enabled|Efl.Ui.Win.modifier_enabled]]
+ * [[:develop:api:efl:input:pointer:property:modifier_enabled|Efl.Input.Pointer.modifier_enabled]]
+ * [[:develop:api:efl:input:key:property:modifier_enabled|Efl.Input.Key.modifier_enabled]]
+
diff --git a/public_html/data/pages/develop/api/efl/io/closer.txt b/public_html/data/pages/develop/api/efl/io/closer.txt
new file mode 100644
index 00000000..4026acf2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/io/closer.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Io.Closer~~
+====== Efl.Io.Closer (interface) ======
+
+===== Description =====
+
+%%Generic interface for objects that can close themselves.%%
+
+%%This interface allows external objects to transparently close an input or output stream, cleaning up its resources.%%
+
+%%Calls to %%[[:develop:api:efl:io:closer:method:close|Efl.Io.Closer.close]]%%() may or may not block, that's not up to this interface to specify.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:io:closer:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:io:closer:method:close|close]]**\\
+> %%Closes the Input/Output object.%%
+
+Eina_Error efl_io_closer_close(Eo *obj);
+
+\\
+**[[:develop:api:efl:io:closer:property:close_on_exec|close_on_exec]]** //**(get, set)**//\\
+> %%If true will automatically close resources on exec() calls.%%
+
+Eina_Bool efl_io_closer_close_on_exec_get(const Eo *obj);
+Eina_Bool efl_io_closer_close_on_exec_set(Eo *obj, Eina_Bool close_on_exec);
+
+\\
+**[[:develop:api:efl:io:closer:property:close_on_invalidate|close_on_invalidate]]** //**(get, set)**//\\
+> %%If true will automatically close() on object invalidate.%%
+
+Eina_Bool efl_io_closer_close_on_invalidate_get(const Eo *obj);
+void efl_io_closer_close_on_invalidate_set(Eo *obj, Eina_Bool close_on_invalidate);
+
+\\
+**[[:develop:api:efl:io:closer:property:closed|closed]]** //**(get)**//\\
+>
+
+Eina_Bool efl_io_closer_closed_get(const Eo *obj);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:io:closer:event:closed|closed]]**\\
+> %%Notifies closed, when property is marked as true%%
+
+EFL_IO_CLOSER_EVENT_CLOSED(void)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/io/closer/event/closed.txt b/public_html/data/pages/develop/api/efl/io/closer/event/closed.txt
new file mode 100644
index 00000000..0ec10e0a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/io/closer/event/closed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Io.Closer: closed~~
+
+===== Description =====
+
+%%Notifies closed, when property is marked as true%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:io:closer:event:closed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+closed;
+
+
+===== C information =====
+
+
+EFL_IO_CLOSER_EVENT_CLOSED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_io_closer_event_closed(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_IO_CLOSER_EVENT_CLOSED, on_efl_io_closer_event_closed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/io/closer/method/close.txt b/public_html/data/pages/develop/api/efl/io/closer/method/close.txt
new file mode 100644
index 00000000..936763e9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/io/closer/method/close.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Io.Closer.close~~
+====== Efl.Io.Closer.close ======
+
+===== Description =====
+
+%%Closes the Input/Output object.%%
+
+%%This operation will be executed immediately and may or may not block the caller thread for some time. The details of blocking behavior is to be defined by the implementation and may be subject to other parameters such as non-blocking flags, maximum timeout or even retry attempts.%%
+
+%%You can understand this method as close(2) libc function.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:io:closer:method:close:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+close @pure_virtual {
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_io_closer_close(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:io:closer:method:close|Efl.Io.Closer.close]]
+ * [[:develop:api:efl:io:closer_fd:method:close|Efl.Io.Closer_Fd.close]]
+ * [[:develop:api:efl:io:file:method:close|Efl.Io.File.close]]
+ * [[:develop:api:efl:net:socket_fd:method:close|Efl.Net.Socket_Fd.close]]
+ * [[:develop:api:efl:net:dialer_udp:method:close|Efl.Net.Dialer_Udp.close]]
+ * [[:develop:api:efl:net:dialer_unix:method:close|Efl.Net.Dialer_Unix.close]]
+ * [[:develop:api:efl:net:dialer_tcp:method:close|Efl.Net.Dialer_Tcp.close]]
+ * [[:develop:api:efl:io:buffered_stream:method:close|Efl.Io.Buffered_Stream.close]]
+ * [[:develop:api:efl:appthread:method:close|Efl.Appthread.close]]
+ * [[:develop:api:efl:exe:method:close|Efl.Exe.close]]
+ * [[:develop:api:efl:net:socket_ssl:method:close|Efl.Net.Socket_Ssl.close]]
+ * [[:develop:api:efl:net:dialer_ssl:method:close|Efl.Net.Dialer_Ssl.close]]
+ * [[:develop:api:efl:net:server_udp_client:method:close|Efl.Net.Server_Udp_Client.close]]
+ * [[:develop:api:efl:net:dialer_windows:method:close|Efl.Net.Dialer_Windows.close]]
+ * [[:develop:api:efl:net:dialer_websocket:method:close|Efl.Net.Dialer_Websocket.close]]
+ * [[:develop:api:efl:net:dialer_http:method:close|Efl.Net.Dialer_Http.close]]
+ * [[:develop:api:efl:net:socket_windows:method:close|Efl.Net.Socket_Windows.close]]
+ * [[:develop:api:efl:thread:method:close|Efl.Thread.close]]
+ * [[:develop:api:efl:io:buffer:method:close|Efl.Io.Buffer.close]]
+ * [[:develop:api:efl:io:queue:method:close|Efl.Io.Queue.close]]
+ * [[:develop:api:efl:io:copier:method:close|Efl.Io.Copier.close]]
+
diff --git a/public_html/data/pages/develop/api/efl/io/closer/property/close_on_exec.txt b/public_html/data/pages/develop/api/efl/io/closer/property/close_on_exec.txt
new file mode 100644
index 00000000..2ade76f3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/io/closer/property/close_on_exec.txt
@@ -0,0 +1,61 @@
+~~Title: Efl.Io.Closer.close_on_exec~~
+====== Efl.Io.Closer.close_on_exec ======
+
+===== Description =====
+
+%%If true will automatically close resources on exec() calls.%%
+
+%%When using file descriptors this should set FD_CLOEXEC so they are not inherited by the processes (children or self) doing exec().%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:io:closer:property:close_on_exec:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **close_on_exec** - %%%%''true''%% if close on exec(), %%''false''%% otherwise%%
+==== Setter ====
+
+%%If %%''true''%%, will close on exec() call.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:io:closer:property:close_on_exec:getter_description&nouser&nolink&nodate}}
+
+
+===== Signature =====
+
+
+@property close_on_exec @pure_virtual {
+ get {}
+ set {
+ return: bool;
+ }
+ values {
+ close_on_exec: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_io_closer_close_on_exec_get(const Eo *obj);
+Eina_Bool efl_io_closer_close_on_exec_set(Eo *obj, Eina_Bool close_on_exec);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:io:closer:property:close_on_exec|Efl.Io.Closer.close_on_exec]]
+ * [[:develop:api:efl:io:closer_fd:property:close_on_exec|Efl.Io.Closer_Fd.close_on_exec]]
+ * [[:develop:api:efl:io:file:property:close_on_exec|Efl.Io.File.close_on_exec]]
+ * [[:develop:api:efl:io:buffered_stream:property:close_on_exec|Efl.Io.Buffered_Stream.close_on_exec]]
+ * [[:develop:api:efl:net:socket_ssl:property:close_on_exec|Efl.Net.Socket_Ssl.close_on_exec]]
+ * [[:develop:api:efl:net:server_udp_client:property:close_on_exec|Efl.Net.Server_Udp_Client.close_on_exec]]
+ * [[:develop:api:efl:net:dialer_websocket:property:close_on_exec|Efl.Net.Dialer_Websocket.close_on_exec]]
+ * [[:develop:api:efl:net:dialer_http:property:close_on_exec|Efl.Net.Dialer_Http.close_on_exec]]
+ * [[:develop:api:efl:net:socket_windows:property:close_on_exec|Efl.Net.Socket_Windows.close_on_exec]]
+ * [[:develop:api:efl:io:buffer:property:close_on_exec|Efl.Io.Buffer.close_on_exec]]
+ * [[:develop:api:efl:io:queue:property:close_on_exec|Efl.Io.Queue.close_on_exec]]
+ * [[:develop:api:efl:io:copier:property:close_on_exec|Efl.Io.Copier.close_on_exec]]
+
diff --git a/public_html/data/pages/develop/api/efl/io/closer/property/close_on_invalidate.txt b/public_html/data/pages/develop/api/efl/io/closer/property/close_on_invalidate.txt
new file mode 100644
index 00000000..ba111b02
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/io/closer/property/close_on_invalidate.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Io.Closer.close_on_invalidate~~
+====== Efl.Io.Closer.close_on_invalidate ======
+
+===== Description =====
+
+%%If true will automatically close() on object invalidate.%%
+
+%%If the object was disconnected from its parent (including the main loop) without close, this property will state whenever it should be closed or not.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:io:closer:property:close_on_invalidate:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **close_on_invalidate** - %%%%''true''%% if close on invalidate, %%''false''%% otherwise%%
+
+===== Signature =====
+
+
+@property close_on_invalidate @pure_virtual {
+ get {}
+ set {}
+ values {
+ close_on_invalidate: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_io_closer_close_on_invalidate_get(const Eo *obj);
+void efl_io_closer_close_on_invalidate_set(Eo *obj, Eina_Bool close_on_invalidate);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:io:closer:property:close_on_invalidate|Efl.Io.Closer.close_on_invalidate]]
+ * [[:develop:api:efl:io:closer_fd:property:close_on_invalidate|Efl.Io.Closer_Fd.close_on_invalidate]]
+ * [[:develop:api:efl:io:buffered_stream:property:close_on_invalidate|Efl.Io.Buffered_Stream.close_on_invalidate]]
+ * [[:develop:api:efl:net:socket_ssl:property:close_on_invalidate|Efl.Net.Socket_Ssl.close_on_invalidate]]
+ * [[:develop:api:efl:net:server_udp_client:property:close_on_invalidate|Efl.Net.Server_Udp_Client.close_on_invalidate]]
+ * [[:develop:api:efl:net:dialer_websocket:property:close_on_invalidate|Efl.Net.Dialer_Websocket.close_on_invalidate]]
+ * [[:develop:api:efl:net:dialer_http:property:close_on_invalidate|Efl.Net.Dialer_Http.close_on_invalidate]]
+ * [[:develop:api:efl:net:socket_windows:property:close_on_invalidate|Efl.Net.Socket_Windows.close_on_invalidate]]
+ * [[:develop:api:efl:io:buffer:property:close_on_invalidate|Efl.Io.Buffer.close_on_invalidate]]
+ * [[:develop:api:efl:io:queue:property:close_on_invalidate|Efl.Io.Queue.close_on_invalidate]]
+ * [[:develop:api:efl:io:copier:property:close_on_invalidate|Efl.Io.Copier.close_on_invalidate]]
+
diff --git a/public_html/data/pages/develop/api/efl/io/closer/property/closed.txt b/public_html/data/pages/develop/api/efl/io/closer/property/closed.txt
new file mode 100644
index 00000000..9ec68ea1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/io/closer/property/closed.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Io.Closer.closed~~
+====== Efl.Io.Closer.closed ======
+
+===== Values =====
+
+ * **is_closed** - %%%%''true''%% if closed, %%''false''%% otherwise%%
+
+
+\\ {{page>:develop:api-include:efl:io:closer:property:closed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property closed @pure_virtual {
+ get {}
+ values {
+ is_closed: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_io_closer_closed_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:io:closer:property:closed|Efl.Io.Closer.closed]]
+ * [[:develop:api:efl:io:closer_fd:property:closed|Efl.Io.Closer_Fd.closed]]
+ * [[:develop:api:efl:net:socket_fd:property:closed|Efl.Net.Socket_Fd.closed]]
+ * [[:develop:api:efl:io:buffered_stream:property:closed|Efl.Io.Buffered_Stream.closed]]
+ * [[:develop:api:efl:appthread:property:closed|Efl.Appthread.closed]]
+ * [[:develop:api:efl:exe:property:closed|Efl.Exe.closed]]
+ * [[:develop:api:efl:net:socket_ssl:property:closed|Efl.Net.Socket_Ssl.closed]]
+ * [[:develop:api:efl:net:server_udp_client:property:closed|Efl.Net.Server_Udp_Client.closed]]
+ * [[:develop:api:efl:net:dialer_websocket:property:closed|Efl.Net.Dialer_Websocket.closed]]
+ * [[:develop:api:efl:net:dialer_http:property:closed|Efl.Net.Dialer_Http.closed]]
+ * [[:develop:api:efl:net:socket_windows:property:closed|Efl.Net.Socket_Windows.closed]]
+ * [[:develop:api:efl:thread:property:closed|Efl.Thread.closed]]
+ * [[:develop:api:efl:io:buffer:property:closed|Efl.Io.Buffer.closed]]
+ * [[:develop:api:efl:io:queue:property:closed|Efl.Io.Queue.closed]]
+ * [[:develop:api:efl:io:copier:property:closed|Efl.Io.Copier.closed]]
+
diff --git a/public_html/data/pages/develop/api/efl/io/reader.txt b/public_html/data/pages/develop/api/efl/io/reader.txt
new file mode 100644
index 00000000..ded79b43
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/io/reader.txt
@@ -0,0 +1,51 @@
+~~Title: Efl.Io.Reader~~
+====== Efl.Io.Reader (interface) ======
+
+===== Description =====
+
+%%Generic interface for objects that can read data into a provided memory.%%
+
+%%This interface allows external objects to transparently monitor for new data and as it to be read into a provided memory slice.%%
+
+%%Calls to %%[[:develop:api:efl:io:reader:method:read|Efl.Io.Reader.read]]%% may or may not block, that's not up to this interface to specify. The user can check based on %%[[:develop:api:efl:io:reader:property:eos|Efl.Io.Reader.eos]]%% property and signal if the stream reached an end, with event "can_read,changed" or property %%[[:develop:api:efl:io:reader:property:can_read|Efl.Io.Reader.can_read]]%% to known whenever a read would have data to return.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:io:reader:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:io:reader:property:can_read|can_read]]** //**(get, set)**// ''protected set''\\
+> %%If %%''true''%% will notify %%[[:develop:api:efl:io:reader:method:read|Efl.Io.Reader.read]]%% can be called without blocking or failing.%%
+
+Eina_Bool efl_io_reader_can_read_get(const Eo *obj);
+void efl_io_reader_can_read_set(Eo *obj, Eina_Bool can_read);
+
+\\
+**[[:develop:api:efl:io:reader:property:eos|eos]]** //**(get, set)**// ''protected set''\\
+> %%If %%''true''%% will notify end of stream.%%
+
+Eina_Bool efl_io_reader_eos_get(const Eo *obj);
+void efl_io_reader_eos_set(Eo *obj, Eina_Bool is_eos);
+
+\\
+**[[:develop:api:efl:io:reader:method:read|read]]**\\
+> %%Reads data into a pre-allocated buffer.%%
+
+Eina_Error efl_io_reader_read(Eo *obj, Eina_Rw_Slice rw_slice);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:io:reader:event:can_read_changed|can_read,changed]]**\\
+> %%Notifies can_read property changed.%%
+
+EFL_IO_READER_EVENT_CAN_READ_CHANGED(Eina_Bool)
+
+\\ **[[:develop:api:efl:io:reader:event:eos|eos]]**\\
+> %%Notifies end of stream, when property is marked as true.%%
+
+EFL_IO_READER_EVENT_EOS(void)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/io/reader/event/can_read_changed.txt b/public_html/data/pages/develop/api/efl/io/reader/event/can_read_changed.txt
new file mode 100644
index 00000000..8a21a3a1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/io/reader/event/can_read_changed.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Io.Reader: can_read,changed~~
+
+===== Description =====
+
+%%Notifies can_read property changed.%%
+
+%%If %%[[:develop:api:efl:io:reader:property:can_read|Efl.Io.Reader.can_read]]%% is %%''true''%% there is data to %%[[:develop:api:efl:io:reader:method:read|Efl.Io.Reader.read]]%% without blocking/error. If %%[[:develop:api:efl:io:reader:property:can_read|Efl.Io.Reader.can_read]]%% is %%''false''%%, %%[[:develop:api:efl:io:reader:method:read|Efl.Io.Reader.read]]%% would either block or fail.%%
+
+%%Note that usually this event is dispatched from inside %%[[:develop:api:efl:io:reader:method:read|Efl.Io.Reader.read]]%%, thus before it returns.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:io:reader:event:can_read_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+can_read,changed: bool;
+
+
+===== C information =====
+
+
+EFL_IO_READER_EVENT_CAN_READ_CHANGED(Eina_Bool)
+
+
+===== C usage =====
+
+
+static void
+on_efl_io_reader_event_can_read_changed(void *data, const Efl_Event *event)
+{
+ Eina_Bool info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_IO_READER_EVENT_CAN_READ_CHANGED, on_efl_io_reader_event_can_read_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/io/reader/event/eos.txt b/public_html/data/pages/develop/api/efl/io/reader/event/eos.txt
new file mode 100644
index 00000000..428400c1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/io/reader/event/eos.txt
@@ -0,0 +1,48 @@
+~~Title: Efl.Io.Reader: eos~~
+
+===== Description =====
+
+%%Notifies end of stream, when property is marked as true.%%
+
+%%If this is used alongside with an %%[[:develop:api:efl:io:closer|Efl.Io.Closer]]%%, then it should be emitted before that call.%%
+
+%%It should be emitted only once for an object unless it implements %%[[:develop:api:efl:io:positioner:method:seek|Efl.Io.Positioner.seek]]%%.%%
+
+%%The property %%[[:develop:api:efl:io:reader:property:can_read|Efl.Io.Reader.can_read]]%% should change to %%''false''%% before this event is dispatched.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:io:reader:event:eos:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+eos;
+
+
+===== C information =====
+
+
+EFL_IO_READER_EVENT_EOS(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_io_reader_event_eos(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_IO_READER_EVENT_EOS, on_efl_io_reader_event_eos, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/io/reader/method/read.txt b/public_html/data/pages/develop/api/efl/io/reader/method/read.txt
new file mode 100644
index 00000000..c01eeba7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/io/reader/method/read.txt
@@ -0,0 +1,55 @@
+~~Title: Efl.Io.Reader.read~~
+====== Efl.Io.Reader.read ======
+
+===== Description =====
+
+%%Reads data into a pre-allocated buffer.%%
+
+%%This operation will be executed immediately and may or may not block the caller thread for some time. The details of blocking behavior is to be defined by the implementation and may be subject to other parameters such as non-blocking flags, maximum timeout or even retry attempts.%%
+
+%%You can understand this method as read(2) libc function.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:io:reader:method:read:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+read @pure_virtual {
+ params {
+ @inout rw_slice: rw_slice;
+ }
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_io_reader_read(Eo *obj, Eina_Rw_Slice rw_slice);
+
+
+===== Parameters =====
+
+ * **rw_slice** //(inout)// - %%Provides a pre-allocated memory to be filled up to rw_slice.len. It will be populated and the length will be set to the actually used amount of bytes, which can be smaller than the request.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:io:reader:method:read|Efl.Io.Reader.read]]
+ * [[:develop:api:efl:io:buffered_stream:method:read|Efl.Io.Buffered_Stream.read]]
+ * [[:develop:api:efl:appthread:method:read|Efl.Appthread.read]]
+ * [[:develop:api:efl:io:reader_fd:method:read|Efl.Io.Reader_Fd.read]]
+ * [[:develop:api:efl:io:file:method:read|Efl.Io.File.read]]
+ * [[:develop:api:efl:io:stdin:method:read|Efl.Io.Stdin.read]]
+ * [[:develop:api:efl:net:socket_fd:method:read|Efl.Net.Socket_Fd.read]]
+ * [[:develop:api:efl:net:socket_udp:method:read|Efl.Net.Socket_Udp.read]]
+ * [[:develop:api:efl:exe:method:read|Efl.Exe.read]]
+ * [[:develop:api:efl:net:socket_ssl:method:read|Efl.Net.Socket_Ssl.read]]
+ * [[:develop:api:efl:net:server_udp_client:method:read|Efl.Net.Server_Udp_Client.read]]
+ * [[:develop:api:efl:net:dialer_websocket:method:read|Efl.Net.Dialer_Websocket.read]]
+ * [[:develop:api:efl:net:dialer_http:method:read|Efl.Net.Dialer_Http.read]]
+ * [[:develop:api:efl:net:socket_windows:method:read|Efl.Net.Socket_Windows.read]]
+ * [[:develop:api:efl:thread:method:read|Efl.Thread.read]]
+ * [[:develop:api:efl:io:buffer:method:read|Efl.Io.Buffer.read]]
+ * [[:develop:api:efl:io:queue:method:read|Efl.Io.Queue.read]]
+
diff --git a/public_html/data/pages/develop/api/efl/io/reader/property/can_read.txt b/public_html/data/pages/develop/api/efl/io/reader/property/can_read.txt
new file mode 100644
index 00000000..4e9fca48
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/io/reader/property/can_read.txt
@@ -0,0 +1,51 @@
+~~Title: Efl.Io.Reader.can_read~~
+====== Efl.Io.Reader.can_read ======
+
+===== Description =====
+
+%%If %%''true''%% will notify %%[[:develop:api:efl:io:reader:method:read|Efl.Io.Reader.read]]%% can be called without blocking or failing.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:io:reader:property:can_read:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **can_read** - %%%%''true''%% if it can be read without blocking or failing, %%''false''%% otherwise%%
+
+===== Signature =====
+
+
+@property can_read @pure_virtual {
+ get {}
+ set @protected {}
+ values {
+ can_read: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_io_reader_can_read_get(const Eo *obj);
+void efl_io_reader_can_read_set(Eo *obj, Eina_Bool can_read);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:io:reader:property:can_read|Efl.Io.Reader.can_read]]
+ * [[:develop:api:efl:io:buffered_stream:property:can_read|Efl.Io.Buffered_Stream.can_read]]
+ * [[:develop:api:efl:appthread:property:can_read|Efl.Appthread.can_read]]
+ * [[:develop:api:efl:io:reader_fd:property:can_read|Efl.Io.Reader_Fd.can_read]]
+ * [[:develop:api:efl:io:stdin:property:can_read|Efl.Io.Stdin.can_read]]
+ * [[:develop:api:efl:net:socket_fd:property:can_read|Efl.Net.Socket_Fd.can_read]]
+ * [[:develop:api:efl:exe:property:can_read|Efl.Exe.can_read]]
+ * [[:develop:api:efl:net:socket_ssl:property:can_read|Efl.Net.Socket_Ssl.can_read]]
+ * [[:develop:api:efl:net:server_udp_client:property:can_read|Efl.Net.Server_Udp_Client.can_read]]
+ * [[:develop:api:efl:net:dialer_websocket:property:can_read|Efl.Net.Dialer_Websocket.can_read]]
+ * [[:develop:api:efl:net:dialer_http:property:can_read|Efl.Net.Dialer_Http.can_read]]
+ * [[:develop:api:efl:net:socket_windows:property:can_read|Efl.Net.Socket_Windows.can_read]]
+ * [[:develop:api:efl:thread:property:can_read|Efl.Thread.can_read]]
+ * [[:develop:api:efl:io:buffer:property:can_read|Efl.Io.Buffer.can_read]]
+ * [[:develop:api:efl:io:queue:property:can_read|Efl.Io.Queue.can_read]]
+
diff --git a/public_html/data/pages/develop/api/efl/io/reader/property/eos.txt b/public_html/data/pages/develop/api/efl/io/reader/property/eos.txt
new file mode 100644
index 00000000..6b856921
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/io/reader/property/eos.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Io.Reader.eos~~
+====== Efl.Io.Reader.eos ======
+
+===== Description =====
+
+%%If %%''true''%% will notify end of stream.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:io:reader:property:eos:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **is_eos** - %%%%''true''%% if end of stream, %%''false''%% otherwise%%
+
+===== Signature =====
+
+
+@property eos @pure_virtual {
+ get {}
+ set @protected {}
+ values {
+ is_eos: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_io_reader_eos_get(const Eo *obj);
+void efl_io_reader_eos_set(Eo *obj, Eina_Bool is_eos);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:io:reader:property:eos|Efl.Io.Reader.eos]]
+ * [[:develop:api:efl:io:buffered_stream:property:eos|Efl.Io.Buffered_Stream.eos]]
+ * [[:develop:api:efl:appthread:property:eos|Efl.Appthread.eos]]
+ * [[:develop:api:efl:io:reader_fd:property:eos|Efl.Io.Reader_Fd.eos]]
+ * [[:develop:api:efl:net:socket_fd:property:eos|Efl.Net.Socket_Fd.eos]]
+ * [[:develop:api:efl:exe:property:eos|Efl.Exe.eos]]
+ * [[:develop:api:efl:net:socket_ssl:property:eos|Efl.Net.Socket_Ssl.eos]]
+ * [[:develop:api:efl:net:server_udp_client:property:eos|Efl.Net.Server_Udp_Client.eos]]
+ * [[:develop:api:efl:net:dialer_websocket:property:eos|Efl.Net.Dialer_Websocket.eos]]
+ * [[:develop:api:efl:net:dialer_http:property:eos|Efl.Net.Dialer_Http.eos]]
+ * [[:develop:api:efl:net:socket_windows:property:eos|Efl.Net.Socket_Windows.eos]]
+ * [[:develop:api:efl:thread:property:eos|Efl.Thread.eos]]
+ * [[:develop:api:efl:io:buffer:property:eos|Efl.Io.Buffer.eos]]
+ * [[:develop:api:efl:io:queue:property:eos|Efl.Io.Queue.eos]]
+
diff --git a/public_html/data/pages/develop/api/efl/io/writer.txt b/public_html/data/pages/develop/api/efl/io/writer.txt
new file mode 100644
index 00000000..29d581b7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/io/writer.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Io.Writer~~
+====== Efl.Io.Writer (interface) ======
+
+===== Description =====
+
+%%Generic interface for objects that can write data from a provided memory.%%
+
+%%This interface allows external objects to transparently write data to this object and be notified whether more data can be written or if it's reached capacity.%%
+
+%%Calls to %%[[:develop:api:efl:io:writer:method:write|Efl.Io.Writer.write]]%%() may or may not block: that's not up to this interface to specify. The user can check with event "can_write,changed" or property %%[[:develop:api:efl:io:writer:property:can_write|Efl.Io.Writer.can_write]]%% to known whenever a write could push more data.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:io:writer:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:io:writer:property:can_write|can_write]]** //**(get, set)**// ''protected set''\\
+> %%If %%''true''%% will notify %%[[:develop:api:efl:io:writer:method:write|Efl.Io.Writer.write]]%% can be called without blocking or failing.%%
+
+Eina_Bool efl_io_writer_can_write_get(const Eo *obj);
+void efl_io_writer_can_write_set(Eo *obj, Eina_Bool can_write);
+
+\\
+**[[:develop:api:efl:io:writer:method:write|write]]**\\
+> %%Writes data from a pre-populated buffer.%%
+
+Eina_Error efl_io_writer_write(Eo *obj, Eina_Slice slice, Eina_Slice *remaining);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:io:writer:event:can_write_changed|can_write,changed]]**\\
+> %%Notifies can_write property changed.%%
+
+EFL_IO_WRITER_EVENT_CAN_WRITE_CHANGED(Eina_Bool)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/io/writer/event/can_write_changed.txt b/public_html/data/pages/develop/api/efl/io/writer/event/can_write_changed.txt
new file mode 100644
index 00000000..45bf8086
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/io/writer/event/can_write_changed.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Io.Writer: can_write,changed~~
+
+===== Description =====
+
+%%Notifies can_write property changed.%%
+
+%%If %%[[:develop:api:efl:io:writer:property:can_write|Efl.Io.Writer.can_write]]%% is %%''true''%% there is data to %%[[:develop:api:efl:io:writer:method:write|Efl.Io.Writer.write]]%% without blocking/error. If %%[[:develop:api:efl:io:writer:property:can_write|Efl.Io.Writer.can_write]]%% is %%''false''%%, %%[[:develop:api:efl:io:writer:method:write|Efl.Io.Writer.write]]%% would either block or fail.%%
+
+%%Note that usually this event is dispatched from inside %%[[:develop:api:efl:io:writer:method:write|Efl.Io.Writer.write]]%%, thus before it returns.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:io:writer:event:can_write_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+can_write,changed: bool;
+
+
+===== C information =====
+
+
+EFL_IO_WRITER_EVENT_CAN_WRITE_CHANGED(Eina_Bool)
+
+
+===== C usage =====
+
+
+static void
+on_efl_io_writer_event_can_write_changed(void *data, const Efl_Event *event)
+{
+ Eina_Bool info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_IO_WRITER_EVENT_CAN_WRITE_CHANGED, on_efl_io_writer_event_can_write_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/io/writer/method/write.txt b/public_html/data/pages/develop/api/efl/io/writer/method/write.txt
new file mode 100644
index 00000000..85eb8ccd
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/io/writer/method/write.txt
@@ -0,0 +1,58 @@
+~~Title: Efl.Io.Writer.write~~
+====== Efl.Io.Writer.write ======
+
+===== Description =====
+
+%%Writes data from a pre-populated buffer.%%
+
+%%This operation will be executed immediately and may or may not block the caller thread for some time. The details of blocking behavior is defined by the implementation and may be subject to other parameters such as non-blocking flags, maximum timeout or even retry attempts.%%
+
+%%You can understand this method as write(2) libc function.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:io:writer:method:write:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+write @pure_virtual {
+ params {
+ @inout slice: slice;
+ @out remaining: slice @optional;
+ }
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_io_writer_write(Eo *obj, Eina_Slice slice, Eina_Slice *remaining);
+
+
+===== Parameters =====
+
+ * **slice** //(inout)// - %%Provides a pre-populated memory to be used up to slice.len. The returned slice will be adapted as length will be set to the actually used amount of bytes, which can be smaller than the request.%%
+ * **remaining** //(out)// - %%Convenience to output the remaining parts of slice that were not written. If the full slice was written, this will be a slice of zero-length.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:io:writer:method:write|Efl.Io.Writer.write]]
+ * [[:develop:api:efl:io:writer_fd:method:write|Efl.Io.Writer_Fd.write]]
+ * [[:develop:api:efl:io:file:method:write|Efl.Io.File.write]]
+ * [[:develop:api:efl:io:stderr:method:write|Efl.Io.Stderr.write]]
+ * [[:develop:api:efl:io:stdout:method:write|Efl.Io.Stdout.write]]
+ * [[:develop:api:efl:net:socket_fd:method:write|Efl.Net.Socket_Fd.write]]
+ * [[:develop:api:efl:net:socket_udp:method:write|Efl.Net.Socket_Udp.write]]
+ * [[:develop:api:efl:io:buffered_stream:method:write|Efl.Io.Buffered_Stream.write]]
+ * [[:develop:api:efl:appthread:method:write|Efl.Appthread.write]]
+ * [[:develop:api:efl:exe:method:write|Efl.Exe.write]]
+ * [[:develop:api:efl:net:socket_ssl:method:write|Efl.Net.Socket_Ssl.write]]
+ * [[:develop:api:efl:net:server_udp_client:method:write|Efl.Net.Server_Udp_Client.write]]
+ * [[:develop:api:efl:net:dialer_websocket:method:write|Efl.Net.Dialer_Websocket.write]]
+ * [[:develop:api:efl:net:dialer_http:method:write|Efl.Net.Dialer_Http.write]]
+ * [[:develop:api:efl:net:socket_windows:method:write|Efl.Net.Socket_Windows.write]]
+ * [[:develop:api:efl:thread:method:write|Efl.Thread.write]]
+ * [[:develop:api:efl:io:buffer:method:write|Efl.Io.Buffer.write]]
+ * [[:develop:api:efl:io:queue:method:write|Efl.Io.Queue.write]]
+
diff --git a/public_html/data/pages/develop/api/efl/io/writer/property/can_write.txt b/public_html/data/pages/develop/api/efl/io/writer/property/can_write.txt
new file mode 100644
index 00000000..3fb7f96c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/io/writer/property/can_write.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Io.Writer.can_write~~
+====== Efl.Io.Writer.can_write ======
+
+===== Description =====
+
+%%If %%''true''%% will notify %%[[:develop:api:efl:io:writer:method:write|Efl.Io.Writer.write]]%% can be called without blocking or failing.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:io:writer:property:can_write:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **can_write** - %%%%''true''%% if it can be written without blocking or failure, %%''false''%% otherwise%%
+
+===== Signature =====
+
+
+@property can_write @pure_virtual {
+ get {}
+ set @protected {}
+ values {
+ can_write: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_io_writer_can_write_get(const Eo *obj);
+void efl_io_writer_can_write_set(Eo *obj, Eina_Bool can_write);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:io:writer:property:can_write|Efl.Io.Writer.can_write]]
+ * [[:develop:api:efl:io:writer_fd:property:can_write|Efl.Io.Writer_Fd.can_write]]
+ * [[:develop:api:efl:io:stderr:property:can_write|Efl.Io.Stderr.can_write]]
+ * [[:develop:api:efl:io:stdout:property:can_write|Efl.Io.Stdout.can_write]]
+ * [[:develop:api:efl:net:socket_fd:property:can_write|Efl.Net.Socket_Fd.can_write]]
+ * [[:develop:api:efl:io:buffered_stream:property:can_write|Efl.Io.Buffered_Stream.can_write]]
+ * [[:develop:api:efl:appthread:property:can_write|Efl.Appthread.can_write]]
+ * [[:develop:api:efl:exe:property:can_write|Efl.Exe.can_write]]
+ * [[:develop:api:efl:net:socket_ssl:property:can_write|Efl.Net.Socket_Ssl.can_write]]
+ * [[:develop:api:efl:net:server_udp_client:property:can_write|Efl.Net.Server_Udp_Client.can_write]]
+ * [[:develop:api:efl:net:dialer_websocket:property:can_write|Efl.Net.Dialer_Websocket.can_write]]
+ * [[:develop:api:efl:net:dialer_http:property:can_write|Efl.Net.Dialer_Http.can_write]]
+ * [[:develop:api:efl:net:socket_windows:property:can_write|Efl.Net.Socket_Windows.can_write]]
+ * [[:develop:api:efl:thread:property:can_write|Efl.Thread.can_write]]
+ * [[:develop:api:efl:io:buffer:property:can_write|Efl.Io.Buffer.can_write]]
+ * [[:develop:api:efl:io:queue:property:can_write|Efl.Io.Queue.can_write]]
+
diff --git a/public_html/data/pages/develop/api/efl/layout/calc.txt b/public_html/data/pages/develop/api/efl/layout/calc.txt
new file mode 100644
index 00000000..8df82be7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/layout/calc.txt
@@ -0,0 +1,66 @@
+~~Title: Efl.Layout.Calc~~
+====== Efl.Layout.Calc (interface) ======
+
+===== Description =====
+
+%%This interface defines a common set of APIs used to trigger calculations with layout objects.%%
+
+%%This defines all the APIs supported by legacy "Edje" object, known in EO API as Efl.Canvas.Layout.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:layout:calc:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:layout:calc:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**//\\
+> %%Whether this object updates its size hints automatically.%%
+
+Eina_Bool efl_layout_calc_auto_update_hints_get(const Eo *obj);
+void efl_layout_calc_auto_update_hints_set(Eo *obj, Eina_Bool update);
+
+\\
+**[[:develop:api:efl:layout:calc:method:calc_freeze|calc_freeze]]**\\
+> %%Freezes the layout object.%%
+
+int efl_layout_calc_freeze(Eo *obj);
+
+\\
+**[[:develop:api:efl:layout:calc:method:calc_parts_extends|calc_parts_extends]]**\\
+> %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%%
+
+Eina_Rect efl_layout_calc_parts_extends(Eo *obj);
+
+\\
+**[[:develop:api:efl:layout:calc:method:calc_size_min|calc_size_min]]**\\
+> %%Calculates the minimum required size for a given layout object.%%
+
+Eina_Size2D efl_layout_calc_size_min(Eo *obj, Eina_Size2D restricted);
+
+\\
+**[[:develop:api:efl:layout:calc:method:calc_thaw|calc_thaw]]**\\
+> %%Thaws the layout object.%%
+
+int efl_layout_calc_thaw(Eo *obj);
+
+\\
+**[[:develop:api:efl:layout:calc:method:calc_force|calc_force]]** ''protected''\\
+> %%Forces a Size/Geometry calculation.%%
+
+void efl_layout_calc_force(Eo *obj);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]**\\
+> %%A circular dependency between parts of the object was found.%%
+
+EFL_LAYOUT_EVENT_CIRCULAR_DEPENDENCY(const Eina_Array *)
+
+\\ **[[:develop:api:efl:layout:calc:event:recalc|recalc]]**\\
+> %%The layout was recalculated.%%
+
+EFL_LAYOUT_EVENT_RECALC(void)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/layout/calc/event/circular_dependency.txt b/public_html/data/pages/develop/api/efl/layout/calc/event/circular_dependency.txt
new file mode 100644
index 00000000..44bb81dc
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/layout/calc/event/circular_dependency.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Layout.Calc: circular,dependency~~
+
+===== Description =====
+
+%%A circular dependency between parts of the object was found.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:layout:calc:event:circular_dependency:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+circular,dependency: const(array);
+
+
+===== C information =====
+
+
+EFL_LAYOUT_EVENT_CIRCULAR_DEPENDENCY(const Eina_Array *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_layout_event_circular_dependency(void *data, const Efl_Event *event)
+{
+ const Eina_Array *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_LAYOUT_EVENT_CIRCULAR_DEPENDENCY, on_efl_layout_event_circular_dependency, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/layout/calc/event/recalc.txt b/public_html/data/pages/develop/api/efl/layout/calc/event/recalc.txt
new file mode 100644
index 00000000..fa3b0aca
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/layout/calc/event/recalc.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Layout.Calc: recalc~~
+
+===== Description =====
+
+%%The layout was recalculated.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:layout:calc:event:recalc:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+recalc;
+
+
+===== C information =====
+
+
+EFL_LAYOUT_EVENT_RECALC(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_layout_event_recalc(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_LAYOUT_EVENT_RECALC, on_efl_layout_event_recalc, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/layout/calc/method/calc_force.txt b/public_html/data/pages/develop/api/efl/layout/calc/method/calc_force.txt
new file mode 100644
index 00000000..9175c7a5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/layout/calc/method/calc_force.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Layout.Calc.calc_force~~
+====== Efl.Layout.Calc.calc_force ======
+
+===== Description =====
+
+%%Forces a Size/Geometry calculation.%%
+
+%%Forces the object to recalculate its layout regardless of freeze/thaw. This API should be used carefully.%%
+
+%%See also %%[[:develop:api:efl:layout:calc:method:calc_freeze|Efl.Layout.Calc.calc_freeze]]%% and %%[[:develop:api:efl:layout:calc:method:calc_thaw|Efl.Layout.Calc.calc_thaw]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:layout:calc:method:calc_force:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+calc_force @protected @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_layout_calc_force(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:calc:method:calc_force|Efl.Layout.Calc.calc_force]]
+ * [[:develop:api:efl:canvas:layout:method:calc_force|Efl.Canvas.Layout.calc_force]]
+ * [[:develop:api:efl:ui:image:method:calc_force|Efl.Ui.Image.calc_force]]
+ * [[:develop:api:efl:ui:layout_base:method:calc_force|Efl.Ui.Layout_Base.calc_force]]
+
diff --git a/public_html/data/pages/develop/api/efl/layout/calc/method/calc_freeze.txt b/public_html/data/pages/develop/api/efl/layout/calc/method/calc_freeze.txt
new file mode 100644
index 00000000..4d7c4c3d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/layout/calc/method/calc_freeze.txt
@@ -0,0 +1,35 @@
+~~Title: Efl.Layout.Calc.calc_freeze~~
+====== Efl.Layout.Calc.calc_freeze ======
+
+===== Description =====
+
+%%Freezes the layout object.%%
+
+%%This function puts all changes on hold. Successive freezes will nest, requiring an equal number of thaws.%%
+
+%%See also %%[[:develop:api:efl:layout:calc:method:calc_thaw|Efl.Layout.Calc.calc_thaw]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:layout:calc:method:calc_freeze:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+calc_freeze @pure_virtual {
+ return: int;
+}
+
+
+===== C signature =====
+
+
+int efl_layout_calc_freeze(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:calc:method:calc_freeze|Efl.Layout.Calc.calc_freeze]]
+ * [[:develop:api:efl:canvas:layout:method:calc_freeze|Efl.Canvas.Layout.calc_freeze]]
+ * [[:develop:api:efl:ui:image:method:calc_freeze|Efl.Ui.Image.calc_freeze]]
+ * [[:develop:api:efl:ui:layout_base:method:calc_freeze|Efl.Ui.Layout_Base.calc_freeze]]
+
diff --git a/public_html/data/pages/develop/api/efl/layout/calc/method/calc_parts_extends.txt b/public_html/data/pages/develop/api/efl/layout/calc/method/calc_parts_extends.txt
new file mode 100644
index 00000000..ad610ce5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/layout/calc/method/calc_parts_extends.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Layout.Calc.calc_parts_extends~~
+====== Efl.Layout.Calc.calc_parts_extends ======
+
+===== Description =====
+
+%%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%%
+
+%%This function gets the geometry of the rectangle equal to the area required to group all parts in obj's group/collection. The x and y coordinates are relative to the top left corner of the whole obj object's area. Parts placed out of the group's boundaries will also be taken in account, so that x and y may be negative.%%
+
+
+calc_parts_extends @pure_virtual {
+ return: Eina.Rect;
+}
+
+
+===== C signature =====
+
+
+Eina_Rect efl_layout_calc_parts_extends(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:calc:method:calc_parts_extends|Efl.Layout.Calc.calc_parts_extends]]
+ * [[:develop:api:efl:canvas:layout:method:calc_parts_extends|Efl.Canvas.Layout.calc_parts_extends]]
+ * [[:develop:api:efl:ui:image:method:calc_parts_extends|Efl.Ui.Image.calc_parts_extends]]
+ * [[:develop:api:efl:ui:layout_base:method:calc_parts_extends|Efl.Ui.Layout_Base.calc_parts_extends]]
+
diff --git a/public_html/data/pages/develop/api/efl/layout/calc/method/calc_size_min.txt b/public_html/data/pages/develop/api/efl/layout/calc/method/calc_size_min.txt
new file mode 100644
index 00000000..d4ea63dd
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/layout/calc/method/calc_size_min.txt
@@ -0,0 +1,48 @@
+~~Title: Efl.Layout.Calc.calc_size_min~~
+====== Efl.Layout.Calc.calc_size_min ======
+
+===== Description =====
+
+%%Calculates the minimum required size for a given layout object.%%
+
+%%This call will trigger an internal recalculation of all parts of the object, in order to return its minimum required dimensions for width and height. The user might choose to impose those minimum sizes, making the resulting calculation to get to values greater or equal than %%''restricted''%% in both directions.%%
+
+
+calc_size_min @pure_virtual {
+ params {
+ @in restricted: Eina.Size2D @optional;
+ }
+ return: Eina.Size2D;
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_layout_calc_size_min(Eo *obj, Eina_Size2D restricted);
+
+
+===== Parameters =====
+
+ * **restricted** //(in)// - %%The minimum size constraint as input, the returned size can not be lower than this (in both directions).%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:calc:method:calc_size_min|Efl.Layout.Calc.calc_size_min]]
+ * [[:develop:api:efl:canvas:layout:method:calc_size_min|Efl.Canvas.Layout.calc_size_min]]
+ * [[:develop:api:efl:ui:image:method:calc_size_min|Efl.Ui.Image.calc_size_min]]
+ * [[:develop:api:efl:ui:layout_base:method:calc_size_min|Efl.Ui.Layout_Base.calc_size_min]]
+
diff --git a/public_html/data/pages/develop/api/efl/layout/calc/method/calc_thaw.txt b/public_html/data/pages/develop/api/efl/layout/calc/method/calc_thaw.txt
new file mode 100644
index 00000000..31adada6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/layout/calc/method/calc_thaw.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Layout.Calc.calc_thaw~~
+====== Efl.Layout.Calc.calc_thaw ======
+
+===== Description =====
+
+%%Thaws the layout object.%%
+
+%%This function thaws (in other words "unfreezes") the given layout object.%%
+
+
+calc_thaw @pure_virtual {
+ return: int;
+}
+
+
+===== C signature =====
+
+
+int efl_layout_calc_thaw(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:calc:method:calc_thaw|Efl.Layout.Calc.calc_thaw]]
+ * [[:develop:api:efl:canvas:layout:method:calc_thaw|Efl.Canvas.Layout.calc_thaw]]
+ * [[:develop:api:efl:ui:image:method:calc_thaw|Efl.Ui.Image.calc_thaw]]
+ * [[:develop:api:efl:ui:layout_base:method:calc_thaw|Efl.Ui.Layout_Base.calc_thaw]]
+
diff --git a/public_html/data/pages/develop/api/efl/layout/calc/property/calc_auto_update_hints.txt b/public_html/data/pages/develop/api/efl/layout/calc/property/calc_auto_update_hints.txt
new file mode 100644
index 00000000..8d9d81a8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/layout/calc/property/calc_auto_update_hints.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.Layout.Calc.calc_auto_update_hints~~
+====== Efl.Layout.Calc.calc_auto_update_hints ======
+
+===== Description =====
+
+%%Whether this object updates its size hints automatically.%%
+
+%%By default edje doesn't set size hints on itself. If this property is set to %%''true''%%, size hints will be updated after recalculation. Be careful, as recalculation may happen often, enabling this property may have a considerable performance impact as other widgets will be notified of the size hints changes.%%
+
+%%A layout recalculation can be triggered by %%[[:develop:api:efl:layout:calc:method:calc_size_min|Efl.Layout.Calc.calc_size_min]]%%(), %%[[:develop:api:efl:layout:calc:method:calc_size_min|Efl.Layout.Calc.calc_size_min]]%%(), %%[[:develop:api:efl:layout:calc:method:calc_parts_extends|Efl.Layout.Calc.calc_parts_extends]]%%() or even any other internal event.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:layout:calc:property:calc_auto_update_hints:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **update** - %%Whether or not update the size hints.%%
+
+===== Signature =====
+
+
+@property calc_auto_update_hints @pure_virtual {
+ get {}
+ set {}
+ values {
+ update: bool (false);
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_layout_calc_auto_update_hints_get(const Eo *obj);
+void efl_layout_calc_auto_update_hints_set(Eo *obj, Eina_Bool update);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:calc:property:calc_auto_update_hints|Efl.Layout.Calc.calc_auto_update_hints]]
+ * [[:develop:api:efl:canvas:layout:property:calc_auto_update_hints|Efl.Canvas.Layout.calc_auto_update_hints]]
+ * [[:develop:api:efl:ui:image:property:calc_auto_update_hints|Efl.Ui.Image.calc_auto_update_hints]]
+ * [[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|Efl.Ui.Layout_Base.calc_auto_update_hints]]
+
diff --git a/public_html/data/pages/develop/api/efl/layout/group.txt b/public_html/data/pages/develop/api/efl/layout/group.txt
new file mode 100644
index 00000000..46f1691f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/layout/group.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Layout.Group~~
+====== Efl.Layout.Group (interface) ======
+
+===== Description =====
+
+%%APIs representing static data from a group in an edje file.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:layout:group:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:layout:group:property:group_data|group_data]]** //**(get)**//\\
+>
+
+const char *efl_layout_group_data_get(const Eo *obj, const char *key);
+
+\\
+**[[:develop:api:efl:layout:group:property:group_size_max|group_size_max]]** //**(get)**//\\
+>
+
+Eina_Size2D efl_layout_group_size_max_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:layout:group:property:group_size_min|group_size_min]]** //**(get)**//\\
+>
+
+Eina_Size2D efl_layout_group_size_min_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:layout:group:property:part_exist|part_exist]]** //**(get)**//\\
+>
+
+Eina_Bool efl_layout_group_part_exist_get(const Eo *obj, const char *part);
+
+\\
+
+===== Events =====
+
diff --git a/public_html/data/pages/develop/api/efl/layout/group/property/group_data.txt b/public_html/data/pages/develop/api/efl/layout/group/property/group_data.txt
new file mode 100644
index 00000000..48c23be2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/layout/group/property/group_data.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Layout.Group.group_data~~
+====== Efl.Layout.Group.group_data ======
+
+===== Keys =====
+
+ * **key** - %%The data field's key string%%
+===== Values =====
+
+ * **val** - %%The data's value string.%%
+
+
+\\ {{page>:develop:api-include:efl:layout:group:property:group_data:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property group_data @pure_virtual {
+ get {
+ keys {
+ key: string;
+ }
+ }
+ values {
+ val: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_layout_group_data_get(const Eo *obj, const char *key);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:group:property:group_data|Efl.Layout.Group.group_data]]
+ * [[:develop:api:efl:canvas:layout:property:group_data|Efl.Canvas.Layout.group_data]]
+ * [[:develop:api:efl:ui:image:property:group_data|Efl.Ui.Image.group_data]]
+ * [[:develop:api:efl:ui:layout_base:property:group_data|Efl.Ui.Layout_Base.group_data]]
+
diff --git a/public_html/data/pages/develop/api/efl/layout/group/property/group_size_max.txt b/public_html/data/pages/develop/api/efl/layout/group/property/group_size_max.txt
new file mode 100644
index 00000000..87c7cb72
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/layout/group/property/group_size_max.txt
@@ -0,0 +1,35 @@
+~~Title: Efl.Layout.Group.group_size_max~~
+====== Efl.Layout.Group.group_size_max ======
+
+===== Values =====
+
+ * **max** - %%The maximum size as set in EDC.%%
+
+
+\\ {{page>:develop:api-include:efl:layout:group:property:group_size_max:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property group_size_max @pure_virtual {
+ get {}
+ values {
+ max: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_layout_group_size_max_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:group:property:group_size_max|Efl.Layout.Group.group_size_max]]
+ * [[:develop:api:efl:canvas:layout:property:group_size_max|Efl.Canvas.Layout.group_size_max]]
+ * [[:develop:api:efl:ui:image:property:group_size_max|Efl.Ui.Image.group_size_max]]
+ * [[:develop:api:efl:ui:image_zoomable:property:group_size_max|Efl.Ui.Image_Zoomable.group_size_max]]
+ * [[:develop:api:efl:ui:layout_base:property:group_size_max|Efl.Ui.Layout_Base.group_size_max]]
+
diff --git a/public_html/data/pages/develop/api/efl/layout/group/property/group_size_min.txt b/public_html/data/pages/develop/api/efl/layout/group/property/group_size_min.txt
new file mode 100644
index 00000000..d60b151a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/layout/group/property/group_size_min.txt
@@ -0,0 +1,35 @@
+~~Title: Efl.Layout.Group.group_size_min~~
+====== Efl.Layout.Group.group_size_min ======
+
+===== Values =====
+
+ * **min** - %%The minimum size as set in EDC.%%
+
+
+\\ {{page>:develop:api-include:efl:layout:group:property:group_size_min:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property group_size_min @pure_virtual {
+ get {}
+ values {
+ min: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_layout_group_size_min_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:group:property:group_size_min|Efl.Layout.Group.group_size_min]]
+ * [[:develop:api:efl:canvas:layout:property:group_size_min|Efl.Canvas.Layout.group_size_min]]
+ * [[:develop:api:efl:ui:image:property:group_size_min|Efl.Ui.Image.group_size_min]]
+ * [[:develop:api:efl:ui:image_zoomable:property:group_size_min|Efl.Ui.Image_Zoomable.group_size_min]]
+ * [[:develop:api:efl:ui:layout_base:property:group_size_min|Efl.Ui.Layout_Base.group_size_min]]
+
diff --git a/public_html/data/pages/develop/api/efl/layout/group/property/part_exist.txt b/public_html/data/pages/develop/api/efl/layout/group/property/part_exist.txt
new file mode 100644
index 00000000..7bb0604a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/layout/group/property/part_exist.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Layout.Group.part_exist~~
+====== Efl.Layout.Group.part_exist ======
+
+===== Keys =====
+
+ * **part** - %%The part name to check.%%
+===== Values =====
+
+ * **exists** - %%%%''true''%% if the part exists, %%''false''%% otherwise.%%
+
+
+\\ {{page>:develop:api-include:efl:layout:group:property:part_exist:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property part_exist @pure_virtual {
+ get {
+ keys {
+ part: string;
+ }
+ }
+ values {
+ exists: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_layout_group_part_exist_get(const Eo *obj, const char *part);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:group:property:part_exist|Efl.Layout.Group.part_exist]]
+ * [[:develop:api:efl:canvas:layout:property:part_exist|Efl.Canvas.Layout.part_exist]]
+ * [[:develop:api:efl:ui:image:property:part_exist|Efl.Ui.Image.part_exist]]
+ * [[:develop:api:efl:ui:layout_base:property:part_exist|Efl.Ui.Layout_Base.part_exist]]
+
diff --git a/public_html/data/pages/develop/api/efl/layout/signal.txt b/public_html/data/pages/develop/api/efl/layout/signal.txt
new file mode 100644
index 00000000..d9e6842f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/layout/signal.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Layout.Signal~~
+====== Efl.Layout.Signal (interface) ======
+
+===== Description =====
+
+%%Layouts asynchronous messaging and signaling interface.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:layout:signal:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:layout:signal:method:message_send|message_send]]**\\
+> %%Sends an (Edje) message to a given Edje object%%
+
+void efl_layout_signal_message_send(Eo *obj, int id, const Eina_Value msg);
+
+\\
+**[[:develop:api:efl:layout:signal:method:signal_callback_add|signal_callback_add]]**\\
+> %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%%
+
+Eina_Bool efl_layout_signal_callback_add(Eo *obj, const char *emission, const char *source, EflLayoutSignalCb func);
+
+\\
+**[[:develop:api:efl:layout:signal:method:signal_callback_del|signal_callback_del]]**\\
+> %%Removes a signal-triggered callback from an object.%%
+
+Eina_Bool efl_layout_signal_callback_del(Eo *obj, const char *emission, const char *source, EflLayoutSignalCb func);
+
+\\
+**[[:develop:api:efl:layout:signal:method:signal_emit|signal_emit]]**\\
+> %%Sends/emits an Edje signal to this layout.%%
+
+void efl_layout_signal_emit(Eo *obj, const char *emission, const char *source);
+
+\\
+**[[:develop:api:efl:layout:signal:method:signal_process|signal_process]]**\\
+> %%Processes an object's messages and signals queue.%%
+
+void efl_layout_signal_process(Eo *obj, Eina_Bool recurse);
+
+\\
+
+===== Events =====
+
diff --git a/public_html/data/pages/develop/api/efl/layout/signal/method/message_send.txt b/public_html/data/pages/develop/api/efl/layout/signal/method/message_send.txt
new file mode 100644
index 00000000..afb683c2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/layout/signal/method/message_send.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Layout.Signal.message_send~~
+====== Efl.Layout.Signal.message_send ======
+
+===== Description =====
+
+%%Sends an (Edje) message to a given Edje object%%
+
+%%This function sends an Edje message to obj and to all of its child objects, if it has any (swallowed objects are one kind of child object). Only a few types are supported: - int, - float/double, - string/stringshare, - arrays of int, float, double or strings.%%
+
+%%Messages can go both ways, from code to theme, or theme to code.%%
+
+%%The id argument as a form of code and theme defining a common interface on message communication. One should define the same IDs on both code and EDC declaration, to individualize messages (binding them to a given context).%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:layout:signal:method:message_send:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+message_send @pure_virtual {
+ params {
+ @in id: int;
+ @in msg: const(any_value);
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_layout_signal_message_send(Eo *obj, int id, const Eina_Value msg);
+
+
+===== Parameters =====
+
+ * **id** //(in)// - %%A identification number for the message to be sent%%
+ * **msg** //(in)// - %%The message's payload%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:signal:method:message_send|Efl.Layout.Signal.message_send]]
+ * [[:develop:api:efl:canvas:layout:method:message_send|Efl.Canvas.Layout.message_send]]
+ * [[:develop:api:efl:ui:image:method:message_send|Efl.Ui.Image.message_send]]
+ * [[:develop:api:efl:ui:layout_base:method:message_send|Efl.Ui.Layout_Base.message_send]]
+
diff --git a/public_html/data/pages/develop/api/efl/layout/signal/method/signal_callback_add.txt b/public_html/data/pages/develop/api/efl/layout/signal/method/signal_callback_add.txt
new file mode 100644
index 00000000..d7e807f3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/layout/signal/method/signal_callback_add.txt
@@ -0,0 +1,60 @@
+~~Title: Efl.Layout.Signal.signal_callback_add~~
+====== Efl.Layout.Signal.signal_callback_add ======
+
+===== Description =====
+
+%%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%%
+
+%%Edje signals are one of the communication interfaces between code and a given Edje object's theme. With signals, one can communicate two string values at a time, which are: - "emission" value: the name of the signal, in general - "source" value: a name for the signal's context, in general%%
+
+%%Signals can go both ways, from code to theme, or theme to code.%%
+
+%%Though there are those common uses for the two strings, one is free to use them however they like.%%
+
+%%Signal callback registration is powerful, in the way that blobs may be used to match multiple signals at once. All the "*?[" set of %%''fnmatch''%%() operators can be used, both for emission and source.%%
+
+%%Edje has internal signals it will emit, automatically, on various actions taking place on group parts. For example, the mouse cursor being moved, pressed, released, etc., over a given part's area, all generate individual signals.%%
+
+%%With something like emission = "mouse,down,*", source = "button.*" where "button.*" is the pattern for the names of parts implementing buttons on an interface, you'd be registering for notifications on events of mouse buttons being pressed down on either of those parts (those events all have the "mouse,down," common prefix on their names, with a suffix giving the button number). The actual emission and source strings of an event will be passed in as the emission and source parameters of the callback function (e.g. "mouse,down,2" and "button.close"), for each of those events.%%
+
+%%See also the Edje Data Collection Reference for EDC files.%%
+
+%%See %%[[:develop:api:efl:layout:signal:method:signal_emit|Efl.Layout.Signal.signal_emit]]%% on how to emit signals from code to a an object See %%[[:develop:api:efl:layout:signal:method:signal_callback_del|Efl.Layout.Signal.signal_callback_del]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:layout:signal:method:signal_callback_add:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+signal_callback_add @pure_virtual {
+ params {
+ @in emission: string;
+ @in source: string;
+ @in func: EflLayoutSignalCb;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_layout_signal_callback_add(Eo *obj, const char *emission, const char *source, EflLayoutSignalCb func);
+
+
+===== Parameters =====
+
+ * **emission** //(in)// - %%The signal's "emission" string%%
+ * **source** //(in)// - %%The signal's "source" string%%
+ * **func** //(in)// - %%The callback function to be executed when the signal is emitted.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:signal:method:signal_callback_add|Efl.Layout.Signal.signal_callback_add]]
+ * [[:develop:api:efl:canvas:layout:method:signal_callback_add|Efl.Canvas.Layout.signal_callback_add]]
+ * [[:develop:api:efl:ui:image:method:signal_callback_add|Efl.Ui.Image.signal_callback_add]]
+ * [[:develop:api:efl:ui:image_zoomable:method:signal_callback_add|Efl.Ui.Image_Zoomable.signal_callback_add]]
+ * [[:develop:api:efl:ui:layout_base:method:signal_callback_add|Efl.Ui.Layout_Base.signal_callback_add]]
+ * [[:develop:api:efl:ui:text:method:signal_callback_add|Efl.Ui.Text.signal_callback_add]]
+
diff --git a/public_html/data/pages/develop/api/efl/layout/signal/method/signal_callback_del.txt b/public_html/data/pages/develop/api/efl/layout/signal/method/signal_callback_del.txt
new file mode 100644
index 00000000..3e4a4168
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/layout/signal/method/signal_callback_del.txt
@@ -0,0 +1,48 @@
+~~Title: Efl.Layout.Signal.signal_callback_del~~
+====== Efl.Layout.Signal.signal_callback_del ======
+
+===== Description =====
+
+%%Removes a signal-triggered callback from an object.%%
+
+%%This function removes a callback, previously attached to the emission of a signal, from the object obj. The parameters emission, source and func must match exactly those passed to a previous call to %%[[:develop:api:efl:layout:signal:method:signal_callback_add|Efl.Layout.Signal.signal_callback_add]]%%().%%
+
+%%See %%[[:develop:api:efl:layout:signal:method:signal_callback_add|Efl.Layout.Signal.signal_callback_add]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:layout:signal:method:signal_callback_del:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+signal_callback_del @pure_virtual {
+ params {
+ @in emission: string;
+ @in source: string;
+ @in func: EflLayoutSignalCb;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_layout_signal_callback_del(Eo *obj, const char *emission, const char *source, EflLayoutSignalCb func);
+
+
+===== Parameters =====
+
+ * **emission** //(in)// - %%The signal's "emission" string%%
+ * **source** //(in)// - %%The signal's "source" string%%
+ * **func** //(in)// - %%The callback function to be executed when the signal is emitted.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:signal:method:signal_callback_del|Efl.Layout.Signal.signal_callback_del]]
+ * [[:develop:api:efl:canvas:layout:method:signal_callback_del|Efl.Canvas.Layout.signal_callback_del]]
+ * [[:develop:api:efl:ui:image:method:signal_callback_del|Efl.Ui.Image.signal_callback_del]]
+ * [[:develop:api:efl:ui:image_zoomable:method:signal_callback_del|Efl.Ui.Image_Zoomable.signal_callback_del]]
+ * [[:develop:api:efl:ui:layout_base:method:signal_callback_del|Efl.Ui.Layout_Base.signal_callback_del]]
+ * [[:develop:api:efl:ui:text:method:signal_callback_del|Efl.Ui.Text.signal_callback_del]]
+
diff --git a/public_html/data/pages/develop/api/efl/layout/signal/method/signal_emit.txt b/public_html/data/pages/develop/api/efl/layout/signal/method/signal_emit.txt
new file mode 100644
index 00000000..446d6dd5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/layout/signal/method/signal_emit.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Layout.Signal.signal_emit~~
+====== Efl.Layout.Signal.signal_emit ======
+
+===== Description =====
+
+%%Sends/emits an Edje signal to this layout.%%
+
+%%This function sends a signal to the object. An Edje program, at the EDC specification level, can respond to a signal by having declared matching "signal" and "source" fields on its block.%%
+
+%%See also the Edje Data Collection Reference for EDC files.%%
+
+%%See %%[[:develop:api:efl:layout:signal:method:signal_callback_add|Efl.Layout.Signal.signal_callback_add]]%%() for more on Edje signals.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:layout:signal:method:signal_emit:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+signal_emit @pure_virtual {
+ params {
+ @in emission: string;
+ @in source: string;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_layout_signal_emit(Eo *obj, const char *emission, const char *source);
+
+
+===== Parameters =====
+
+ * **emission** //(in)// - %%The signal's "emission" string%%
+ * **source** //(in)// - %%The signal's "source" string%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:signal:method:signal_emit|Efl.Layout.Signal.signal_emit]]
+ * [[:develop:api:efl:canvas:layout:method:signal_emit|Efl.Canvas.Layout.signal_emit]]
+ * [[:develop:api:efl:ui:image:method:signal_emit|Efl.Ui.Image.signal_emit]]
+ * [[:develop:api:efl:ui:layout_base:method:signal_emit|Efl.Ui.Layout_Base.signal_emit]]
+ * [[:develop:api:efl:ui:text:method:signal_emit|Efl.Ui.Text.signal_emit]]
+
diff --git a/public_html/data/pages/develop/api/efl/layout/signal/method/signal_process.txt b/public_html/data/pages/develop/api/efl/layout/signal/method/signal_process.txt
new file mode 100644
index 00000000..de35a35e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/layout/signal/method/signal_process.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Layout.Signal.signal_process~~
+====== Efl.Layout.Signal.signal_process ======
+
+===== Description =====
+
+%%Processes an object's messages and signals queue.%%
+
+%%This function goes through the object message queue processing the pending messages for this specific Edje object. Normally they'd be processed only at idle time.%%
+
+%%If %%''recurse''%% is %%''true''%%, this function will be called recursively on all subobjects.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:layout:signal:method:signal_process:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+signal_process @pure_virtual {
+ params {
+ @in recurse: bool @optional;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_layout_signal_process(Eo *obj, Eina_Bool recurse);
+
+
+===== Parameters =====
+
+ * **recurse** //(in)// - %%Whether to process messages on children objects.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:signal:method:signal_process|Efl.Layout.Signal.signal_process]]
+ * [[:develop:api:efl:canvas:layout:method:signal_process|Efl.Canvas.Layout.signal_process]]
+ * [[:develop:api:efl:ui:image:method:signal_process|Efl.Ui.Image.signal_process]]
+ * [[:develop:api:efl:ui:layout_base:method:signal_process|Efl.Ui.Layout_Base.signal_process]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop.txt b/public_html/data/pages/develop/api/efl/loop.txt
new file mode 100644
index 00000000..6c89184c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop.txt
@@ -0,0 +1,205 @@
+~~Title: Efl.Loop~~
+====== Efl.Loop (class) ======
+
+===== Description =====
+
+%%The Efl Main Loop%%
+
+%%The Efl main loop provides a clean and tiny event loop library with many modules to do lots of convenient things for a programmer, saving time and effort. It's lean and designed to work on anything from embedded systems all the way up to large and powerful multi-cpu workstations. The main loop has a number of primitives you can use. It serializes these and allows for greater responsiveness without the need for threads (or any other concurrency). However you can provide these if you need to.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:loop:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:task|Efl.Task]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:task|Efl.Task]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:loop:method:begin|begin]]**\\
+> %%Runs the application main loop.%%
+
+Eina_Value *efl_loop_begin(Eo *obj);
+
+\\
+**[[:develop:api:efl:loop:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:loop:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:loop:method:end|end]]**// [Overridden from [[:develop:api:efl:task|Efl.Task]]]//\\
+> %%Request the task end (may send a signal or interrupt signal resulting in a terminate event being triggered in the target task loop).%%
+
+void efl_task_end(Eo *obj);
+
+\\
+**[[:develop:api:efl:loop:method:idle|idle]]**\\
+> %%A future promise that will be resolved from a clean main loop context as soon as the main loop is idle.%%
+
+Eina_Future *efl_loop_idle(Eo *obj);
+
+\\
+**[[:develop:api:efl:loop:method:invalidate|invalidate]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to perform special actions when your object loses its parent, if you need to.%%
+
+void efl_invalidate(Eo *obj);
+
+\\
+**[[:develop:api:efl:loop:method:iterate|iterate]]**\\
+> %%Runs a single iteration of the main loop to process everything on the queue.%%
+
+void efl_loop_iterate(Eo *obj);
+
+\\
+**[[:develop:api:efl:loop:method:iterate_may_block|iterate_may_block]]**\\
+> %%Runs a single iteration of the main loop to process everything on the queue with block/non-blocking status.%%
+
+int efl_loop_iterate_may_block(Eo *obj, int may_block);
+
+\\
+**[[:develop:api:efl:loop:method:job|job]]**\\
+> %%A future promise that will be resolved from a clean main loop context as soon as possible.%%
+
+Eina_Future *efl_loop_job(Eo *obj);
+
+\\
+**[[:develop:api:efl:loop:method:quit|quit]]**\\
+> %%Quits the main loop once all the events currently on the queue have been processed.%%
+
+void efl_loop_quit(Eo *obj, Eina_Value exit_code);
+
+\\
+**[[:develop:api:efl:loop:method:run|run]]**// [Overridden from [[:develop:api:efl:task|Efl.Task]]]//\\
+> %%Actually run the task.%%
+
+Eina_Bool efl_task_run(Eo *obj);
+
+\\
+**[[:develop:api:efl:loop:property:throttle|throttle]]** //**(get, set)**//\\
+> %%Slow down the loop execution by forcing sleep for a small period of time every time the loop iterates/loops.%%
+
+double efl_loop_throttle_get(const Eo *obj);
+void efl_loop_throttle_set(Eo *obj, double amount);
+
+\\
+**[[:develop:api:efl:loop:property:time|time]]** //**(get, set)**// ''protected set''\\
+> %%Retrieves the time at which the last loop stopped waiting for timeouts or events.%%
+
+double efl_loop_time_get(const Eo *obj);
+void efl_loop_time_set(Eo *obj, double timepoint);
+
+\\
+**[[:develop:api:efl:loop:method:timeout|timeout]]**\\
+> %%A future promise that will be resolved from a clean main loop context after %%''time''%% seconds.%%
+
+Eina_Future *efl_loop_timeout(Eo *obj, double time);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:task|Efl.Task]] ^^^
+| | **[[:develop:api:efl:task:property:exit_code|exit_code]]** //**(get)**// | |
+| | **[[:develop:api:efl:task:property:flags|flags]]** //**(get, set)**// | %%Flags to further customize task's behavior.%% |
+| | **[[:develop:api:efl:task:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:task:property:priority|priority]]** //**(get, set)**// | %%The priority of this task.%% |
+
+===== Events =====
+
+**[[:develop:api:efl:loop:event:arguments|arguments]]**\\
+> %%Event happens when args are provided to the loop by args_add().%%
+
+EFL_LOOP_EVENT_ARGUMENTS(Efl_Loop_Arguments)
+
+\\ **[[:develop:api:efl:loop:event:idle|idle]]**\\
+> %%Event occurs once the main loop is idle. If you keep listening on this event it may increase the burden on your CPU.%%
+
+EFL_LOOP_EVENT_IDLE(void, @restart)
+
+\\ **[[:develop:api:efl:loop:event:idle_enter|idle,enter]]**\\
+> %%Event occurs once the main loop enters the idle state.%%
+
+EFL_LOOP_EVENT_IDLE_ENTER(void, @restart)
+
+\\ **[[:develop:api:efl:loop:event:idle_exit|idle,exit]]**\\
+> %%Event occurs once the main loop exits the idle state.%%
+
+EFL_LOOP_EVENT_IDLE_EXIT(void, @restart)
+
+\\ **[[:develop:api:efl:loop:event:poll_high|poll,high]]**\\
+> %%Event occurs multiple times per second. The exact tick is undefined and can be adjusted system-wide.%%
+
+EFL_LOOP_EVENT_POLL_HIGH(void)
+
+\\ **[[:develop:api:efl:loop:event:poll_low|poll,low]]**\\
+> %%Event occurs multiple times every 15 minutes. The exact tick is undefined and can be adjusted system-wide.%%
+
+EFL_LOOP_EVENT_POLL_LOW(void)
+
+\\ **[[:develop:api:efl:loop:event:poll_medium|poll,medium]]**\\
+> %%Event occurs multiple times per minute. The exact tick is undefined and can be adjusted system-wide.%%
+
+EFL_LOOP_EVENT_POLL_MEDIUM(void)
+
+\\ **[[:develop:api:efl:loop:event:quit|quit]]**\\
+> %%Event occurs when the loop was requested to quit externally e.g. by a ctrl+c signal or a request from a parent loop/thread to have the child exit.%%
+
+EFL_LOOP_EVENT_QUIT(void)
+
+\\ ==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:task|Efl.Task]] ^^^
+| | **[[:develop:api:efl:task:event:exit|exit]]** | %%Called when the task exits. You can pick up any information you need at this point such as exit_code etc.%% |
diff --git a/public_html/data/pages/develop/api/efl/loop/event/arguments.txt b/public_html/data/pages/develop/api/efl/loop/event/arguments.txt
new file mode 100644
index 00000000..15045f49
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop/event/arguments.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Loop: arguments~~
+
+===== Description =====
+
+%%Event happens when args are provided to the loop by args_add().%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:loop:event:arguments:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+arguments: Efl.Loop_Arguments;
+
+
+===== C information =====
+
+
+EFL_LOOP_EVENT_ARGUMENTS(Efl_Loop_Arguments)
+
+
+===== C usage =====
+
+
+static void
+on_efl_loop_event_arguments(void *data, const Efl_Event *event)
+{
+ Efl_Loop_Arguments info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_LOOP_EVENT_ARGUMENTS, on_efl_loop_event_arguments, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/loop/event/idle.txt b/public_html/data/pages/develop/api/efl/loop/event/idle.txt
new file mode 100644
index 00000000..b35f6a44
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop/event/idle.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Loop: idle~~
+
+===== Description =====
+
+%%Event occurs once the main loop is idle. If you keep listening on this event it may increase the burden on your CPU.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:loop:event:idle:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+idle @restart;
+
+
+===== C information =====
+
+
+EFL_LOOP_EVENT_IDLE(void, @restart)
+
+
+===== C usage =====
+
+
+static void
+on_efl_loop_event_idle(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_LOOP_EVENT_IDLE, on_efl_loop_event_idle, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/loop/event/idle_enter.txt b/public_html/data/pages/develop/api/efl/loop/event/idle_enter.txt
new file mode 100644
index 00000000..0674185a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop/event/idle_enter.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Loop: idle,enter~~
+
+===== Description =====
+
+%%Event occurs once the main loop enters the idle state.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:loop:event:idle_enter:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+idle,enter @restart;
+
+
+===== C information =====
+
+
+EFL_LOOP_EVENT_IDLE_ENTER(void, @restart)
+
+
+===== C usage =====
+
+
+static void
+on_efl_loop_event_idle_enter(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_LOOP_EVENT_IDLE_ENTER, on_efl_loop_event_idle_enter, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/loop/event/idle_exit.txt b/public_html/data/pages/develop/api/efl/loop/event/idle_exit.txt
new file mode 100644
index 00000000..945e0f5e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop/event/idle_exit.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Loop: idle,exit~~
+
+===== Description =====
+
+%%Event occurs once the main loop exits the idle state.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:loop:event:idle_exit:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+idle,exit @restart;
+
+
+===== C information =====
+
+
+EFL_LOOP_EVENT_IDLE_EXIT(void, @restart)
+
+
+===== C usage =====
+
+
+static void
+on_efl_loop_event_idle_exit(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_LOOP_EVENT_IDLE_EXIT, on_efl_loop_event_idle_exit, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/loop/event/poll_high.txt b/public_html/data/pages/develop/api/efl/loop/event/poll_high.txt
new file mode 100644
index 00000000..f98c9b20
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop/event/poll_high.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Loop: poll,high~~
+
+===== Description =====
+
+%%Event occurs multiple times per second. The exact tick is undefined and can be adjusted system-wide.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:loop:event:poll_high:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+poll,high;
+
+
+===== C information =====
+
+
+EFL_LOOP_EVENT_POLL_HIGH(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_loop_event_poll_high(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_LOOP_EVENT_POLL_HIGH, on_efl_loop_event_poll_high, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/loop/event/poll_low.txt b/public_html/data/pages/develop/api/efl/loop/event/poll_low.txt
new file mode 100644
index 00000000..afc2d691
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop/event/poll_low.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Loop: poll,low~~
+
+===== Description =====
+
+%%Event occurs multiple times every 15 minutes. The exact tick is undefined and can be adjusted system-wide.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:loop:event:poll_low:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+poll,low;
+
+
+===== C information =====
+
+
+EFL_LOOP_EVENT_POLL_LOW(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_loop_event_poll_low(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_LOOP_EVENT_POLL_LOW, on_efl_loop_event_poll_low, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/loop/event/poll_medium.txt b/public_html/data/pages/develop/api/efl/loop/event/poll_medium.txt
new file mode 100644
index 00000000..9ad09e57
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop/event/poll_medium.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Loop: poll,medium~~
+
+===== Description =====
+
+%%Event occurs multiple times per minute. The exact tick is undefined and can be adjusted system-wide.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:loop:event:poll_medium:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+poll,medium;
+
+
+===== C information =====
+
+
+EFL_LOOP_EVENT_POLL_MEDIUM(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_loop_event_poll_medium(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_LOOP_EVENT_POLL_MEDIUM, on_efl_loop_event_poll_medium, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/loop/event/quit.txt b/public_html/data/pages/develop/api/efl/loop/event/quit.txt
new file mode 100644
index 00000000..aa6215e1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop/event/quit.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Loop: quit~~
+
+===== Description =====
+
+%%Event occurs when the loop was requested to quit externally e.g. by a ctrl+c signal or a request from a parent loop/thread to have the child exit.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:loop:event:quit:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+quit;
+
+
+===== C information =====
+
+
+EFL_LOOP_EVENT_QUIT(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_loop_event_quit(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_LOOP_EVENT_QUIT, on_efl_loop_event_quit, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/loop/method/begin.txt b/public_html/data/pages/develop/api/efl/loop/method/begin.txt
new file mode 100644
index 00000000..4e226646
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop/method/begin.txt
@@ -0,0 +1,28 @@
+~~Title: Efl.Loop.begin~~
+====== Efl.Loop.begin ======
+
+===== Description =====
+
+%%Runs the application main loop.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop:method:begin:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+begin {
+ return: any_value_ref;
+}
+
+
+===== C signature =====
+
+
+Eina_Value *efl_loop_begin(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:loop:method:begin|Efl.Loop.begin]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop/method/constructor.txt b/public_html/data/pages/develop/api/efl/loop/method/constructor.txt
new file mode 100644
index 00000000..aa4f2ae6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Loop.constructor~~
+====== Efl.Loop.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:task:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop/method/destructor.txt b/public_html/data/pages/develop/api/efl/loop/method/destructor.txt
new file mode 100644
index 00000000..8f460578
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Loop.destructor~~
+====== Efl.Loop.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:task:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop/method/end.txt b/public_html/data/pages/develop/api/efl/loop/method/end.txt
new file mode 100644
index 00000000..f80bc255
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop/method/end.txt
@@ -0,0 +1,29 @@
+~~Title: Efl.Loop.end~~
+====== Efl.Loop.end ======
+
+===== Description =====
+
+%%Request the task end (may send a signal or interrupt signal resulting in a terminate event being triggered in the target task loop).%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop:method:end:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:task:method:end|Efl.Task.end]].//===== Signature =====
+
+
+end @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_task_end(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:task:method:end|Efl.Task.end]]
+ * [[:develop:api:efl:loop:method:end|Efl.Loop.end]]
+ * [[:develop:api:efl:exe:method:end|Efl.Exe.end]]
+ * [[:develop:api:efl:thread:method:end|Efl.Thread.end]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop/method/idle.txt b/public_html/data/pages/develop/api/efl/loop/method/idle.txt
new file mode 100644
index 00000000..2fa977d7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop/method/idle.txt
@@ -0,0 +1,30 @@
+~~Title: Efl.Loop.idle~~
+====== Efl.Loop.idle ======
+
+===== Description =====
+
+%%A future promise that will be resolved from a clean main loop context as soon as the main loop is idle.%%
+
+%%This is a low priority version of %%[[:develop:api:efl:loop:method:job|Efl.Loop.job]]%%%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop:method:idle:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+idle {
+ return: future;
+}
+
+
+===== C signature =====
+
+
+Eina_Future *efl_loop_idle(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:loop:method:idle|Efl.Loop.idle]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop/method/invalidate.txt b/public_html/data/pages/develop/api/efl/loop/method/invalidate.txt
new file mode 100644
index 00000000..45fc5556
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop/method/invalidate.txt
@@ -0,0 +1,74 @@
+~~Title: Efl.Loop.invalidate~~
+====== Efl.Loop.invalidate ======
+
+===== Description =====
+
+%%Implement this method to perform special actions when your object loses its parent, if you need to.%%
+
+%%It is called when the parent reference is lost or set to %%''NULL''%%. After this call returns, %%[[:develop:api:efl:object:property:invalidated|Efl.Object.invalidated]]%% is set to %%''true''%%. This allows a simpler tear down of complex hierarchies, by performing object destruction in two steps, first all object relationships are broken and then the isolated objects are destroyed. Performing everything in the %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%% can sometimes lead to deadlocks, but implementing this method is optional if this is not your case. When an object with a parent is destroyed, it first receives a call to %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% and then to %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop:method:invalidate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]].//===== Signature =====
+
+
+invalidate {}
+
+
+===== C signature =====
+
+
+void efl_invalidate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]
+ * [[:develop:api:efl:canvas:vg:node:method:invalidate|Efl.Canvas.Vg.Node.invalidate]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:invalidate|Efl.Ui.Position_Manager.Grid.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:manager_scroll:method:invalidate|Efl.Ui.Spotlight.Manager_Scroll.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:manager_stack:method:invalidate|Efl.Ui.Spotlight.Manager_Stack.invalidate]]
+ * [[:develop:api:efl:net:server_udp_client:method:invalidate|Efl.Net.Server_Udp_Client.invalidate]]
+ * [[:develop:api:efl:net:server_windows:method:invalidate|Efl.Net.Server_Windows.invalidate]]
+ * [[:develop:api:efl:io:buffered_stream:method:invalidate|Efl.Io.Buffered_Stream.invalidate]]
+ * [[:develop:api:efl:net:dialer_simple:method:invalidate|Efl.Net.Dialer_Simple.invalidate]]
+ * [[:develop:api:efl:loop_fd:method:invalidate|Efl.Loop_Fd.invalidate]]
+ * [[:develop:api:efl:net:server_ssl:method:invalidate|Efl.Net.Server_Ssl.invalidate]]
+ * [[:develop:api:efl:net:socket_fd:method:invalidate|Efl.Net.Socket_Fd.invalidate]]
+ * [[:develop:api:efl:net:dialer_udp:method:invalidate|Efl.Net.Dialer_Udp.invalidate]]
+ * [[:develop:api:efl:net:dialer_unix:method:invalidate|Efl.Net.Dialer_Unix.invalidate]]
+ * [[:develop:api:efl:net:dialer_tcp:method:invalidate|Efl.Net.Dialer_Tcp.invalidate]]
+ * [[:develop:api:efl:net:socket_ssl:method:invalidate|Efl.Net.Socket_Ssl.invalidate]]
+ * [[:develop:api:efl:net:dialer_ssl:method:invalidate|Efl.Net.Dialer_Ssl.invalidate]]
+ * [[:develop:api:efl:canvas:object:method:invalidate|Efl.Canvas.Object.invalidate]]
+ * [[:develop:api:efl:canvas:layout:method:invalidate|Efl.Canvas.Layout.invalidate]]
+ * [[:develop:api:efl:ui:widget:method:invalidate|Efl.Ui.Widget.invalidate]]
+ * [[:develop:api:efl:ui:table:method:invalidate|Efl.Ui.Table.invalidate]]
+ * [[:develop:api:efl:ui:box:method:invalidate|Efl.Ui.Box.invalidate]]
+ * [[:develop:api:efl:ui:image:method:invalidate|Efl.Ui.Image.invalidate]]
+ * [[:develop:api:efl:ui:layout_base:method:invalidate|Efl.Ui.Layout_Base.invalidate]]
+ * [[:develop:api:efl:ui:collection_view:method:invalidate|Efl.Ui.Collection_View.invalidate]]
+ * [[:develop:api:efl:ui:group_item:method:invalidate|Efl.Ui.Group_Item.invalidate]]
+ * [[:develop:api:efl:ui:collection:method:invalidate|Efl.Ui.Collection.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:container:method:invalidate|Efl.Ui.Spotlight.Container.invalidate]]
+ * [[:develop:api:efl:ui:relative_layout:method:invalidate|Efl.Ui.Relative_Layout.invalidate]]
+ * [[:develop:api:efl:canvas:vg:object:method:invalidate|Efl.Canvas.Vg.Object.invalidate]]
+ * [[:develop:api:efl:loop_model:method:invalidate|Efl.Loop_Model.invalidate]]
+ * [[:develop:api:eldbus:model:method:invalidate|Eldbus.Model.invalidate]]
+ * [[:develop:api:eldbus:model:connection:method:invalidate|Eldbus.Model.Connection.invalidate]]
+ * [[:develop:api:eldbus:model:proxy:method:invalidate|Eldbus.Model.Proxy.invalidate]]
+ * [[:develop:api:eldbus:model:arguments:method:invalidate|Eldbus.Model.Arguments.invalidate]]
+ * [[:develop:api:eldbus:model:signal:method:invalidate|Eldbus.Model.Signal.invalidate]]
+ * [[:develop:api:eldbus:model:object:method:invalidate|Eldbus.Model.Object.invalidate]]
+ * [[:develop:api:efl:composite_model:method:invalidate|Efl.Composite_Model.invalidate]]
+ * [[:develop:api:efl:ui:select_model:method:invalidate|Efl.Ui.Select_Model.invalidate]]
+ * [[:develop:api:efl:io:model:method:invalidate|Efl.Io.Model.invalidate]]
+ * [[:develop:api:efl:net:dialer_websocket:method:invalidate|Efl.Net.Dialer_Websocket.invalidate]]
+ * [[:develop:api:efl:net:server_simple:method:invalidate|Efl.Net.Server_Simple.invalidate]]
+ * [[:develop:api:efl:ui:caching_factory:method:invalidate|Efl.Ui.Caching_Factory.invalidate]]
+ * [[:develop:api:efl:loop:method:invalidate|Efl.Loop.invalidate]]
+ * [[:develop:api:efl:net:dialer_http:method:invalidate|Efl.Net.Dialer_Http.invalidate]]
+ * [[:develop:api:efl:io:copier:method:invalidate|Efl.Io.Copier.invalidate]]
+ * [[:develop:api:efl:ui:position_manager:list:method:invalidate|Efl.Ui.Position_Manager.List.invalidate]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop/method/iterate.txt b/public_html/data/pages/develop/api/efl/loop/method/iterate.txt
new file mode 100644
index 00000000..f862f8f9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop/method/iterate.txt
@@ -0,0 +1,26 @@
+~~Title: Efl.Loop.iterate~~
+====== Efl.Loop.iterate ======
+
+===== Description =====
+
+%%Runs a single iteration of the main loop to process everything on the queue.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop:method:iterate:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+iterate {}
+
+
+===== C signature =====
+
+
+void efl_loop_iterate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:loop:method:iterate|Efl.Loop.iterate]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop/method/iterate_may_block.txt b/public_html/data/pages/develop/api/efl/loop/method/iterate_may_block.txt
new file mode 100644
index 00000000..8fb512f3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop/method/iterate_may_block.txt
@@ -0,0 +1,35 @@
+~~Title: Efl.Loop.iterate_may_block~~
+====== Efl.Loop.iterate_may_block ======
+
+===== Description =====
+
+%%Runs a single iteration of the main loop to process everything on the queue with block/non-blocking status.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop:method:iterate_may_block:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+iterate_may_block {
+ params {
+ @in may_block: int;
+ }
+ return: int;
+}
+
+
+===== C signature =====
+
+
+int efl_loop_iterate_may_block(Eo *obj, int may_block);
+
+
+===== Parameters =====
+
+ * **may_block** //(in)// - %%A flag if the main loop has a possibility of blocking.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:loop:method:iterate_may_block|Efl.Loop.iterate_may_block]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop/method/job.txt b/public_html/data/pages/develop/api/efl/loop/method/job.txt
new file mode 100644
index 00000000..e0edc169
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop/method/job.txt
@@ -0,0 +1,30 @@
+~~Title: Efl.Loop.job~~
+====== Efl.Loop.job ======
+
+===== Description =====
+
+%%A future promise that will be resolved from a clean main loop context as soon as possible.%%
+
+%%This has higher priority, for low priority use %%[[:develop:api:efl:loop:method:idle|Efl.Loop.idle]]%%%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop:method:job:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+job {
+ return: future;
+}
+
+
+===== C signature =====
+
+
+Eina_Future *efl_loop_job(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:loop:method:job|Efl.Loop.job]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop/method/quit.txt b/public_html/data/pages/develop/api/efl/loop/method/quit.txt
new file mode 100644
index 00000000..9eafb667
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop/method/quit.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Loop.quit~~
+====== Efl.Loop.quit ======
+
+===== Description =====
+
+%%Quits the main loop once all the events currently on the queue have been processed.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop:method:quit:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+quit {
+ params {
+ @in exit_code: any_value;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_loop_quit(Eo *obj, Eina_Value exit_code);
+
+
+===== Parameters =====
+
+ * **exit_code** //(in)// - %%Returned value by begin()%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:loop:method:quit|Efl.Loop.quit]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop/method/run.txt b/public_html/data/pages/develop/api/efl/loop/method/run.txt
new file mode 100644
index 00000000..ac33c523
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop/method/run.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Loop.run~~
+====== Efl.Loop.run ======
+
+===== Description =====
+
+%%Actually run the task.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop:method:run:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:task:method:run|Efl.Task.run]].//===== Signature =====
+
+
+run @pure_virtual {
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_task_run(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:task:method:run|Efl.Task.run]]
+ * [[:develop:api:efl:loop:method:run|Efl.Loop.run]]
+ * [[:develop:api:efl:exe:method:run|Efl.Exe.run]]
+ * [[:develop:api:efl:thread:method:run|Efl.Thread.run]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop/method/timeout.txt b/public_html/data/pages/develop/api/efl/loop/method/timeout.txt
new file mode 100644
index 00000000..f6e95312
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop/method/timeout.txt
@@ -0,0 +1,35 @@
+~~Title: Efl.Loop.timeout~~
+====== Efl.Loop.timeout ======
+
+===== Description =====
+
+%%A future promise that will be resolved from a clean main loop context after %%''time''%% seconds.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop:method:timeout:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+timeout {
+ params {
+ @in time: double;
+ }
+ return: future;
+}
+
+
+===== C signature =====
+
+
+Eina_Future *efl_loop_timeout(Eo *obj, double time);
+
+
+===== Parameters =====
+
+ * **time** //(in)// - %%The time from now in second that the main loop will wait before triggering it.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:loop:method:timeout|Efl.Loop.timeout]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop/property/throttle.txt b/public_html/data/pages/develop/api/efl/loop/property/throttle.txt
new file mode 100644
index 00000000..c9d2578b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop/property/throttle.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Loop.throttle~~
+====== Efl.Loop.throttle ======
+
+===== Description =====
+
+%%Slow down the loop execution by forcing sleep for a small period of time every time the loop iterates/loops.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop:property:throttle:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **amount** - %%Time to sleep for each "loop iteration"%%
+
+===== Signature =====
+
+
+@property throttle {
+ get {}
+ set {}
+ values {
+ amount: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_loop_throttle_get(const Eo *obj);
+void efl_loop_throttle_set(Eo *obj, double amount);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:loop:property:throttle|Efl.Loop.throttle]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop/property/time.txt b/public_html/data/pages/develop/api/efl/loop/property/time.txt
new file mode 100644
index 00000000..2e2c30e7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop/property/time.txt
@@ -0,0 +1,59 @@
+~~Title: Efl.Loop.time~~
+====== Efl.Loop.time ======
+
+===== Description =====
+
+%%Retrieves the time at which the last loop stopped waiting for timeouts or events.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:loop:property:time:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **timepoint** - %%Time in seconds%%
+==== Getter ====
+
+%%This gets the time that the main loop ceased waiting for timouts and/or events to come in or for signals or any other interrupt source. This should be considered a reference point for all time based activity that should calculate its timepoint from the return of ecore_loop_time_get(). Note that this time is meant to be used as relative to other times obtained on this run. If you need absolute time references, use a unix timestamp instead.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:loop:property:time:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%You should never need/call this, unless you are implementing a custom tick source for an animator.%%
+
+
+@property time {
+ get {}
+ set @protected {}
+ values {
+ timepoint: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_loop_time_get(const Eo *obj);
+void efl_loop_time_set(Eo *obj, double timepoint);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:loop:property:time|Efl.Loop.time]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop_arguments.txt b/public_html/data/pages/develop/api/efl/loop_arguments.txt
new file mode 100644
index 00000000..0a01a3eb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_arguments.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Loop_Arguments~~
+
+===== Description =====
+
+%%EFL loop arguments data structure%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:loop_arguments:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:loop_arguments:fields&nouser&nolink&nodate}}
+
+ * **argv** - %%Array with loop arguments%%
+ * **initialization** - %%Set to %%''true''%% when the program should initialize its internal state. This happens once per process instance.%%
+
+===== Signature =====
+
+
+struct Efl.Loop_Arguments {
+ argv: const(array);
+ initialization: bool;
+}
+
+
+===== C signature =====
+
+
+typedef struct _Efl_Loop_Arguments {
+ const Eina_Array *argv;
+ Eina_Bool initialization;
+} Efl_Loop_Arguments;
+
diff --git a/public_html/data/pages/develop/api/efl/loop_consumer.txt b/public_html/data/pages/develop/api/efl/loop_consumer.txt
new file mode 100644
index 00000000..ce64a63f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_consumer.txt
@@ -0,0 +1,97 @@
+~~Title: Efl.Loop_Consumer~~
+====== Efl.Loop_Consumer (class) ======
+
+===== Description =====
+
+%%An %%[[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]]%% is a class which requires one of the parents to provide an %%[[:develop:api:efl:loop|Efl.Loop]]%% interface when performing %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%. It will enforce this by only allowing parents which provide such an interface or %%''NULL''%%.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:loop_consumer:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]**\\
+> %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%%
+
+Eina_Future *efl_loop_future_rejected(const Eo *obj, Eina_Error error);
+
+\\
+**[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]**\\
+> %%Creates a new future that is already resolved to a value.%%
+
+Eina_Future *efl_loop_future_resolved(const Eo *obj, Eina_Value result);
+
+\\
+**[[:develop:api:efl:loop_consumer:property:loop|loop]]** //**(get)**//\\
+>
+
+Efl_Loop *efl_loop_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%The parent of an object.%%
+
+Efl_Object *efl_parent_get(const Eo *obj);
+void efl_parent_set(Eo *obj, Efl_Object *parent);
+
+\\
+**[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]**\\
+> %%Create a new promise with the scheduler coming from the loop provided by this object.%%
+
+Eina_Promise efl_loop_promise_new(const Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:constructor|constructor]]** | %%Implement this method to provide optional initialization code for your object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
diff --git a/public_html/data/pages/develop/api/efl/loop_consumer/method/future_rejected.txt b/public_html/data/pages/develop/api/efl/loop_consumer/method/future_rejected.txt
new file mode 100644
index 00000000..af38369c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_consumer/method/future_rejected.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Loop_Consumer.future_rejected~~
+====== Efl.Loop_Consumer.future_rejected ======
+
+===== Description =====
+
+%%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%%
+
+%%This function creates a new future with an already known error, that will be resolved and dispatched by the loop scheduler as usual.%%
+
+%%This is a helper that behaves the same as @ref eina_future_rejected.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop_consumer:method:future_rejected:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+future_rejected @const {
+ params {
+ @in error: Eina.Error;
+ }
+ return: future;
+}
+
+
+===== C signature =====
+
+
+Eina_Future *efl_loop_future_rejected(const Eo *obj, Eina_Error error);
+
+
+===== Parameters =====
+
+ * **error** //(in)// - %%An Eina_Error value%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:loop_consumer:method:future_rejected|Efl.Loop_Consumer.future_rejected]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop_consumer/method/future_resolved.txt b/public_html/data/pages/develop/api/efl/loop_consumer/method/future_resolved.txt
new file mode 100644
index 00000000..0327e49b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_consumer/method/future_resolved.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Loop_Consumer.future_resolved~~
+====== Efl.Loop_Consumer.future_resolved ======
+
+===== Description =====
+
+%%Creates a new future that is already resolved to a value.%%
+
+%%This function creates a new future with an already known value, that will be resolved and dispatched by the loop scheduler as usual.%%
+
+%%This is a helper that behaves the same as eina_future_resolved.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop_consumer:method:future_resolved:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+future_resolved @const {
+ params {
+ @in result: any_value;
+ }
+ return: future;
+}
+
+
+===== C signature =====
+
+
+Eina_Future *efl_loop_future_resolved(const Eo *obj, Eina_Value result);
+
+
+===== Parameters =====
+
+ * **result** //(in)// - %%The value to be delivered.%%
+
+%%Note that the value contents must survive this function scope, that is, do not use stack allocated blobs, arrays, structures or types that keep references to memory you give. Values will be automatically cleaned up using @ref eina_value_flush() once they are unused (no more future or futures returned a new value)%%
+
+%%Note that the value contents must survive this function scope, that is, do not use stack allocated blobs, arrays, structures or types that keep references to memory you give. Values will be automatically cleaned up using @ref eina_value_flush() once they are unused (no more future or futures returned a new value)%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:loop_consumer:method:future_resolved|Efl.Loop_Consumer.future_resolved]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop_consumer/method/promise_new.txt b/public_html/data/pages/develop/api/efl/loop_consumer/method/promise_new.txt
new file mode 100644
index 00000000..a0f09747
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_consumer/method/promise_new.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.Loop_Consumer.promise_new~~
+====== Efl.Loop_Consumer.promise_new ======
+
+===== Description =====
+
+%%Create a new promise with the scheduler coming from the loop provided by this object.%%
+
+
+promise_new @const {
+ return: Eina.Promise;
+}
+
+
+===== C signature =====
+
+
+Eina_Promise efl_loop_promise_new(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:loop_consumer:method:promise_new|Efl.Loop_Consumer.promise_new]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop_consumer/property/loop.txt b/public_html/data/pages/develop/api/efl/loop_consumer/property/loop.txt
new file mode 100644
index 00000000..d0c05d01
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_consumer/property/loop.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.Loop_Consumer.loop~~
+====== Efl.Loop_Consumer.loop ======
+
+===== Values =====
+
+ * **loop** - %%Efl loop.%%
+
+
+\\ {{page>:develop:api-include:efl:loop_consumer:property:loop:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property loop {
+ get {}
+ values {
+ loop: Efl.Loop;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Loop *efl_loop_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop]]
+ * [[:develop:api:efl:canvas:object:property:loop|Efl.Canvas.Object.loop]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop_consumer/property/parent.txt b/public_html/data/pages/develop/api/efl/loop_consumer/property/parent.txt
new file mode 100644
index 00000000..5d93c2f5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_consumer/property/parent.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Loop_Consumer.parent~~
+====== Efl.Loop_Consumer.parent ======
+
+===== Description =====
+
+%%The parent of an object.%%
+
+%%Parents keep references to their children and will release these references when destroyed. In this way, objects can be assigned to a parent upon creation, tying their life cycle so the programmer does not need to worry about destroying the child object. In order to destroy an object before its parent, set the parent to %%''NULL''%% and use efl_unref(), or use efl_del() directly.%%
+
+%%The Eo parent is conceptually user set. That means that a parent should not be changed behind the scenes in an unexpected way.%%
+
+%%For example: If you have a widget which can swallow objects into an internal box, the parent of the swallowed objects should be the widget, not the internal box. The user is not even aware of the existence of the internal box.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop_consumer:property:parent:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **parent** - %%The new parent.%%
+
+//Overridden from [[:develop:api:efl:object:property:parent|Efl.Object.parent]] **(set)**.//===== Signature =====
+
+
+@property parent {
+ get {}
+ set {}
+ values {
+ parent: Efl.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_parent_get(const Eo *obj);
+void efl_parent_set(Eo *obj, Efl_Object *parent);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:property:parent|Efl.Object.parent]]
+ * [[:develop:api:efl:loop_handler:property:parent|Efl.Loop_Handler.parent]]
+ * [[:develop:api:efl:canvas:vg:node:property:parent|Efl.Canvas.Vg.Node.parent]]
+ * [[:develop:api:efl:canvas:vg:container:property:parent|Efl.Canvas.Vg.Container.parent]]
+ * [[:develop:api:efl:input:device:property:parent|Efl.Input.Device.parent]]
+ * [[:develop:api:efl:loop_consumer:property:parent|Efl.Loop_Consumer.parent]]
+ * [[:develop:api:efl:loop_fd:property:parent|Efl.Loop_Fd.parent]]
+ * [[:develop:api:efl:loop_timer:property:parent|Efl.Loop_Timer.parent]]
+ * [[:develop:api:efl:task:property:parent|Efl.Task.parent]]
+ * [[:develop:api:efl:thread:property:parent|Efl.Thread.parent]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop_model.txt b/public_html/data/pages/develop/api/efl/loop_model.txt
new file mode 100644
index 00000000..fde1d629
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_model.txt
@@ -0,0 +1,109 @@
+~~Title: Efl.Loop_Model~~
+====== Efl.Loop_Model (class) ======
+
+===== Description =====
+
+%%The Efl Loop Model class%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:loop_model:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:model|Efl.Model]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:loop_model:method:invalidate|invalidate]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to perform special actions when your object loses its parent, if you need to.%%
+
+void efl_invalidate(Eo *obj);
+
+\\
+**[[:develop:api:efl:loop_model:property:property|property]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:model|Efl.Model]]]//\\
+> %%No description supplied.%%
+
+Eina_Value *efl_model_property_get(const Eo *obj, const char *property);
+Eina_Future *efl_model_property_set(Eo *obj, const char *property, Eina_Value *value);
+
+\\
+**[[:develop:api:efl:loop_model:method:property_ready_get|property_ready_get]]**// [Overridden from [[:develop:api:efl:model|Efl.Model]]]//\\
+> %%Get a future value when it changes to something that is not error:EAGAIN%%
+
+Eina_Future *efl_model_property_ready_get(Eo *obj, const char *property);
+
+\\
+**[[:develop:api:efl:loop_model:method:volatile_make|volatile_make]]**\\
+> %%To be called when a Child model is created by %%[[:develop:api:efl:model:method:children_slice_get|Efl.Model.children_slice_get]]%% by the one creating the child object.%%
+
+void efl_loop_model_volatile_make(Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:model|Efl.Model]] ^^^
+| | **[[:develop:api:efl:model:method:child_add|child_add]]** | %%Add a new child.%% |
+| | **[[:develop:api:efl:model:method:child_del|child_del]]** | %%Remove a child.%% |
+| | **[[:develop:api:efl:model:property:children_count|children_count]]** //**(get)**// | |
+| | **[[:develop:api:efl:model:method:children_slice_get|children_slice_get]]** | %%Get children slice OR full range.%% |
+| | **[[:develop:api:efl:model:property:properties|properties]]** //**(get)**// | |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:constructor|constructor]]** | %%Implement this method to provide optional initialization code for your object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:model|Efl.Model]] ^^^
+| | **[[:develop:api:efl:model:event:child_added|child,added]]** | %%Event dispatched when new child is added.%% |
+| | **[[:develop:api:efl:model:event:child_removed|child,removed]]** | %%Event dispatched when child is removed.%% |
+| | **[[:develop:api:efl:model:event:children_count_changed|children,count,changed]]** | %%Event dispatched when children count is finished.%% |
+| | **[[:develop:api:efl:model:event:properties_changed|properties,changed]]** | %%Event dispatched when properties list is available.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
diff --git a/public_html/data/pages/develop/api/efl/loop_model/method/invalidate.txt b/public_html/data/pages/develop/api/efl/loop_model/method/invalidate.txt
new file mode 100644
index 00000000..08a22250
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_model/method/invalidate.txt
@@ -0,0 +1,74 @@
+~~Title: Efl.Loop_Model.invalidate~~
+====== Efl.Loop_Model.invalidate ======
+
+===== Description =====
+
+%%Implement this method to perform special actions when your object loses its parent, if you need to.%%
+
+%%It is called when the parent reference is lost or set to %%''NULL''%%. After this call returns, %%[[:develop:api:efl:object:property:invalidated|Efl.Object.invalidated]]%% is set to %%''true''%%. This allows a simpler tear down of complex hierarchies, by performing object destruction in two steps, first all object relationships are broken and then the isolated objects are destroyed. Performing everything in the %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%% can sometimes lead to deadlocks, but implementing this method is optional if this is not your case. When an object with a parent is destroyed, it first receives a call to %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% and then to %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop_model:method:invalidate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]].//===== Signature =====
+
+
+invalidate {}
+
+
+===== C signature =====
+
+
+void efl_invalidate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]
+ * [[:develop:api:efl:canvas:vg:node:method:invalidate|Efl.Canvas.Vg.Node.invalidate]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:invalidate|Efl.Ui.Position_Manager.Grid.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:manager_scroll:method:invalidate|Efl.Ui.Spotlight.Manager_Scroll.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:manager_stack:method:invalidate|Efl.Ui.Spotlight.Manager_Stack.invalidate]]
+ * [[:develop:api:efl:net:server_udp_client:method:invalidate|Efl.Net.Server_Udp_Client.invalidate]]
+ * [[:develop:api:efl:net:server_windows:method:invalidate|Efl.Net.Server_Windows.invalidate]]
+ * [[:develop:api:efl:io:buffered_stream:method:invalidate|Efl.Io.Buffered_Stream.invalidate]]
+ * [[:develop:api:efl:net:dialer_simple:method:invalidate|Efl.Net.Dialer_Simple.invalidate]]
+ * [[:develop:api:efl:loop_fd:method:invalidate|Efl.Loop_Fd.invalidate]]
+ * [[:develop:api:efl:net:server_ssl:method:invalidate|Efl.Net.Server_Ssl.invalidate]]
+ * [[:develop:api:efl:net:socket_fd:method:invalidate|Efl.Net.Socket_Fd.invalidate]]
+ * [[:develop:api:efl:net:dialer_udp:method:invalidate|Efl.Net.Dialer_Udp.invalidate]]
+ * [[:develop:api:efl:net:dialer_unix:method:invalidate|Efl.Net.Dialer_Unix.invalidate]]
+ * [[:develop:api:efl:net:dialer_tcp:method:invalidate|Efl.Net.Dialer_Tcp.invalidate]]
+ * [[:develop:api:efl:net:socket_ssl:method:invalidate|Efl.Net.Socket_Ssl.invalidate]]
+ * [[:develop:api:efl:net:dialer_ssl:method:invalidate|Efl.Net.Dialer_Ssl.invalidate]]
+ * [[:develop:api:efl:canvas:object:method:invalidate|Efl.Canvas.Object.invalidate]]
+ * [[:develop:api:efl:canvas:layout:method:invalidate|Efl.Canvas.Layout.invalidate]]
+ * [[:develop:api:efl:ui:widget:method:invalidate|Efl.Ui.Widget.invalidate]]
+ * [[:develop:api:efl:ui:table:method:invalidate|Efl.Ui.Table.invalidate]]
+ * [[:develop:api:efl:ui:box:method:invalidate|Efl.Ui.Box.invalidate]]
+ * [[:develop:api:efl:ui:image:method:invalidate|Efl.Ui.Image.invalidate]]
+ * [[:develop:api:efl:ui:layout_base:method:invalidate|Efl.Ui.Layout_Base.invalidate]]
+ * [[:develop:api:efl:ui:collection_view:method:invalidate|Efl.Ui.Collection_View.invalidate]]
+ * [[:develop:api:efl:ui:group_item:method:invalidate|Efl.Ui.Group_Item.invalidate]]
+ * [[:develop:api:efl:ui:collection:method:invalidate|Efl.Ui.Collection.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:container:method:invalidate|Efl.Ui.Spotlight.Container.invalidate]]
+ * [[:develop:api:efl:ui:relative_layout:method:invalidate|Efl.Ui.Relative_Layout.invalidate]]
+ * [[:develop:api:efl:canvas:vg:object:method:invalidate|Efl.Canvas.Vg.Object.invalidate]]
+ * [[:develop:api:efl:loop_model:method:invalidate|Efl.Loop_Model.invalidate]]
+ * [[:develop:api:eldbus:model:method:invalidate|Eldbus.Model.invalidate]]
+ * [[:develop:api:eldbus:model:connection:method:invalidate|Eldbus.Model.Connection.invalidate]]
+ * [[:develop:api:eldbus:model:proxy:method:invalidate|Eldbus.Model.Proxy.invalidate]]
+ * [[:develop:api:eldbus:model:arguments:method:invalidate|Eldbus.Model.Arguments.invalidate]]
+ * [[:develop:api:eldbus:model:signal:method:invalidate|Eldbus.Model.Signal.invalidate]]
+ * [[:develop:api:eldbus:model:object:method:invalidate|Eldbus.Model.Object.invalidate]]
+ * [[:develop:api:efl:composite_model:method:invalidate|Efl.Composite_Model.invalidate]]
+ * [[:develop:api:efl:ui:select_model:method:invalidate|Efl.Ui.Select_Model.invalidate]]
+ * [[:develop:api:efl:io:model:method:invalidate|Efl.Io.Model.invalidate]]
+ * [[:develop:api:efl:net:dialer_websocket:method:invalidate|Efl.Net.Dialer_Websocket.invalidate]]
+ * [[:develop:api:efl:net:server_simple:method:invalidate|Efl.Net.Server_Simple.invalidate]]
+ * [[:develop:api:efl:ui:caching_factory:method:invalidate|Efl.Ui.Caching_Factory.invalidate]]
+ * [[:develop:api:efl:loop:method:invalidate|Efl.Loop.invalidate]]
+ * [[:develop:api:efl:net:dialer_http:method:invalidate|Efl.Net.Dialer_Http.invalidate]]
+ * [[:develop:api:efl:io:copier:method:invalidate|Efl.Io.Copier.invalidate]]
+ * [[:develop:api:efl:ui:position_manager:list:method:invalidate|Efl.Ui.Position_Manager.List.invalidate]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop_model/method/property_ready_get.txt b/public_html/data/pages/develop/api/efl/loop_model/method/property_ready_get.txt
new file mode 100644
index 00000000..4814b5c8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_model/method/property_ready_get.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Loop_Model.property_ready_get~~
+====== Efl.Loop_Model.property_ready_get ======
+
+===== Description =====
+
+%%Get a future value when it changes to something that is not error:EAGAIN%%
+
+%%%%[[:develop:api:efl:model:property:property|Efl.Model.property.get]]%% can return an error with code EAGAIN when it doesn't have any meaningful value. To make life easier, this future will resolve when the error:EAGAIN disappears. Either into a failed future in case the error code changed to something else or a success with the value of the property whenever the property finally changes.%%
+
+%%The future can also be canceled if the model itself gets destroyed.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:loop_model:method:property_ready_get:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:model:method:property_ready_get|Efl.Model.property_ready_get]].//===== Signature =====
+
+
+property_ready_get @pure_virtual {
+ params {
+ @in property: string;
+ }
+ return: future;
+}
+
+
+===== C signature =====
+
+
+Eina_Future *efl_model_property_ready_get(Eo *obj, const char *property);
+
+
+===== Parameters =====
+
+ * **property** //(in)// - %%Property name.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:model:method:property_ready_get|Efl.Model.property_ready_get]]
+ * [[:develop:api:efl:loop_model:method:property_ready_get|Efl.Loop_Model.property_ready_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop_model/method/volatile_make.txt b/public_html/data/pages/develop/api/efl/loop_model/method/volatile_make.txt
new file mode 100644
index 00000000..951dc9bb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_model/method/volatile_make.txt
@@ -0,0 +1,28 @@
+~~Title: Efl.Loop_Model.volatile_make~~
+====== Efl.Loop_Model.volatile_make ======
+
+===== Description =====
+
+%%To be called when a Child model is created by %%[[:develop:api:efl:model:method:children_slice_get|Efl.Model.children_slice_get]]%% by the one creating the child object.%%
+
+%%This function is used to properly define the lifecycle of the new Child Model object and make sure that once it has 0 ref except its parent Model, it will be destroyed. This function should only be called once per child. It is useful for %%[[:develop:api:efl:model|Efl.Model]]%% who have a lot of children and shouldn't keep more than what is used in memory.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:loop_model:method:volatile_make:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+volatile_make {}
+
+
+===== C signature =====
+
+
+void efl_loop_model_volatile_make(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:loop_model:method:volatile_make|Efl.Loop_Model.volatile_make]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop_model/property/property.txt b/public_html/data/pages/develop/api/efl/loop_model/property/property.txt
new file mode 100644
index 00000000..dea9e067
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_model/property/property.txt
@@ -0,0 +1,91 @@
+~~Title: Efl.Loop_Model.property~~
+====== Efl.Loop_Model.property ======
+
+===== Description =====
+
+%%No description supplied.%%
+
+//Since 1.23//
+
+
+{{page>:develop:api-include:efl:loop_model:property:property:description&nouser&nolink&nodate}}
+
+===== Keys =====
+
+ * **property** - %%Property name%%
+===== Values =====
+
+ * **value** - %%Property value%%
+==== Getter ====
+
+%%Retrieve the value of a given property name.%%
+
+%%At this point the caller is free to get values from properties. The event %%[[:develop:api:efl:model:event:properties,changed|Efl.Model.properties,changed]]%% may be raised to notify listeners of the property/value.%%
+
+%%See %%[[:develop:api:efl:model:property:properties|Efl.Model.properties.get]]%%, %%[[:develop:api:efl:model:event:properties,changed|Efl.Model.properties,changed]]%%%%
+
+//Since 1.23//
+
+
+{{page>:develop:api-include:efl:loop_model:property:property:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Set a property value of a given property name.%%
+
+%%The caller must first read %%[[:develop:api:efl:model:property:properties|Efl.Model.properties]]%% to obtain the list of available properties before being able to access them through %%[[:develop:api:efl:model:property:property|Efl.Model.property]]%%. This function sets a new property value into given property name. Once the operation is completed the concrete implementation should raise %%[[:develop:api:efl:model:event:properties,changed|Efl.Model.properties,changed]]%% event in order to notify listeners of the new value of the property.%%
+
+%%If the model doesn't have the property then there are two possibilities, either raise an error or create the new property in model%%
+
+%%See %%[[:develop:api:efl:model:property:property|Efl.Model.property.get]]%%, %%[[:develop:api:efl:model:event:properties,changed|Efl.Model.properties,changed]]%%%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:loop_model:property:property:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:model:property:property|Efl.Model.property]] **(get, set)**.//===== Signature =====
+
+
+@property property @pure_virtual {
+ get {}
+ set {
+ return: future;
+ }
+ keys {
+ property: string;
+ }
+ values {
+ value: any_value_ref;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Value *efl_model_property_get(const Eo *obj, const char *property);
+Eina_Future *efl_model_property_set(Eo *obj, const char *property, Eina_Value *value);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:model:property:property|Efl.Model.property]]
+ * [[:develop:api:efl:mono_model_internal_child:property:property|Efl.Mono_Model_Internal_Child.property]]
+ * [[:develop:api:efl:mono_model_internal:property:property|Efl.Mono_Model_Internal.property]]
+ * [[:develop:api:efl:loop_model:property:property|Efl.Loop_Model.property]]
+ * [[:develop:api:eldbus:model:property:property|Eldbus.Model.property]]
+ * [[:develop:api:eldbus:model:proxy:property:property|Eldbus.Model.Proxy.property]]
+ * [[:develop:api:eldbus:model:arguments:property:property|Eldbus.Model.Arguments.property]]
+ * [[:develop:api:efl:composite_model:property:property|Efl.Composite_Model.property]]
+ * [[:develop:api:efl:boolean_model:property:property|Efl.Boolean_Model.property]]
+ * [[:develop:api:efl:ui:select_model:property:property|Efl.Ui.Select_Model.property]]
+ * [[:develop:api:efl:ui:state_model:property:property|Efl.Ui.State_Model.property]]
+ * [[:develop:api:efl:container_model:property:property|Efl.Container_Model.property]]
+ * [[:develop:api:efl:ui:view_model:property:property|Efl.Ui.View_Model.property]]
+ * [[:develop:api:efl:ui:homogeneous_model:property:property|Efl.Ui.Homogeneous_Model.property]]
+ * [[:develop:api:efl:ui:exact_model:property:property|Efl.Ui.Exact_Model.property]]
+ * [[:develop:api:efl:ui:average_model:property:property|Efl.Ui.Average_Model.property]]
+ * [[:develop:api:efl:filter_model:property:property|Efl.Filter_Model.property]]
+ * [[:develop:api:efl:io:model:property:property|Efl.Io.Model.property]]
+ * [[:develop:api:efl:generic_model:property:property|Efl.Generic_Model.property]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop_timer.txt b/public_html/data/pages/develop/api/efl/loop_timer.txt
new file mode 100644
index 00000000..2e2bbcc6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_timer.txt
@@ -0,0 +1,149 @@
+~~Title: Efl.Loop_Timer~~
+====== Efl.Loop_Timer (class) ======
+
+===== Description =====
+
+%%Timers are objects that will call a given callback at some point in the future and repeat that tick at a given interval.%%
+
+%%Timers require the ecore main loop to be running and functioning properly. They do not guarantee exact timing but try to work on a "best effort" basis.%%
+
+%%The %%[[:develop:api:efl:object:method:event_freeze|Efl.Object.event_freeze]]%% and %%[[:develop:api:efl:object:method:event_thaw|Efl.Object.event_thaw]]%% calls are used to pause and unpause the timer.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:loop_timer:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:loop_timer:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:loop_timer:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:loop_timer:method:event_freeze|event_freeze]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Freeze events of this object.%%
+
+void efl_event_freeze(Eo *obj);
+
+\\
+**[[:develop:api:efl:loop_timer:property:event_freeze_count|event_freeze_count]]** //**(get)**//// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+>
+
+int efl_event_freeze_count_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:loop_timer:method:event_thaw|event_thaw]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Thaw events of object.%%
+
+void efl_event_thaw(Eo *obj);
+
+\\
+**[[:develop:api:efl:loop_timer:method:finalize|finalize]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+Efl_Object *efl_finalize(Eo *obj);
+
+\\
+**[[:develop:api:efl:loop_timer:property:parent|parent]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%The parent of an object.%%
+
+Efl_Object *efl_parent_get(const Eo *obj);
+void efl_parent_set(Eo *obj, Efl_Object *parent);
+
+\\
+**[[:develop:api:efl:loop_timer:property:time_pending|time_pending]]** //**(get)**//\\
+>
+
+double efl_loop_timer_time_pending_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:loop_timer:method:timer_delay|timer_delay]]**\\
+> %%Adds a delay to the next occurrence of a timer. This doesn't affect the timer interval.%%
+
+void efl_loop_timer_delay(Eo *obj, double add);
+
+\\
+**[[:develop:api:efl:loop_timer:property:timer_interval|timer_interval]]** //**(get, set)**//\\
+> %%Interval the timer ticks on.%%
+
+double efl_loop_timer_interval_get(const Eo *obj);
+void efl_loop_timer_interval_set(Eo *obj, double in);
+
+\\
+**[[:develop:api:efl:loop_timer:method:timer_loop_reset|timer_loop_reset]]**\\
+> %%This effectively resets a timer but based on the time when this iteration of the main loop started.%%
+
+void efl_loop_timer_loop_reset(Eo *obj);
+
+\\
+**[[:develop:api:efl:loop_timer:method:timer_reset|timer_reset]]**\\
+> %%Resets a timer to its full interval. This effectively makes the timer start ticking off from zero now.%%
+
+void efl_loop_timer_reset(Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+
+===== Events =====
+
+**[[:develop:api:efl:loop_timer:event:timer_tick|timer,tick]]**\\
+> %%Event triggered when the specified time as passed.%%
+
+EFL_LOOP_TIMER_EVENT_TIMER_TICK(void)
+
+\\ ==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
diff --git a/public_html/data/pages/develop/api/efl/loop_timer/event/timer_tick.txt b/public_html/data/pages/develop/api/efl/loop_timer/event/timer_tick.txt
new file mode 100644
index 00000000..7988ec10
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_timer/event/timer_tick.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Loop_Timer: timer,tick~~
+
+===== Description =====
+
+%%Event triggered when the specified time as passed.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:loop_timer:event:timer_tick:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+timer,tick;
+
+
+===== C information =====
+
+
+EFL_LOOP_TIMER_EVENT_TIMER_TICK(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_loop_timer_event_timer_tick(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_LOOP_TIMER_EVENT_TIMER_TICK, on_efl_loop_timer_event_timer_tick, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/loop_timer/method/constructor.txt b/public_html/data/pages/develop/api/efl/loop_timer/method/constructor.txt
new file mode 100644
index 00000000..95e8d679
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_timer/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Loop_Timer.constructor~~
+====== Efl.Loop_Timer.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop_timer:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop_timer/method/destructor.txt b/public_html/data/pages/develop/api/efl/loop_timer/method/destructor.txt
new file mode 100644
index 00000000..c41652c8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_timer/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Loop_Timer.destructor~~
+====== Efl.Loop_Timer.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop_timer:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop_timer/method/event_freeze.txt b/public_html/data/pages/develop/api/efl/loop_timer/method/event_freeze.txt
new file mode 100644
index 00000000..2a17a34e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_timer/method/event_freeze.txt
@@ -0,0 +1,30 @@
+~~Title: Efl.Loop_Timer.event_freeze~~
+====== Efl.Loop_Timer.event_freeze ======
+
+===== Description =====
+
+%%Freeze events of this object.%%
+
+%%Prevents event callbacks from being called for this object. Enable events again using %%[[:develop:api:efl:object:method:event_thaw|Efl.Object.event_thaw]]%%. Events marked %%''hot''%% cannot be stopped.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop_timer:method:event_freeze:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:event_freeze|Efl.Object.event_freeze]].//===== Signature =====
+
+
+event_freeze {}
+
+
+===== C signature =====
+
+
+void efl_event_freeze(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:event_freeze|Efl.Object.event_freeze]]
+ * [[:develop:api:efl:canvas:object:method:event_freeze|Efl.Canvas.Object.event_freeze]]
+ * [[:develop:api:efl:loop_timer:method:event_freeze|Efl.Loop_Timer.event_freeze]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop_timer/method/event_thaw.txt b/public_html/data/pages/develop/api/efl/loop_timer/method/event_thaw.txt
new file mode 100644
index 00000000..7caa56b7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_timer/method/event_thaw.txt
@@ -0,0 +1,30 @@
+~~Title: Efl.Loop_Timer.event_thaw~~
+====== Efl.Loop_Timer.event_thaw ======
+
+===== Description =====
+
+%%Thaw events of object.%%
+
+%%Allows event callbacks to be called again for this object after a call to %%[[:develop:api:efl:object:method:event_freeze|Efl.Object.event_freeze]]%%. The amount of thaws must match the amount of freezes for events to be re-enabled.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop_timer:method:event_thaw:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:event_thaw|Efl.Object.event_thaw]].//===== Signature =====
+
+
+event_thaw {}
+
+
+===== C signature =====
+
+
+void efl_event_thaw(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:event_thaw|Efl.Object.event_thaw]]
+ * [[:develop:api:efl:canvas:object:method:event_thaw|Efl.Canvas.Object.event_thaw]]
+ * [[:develop:api:efl:loop_timer:method:event_thaw|Efl.Loop_Timer.event_thaw]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop_timer/method/finalize.txt b/public_html/data/pages/develop/api/efl/loop_timer/method/finalize.txt
new file mode 100644
index 00000000..4119e40e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_timer/method/finalize.txt
@@ -0,0 +1,91 @@
+~~Title: Efl.Loop_Timer.finalize~~
+====== Efl.Loop_Timer.finalize ======
+
+===== Description =====
+
+%%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+%%Use this method to delay expensive operations until user configuration has finished, to avoid building the object in a "default" state in the constructor, just to have to throw it all away because a user configuration (a property being set, for example) requires a different state. This is the last call inside efl_add() and will set %%[[:develop:api:efl:object:property:finalized|Efl.Object.finalized]]%% to %%''true''%% once it returns. This is an optimization and implementing this method is optional if you already perform all your initialization in the %%[[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]%% method. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop_timer:method:finalize:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:finalize|Efl.Object.finalize]].//===== Signature =====
+
+
+finalize {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_finalize(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]
+ * [[:develop:api:efl:loop_handler:method:finalize|Efl.Loop_Handler.finalize]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:finalize|Efl.Ui.Position_Manager.Grid.finalize]]
+ * [[:develop:api:efl:canvas:layout_part:method:finalize|Efl.Canvas.Layout_Part.finalize]]
+ * [[:develop:api:efl:net:server_udp_client:method:finalize|Efl.Net.Server_Udp_Client.finalize]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:finalize|Efl.Ui.Widget_Part_Bg.finalize]]
+ * [[:develop:api:efl:ui:layout_part_bg:method:finalize|Efl.Ui.Layout_Part_Bg.finalize]]
+ * [[:develop:api:efl:io:buffered_stream:method:finalize|Efl.Io.Buffered_Stream.finalize]]
+ * [[:develop:api:efl:net:dialer_simple:method:finalize|Efl.Net.Dialer_Simple.finalize]]
+ * [[:develop:api:efl:io:file:method:finalize|Efl.Io.File.finalize]]
+ * [[:develop:api:efl:net:server_fd:method:finalize|Efl.Net.Server_Fd.finalize]]
+ * [[:develop:api:efl:io:stderr:method:finalize|Efl.Io.Stderr.finalize]]
+ * [[:develop:api:efl:io:stdin:method:finalize|Efl.Io.Stdin.finalize]]
+ * [[:develop:api:efl:io:stdout:method:finalize|Efl.Io.Stdout.finalize]]
+ * [[:develop:api:efl:net:socket_fd:method:finalize|Efl.Net.Socket_Fd.finalize]]
+ * [[:develop:api:efl:net:socket_ssl:method:finalize|Efl.Net.Socket_Ssl.finalize]]
+ * [[:develop:api:efl:net:dialer_ssl:method:finalize|Efl.Net.Dialer_Ssl.finalize]]
+ * [[:develop:api:efl:canvas:object:method:finalize|Efl.Canvas.Object.finalize]]
+ * [[:develop:api:efl:canvas:image_internal:method:finalize|Efl.Canvas.Image_Internal.finalize]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:finalize|Efl.Ui.Internal.Text.Interactive.finalize]]
+ * [[:develop:api:efl:ui:widget:method:finalize|Efl.Ui.Widget.finalize]]
+ * [[:develop:api:efl:ui:win:method:finalize|Efl.Ui.Win.finalize]]
+ * [[:develop:api:efl:ui:win_socket:method:finalize|Efl.Ui.Win_Socket.finalize]]
+ * [[:develop:api:efl:ui:win_inlined:method:finalize|Efl.Ui.Win_Inlined.finalize]]
+ * [[:develop:api:efl:ui:layout_base:method:finalize|Efl.Ui.Layout_Base.finalize]]
+ * [[:develop:api:efl:ui:text:method:finalize|Efl.Ui.Text.finalize]]
+ * [[:develop:api:efl:ui:tab_bar:method:finalize|Efl.Ui.Tab_Bar.finalize]]
+ * [[:develop:api:efl:ui:item:method:finalize|Efl.Ui.Item.finalize]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:finalize|Efl.Ui.List_Placeholder_Item.finalize]]
+ * [[:develop:api:elm:code_widget:method:finalize|Elm.Code_Widget.finalize]]
+ * [[:develop:api:efl:ui:scroller:method:finalize|Efl.Ui.Scroller.finalize]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:finalize|Efl.Ui.Internal_Text_Scroller.finalize]]
+ * [[:develop:api:efl:ui:collection:method:finalize|Efl.Ui.Collection.finalize]]
+ * [[:develop:api:efl:ui:spotlight:container:method:finalize|Efl.Ui.Spotlight.Container.finalize]]
+ * [[:develop:api:efl:ui:tab_pager:method:finalize|Efl.Ui.Tab_Pager.finalize]]
+ * [[:develop:api:efl:ui:bg:method:finalize|Efl.Ui.Bg.finalize]]
+ * [[:develop:api:efl:canvas:vg:object:method:finalize|Efl.Canvas.Vg.Object.finalize]]
+ * [[:develop:api:efl:loop_timer:method:finalize|Efl.Loop_Timer.finalize]]
+ * [[:develop:api:eldbus:model:method:finalize|Eldbus.Model.finalize]]
+ * [[:develop:api:eldbus:model:proxy:method:finalize|Eldbus.Model.Proxy.finalize]]
+ * [[:develop:api:eldbus:model:arguments:method:finalize|Eldbus.Model.Arguments.finalize]]
+ * [[:develop:api:eldbus:model:method:method:finalize|Eldbus.Model.Method.finalize]]
+ * [[:develop:api:eldbus:model:object:method:finalize|Eldbus.Model.Object.finalize]]
+ * [[:develop:api:efl:composite_model:method:finalize|Efl.Composite_Model.finalize]]
+ * [[:develop:api:efl:container_model:method:finalize|Efl.Container_Model.finalize]]
+ * [[:develop:api:efl:ui:view_model:method:finalize|Efl.Ui.View_Model.finalize]]
+ * [[:develop:api:efl:io:model:method:finalize|Efl.Io.Model.finalize]]
+ * [[:develop:api:efl:net:server_simple:method:finalize|Efl.Net.Server_Simple.finalize]]
+ * [[:develop:api:efl:net:control:manager:method:finalize|Efl.Net.Control.Manager.finalize]]
+ * [[:develop:api:efl:ui:widget_factory:method:finalize|Efl.Ui.Widget_Factory.finalize]]
+ * [[:develop:api:efl:ui:caching_factory:method:finalize|Efl.Ui.Caching_Factory.finalize]]
+ * [[:develop:api:efl:thread:method:finalize|Efl.Thread.finalize]]
+ * [[:develop:api:efl:net:session:method:finalize|Efl.Net.Session.finalize]]
+ * [[:develop:api:efl:io:copier:method:finalize|Efl.Io.Copier.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:finalize|Efl.Ui.Focus.Manager_Calc.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:finalize|Efl.Ui.Focus.Manager_Root_Focus.finalize]]
+ * [[:develop:api:evas:canvas3d:node:method:finalize|Evas.Canvas3D.Node.finalize]]
+ * [[:develop:api:efl:net:ssl:context:method:finalize|Efl.Net.Ssl.Context.finalize]]
+ * [[:develop:api:efl:io:buffer:method:finalize|Efl.Io.Buffer.finalize]]
+ * [[:develop:api:efl:net:ip_address:method:finalize|Efl.Net.Ip_Address.finalize]]
+ * [[:develop:api:efl:io:queue:method:finalize|Efl.Io.Queue.finalize]]
+ * [[:develop:api:ector:renderer:method:finalize|Ector.Renderer.finalize]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop_timer/method/timer_delay.txt b/public_html/data/pages/develop/api/efl/loop_timer/method/timer_delay.txt
new file mode 100644
index 00000000..b918c0b6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_timer/method/timer_delay.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Loop_Timer.timer_delay~~
+====== Efl.Loop_Timer.timer_delay ======
+
+===== Description =====
+
+%%Adds a delay to the next occurrence of a timer. This doesn't affect the timer interval.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop_timer:method:timer_delay:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+timer_delay {
+ params {
+ @in add: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_loop_timer_delay(Eo *obj, double add);
+
+
+===== Parameters =====
+
+ * **add** //(in)// - %%The amount of time by which to delay the timer in seconds%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:loop_timer:method:timer_delay|Efl.Loop_Timer.timer_delay]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop_timer/method/timer_loop_reset.txt b/public_html/data/pages/develop/api/efl/loop_timer/method/timer_loop_reset.txt
new file mode 100644
index 00000000..0f36e34d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_timer/method/timer_loop_reset.txt
@@ -0,0 +1,26 @@
+~~Title: Efl.Loop_Timer.timer_loop_reset~~
+====== Efl.Loop_Timer.timer_loop_reset ======
+
+===== Description =====
+
+%%This effectively resets a timer but based on the time when this iteration of the main loop started.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop_timer:method:timer_loop_reset:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+timer_loop_reset {}
+
+
+===== C signature =====
+
+
+void efl_loop_timer_loop_reset(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:loop_timer:method:timer_loop_reset|Efl.Loop_Timer.timer_loop_reset]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop_timer/method/timer_reset.txt b/public_html/data/pages/develop/api/efl/loop_timer/method/timer_reset.txt
new file mode 100644
index 00000000..ebab471f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_timer/method/timer_reset.txt
@@ -0,0 +1,28 @@
+~~Title: Efl.Loop_Timer.timer_reset~~
+====== Efl.Loop_Timer.timer_reset ======
+
+===== Description =====
+
+%%Resets a timer to its full interval. This effectively makes the timer start ticking off from zero now.%%
+
+%%This is equal to delaying the timer by the already passed time, since the timer started ticking%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop_timer:method:timer_reset:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+timer_reset {}
+
+
+===== C signature =====
+
+
+void efl_loop_timer_reset(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:loop_timer:method:timer_reset|Efl.Loop_Timer.timer_reset]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop_timer/property/event_freeze_count.txt b/public_html/data/pages/develop/api/efl/loop_timer/property/event_freeze_count.txt
new file mode 100644
index 00000000..e166ebc2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_timer/property/event_freeze_count.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.Loop_Timer.event_freeze_count~~
+====== Efl.Loop_Timer.event_freeze_count ======
+
+===== Values =====
+
+ * **fcount** - %%The event freeze count of this object.%%
+
+
+\\ {{page>:develop:api-include:efl:loop_timer:property:event_freeze_count:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:property:event_freeze_count|Efl.Object.event_freeze_count]] **(get)**.//===== Signature =====
+
+
+@property event_freeze_count {
+ get {}
+ values {
+ fcount: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_event_freeze_count_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:property:event_freeze_count|Efl.Object.event_freeze_count]]
+ * [[:develop:api:efl:loop_timer:property:event_freeze_count|Efl.Loop_Timer.event_freeze_count]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop_timer/property/parent.txt b/public_html/data/pages/develop/api/efl/loop_timer/property/parent.txt
new file mode 100644
index 00000000..26d3ef2c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_timer/property/parent.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Loop_Timer.parent~~
+====== Efl.Loop_Timer.parent ======
+
+===== Description =====
+
+%%The parent of an object.%%
+
+%%Parents keep references to their children and will release these references when destroyed. In this way, objects can be assigned to a parent upon creation, tying their life cycle so the programmer does not need to worry about destroying the child object. In order to destroy an object before its parent, set the parent to %%''NULL''%% and use efl_unref(), or use efl_del() directly.%%
+
+%%The Eo parent is conceptually user set. That means that a parent should not be changed behind the scenes in an unexpected way.%%
+
+%%For example: If you have a widget which can swallow objects into an internal box, the parent of the swallowed objects should be the widget, not the internal box. The user is not even aware of the existence of the internal box.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop_timer:property:parent:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **parent** - %%The new parent.%%
+
+//Overridden from [[:develop:api:efl:loop_consumer:property:parent|Efl.Object.parent]] **(set)**.//===== Signature =====
+
+
+@property parent {
+ get {}
+ set {}
+ values {
+ parent: Efl.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_parent_get(const Eo *obj);
+void efl_parent_set(Eo *obj, Efl_Object *parent);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:property:parent|Efl.Object.parent]]
+ * [[:develop:api:efl:loop_handler:property:parent|Efl.Loop_Handler.parent]]
+ * [[:develop:api:efl:canvas:vg:node:property:parent|Efl.Canvas.Vg.Node.parent]]
+ * [[:develop:api:efl:canvas:vg:container:property:parent|Efl.Canvas.Vg.Container.parent]]
+ * [[:develop:api:efl:input:device:property:parent|Efl.Input.Device.parent]]
+ * [[:develop:api:efl:loop_consumer:property:parent|Efl.Loop_Consumer.parent]]
+ * [[:develop:api:efl:loop_fd:property:parent|Efl.Loop_Fd.parent]]
+ * [[:develop:api:efl:loop_timer:property:parent|Efl.Loop_Timer.parent]]
+ * [[:develop:api:efl:task:property:parent|Efl.Task.parent]]
+ * [[:develop:api:efl:thread:property:parent|Efl.Thread.parent]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop_timer/property/time_pending.txt b/public_html/data/pages/develop/api/efl/loop_timer/property/time_pending.txt
new file mode 100644
index 00000000..7d97ac5d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_timer/property/time_pending.txt
@@ -0,0 +1,27 @@
+~~Title: Efl.Loop_Timer.time_pending~~
+====== Efl.Loop_Timer.time_pending ======
+
+
+
+\\ {{page>:develop:api-include:efl:loop_timer:property:time_pending:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property time_pending {
+ get {
+ return: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_loop_timer_time_pending_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:loop_timer:property:time_pending|Efl.Loop_Timer.time_pending]]
+
diff --git a/public_html/data/pages/develop/api/efl/loop_timer/property/timer_interval.txt b/public_html/data/pages/develop/api/efl/loop_timer/property/timer_interval.txt
new file mode 100644
index 00000000..3b8919ba
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/loop_timer/property/timer_interval.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Loop_Timer.timer_interval~~
+====== Efl.Loop_Timer.timer_interval ======
+
+===== Description =====
+
+%%Interval the timer ticks on.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:loop_timer:property:timer_interval:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **in** - %%The new interval in seconds%%
+==== Setter ====
+
+%%If set during a timer call this will affect the next interval.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:loop_timer:property:timer_interval:getter_description&nouser&nolink&nodate}}
+
+
+===== Signature =====
+
+
+@property timer_interval {
+ get {}
+ set {}
+ values {
+ in: double (+1.000000);
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_loop_timer_interval_get(const Eo *obj);
+void efl_loop_timer_interval_set(Eo *obj, double in);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:loop_timer:property:timer_interval|Efl.Loop_Timer.timer_interval]]
+
diff --git a/public_html/data/pages/develop/api/efl/model.txt b/public_html/data/pages/develop/api/efl/model.txt
new file mode 100644
index 00000000..67245fdb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/model.txt
@@ -0,0 +1,84 @@
+~~Title: Efl.Model~~
+====== Efl.Model (interface) ======
+
+===== Description =====
+
+%%Basic Model abstraction.%%
+
+%%A model in EFL can have a set of key-value properties, where key can only be a string. The value can be anything within an Eina_Value. If a property is not yet available EAGAIN is returned.%%
+
+%%Additionally a model can have a list of children. The fetching of the children is asynchronous, this has the advantage of having as few data sets as possible in the memory itself.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:model:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:model:method:child_add|child_add]]**\\
+> %%Add a new child.%%
+
+Efl_Object *efl_model_child_add(Eo *obj);
+
+\\
+**[[:develop:api:efl:model:method:child_del|child_del]]**\\
+> %%Remove a child.%%
+
+void efl_model_child_del(Eo *obj, Efl_Object *child);
+
+\\
+**[[:develop:api:efl:model:property:children_count|children_count]]** //**(get)**//\\
+>
+
+unsigned int efl_model_children_count_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:model:method:children_slice_get|children_slice_get]]**\\
+> %%Get children slice OR full range.%%
+
+Eina_Future *efl_model_children_slice_get(Eo *obj, unsigned int start, unsigned int count);
+
+\\
+**[[:develop:api:efl:model:property:properties|properties]]** //**(get)**//\\
+>
+
+Eina_Iterator *efl_model_properties_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:model:property:property|property]]** //**(get, set)**//\\
+> %%No description supplied.%%
+
+Eina_Value *efl_model_property_get(const Eo *obj, const char *property);
+Eina_Future *efl_model_property_set(Eo *obj, const char *property, Eina_Value *value);
+
+\\
+**[[:develop:api:efl:model:method:property_ready_get|property_ready_get]]**\\
+> %%Get a future value when it changes to something that is not error:EAGAIN%%
+
+Eina_Future *efl_model_property_ready_get(Eo *obj, const char *property);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:model:event:child_added|child,added]]**\\
+> %%Event dispatched when new child is added.%%
+
+EFL_MODEL_EVENT_CHILD_ADDED(Efl_Model_Children_Event, @beta)
+
+\\ **[[:develop:api:efl:model:event:child_removed|child,removed]]**\\
+> %%Event dispatched when child is removed.%%
+
+EFL_MODEL_EVENT_CHILD_REMOVED(Efl_Model_Children_Event, @beta)
+
+\\ **[[:develop:api:efl:model:event:children_count_changed|children,count,changed]]**\\
+> %%Event dispatched when children count is finished.%%
+
+EFL_MODEL_EVENT_CHILDREN_COUNT_CHANGED(void)
+
+\\ **[[:develop:api:efl:model:event:properties_changed|properties,changed]]**\\
+> %%Event dispatched when properties list is available.%%
+
+EFL_MODEL_EVENT_PROPERTIES_CHANGED(Efl_Model_Property_Event)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/model/event/child_added.txt b/public_html/data/pages/develop/api/efl/model/event/child_added.txt
new file mode 100644
index 00000000..f4780e49
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/model/event/child_added.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Model: child,added~~
+
+===== Description =====
+
+%%Event dispatched when new child is added.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:model:event:child_added:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+child,added @beta: Efl.Model_Children_Event;
+
+
+===== C information =====
+
+
+EFL_MODEL_EVENT_CHILD_ADDED(Efl_Model_Children_Event, @beta)
+
+
+===== C usage =====
+
+
+static void
+on_efl_model_event_child_added(void *data, const Efl_Event *event)
+{
+ Efl_Model_Children_Event info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_MODEL_EVENT_CHILD_ADDED, on_efl_model_event_child_added, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/model/event/child_removed.txt b/public_html/data/pages/develop/api/efl/model/event/child_removed.txt
new file mode 100644
index 00000000..d732b560
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/model/event/child_removed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Model: child,removed~~
+
+===== Description =====
+
+%%Event dispatched when child is removed.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:model:event:child_removed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+child,removed @beta: Efl.Model_Children_Event;
+
+
+===== C information =====
+
+
+EFL_MODEL_EVENT_CHILD_REMOVED(Efl_Model_Children_Event, @beta)
+
+
+===== C usage =====
+
+
+static void
+on_efl_model_event_child_removed(void *data, const Efl_Event *event)
+{
+ Efl_Model_Children_Event info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_MODEL_EVENT_CHILD_REMOVED, on_efl_model_event_child_removed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/model/event/children_count_changed.txt b/public_html/data/pages/develop/api/efl/model/event/children_count_changed.txt
new file mode 100644
index 00000000..1f239609
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/model/event/children_count_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Model: children,count,changed~~
+
+===== Description =====
+
+%%Event dispatched when children count is finished.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:model:event:children_count_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+children,count,changed;
+
+
+===== C information =====
+
+
+EFL_MODEL_EVENT_CHILDREN_COUNT_CHANGED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_model_event_children_count_changed(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_MODEL_EVENT_CHILDREN_COUNT_CHANGED, on_efl_model_event_children_count_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/model/event/properties_changed.txt b/public_html/data/pages/develop/api/efl/model/event/properties_changed.txt
new file mode 100644
index 00000000..ecf831be
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/model/event/properties_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Model: properties,changed~~
+
+===== Description =====
+
+%%Event dispatched when properties list is available.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:model:event:properties_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+properties,changed: Efl.Model_Property_Event;
+
+
+===== C information =====
+
+
+EFL_MODEL_EVENT_PROPERTIES_CHANGED(Efl_Model_Property_Event)
+
+
+===== C usage =====
+
+
+static void
+on_efl_model_event_properties_changed(void *data, const Efl_Event *event)
+{
+ Efl_Model_Property_Event info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_MODEL_EVENT_PROPERTIES_CHANGED, on_efl_model_event_properties_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/model/method/child_add.txt b/public_html/data/pages/develop/api/efl/model/method/child_add.txt
new file mode 100644
index 00000000..5f809977
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/model/method/child_add.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Model.child_add~~
+====== Efl.Model.child_add ======
+
+===== Description =====
+
+%%Add a new child.%%
+
+%%Add a new child, possibly dummy, depending on the implementation, of a internal keeping. When the child is effectively added the event %%[[:develop:api:efl:model:event:child,added|Efl.Model.child,added]]%% is then raised and the new child is kept along with other children.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:model:method:child_add:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+child_add @pure_virtual {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_model_child_add(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:model:method:child_add|Efl.Model.child_add]]
+ * [[:develop:api:efl:mono_model_internal_child:method:child_add|Efl.Mono_Model_Internal_Child.child_add]]
+ * [[:develop:api:efl:mono_model_internal:method:child_add|Efl.Mono_Model_Internal.child_add]]
+ * [[:develop:api:eldbus:model:method:child_add|Eldbus.Model.child_add]]
+ * [[:develop:api:efl:composite_model:method:child_add|Efl.Composite_Model.child_add]]
+ * [[:develop:api:efl:io:model:method:child_add|Efl.Io.Model.child_add]]
+ * [[:develop:api:efl:generic_model:method:child_add|Efl.Generic_Model.child_add]]
+
diff --git a/public_html/data/pages/develop/api/efl/model/method/child_del.txt b/public_html/data/pages/develop/api/efl/model/method/child_del.txt
new file mode 100644
index 00000000..e45dd825
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/model/method/child_del.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Model.child_del~~
+====== Efl.Model.child_del ======
+
+===== Description =====
+
+%%Remove a child.%%
+
+%%Remove a child of a internal keeping. When the child is effectively removed the event %%[[:develop:api:efl:model:event:child,removed|Efl.Model.child,removed]]%% is then raised to give a chance for listeners to perform any cleanup and/or update references.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:model:method:child_del:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+child_del @pure_virtual {
+ params {
+ @in child: Efl.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_model_child_del(Eo *obj, Efl_Object *child);
+
+
+===== Parameters =====
+
+ * **child** //(in)// - %%Child to be removed%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:model:method:child_del|Efl.Model.child_del]]
+ * [[:develop:api:eldbus:model:method:child_del|Eldbus.Model.child_del]]
+ * [[:develop:api:efl:composite_model:method:child_del|Efl.Composite_Model.child_del]]
+ * [[:develop:api:efl:io:model:method:child_del|Efl.Io.Model.child_del]]
+ * [[:develop:api:efl:generic_model:method:child_del|Efl.Generic_Model.child_del]]
+
diff --git a/public_html/data/pages/develop/api/efl/model/method/children_slice_get.txt b/public_html/data/pages/develop/api/efl/model/method/children_slice_get.txt
new file mode 100644
index 00000000..8ea144b2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/model/method/children_slice_get.txt
@@ -0,0 +1,61 @@
+~~Title: Efl.Model.children_slice_get~~
+====== Efl.Model.children_slice_get ======
+
+===== Description =====
+
+%%Get children slice OR full range.%%
+
+%%%%[[:develop:api:efl:model:method:children_slice_get|Efl.Model.children_slice_get]]%% behaves in two different ways, it may provide the slice if %%''count''%% is non-zero OR full range otherwise.%%
+
+%%Since 'slice' is a range, for example if we have 20 children a slice could be the range from 3(start) with 4(count), see:%%
+
+%%child 0 [no] child 1 [no] child 2 [no] child 3 [yes] child 4 [yes] child 5 [yes] child 6 [yes] child 7 [no]%%
+
+%%Optionally the user can call %%[[:develop:api:efl:model:property:children_count|Efl.Model.children_count.get]]%% to know the number of children so a valid range can be known in advance.%%
+
+%%See %%[[:develop:api:efl:model:property:children_count|Efl.Model.children_count.get]]%%%%
+
+
+children_slice_get @pure_virtual {
+ params {
+ @in start: uint;
+ @in count: uint;
+ }
+ return: future>;
+}
+
+
+===== C signature =====
+
+
+Eina_Future *efl_model_children_slice_get(Eo *obj, unsigned int start, unsigned int count);
+
+
+===== Parameters =====
+
+ * **start** //(in)// - %%Range begin - start from here.%%
+ * **count** //(in)// - %%Range size. If count is 0, start is ignored.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:model:method:children_slice_get|Efl.Model.children_slice_get]]
+ * [[:develop:api:efl:mono_model_internal:method:children_slice_get|Efl.Mono_Model_Internal.children_slice_get]]
+ * [[:develop:api:eldbus:model:method:children_slice_get|Eldbus.Model.children_slice_get]]
+ * [[:develop:api:eldbus:model:connection:method:children_slice_get|Eldbus.Model.Connection.children_slice_get]]
+ * [[:develop:api:eldbus:model:proxy:method:children_slice_get|Eldbus.Model.Proxy.children_slice_get]]
+ * [[:develop:api:eldbus:model:object:method:children_slice_get|Eldbus.Model.Object.children_slice_get]]
+ * [[:develop:api:efl:composite_model:method:children_slice_get|Efl.Composite_Model.children_slice_get]]
+ * [[:develop:api:efl:ui:view_model:method:children_slice_get|Efl.Ui.View_Model.children_slice_get]]
+ * [[:develop:api:efl:filter_model:method:children_slice_get|Efl.Filter_Model.children_slice_get]]
+ * [[:develop:api:efl:io:model:method:children_slice_get|Efl.Io.Model.children_slice_get]]
+ * [[:develop:api:efl:generic_model:method:children_slice_get|Efl.Generic_Model.children_slice_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/model/method/property_ready_get.txt b/public_html/data/pages/develop/api/efl/model/method/property_ready_get.txt
new file mode 100644
index 00000000..3efc8993
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/model/method/property_ready_get.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Model.property_ready_get~~
+====== Efl.Model.property_ready_get ======
+
+===== Description =====
+
+%%Get a future value when it changes to something that is not error:EAGAIN%%
+
+%%%%[[:develop:api:efl:model:property:property|Efl.Model.property.get]]%% can return an error with code EAGAIN when it doesn't have any meaningful value. To make life easier, this future will resolve when the error:EAGAIN disappears. Either into a failed future in case the error code changed to something else or a success with the value of the property whenever the property finally changes.%%
+
+%%The future can also be canceled if the model itself gets destroyed.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:model:method:property_ready_get:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+property_ready_get @pure_virtual {
+ params {
+ @in property: string;
+ }
+ return: future;
+}
+
+
+===== C signature =====
+
+
+Eina_Future *efl_model_property_ready_get(Eo *obj, const char *property);
+
+
+===== Parameters =====
+
+ * **property** //(in)// - %%Property name.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:model:method:property_ready_get|Efl.Model.property_ready_get]]
+ * [[:develop:api:efl:loop_model:method:property_ready_get|Efl.Loop_Model.property_ready_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/model/property/children_count.txt b/public_html/data/pages/develop/api/efl/model/property/children_count.txt
new file mode 100644
index 00000000..17ecde10
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/model/property/children_count.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Model.children_count~~
+====== Efl.Model.children_count ======
+
+===== Values =====
+
+ * **count** - %%Current known children count%%
+
+
+\\ {{page>:develop:api-include:efl:model:property:children_count:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property children_count @pure_virtual {
+ get {}
+ values {
+ count: uint;
+ }
+}
+
+
+===== C signature =====
+
+
+unsigned int efl_model_children_count_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:model:property:children_count|Efl.Model.children_count]]
+ * [[:develop:api:efl:mono_model_internal:property:children_count|Efl.Mono_Model_Internal.children_count]]
+ * [[:develop:api:eldbus:model:property:children_count|Eldbus.Model.children_count]]
+ * [[:develop:api:eldbus:model:connection:property:children_count|Eldbus.Model.Connection.children_count]]
+ * [[:develop:api:eldbus:model:proxy:property:children_count|Eldbus.Model.Proxy.children_count]]
+ * [[:develop:api:eldbus:model:object:property:children_count|Eldbus.Model.Object.children_count]]
+ * [[:develop:api:efl:composite_model:property:children_count|Efl.Composite_Model.children_count]]
+ * [[:develop:api:efl:container_model:property:children_count|Efl.Container_Model.children_count]]
+ * [[:develop:api:efl:filter_model:property:children_count|Efl.Filter_Model.children_count]]
+ * [[:develop:api:efl:io:model:property:children_count|Efl.Io.Model.children_count]]
+ * [[:develop:api:efl:generic_model:property:children_count|Efl.Generic_Model.children_count]]
+
diff --git a/public_html/data/pages/develop/api/efl/model/property/properties.txt b/public_html/data/pages/develop/api/efl/model/property/properties.txt
new file mode 100644
index 00000000..1dd8b17b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/model/property/properties.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.Model.properties~~
+====== Efl.Model.properties ======
+
+===== Values =====
+
+ * **properties** - %%Array of current properties%%
+
+
+\\ {{page>:develop:api-include:efl:model:property:properties:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property properties @pure_virtual {
+ get {}
+ values {
+ properties: iterator;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_model_properties_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:model:property:properties|Efl.Model.properties]]
+ * [[:develop:api:efl:mono_model_internal_child:property:properties|Efl.Mono_Model_Internal_Child.properties]]
+ * [[:develop:api:efl:mono_model_internal:property:properties|Efl.Mono_Model_Internal.properties]]
+ * [[:develop:api:eldbus:model:property:properties|Eldbus.Model.properties]]
+ * [[:develop:api:eldbus:model:proxy:property:properties|Eldbus.Model.Proxy.properties]]
+ * [[:develop:api:eldbus:model:arguments:property:properties|Eldbus.Model.Arguments.properties]]
+ * [[:develop:api:efl:composite_model:property:properties|Efl.Composite_Model.properties]]
+ * [[:develop:api:efl:boolean_model:property:properties|Efl.Boolean_Model.properties]]
+ * [[:develop:api:efl:ui:select_model:property:properties|Efl.Ui.Select_Model.properties]]
+ * [[:develop:api:efl:container_model:property:properties|Efl.Container_Model.properties]]
+ * [[:develop:api:efl:ui:view_model:property:properties|Efl.Ui.View_Model.properties]]
+ * [[:develop:api:efl:ui:size_model:property:properties|Efl.Ui.Size_Model.properties]]
+ * [[:develop:api:efl:io:model:property:properties|Efl.Io.Model.properties]]
+ * [[:develop:api:efl:generic_model:property:properties|Efl.Generic_Model.properties]]
+
diff --git a/public_html/data/pages/develop/api/efl/model/property/property.txt b/public_html/data/pages/develop/api/efl/model/property/property.txt
new file mode 100644
index 00000000..700b7cb9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/model/property/property.txt
@@ -0,0 +1,91 @@
+~~Title: Efl.Model.property~~
+====== Efl.Model.property ======
+
+===== Description =====
+
+%%No description supplied.%%
+
+//Since 1.23//
+
+
+{{page>:develop:api-include:efl:model:property:property:description&nouser&nolink&nodate}}
+
+===== Keys =====
+
+ * **property** - %%Property name%%
+===== Values =====
+
+ * **value** - %%Property value%%
+==== Getter ====
+
+%%Retrieve the value of a given property name.%%
+
+%%At this point the caller is free to get values from properties. The event %%[[:develop:api:efl:model:event:properties,changed|Efl.Model.properties,changed]]%% may be raised to notify listeners of the property/value.%%
+
+%%See %%[[:develop:api:efl:model:property:properties|Efl.Model.properties.get]]%%, %%[[:develop:api:efl:model:event:properties,changed|Efl.Model.properties,changed]]%%%%
+
+//Since 1.23//
+
+
+{{page>:develop:api-include:efl:model:property:property:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Set a property value of a given property name.%%
+
+%%The caller must first read %%[[:develop:api:efl:model:property:properties|Efl.Model.properties]]%% to obtain the list of available properties before being able to access them through %%[[:develop:api:efl:model:property:property|Efl.Model.property]]%%. This function sets a new property value into given property name. Once the operation is completed the concrete implementation should raise %%[[:develop:api:efl:model:event:properties,changed|Efl.Model.properties,changed]]%% event in order to notify listeners of the new value of the property.%%
+
+%%If the model doesn't have the property then there are two possibilities, either raise an error or create the new property in model%%
+
+%%See %%[[:develop:api:efl:model:property:property|Efl.Model.property.get]]%%, %%[[:develop:api:efl:model:event:properties,changed|Efl.Model.properties,changed]]%%%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:model:property:property:getter_description&nouser&nolink&nodate}}
+
+
+===== Signature =====
+
+
+@property property @pure_virtual {
+ get {}
+ set {
+ return: future;
+ }
+ keys {
+ property: string;
+ }
+ values {
+ value: any_value_ref;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Value *efl_model_property_get(const Eo *obj, const char *property);
+Eina_Future *efl_model_property_set(Eo *obj, const char *property, Eina_Value *value);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:model:property:property|Efl.Model.property]]
+ * [[:develop:api:efl:mono_model_internal_child:property:property|Efl.Mono_Model_Internal_Child.property]]
+ * [[:develop:api:efl:mono_model_internal:property:property|Efl.Mono_Model_Internal.property]]
+ * [[:develop:api:efl:loop_model:property:property|Efl.Loop_Model.property]]
+ * [[:develop:api:eldbus:model:property:property|Eldbus.Model.property]]
+ * [[:develop:api:eldbus:model:proxy:property:property|Eldbus.Model.Proxy.property]]
+ * [[:develop:api:eldbus:model:arguments:property:property|Eldbus.Model.Arguments.property]]
+ * [[:develop:api:efl:composite_model:property:property|Efl.Composite_Model.property]]
+ * [[:develop:api:efl:boolean_model:property:property|Efl.Boolean_Model.property]]
+ * [[:develop:api:efl:ui:select_model:property:property|Efl.Ui.Select_Model.property]]
+ * [[:develop:api:efl:ui:state_model:property:property|Efl.Ui.State_Model.property]]
+ * [[:develop:api:efl:container_model:property:property|Efl.Container_Model.property]]
+ * [[:develop:api:efl:ui:view_model:property:property|Efl.Ui.View_Model.property]]
+ * [[:develop:api:efl:ui:homogeneous_model:property:property|Efl.Ui.Homogeneous_Model.property]]
+ * [[:develop:api:efl:ui:exact_model:property:property|Efl.Ui.Exact_Model.property]]
+ * [[:develop:api:efl:ui:average_model:property:property|Efl.Ui.Average_Model.property]]
+ * [[:develop:api:efl:filter_model:property:property|Efl.Filter_Model.property]]
+ * [[:develop:api:efl:io:model:property:property|Efl.Io.Model.property]]
+ * [[:develop:api:efl:generic_model:property:property|Efl.Generic_Model.property]]
+
diff --git a/public_html/data/pages/develop/api/efl/model_changed_event.txt b/public_html/data/pages/develop/api/efl/model_changed_event.txt
new file mode 100644
index 00000000..6d9c7575
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/model_changed_event.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Model_Changed_Event~~
+
+===== Description =====
+
+%%Every time the model is changed on the object.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:model_changed_event:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:model_changed_event:fields&nouser&nolink&nodate}}
+
+ * **current** - %%The newly set model.%%
+ * **previous** - %%The previously set model.%%
+
+===== Signature =====
+
+
+struct Efl.Model_Changed_Event {
+ current: Efl.Model;
+ previous: Efl.Model;
+}
+
+
+===== C signature =====
+
+
+typedef struct _Efl_Model_Changed_Event {
+ Efl_Model *current;
+ Efl_Model *previous;
+} Efl_Model_Changed_Event;
+
diff --git a/public_html/data/pages/develop/api/efl/model_property_event.txt b/public_html/data/pages/develop/api/efl/model_property_event.txt
new file mode 100644
index 00000000..1fd69cb2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/model_property_event.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Model_Property_Event~~
+
+===== Description =====
+
+%%EFL model property event data structure%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:model_property_event:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:model_property_event:fields&nouser&nolink&nodate}}
+
+ * **changed_properties** - %%List of changed properties%%
+ * **invalidated_properties** - %%Removed properties identified by name%%
+
+===== Signature =====
+
+
+struct Efl.Model_Property_Event {
+ changed_properties: array;
+ invalidated_properties: array;
+}
+
+
+===== C signature =====
+
+
+typedef struct _Efl_Model_Property_Event {
+ Eina_Array *changed_properties;
+ Eina_Array *invalidated_properties;
+} Efl_Model_Property_Event;
+
diff --git a/public_html/data/pages/develop/api/efl/object.txt b/public_html/data/pages/develop/api/efl/object.txt
new file mode 100644
index 00000000..a11f0432
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object.txt
@@ -0,0 +1,229 @@
+~~Title: Efl.Object~~
+====== Efl.Object (class) ======
+
+===== Description =====
+
+%%Abstract EFL object class.%%
+
+%%All EFL objects inherit from this class, which provides basic functionality like naming, debugging, hierarchy traversal, event emission and life cycle management.%%
+
+%%Life Cycle Objects are created with efl_add() and mostly disposed of with efl_del(). As an optimization, efl_add() accepts a list of initialization functions which the programmer can use to further customize the object before it is fully constructed. Also, objects can have a parent which will keep them alive as long as the parent is alive, so the programmer does not need to keep track of references. (See the %%[[:develop:api:efl:object:property:parent|Efl.Object.parent]]%% property for details). Due to the above characteristics, EFL objects undergo the following phases during their Life Cycle: - Construction: The %%[[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]%% method is called. Afterwards, any user-supplied initialization methods are called. - Finalization: The %%[[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]%% method is called and %%[[:develop:api:efl:object:property:finalized|Efl.Object.finalized]]%% is set to %%''true''%% when it returns. Object is usable at this point. - Invalidation: The object has lost its parent. The %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% method is called so all the object's relationships can be terminated. %%[[:develop:api:efl:object:property:invalidated|Efl.Object.invalidated]]%% is set to %%''true''%%. - Destruction: The object has no parent and it can be destroyed. The %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%% method is called, use it to return any resources the object might have gathered during its life.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:object:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**//\\
+> %%Allow an object to be deleted by unref even if it has a parent.%%
+
+Eina_Bool efl_allow_parent_unref_get(const Eo *obj);
+void efl_allow_parent_unref_set(Eo *obj, Eina_Bool allow);
+
+\\
+**[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]**\\
+> %%Get an iterator on all children.%%
+
+Eina_Iterator *efl_children_iterator_new(Eo *obj);
+
+\\
+**[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**//\\
+> %%A human readable comment for the object.%%
+
+const char *efl_comment_get(const Eo *obj);
+void efl_comment_set(Eo *obj, const char *comment);
+
+\\
+**[[:develop:api:efl:object:method:composite_attach|composite_attach]]**\\
+> %%Make an object a composite object of another.%%
+
+Eina_Bool efl_composite_attach(Eo *obj, Efl_Object *comp_obj);
+
+\\
+**[[:develop:api:efl:object:method:composite_detach|composite_detach]]**\\
+> %%Detach a composite object from another object.%%
+
+Eina_Bool efl_composite_detach(Eo *obj, Efl_Object *comp_obj);
+
+\\
+**[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]**\\
+> %%Check if an object is part of a composite object.%%
+
+Eina_Bool efl_composite_part_is(Eo *obj);
+
+\\
+**[[:develop:api:efl:object:method:constructor|constructor]]**\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]**\\
+> %%Build a read-only name for this object used for debugging.%%
+
+void efl_debug_name_override(Eo *obj, Eina_Strbuf *sb);
+
+\\
+**[[:develop:api:efl:object:method:destructor|destructor]]**\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]**\\
+> %%Remove an event callback forwarder for a specified event and object.%%
+
+void efl_event_callback_forwarder_del(Eo *obj, const Efl_Event_Description desc, Efl_Object *new_obj);
+
+\\
+**[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]**\\
+> %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%%
+
+void efl_event_callback_forwarder_priority_add(Eo *obj, const Efl_Event_Description desc, Efl_Callback_Priority priority, Efl_Object *source);
+
+\\
+**[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]**\\
+> %%Stop the current callback call.%%
+
+void efl_event_callback_stop(Eo *obj);
+
+\\
+**[[:develop:api:efl:object:method:event_freeze|event_freeze]]**\\
+> %%Freeze events of this object.%%
+
+void efl_event_freeze(Eo *obj);
+
+\\
+**[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**//\\
+>
+
+int efl_event_freeze_count_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** ''static''\\
+> %%Globally freeze events for ALL EFL OBJECTS.%%
+
+void efl_event_global_freeze();
+
+\\
+**[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// ''static''\\
+>
+
+int efl_event_global_freeze_count_get();
+
+\\
+**[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** ''static''\\
+> %%Globally thaw events for ALL EFL OBJECTS.%%
+
+void efl_event_global_thaw();
+
+\\
+**[[:develop:api:efl:object:method:event_thaw|event_thaw]]**\\
+> %%Thaw events of object.%%
+
+void efl_event_thaw(Eo *obj);
+
+\\
+**[[:develop:api:efl:object:method:finalize|finalize]]**\\
+> %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+Efl_Object *efl_finalize(Eo *obj);
+
+\\
+**[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**//\\
+>
+
+Eina_Bool efl_finalized_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:object:method:invalidate|invalidate]]**\\
+> %%Implement this method to perform special actions when your object loses its parent, if you need to.%%
+
+void efl_invalidate(Eo *obj);
+
+\\
+**[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**//\\
+>
+
+Eina_Bool efl_invalidated_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**//\\
+>
+
+Eina_Bool efl_invalidating_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:object:property:name|name]]** //**(get, set)**//\\
+> %%The name of the object.%%
+
+const char *efl_name_get(const Eo *obj);
+void efl_name_set(Eo *obj, const char *name);
+
+\\
+**[[:develop:api:efl:object:method:name_find|name_find]]**\\
+> %%Find a child object with the given name and return it.%%
+
+Efl_Object *efl_name_find(const Eo *obj, const char *search);
+
+\\
+**[[:develop:api:efl:object:property:parent|parent]]** //**(get, set)**//\\
+> %%The parent of an object.%%
+
+Efl_Object *efl_parent_get(const Eo *obj);
+void efl_parent_set(Eo *obj, Efl_Object *parent);
+
+\\
+**[[:develop:api:efl:object:method:provider_find|provider_find]]**\\
+> %%Searches upwards in the object tree for a provider which knows the given class/interface.%%
+
+Efl_Object *efl_provider_find(const Eo *obj, const Efl_Class *klass);
+
+\\
+**[[:develop:api:efl:object:method:provider_register|provider_register]]**\\
+> %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%%
+
+Eina_Bool efl_provider_register(Eo *obj, const Efl_Class *klass, const Efl_Object *provider);
+
+\\
+**[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]**\\
+> %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%%
+
+Eina_Bool efl_provider_unregister(Eo *obj, const Efl_Class *klass, const Efl_Object *provider);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:object:event:del|del]]**\\
+> %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%%
+
+EFL_EVENT_DEL(void, @hot)
+
+\\ **[[:develop:api:efl:object:event:destruct|destruct]]**\\
+> %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%%
+
+EFL_EVENT_DESTRUCT(void, @hot)
+
+\\ **[[:develop:api:efl:object:event:invalidate|invalidate]]**\\
+> %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%%
+
+EFL_EVENT_INVALIDATE(void, @hot)
+
+\\ **[[:develop:api:efl:object:event:noref|noref]]**\\
+> %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%%
+
+EFL_EVENT_NOREF(void, @hot)
+
+\\ **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]**\\
+> %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%%
+
+EFL_EVENT_OWNERSHIP_SHARED(void, @hot)
+
+\\ **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]**\\
+> %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%%
+
+EFL_EVENT_OWNERSHIP_UNIQUE(void, @hot)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/object/event/del.txt b/public_html/data/pages/develop/api/efl/object/event/del.txt
new file mode 100644
index 00000000..43daa261
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/event/del.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Object: del~~
+
+===== Description =====
+
+%%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:object:event:del:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+del @hot;
+
+
+===== C information =====
+
+
+EFL_EVENT_DEL(void, @hot)
+
+
+===== C usage =====
+
+
+static void
+on_efl_event_del(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_EVENT_DEL, on_efl_event_del, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/object/event/destruct.txt b/public_html/data/pages/develop/api/efl/object/event/destruct.txt
new file mode 100644
index 00000000..376e3e4f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/event/destruct.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Object: destruct~~
+
+===== Description =====
+
+%%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:object:event:destruct:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+destruct @hot;
+
+
+===== C information =====
+
+
+EFL_EVENT_DESTRUCT(void, @hot)
+
+
+===== C usage =====
+
+
+static void
+on_efl_event_destruct(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_EVENT_DESTRUCT, on_efl_event_destruct, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/object/event/invalidate.txt b/public_html/data/pages/develop/api/efl/object/event/invalidate.txt
new file mode 100644
index 00000000..1e341ff0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/event/invalidate.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Object: invalidate~~
+
+===== Description =====
+
+%%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:object:event:invalidate:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+invalidate @hot;
+
+
+===== C information =====
+
+
+EFL_EVENT_INVALIDATE(void, @hot)
+
+
+===== C usage =====
+
+
+static void
+on_efl_event_invalidate(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_EVENT_INVALIDATE, on_efl_event_invalidate, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/object/event/noref.txt b/public_html/data/pages/develop/api/efl/object/event/noref.txt
new file mode 100644
index 00000000..768a9837
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/event/noref.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Object: noref~~
+
+===== Description =====
+
+%%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:object:event:noref:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+noref @hot;
+
+
+===== C information =====
+
+
+EFL_EVENT_NOREF(void, @hot)
+
+
+===== C usage =====
+
+
+static void
+on_efl_event_noref(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_EVENT_NOREF, on_efl_event_noref, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/object/event/ownership_shared.txt b/public_html/data/pages/develop/api/efl/object/event/ownership_shared.txt
new file mode 100644
index 00000000..1cdb3580
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/event/ownership_shared.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Object: ownership,shared~~
+
+===== Description =====
+
+%%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:object:event:ownership_shared:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+ownership,shared @hot;
+
+
+===== C information =====
+
+
+EFL_EVENT_OWNERSHIP_SHARED(void, @hot)
+
+
+===== C usage =====
+
+
+static void
+on_efl_event_ownership_shared(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_EVENT_OWNERSHIP_SHARED, on_efl_event_ownership_shared, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/object/event/ownership_unique.txt b/public_html/data/pages/develop/api/efl/object/event/ownership_unique.txt
new file mode 100644
index 00000000..431e5748
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/event/ownership_unique.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Object: ownership,unique~~
+
+===== Description =====
+
+%%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:object:event:ownership_unique:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+ownership,unique @hot;
+
+
+===== C information =====
+
+
+EFL_EVENT_OWNERSHIP_UNIQUE(void, @hot)
+
+
+===== C usage =====
+
+
+static void
+on_efl_event_ownership_unique(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_EVENT_OWNERSHIP_UNIQUE, on_efl_event_ownership_unique, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/object/method/children_iterator_new.txt b/public_html/data/pages/develop/api/efl/object/method/children_iterator_new.txt
new file mode 100644
index 00000000..3c10bc24
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/method/children_iterator_new.txt
@@ -0,0 +1,28 @@
+~~Title: Efl.Object.children_iterator_new~~
+====== Efl.Object.children_iterator_new ======
+
+===== Description =====
+
+%%Get an iterator on all children.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:object:method:children_iterator_new:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+children_iterator_new {
+ return: iterator @no_unused;
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_children_iterator_new(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:children_iterator_new|Efl.Object.children_iterator_new]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/method/composite_attach.txt b/public_html/data/pages/develop/api/efl/object/method/composite_attach.txt
new file mode 100644
index 00000000..f918849d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/method/composite_attach.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Object.composite_attach~~
+====== Efl.Object.composite_attach ======
+
+===== Description =====
+
+%%Make an object a composite object of another.%%
+
+%%The class of comp_obj must be part of the extensions of the class of the parent. It isn't possible to attach more then 1 composite of the same class. This function also sets the parent of comp_obj to parent.%%
+
+%%See %%[[:develop:api:efl:object:method:composite_detach|Efl.Object.composite_detach]]%%, %%[[:develop:api:efl:object:method:composite_part_is|Efl.Object.composite_part_is]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:object:method:composite_attach:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+composite_attach @beta {
+ params {
+ @in comp_obj: Efl.Object;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_composite_attach(Eo *obj, Efl_Object *comp_obj);
+
+
+===== Parameters =====
+
+ * **comp_obj** //(in)// - %%the object that will be used to composite the parent.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:composite_attach|Efl.Object.composite_attach]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/method/composite_detach.txt b/public_html/data/pages/develop/api/efl/object/method/composite_detach.txt
new file mode 100644
index 00000000..b368938d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/method/composite_detach.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Object.composite_detach~~
+====== Efl.Object.composite_detach ======
+
+===== Description =====
+
+%%Detach a composite object from another object.%%
+
+%%This functions also sets the parent of comp_obj to %%''null''%%.%%
+
+%%See %%[[:develop:api:efl:object:method:composite_attach|Efl.Object.composite_attach]]%%, %%[[:develop:api:efl:object:method:composite_part_is|Efl.Object.composite_part_is]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:object:method:composite_detach:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+composite_detach @beta {
+ params {
+ @in comp_obj: Efl.Object;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_composite_detach(Eo *obj, Efl_Object *comp_obj);
+
+
+===== Parameters =====
+
+ * **comp_obj** //(in)// - %%The object that will be removed from the parent.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:composite_detach|Efl.Object.composite_detach]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/method/composite_part_is.txt b/public_html/data/pages/develop/api/efl/object/method/composite_part_is.txt
new file mode 100644
index 00000000..7b3e8c36
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/method/composite_part_is.txt
@@ -0,0 +1,30 @@
+~~Title: Efl.Object.composite_part_is~~
+====== Efl.Object.composite_part_is ======
+
+===== Description =====
+
+%%Check if an object is part of a composite object.%%
+
+%%See %%[[:develop:api:efl:object:method:composite_attach|Efl.Object.composite_attach]]%%, %%[[:develop:api:efl:object:method:composite_part_is|Efl.Object.composite_part_is]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:object:method:composite_part_is:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+composite_part_is @beta {
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_composite_part_is(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:composite_part_is|Efl.Object.composite_part_is]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/method/constructor.txt b/public_html/data/pages/develop/api/efl/object/method/constructor.txt
new file mode 100644
index 00000000..4076bfad
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Object.constructor~~
+====== Efl.Object.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:object:method:constructor:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/method/debug_name_override.txt b/public_html/data/pages/develop/api/efl/object/method/debug_name_override.txt
new file mode 100644
index 00000000..e81be75f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/method/debug_name_override.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Object.debug_name_override~~
+====== Efl.Object.debug_name_override ======
+
+===== Description =====
+
+%%Build a read-only name for this object used for debugging.%%
+
+%%Multiple calls using efl_super() can be chained in order to build the entire debug name, from parent to child classes. In C the usual way to build the string is as follows:%%
+
+%%efl_debug_name_override(efl_super(obj, MY_CLASS), sb); eina_strbuf_append_printf(sb, "new_information");%%
+
+%%Usually more debug information should be added to %%''sb''%% after calling the super function.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:object:method:debug_name_override:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+debug_name_override {
+ params {
+ @in sb: strbuf;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_debug_name_override(Eo *obj, Eina_Strbuf *sb);
+
+
+===== Parameters =====
+
+ * **sb** //(in)// - %%A string buffer, must not be %%''null''%%.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:debug_name_override|Efl.Object.debug_name_override]]
+ * [[:develop:api:efl:canvas:object:method:debug_name_override|Efl.Canvas.Object.debug_name_override]]
+ * [[:develop:api:efl:canvas:image_internal:method:debug_name_override|Efl.Canvas.Image_Internal.debug_name_override]]
+ * [[:develop:api:efl:canvas:group:method:debug_name_override|Efl.Canvas.Group.debug_name_override]]
+ * [[:develop:api:efl:canvas:layout:method:debug_name_override|Efl.Canvas.Layout.debug_name_override]]
+ * [[:develop:api:efl:ui:widget:method:debug_name_override|Efl.Ui.Widget.debug_name_override]]
+ * [[:develop:api:efl:ui:win:method:debug_name_override|Efl.Ui.Win.debug_name_override]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/method/destructor.txt b/public_html/data/pages/develop/api/efl/object/method/destructor.txt
new file mode 100644
index 00000000..62b96952
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Object.destructor~~
+====== Efl.Object.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:object:method:destructor:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/method/event_callback_forwarder_del.txt b/public_html/data/pages/develop/api/efl/object/method/event_callback_forwarder_del.txt
new file mode 100644
index 00000000..ca8cd146
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/method/event_callback_forwarder_del.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Object.event_callback_forwarder_del~~
+====== Efl.Object.event_callback_forwarder_del ======
+
+===== Description =====
+
+%%Remove an event callback forwarder for a specified event and object.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:object:method:event_callback_forwarder_del:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+event_callback_forwarder_del {
+ params {
+ @in desc: const(Efl.Event_Description);
+ @in new_obj: Efl.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_event_callback_forwarder_del(Eo *obj, const Efl_Event_Description desc, Efl_Object *new_obj);
+
+
+===== Parameters =====
+
+ * **desc** //(in)// - %%The description of the event to listen to%%
+ * **new_obj** //(in)// - %%The object to emit events from%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:event_callback_forwarder_del|Efl.Object.event_callback_forwarder_del]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/method/event_callback_forwarder_priority_add.txt b/public_html/data/pages/develop/api/efl/object/method/event_callback_forwarder_priority_add.txt
new file mode 100644
index 00000000..0b72d8dd
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/method/event_callback_forwarder_priority_add.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Object.event_callback_forwarder_priority_add~~
+====== Efl.Object.event_callback_forwarder_priority_add ======
+
+===== Description =====
+
+%%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%%
+
+%%The event is unaffected on %%''source''%% and behave like any other event being propagated on any object and will trigger all the handler registered on %%''source''%% like nothing special happened.%%
+
+%%This allow object that hide internally another object to easily be able to propagate an event without the need to add custom handler.%%
+
+
+event_callback_forwarder_priority_add {
+ params {
+ @in desc: const(Efl.Event_Description);
+ @in priority: Efl.Callback_Priority;
+ @in source: Efl.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_event_callback_forwarder_priority_add(Eo *obj, const Efl_Event_Description desc, Efl_Callback_Priority priority, Efl_Object *source);
+
+
+===== Parameters =====
+
+ * **desc** //(in)// - %%The description of the event to listen to%%
+ * **priority** //(in)// - %%The priority at which to insert the event forwarder handler in the existing list of handler on the source of event object. The lower the number, the higher the priority. As a shortcut %%[[:develop:api:efl:callback_priority_before|Efl.Callback_Priority_Before]]%%, %%[[:develop:api:efl:callback_priority_default|Efl.Callback_Priority_Default]]%% and %%[[:develop:api:efl:callback_priority_after|Efl.Callback_Priority_After]]%% can be used. See %%[[:develop:api:efl:callback_priority|Efl.Callback_Priority]]%% for more details.%%
+ * **source** //(in)// - %%The object which emits the initial event%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:event_callback_forwarder_priority_add|Efl.Object.event_callback_forwarder_priority_add]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/method/event_callback_stop.txt b/public_html/data/pages/develop/api/efl/object/method/event_callback_stop.txt
new file mode 100644
index 00000000..6ca5d8ad
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/method/event_callback_stop.txt
@@ -0,0 +1,28 @@
+~~Title: Efl.Object.event_callback_stop~~
+====== Efl.Object.event_callback_stop ======
+
+===== Description =====
+
+%%Stop the current callback call.%%
+
+%%This stops the current callback call. Any other callbacks for the current event will not be called. This is useful when you want to filter out events. Just add higher priority events and call this under certain conditions to block a certain event.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:object:method:event_callback_stop:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+event_callback_stop {}
+
+
+===== C signature =====
+
+
+void efl_event_callback_stop(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:event_callback_stop|Efl.Object.event_callback_stop]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/method/event_freeze.txt b/public_html/data/pages/develop/api/efl/object/method/event_freeze.txt
new file mode 100644
index 00000000..9fd99f0f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/method/event_freeze.txt
@@ -0,0 +1,30 @@
+~~Title: Efl.Object.event_freeze~~
+====== Efl.Object.event_freeze ======
+
+===== Description =====
+
+%%Freeze events of this object.%%
+
+%%Prevents event callbacks from being called for this object. Enable events again using %%[[:develop:api:efl:object:method:event_thaw|Efl.Object.event_thaw]]%%. Events marked %%''hot''%% cannot be stopped.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:object:method:event_freeze:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+event_freeze {}
+
+
+===== C signature =====
+
+
+void efl_event_freeze(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:event_freeze|Efl.Object.event_freeze]]
+ * [[:develop:api:efl:canvas:object:method:event_freeze|Efl.Canvas.Object.event_freeze]]
+ * [[:develop:api:efl:loop_timer:method:event_freeze|Efl.Loop_Timer.event_freeze]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/method/event_global_freeze.txt b/public_html/data/pages/develop/api/efl/object/method/event_global_freeze.txt
new file mode 100644
index 00000000..aec475b5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/method/event_global_freeze.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.Object.event_global_freeze~~
+====== Efl.Object.event_global_freeze ======
+
+===== Description =====
+
+%%Globally freeze events for ALL EFL OBJECTS.%%
+
+%%Prevents event callbacks from being called for all EFL objects. Enable events again using %%[[:develop:api:efl:object:method:event_global_thaw|Efl.Object.event_global_thaw]]%%. Events marked %%''hot''%% cannot be stopped.%%
+
+
+event_global_freeze @static {}
+
+
+===== C signature =====
+
+
+void efl_event_global_freeze();
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:event_global_freeze|Efl.Object.event_global_freeze]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/method/event_global_thaw.txt b/public_html/data/pages/develop/api/efl/object/method/event_global_thaw.txt
new file mode 100644
index 00000000..56e84540
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/method/event_global_thaw.txt
@@ -0,0 +1,28 @@
+~~Title: Efl.Object.event_global_thaw~~
+====== Efl.Object.event_global_thaw ======
+
+===== Description =====
+
+%%Globally thaw events for ALL EFL OBJECTS.%%
+
+%%Allows event callbacks to be called for all EFL objects after they have been disabled by %%[[:develop:api:efl:object:method:event_global_freeze|Efl.Object.event_global_freeze]]%%. The amount of thaws must match the amount of freezes for events to be re-enabled.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:object:method:event_global_thaw:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+event_global_thaw @static {}
+
+
+===== C signature =====
+
+
+void efl_event_global_thaw();
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:event_global_thaw|Efl.Object.event_global_thaw]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/method/event_thaw.txt b/public_html/data/pages/develop/api/efl/object/method/event_thaw.txt
new file mode 100644
index 00000000..8683ab5f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/method/event_thaw.txt
@@ -0,0 +1,30 @@
+~~Title: Efl.Object.event_thaw~~
+====== Efl.Object.event_thaw ======
+
+===== Description =====
+
+%%Thaw events of object.%%
+
+%%Allows event callbacks to be called again for this object after a call to %%[[:develop:api:efl:object:method:event_freeze|Efl.Object.event_freeze]]%%. The amount of thaws must match the amount of freezes for events to be re-enabled.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:object:method:event_thaw:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+event_thaw {}
+
+
+===== C signature =====
+
+
+void efl_event_thaw(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:event_thaw|Efl.Object.event_thaw]]
+ * [[:develop:api:efl:canvas:object:method:event_thaw|Efl.Canvas.Object.event_thaw]]
+ * [[:develop:api:efl:loop_timer:method:event_thaw|Efl.Loop_Timer.event_thaw]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/method/finalize.txt b/public_html/data/pages/develop/api/efl/object/method/finalize.txt
new file mode 100644
index 00000000..a3e0e39b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/method/finalize.txt
@@ -0,0 +1,91 @@
+~~Title: Efl.Object.finalize~~
+====== Efl.Object.finalize ======
+
+===== Description =====
+
+%%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+%%Use this method to delay expensive operations until user configuration has finished, to avoid building the object in a "default" state in the constructor, just to have to throw it all away because a user configuration (a property being set, for example) requires a different state. This is the last call inside efl_add() and will set %%[[:develop:api:efl:object:property:finalized|Efl.Object.finalized]]%% to %%''true''%% once it returns. This is an optimization and implementing this method is optional if you already perform all your initialization in the %%[[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]%% method. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:object:method:finalize:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+finalize {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_finalize(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]
+ * [[:develop:api:efl:loop_handler:method:finalize|Efl.Loop_Handler.finalize]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:finalize|Efl.Ui.Position_Manager.Grid.finalize]]
+ * [[:develop:api:efl:canvas:layout_part:method:finalize|Efl.Canvas.Layout_Part.finalize]]
+ * [[:develop:api:efl:net:server_udp_client:method:finalize|Efl.Net.Server_Udp_Client.finalize]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:finalize|Efl.Ui.Widget_Part_Bg.finalize]]
+ * [[:develop:api:efl:ui:layout_part_bg:method:finalize|Efl.Ui.Layout_Part_Bg.finalize]]
+ * [[:develop:api:efl:io:buffered_stream:method:finalize|Efl.Io.Buffered_Stream.finalize]]
+ * [[:develop:api:efl:net:dialer_simple:method:finalize|Efl.Net.Dialer_Simple.finalize]]
+ * [[:develop:api:efl:io:file:method:finalize|Efl.Io.File.finalize]]
+ * [[:develop:api:efl:net:server_fd:method:finalize|Efl.Net.Server_Fd.finalize]]
+ * [[:develop:api:efl:io:stderr:method:finalize|Efl.Io.Stderr.finalize]]
+ * [[:develop:api:efl:io:stdin:method:finalize|Efl.Io.Stdin.finalize]]
+ * [[:develop:api:efl:io:stdout:method:finalize|Efl.Io.Stdout.finalize]]
+ * [[:develop:api:efl:net:socket_fd:method:finalize|Efl.Net.Socket_Fd.finalize]]
+ * [[:develop:api:efl:net:socket_ssl:method:finalize|Efl.Net.Socket_Ssl.finalize]]
+ * [[:develop:api:efl:net:dialer_ssl:method:finalize|Efl.Net.Dialer_Ssl.finalize]]
+ * [[:develop:api:efl:canvas:object:method:finalize|Efl.Canvas.Object.finalize]]
+ * [[:develop:api:efl:canvas:image_internal:method:finalize|Efl.Canvas.Image_Internal.finalize]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:finalize|Efl.Ui.Internal.Text.Interactive.finalize]]
+ * [[:develop:api:efl:ui:widget:method:finalize|Efl.Ui.Widget.finalize]]
+ * [[:develop:api:efl:ui:win:method:finalize|Efl.Ui.Win.finalize]]
+ * [[:develop:api:efl:ui:win_socket:method:finalize|Efl.Ui.Win_Socket.finalize]]
+ * [[:develop:api:efl:ui:win_inlined:method:finalize|Efl.Ui.Win_Inlined.finalize]]
+ * [[:develop:api:efl:ui:layout_base:method:finalize|Efl.Ui.Layout_Base.finalize]]
+ * [[:develop:api:efl:ui:text:method:finalize|Efl.Ui.Text.finalize]]
+ * [[:develop:api:efl:ui:tab_bar:method:finalize|Efl.Ui.Tab_Bar.finalize]]
+ * [[:develop:api:efl:ui:item:method:finalize|Efl.Ui.Item.finalize]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:finalize|Efl.Ui.List_Placeholder_Item.finalize]]
+ * [[:develop:api:elm:code_widget:method:finalize|Elm.Code_Widget.finalize]]
+ * [[:develop:api:efl:ui:scroller:method:finalize|Efl.Ui.Scroller.finalize]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:finalize|Efl.Ui.Internal_Text_Scroller.finalize]]
+ * [[:develop:api:efl:ui:collection:method:finalize|Efl.Ui.Collection.finalize]]
+ * [[:develop:api:efl:ui:spotlight:container:method:finalize|Efl.Ui.Spotlight.Container.finalize]]
+ * [[:develop:api:efl:ui:tab_pager:method:finalize|Efl.Ui.Tab_Pager.finalize]]
+ * [[:develop:api:efl:ui:bg:method:finalize|Efl.Ui.Bg.finalize]]
+ * [[:develop:api:efl:canvas:vg:object:method:finalize|Efl.Canvas.Vg.Object.finalize]]
+ * [[:develop:api:efl:loop_timer:method:finalize|Efl.Loop_Timer.finalize]]
+ * [[:develop:api:eldbus:model:method:finalize|Eldbus.Model.finalize]]
+ * [[:develop:api:eldbus:model:proxy:method:finalize|Eldbus.Model.Proxy.finalize]]
+ * [[:develop:api:eldbus:model:arguments:method:finalize|Eldbus.Model.Arguments.finalize]]
+ * [[:develop:api:eldbus:model:method:method:finalize|Eldbus.Model.Method.finalize]]
+ * [[:develop:api:eldbus:model:object:method:finalize|Eldbus.Model.Object.finalize]]
+ * [[:develop:api:efl:composite_model:method:finalize|Efl.Composite_Model.finalize]]
+ * [[:develop:api:efl:container_model:method:finalize|Efl.Container_Model.finalize]]
+ * [[:develop:api:efl:ui:view_model:method:finalize|Efl.Ui.View_Model.finalize]]
+ * [[:develop:api:efl:io:model:method:finalize|Efl.Io.Model.finalize]]
+ * [[:develop:api:efl:net:server_simple:method:finalize|Efl.Net.Server_Simple.finalize]]
+ * [[:develop:api:efl:net:control:manager:method:finalize|Efl.Net.Control.Manager.finalize]]
+ * [[:develop:api:efl:ui:widget_factory:method:finalize|Efl.Ui.Widget_Factory.finalize]]
+ * [[:develop:api:efl:ui:caching_factory:method:finalize|Efl.Ui.Caching_Factory.finalize]]
+ * [[:develop:api:efl:thread:method:finalize|Efl.Thread.finalize]]
+ * [[:develop:api:efl:net:session:method:finalize|Efl.Net.Session.finalize]]
+ * [[:develop:api:efl:io:copier:method:finalize|Efl.Io.Copier.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:finalize|Efl.Ui.Focus.Manager_Calc.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:finalize|Efl.Ui.Focus.Manager_Root_Focus.finalize]]
+ * [[:develop:api:evas:canvas3d:node:method:finalize|Evas.Canvas3D.Node.finalize]]
+ * [[:develop:api:efl:net:ssl:context:method:finalize|Efl.Net.Ssl.Context.finalize]]
+ * [[:develop:api:efl:io:buffer:method:finalize|Efl.Io.Buffer.finalize]]
+ * [[:develop:api:efl:net:ip_address:method:finalize|Efl.Net.Ip_Address.finalize]]
+ * [[:develop:api:efl:io:queue:method:finalize|Efl.Io.Queue.finalize]]
+ * [[:develop:api:ector:renderer:method:finalize|Ector.Renderer.finalize]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/method/invalidate.txt b/public_html/data/pages/develop/api/efl/object/method/invalidate.txt
new file mode 100644
index 00000000..c31dffa5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/method/invalidate.txt
@@ -0,0 +1,74 @@
+~~Title: Efl.Object.invalidate~~
+====== Efl.Object.invalidate ======
+
+===== Description =====
+
+%%Implement this method to perform special actions when your object loses its parent, if you need to.%%
+
+%%It is called when the parent reference is lost or set to %%''NULL''%%. After this call returns, %%[[:develop:api:efl:object:property:invalidated|Efl.Object.invalidated]]%% is set to %%''true''%%. This allows a simpler tear down of complex hierarchies, by performing object destruction in two steps, first all object relationships are broken and then the isolated objects are destroyed. Performing everything in the %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%% can sometimes lead to deadlocks, but implementing this method is optional if this is not your case. When an object with a parent is destroyed, it first receives a call to %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% and then to %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:object:method:invalidate:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+invalidate {}
+
+
+===== C signature =====
+
+
+void efl_invalidate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]
+ * [[:develop:api:efl:canvas:vg:node:method:invalidate|Efl.Canvas.Vg.Node.invalidate]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:invalidate|Efl.Ui.Position_Manager.Grid.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:manager_scroll:method:invalidate|Efl.Ui.Spotlight.Manager_Scroll.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:manager_stack:method:invalidate|Efl.Ui.Spotlight.Manager_Stack.invalidate]]
+ * [[:develop:api:efl:net:server_udp_client:method:invalidate|Efl.Net.Server_Udp_Client.invalidate]]
+ * [[:develop:api:efl:net:server_windows:method:invalidate|Efl.Net.Server_Windows.invalidate]]
+ * [[:develop:api:efl:io:buffered_stream:method:invalidate|Efl.Io.Buffered_Stream.invalidate]]
+ * [[:develop:api:efl:net:dialer_simple:method:invalidate|Efl.Net.Dialer_Simple.invalidate]]
+ * [[:develop:api:efl:loop_fd:method:invalidate|Efl.Loop_Fd.invalidate]]
+ * [[:develop:api:efl:net:server_ssl:method:invalidate|Efl.Net.Server_Ssl.invalidate]]
+ * [[:develop:api:efl:net:socket_fd:method:invalidate|Efl.Net.Socket_Fd.invalidate]]
+ * [[:develop:api:efl:net:dialer_udp:method:invalidate|Efl.Net.Dialer_Udp.invalidate]]
+ * [[:develop:api:efl:net:dialer_unix:method:invalidate|Efl.Net.Dialer_Unix.invalidate]]
+ * [[:develop:api:efl:net:dialer_tcp:method:invalidate|Efl.Net.Dialer_Tcp.invalidate]]
+ * [[:develop:api:efl:net:socket_ssl:method:invalidate|Efl.Net.Socket_Ssl.invalidate]]
+ * [[:develop:api:efl:net:dialer_ssl:method:invalidate|Efl.Net.Dialer_Ssl.invalidate]]
+ * [[:develop:api:efl:canvas:object:method:invalidate|Efl.Canvas.Object.invalidate]]
+ * [[:develop:api:efl:canvas:layout:method:invalidate|Efl.Canvas.Layout.invalidate]]
+ * [[:develop:api:efl:ui:widget:method:invalidate|Efl.Ui.Widget.invalidate]]
+ * [[:develop:api:efl:ui:table:method:invalidate|Efl.Ui.Table.invalidate]]
+ * [[:develop:api:efl:ui:box:method:invalidate|Efl.Ui.Box.invalidate]]
+ * [[:develop:api:efl:ui:image:method:invalidate|Efl.Ui.Image.invalidate]]
+ * [[:develop:api:efl:ui:layout_base:method:invalidate|Efl.Ui.Layout_Base.invalidate]]
+ * [[:develop:api:efl:ui:collection_view:method:invalidate|Efl.Ui.Collection_View.invalidate]]
+ * [[:develop:api:efl:ui:group_item:method:invalidate|Efl.Ui.Group_Item.invalidate]]
+ * [[:develop:api:efl:ui:collection:method:invalidate|Efl.Ui.Collection.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:container:method:invalidate|Efl.Ui.Spotlight.Container.invalidate]]
+ * [[:develop:api:efl:ui:relative_layout:method:invalidate|Efl.Ui.Relative_Layout.invalidate]]
+ * [[:develop:api:efl:canvas:vg:object:method:invalidate|Efl.Canvas.Vg.Object.invalidate]]
+ * [[:develop:api:efl:loop_model:method:invalidate|Efl.Loop_Model.invalidate]]
+ * [[:develop:api:eldbus:model:method:invalidate|Eldbus.Model.invalidate]]
+ * [[:develop:api:eldbus:model:connection:method:invalidate|Eldbus.Model.Connection.invalidate]]
+ * [[:develop:api:eldbus:model:proxy:method:invalidate|Eldbus.Model.Proxy.invalidate]]
+ * [[:develop:api:eldbus:model:arguments:method:invalidate|Eldbus.Model.Arguments.invalidate]]
+ * [[:develop:api:eldbus:model:signal:method:invalidate|Eldbus.Model.Signal.invalidate]]
+ * [[:develop:api:eldbus:model:object:method:invalidate|Eldbus.Model.Object.invalidate]]
+ * [[:develop:api:efl:composite_model:method:invalidate|Efl.Composite_Model.invalidate]]
+ * [[:develop:api:efl:ui:select_model:method:invalidate|Efl.Ui.Select_Model.invalidate]]
+ * [[:develop:api:efl:io:model:method:invalidate|Efl.Io.Model.invalidate]]
+ * [[:develop:api:efl:net:dialer_websocket:method:invalidate|Efl.Net.Dialer_Websocket.invalidate]]
+ * [[:develop:api:efl:net:server_simple:method:invalidate|Efl.Net.Server_Simple.invalidate]]
+ * [[:develop:api:efl:ui:caching_factory:method:invalidate|Efl.Ui.Caching_Factory.invalidate]]
+ * [[:develop:api:efl:loop:method:invalidate|Efl.Loop.invalidate]]
+ * [[:develop:api:efl:net:dialer_http:method:invalidate|Efl.Net.Dialer_Http.invalidate]]
+ * [[:develop:api:efl:io:copier:method:invalidate|Efl.Io.Copier.invalidate]]
+ * [[:develop:api:efl:ui:position_manager:list:method:invalidate|Efl.Ui.Position_Manager.List.invalidate]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/method/name_find.txt b/public_html/data/pages/develop/api/efl/object/method/name_find.txt
new file mode 100644
index 00000000..5347d7b4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/method/name_find.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Object.name_find~~
+====== Efl.Object.name_find ======
+
+===== Description =====
+
+%%Find a child object with the given name and return it.%%
+
+%%The search string can be a glob (shell style, using *). It can also specify class name in the format of "class:name" where ":" separates class and name. Both class and name can be globs. If the class is specified but the name is empty like "class:" then the search will match any object of that class.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:object:method:name_find:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+name_find @beta @const {
+ params {
+ @in search: string;
+ }
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_name_find(const Eo *obj, const char *search);
+
+
+===== Parameters =====
+
+ * **search** //(in)// - %%The name search string.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:name_find|Efl.Object.name_find]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/method/provider_find.txt b/public_html/data/pages/develop/api/efl/object/method/provider_find.txt
new file mode 100644
index 00000000..b125d8b2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/method/provider_find.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Object.provider_find~~
+====== Efl.Object.provider_find ======
+
+===== Description =====
+
+%%Searches upwards in the object tree for a provider which knows the given class/interface.%%
+
+%%The object from the provider will then be returned. The base implementation calls the provider_find function on the object parent, and returns its result. If no parent is present %%''NULL''%% is returned. Each implementation has to support this function by overriding it and returning itself if the interface matches the parameter. If this is not done the class cannot be found up in the object tree.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:object:method:provider_find:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+provider_find @const {
+ params {
+ @in klass: const(Efl.Class);
+ }
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_provider_find(const Eo *obj, const Efl_Class *klass);
+
+
+===== Parameters =====
+
+ * **klass** //(in)// - %%The class identifier to search for.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]
+ * [[:develop:api:efl:canvas:object:method:provider_find|Efl.Canvas.Object.provider_find]]
+ * [[:develop:api:efl:ui:widget:method:provider_find|Efl.Ui.Widget.provider_find]]
+ * [[:develop:api:efl:ui:win:method:provider_find|Efl.Ui.Win.provider_find]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:provider_find|Efl.Ui.Focus.Manager_Calc.provider_find]]
+ * [[:develop:api:evas:canvas3d:object:method:provider_find|Evas.Canvas3D.Object.provider_find]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/method/provider_register.txt b/public_html/data/pages/develop/api/efl/object/method/provider_register.txt
new file mode 100644
index 00000000..99587e2f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/method/provider_register.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Object.provider_register~~
+====== Efl.Object.provider_register ======
+
+===== Description =====
+
+%%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:object:method:provider_register:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+provider_register {
+ params {
+ @in klass: const(Efl.Class);
+ @in provider: const(Efl.Object);
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_provider_register(Eo *obj, const Efl_Class *klass, const Efl_Object *provider);
+
+
+===== Parameters =====
+
+ * **klass** //(in)// - %%The class provided by the registered provider.%%
+ * **provider** //(in)// - %%The provider for the newly registered class that has to provide that said Efl.Class.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:provider_register|Efl.Object.provider_register]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/method/provider_unregister.txt b/public_html/data/pages/develop/api/efl/object/method/provider_unregister.txt
new file mode 100644
index 00000000..1e8970f5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/method/provider_unregister.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Object.provider_unregister~~
+====== Efl.Object.provider_unregister ======
+
+===== Description =====
+
+%%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:object:method:provider_unregister:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+provider_unregister {
+ params {
+ @in klass: const(Efl.Class);
+ @in provider: const(Efl.Object);
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_provider_unregister(Eo *obj, const Efl_Class *klass, const Efl_Object *provider);
+
+
+===== Parameters =====
+
+ * **klass** //(in)// - %%The class provided by the provider to unregister for.%%
+ * **provider** //(in)// - %%The provider for the registered class to unregister.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:provider_unregister|Efl.Object.provider_unregister]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/property/allow_parent_unref.txt b/public_html/data/pages/develop/api/efl/object/property/allow_parent_unref.txt
new file mode 100644
index 00000000..e810281f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/property/allow_parent_unref.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Object.allow_parent_unref~~
+====== Efl.Object.allow_parent_unref ======
+
+===== Description =====
+
+%%Allow an object to be deleted by unref even if it has a parent.%%
+
+%%This simply hides the error message warning that an object being destroyed still has a parent. This property is false by default.%%
+
+%%In a normal object use case, when ownership of an object is given to a caller, said ownership should be released with efl_unref(). If the object has a parent, this will print error messages, as efl_unref() is stealing the ref from the parent.%%
+
+
+@property allow_parent_unref @beta {
+ get {}
+ set {}
+ values {
+ allow: bool (false);
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_allow_parent_unref_get(const Eo *obj);
+void efl_allow_parent_unref_set(Eo *obj, Eina_Bool allow);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:property:allow_parent_unref|Efl.Object.allow_parent_unref]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/property/comment.txt b/public_html/data/pages/develop/api/efl/object/property/comment.txt
new file mode 100644
index 00000000..7424010d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/property/comment.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Object.comment~~
+====== Efl.Object.comment ======
+
+===== Description =====
+
+%%A human readable comment for the object.%%
+
+%%Every EFL object can have a comment. This is intended for developers and debugging. An empty string is considered the same as a %%''NULL''%% string or no string for the comment.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:object:property:comment:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **comment** - %%The comment.%%
+
+===== Signature =====
+
+
+@property comment {
+ get {}
+ set {}
+ values {
+ comment: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_comment_get(const Eo *obj);
+void efl_comment_set(Eo *obj, const char *comment);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:property:comment|Efl.Object.comment]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/property/event_freeze_count.txt b/public_html/data/pages/develop/api/efl/object/property/event_freeze_count.txt
new file mode 100644
index 00000000..4e0dff2e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/property/event_freeze_count.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.Object.event_freeze_count~~
+====== Efl.Object.event_freeze_count ======
+
+===== Values =====
+
+ * **fcount** - %%The event freeze count of this object.%%
+
+
+\\ {{page>:develop:api-include:efl:object:property:event_freeze_count:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property event_freeze_count {
+ get {}
+ values {
+ fcount: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_event_freeze_count_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:property:event_freeze_count|Efl.Object.event_freeze_count]]
+ * [[:develop:api:efl:loop_timer:property:event_freeze_count|Efl.Loop_Timer.event_freeze_count]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/property/event_global_freeze_count.txt b/public_html/data/pages/develop/api/efl/object/property/event_global_freeze_count.txt
new file mode 100644
index 00000000..d081d199
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/property/event_global_freeze_count.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Object.event_global_freeze_count~~
+====== Efl.Object.event_global_freeze_count ======
+
+===== Values =====
+
+ * **fcount** - %%The global event freeze count.%%
+
+
+\\ {{page>:develop:api-include:efl:object:property:event_global_freeze_count:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property event_global_freeze_count @static {
+ get {}
+ values {
+ fcount: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_event_global_freeze_count_get();
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:property:event_global_freeze_count|Efl.Object.event_global_freeze_count]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/property/finalized.txt b/public_html/data/pages/develop/api/efl/object/property/finalized.txt
new file mode 100644
index 00000000..4b53a562
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/property/finalized.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Object.finalized~~
+====== Efl.Object.finalized ======
+
+===== Values =====
+
+ * **finalized** - %%%%''true''%% if the object is finalized, %%''false''%% otherwise.%%
+
+
+\\ {{page>:develop:api-include:efl:object:property:finalized:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property finalized {
+ get {}
+ values {
+ finalized: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_finalized_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:property:finalized|Efl.Object.finalized]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/property/invalidated.txt b/public_html/data/pages/develop/api/efl/object/property/invalidated.txt
new file mode 100644
index 00000000..ebb65f95
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/property/invalidated.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Object.invalidated~~
+====== Efl.Object.invalidated ======
+
+===== Values =====
+
+ * **finalized** - %%%%''true''%% if the object is invalidated, %%''false''%% otherwise.%%
+
+
+\\ {{page>:develop:api-include:efl:object:property:invalidated:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property invalidated {
+ get {}
+ values {
+ finalized: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_invalidated_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:property:invalidated|Efl.Object.invalidated]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/property/invalidating.txt b/public_html/data/pages/develop/api/efl/object/property/invalidating.txt
new file mode 100644
index 00000000..41bb3e30
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/property/invalidating.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Object.invalidating~~
+====== Efl.Object.invalidating ======
+
+===== Values =====
+
+ * **invalidating** - %%%%''true''%% if the object is invalidating, %%''false''%% otherwise.%%
+
+
+\\ {{page>:develop:api-include:efl:object:property:invalidating:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property invalidating {
+ get {}
+ values {
+ invalidating: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_invalidating_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:property:invalidating|Efl.Object.invalidating]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/property/name.txt b/public_html/data/pages/develop/api/efl/object/property/name.txt
new file mode 100644
index 00000000..53eed8c9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/property/name.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Object.name~~
+====== Efl.Object.name ======
+
+===== Description =====
+
+%%The name of the object.%%
+
+%%Every EFL object can have a name. Names may not contain the following characters: / ? * [ ] ! : Using any of these in a name will result in undefined behavior later on. An empty string is considered the same as a %%''NULL''%% string or no string for the name.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:object:property:name:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **name** - %%The name.%%
+
+===== Signature =====
+
+
+@property name {
+ get {}
+ set {}
+ values {
+ name: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_name_get(const Eo *obj);
+void efl_name_set(Eo *obj, const char *name);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:property:name|Efl.Object.name]]
+ * [[:develop:api:efl:canvas:vg:node:property:name|Efl.Canvas.Vg.Node.name]]
+ * [[:develop:api:efl:net:control:technology:property:name|Efl.Net.Control.Technology.name]]
+
diff --git a/public_html/data/pages/develop/api/efl/object/property/parent.txt b/public_html/data/pages/develop/api/efl/object/property/parent.txt
new file mode 100644
index 00000000..4eb2f662
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/object/property/parent.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Object.parent~~
+====== Efl.Object.parent ======
+
+===== Description =====
+
+%%The parent of an object.%%
+
+%%Parents keep references to their children and will release these references when destroyed. In this way, objects can be assigned to a parent upon creation, tying their life cycle so the programmer does not need to worry about destroying the child object. In order to destroy an object before its parent, set the parent to %%''NULL''%% and use efl_unref(), or use efl_del() directly.%%
+
+%%The Eo parent is conceptually user set. That means that a parent should not be changed behind the scenes in an unexpected way.%%
+
+%%For example: If you have a widget which can swallow objects into an internal box, the parent of the swallowed objects should be the widget, not the internal box. The user is not even aware of the existence of the internal box.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:object:property:parent:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **parent** - %%The new parent.%%
+
+===== Signature =====
+
+
+@property parent {
+ get {}
+ set {}
+ values {
+ parent: Efl.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_parent_get(const Eo *obj);
+void efl_parent_set(Eo *obj, Efl_Object *parent);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:property:parent|Efl.Object.parent]]
+ * [[:develop:api:efl:loop_handler:property:parent|Efl.Loop_Handler.parent]]
+ * [[:develop:api:efl:canvas:vg:node:property:parent|Efl.Canvas.Vg.Node.parent]]
+ * [[:develop:api:efl:canvas:vg:container:property:parent|Efl.Canvas.Vg.Container.parent]]
+ * [[:develop:api:efl:input:device:property:parent|Efl.Input.Device.parent]]
+ * [[:develop:api:efl:loop_consumer:property:parent|Efl.Loop_Consumer.parent]]
+ * [[:develop:api:efl:loop_fd:property:parent|Efl.Loop_Fd.parent]]
+ * [[:develop:api:efl:loop_timer:property:parent|Efl.Loop_Timer.parent]]
+ * [[:develop:api:efl:task:property:parent|Efl.Task.parent]]
+ * [[:develop:api:efl:thread:property:parent|Efl.Thread.parent]]
+
diff --git a/public_html/data/pages/develop/api/efl/pack.txt b/public_html/data/pages/develop/api/efl/pack.txt
new file mode 100644
index 00000000..a2579fcb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack.txt
@@ -0,0 +1,60 @@
+~~Title: Efl.Pack~~
+====== Efl.Pack (interface) ======
+
+===== Description =====
+
+%%Common interface for objects (containers) with multiple contents (sub-objects) which can be added and removed at runtime.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:pack:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:container|Efl.Container]] //(interface)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:pack:method:pack|pack]]**\\
+> %%Adds a sub-object to this container.%%
+
+Eina_Bool efl_pack(Eo *obj, Efl_Gfx_Entity *subobj);
+
+\\
+**[[:develop:api:efl:pack:method:pack_clear|pack_clear]]**\\
+> %%Removes all packed sub-objects and unreferences them.%%
+
+Eina_Bool efl_pack_clear(Eo *obj);
+
+\\
+**[[:develop:api:efl:pack:method:unpack|unpack]]**\\
+> %%Removes an existing sub-object from the container without deleting it.%%
+
+Eina_Bool efl_pack_unpack(Eo *obj, Efl_Gfx_Entity *subobj);
+
+\\
+**[[:develop:api:efl:pack:method:unpack_all|unpack_all]]**\\
+> %%Removes all packed sub-objects without unreferencing them.%%
+
+Eina_Bool efl_pack_unpack_all(Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:container:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
diff --git a/public_html/data/pages/develop/api/efl/pack/method/pack.txt b/public_html/data/pages/develop/api/efl/pack/method/pack.txt
new file mode 100644
index 00000000..64abb5d1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack/method/pack.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Pack.pack~~
+====== Efl.Pack.pack ======
+
+===== Description =====
+
+%%Adds a sub-object to this container.%%
+
+%%Depending on the container this will either fill in the default spot, replacing any already existing element or append to the end of the container if there is no default part.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:pack:method:pack:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+pack @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack(Eo *obj, Efl_Gfx_Entity *subobj);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%The object to pack.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack:method:pack|Efl.Pack.pack]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack|Efl.Ui.Tab_Bar.pack]]
+ * [[:develop:api:efl:ui:table:method:pack|Efl.Ui.Table.pack]]
+ * [[:develop:api:efl:ui:layout_part_table:method:pack|Efl.Ui.Layout_Part_Table.pack]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack|Efl.Canvas.Layout_Part_Invalid.pack]]
+ * [[:develop:api:efl:ui:flip:method:pack|Efl.Ui.Flip.pack]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack|Efl.Canvas.Layout_Part_Box.pack]]
+ * [[:develop:api:efl:ui:box:method:pack|Efl.Ui.Box.pack]]
+ * [[:develop:api:efl:ui:radio_box:method:pack|Efl.Ui.Radio_Box.pack]]
+ * [[:develop:api:efl:ui:group_item:method:pack|Efl.Ui.Group_Item.pack]]
+ * [[:develop:api:efl:ui:collection:method:pack|Efl.Ui.Collection.pack]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack|Efl.Ui.Layout_Part_Box.pack]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack|Efl.Ui.Spotlight.Container.pack]]
+ * [[:develop:api:efl:ui:relative_layout:method:pack|Efl.Ui.Relative_Layout.pack]]
+
diff --git a/public_html/data/pages/develop/api/efl/pack/method/pack_clear.txt b/public_html/data/pages/develop/api/efl/pack/method/pack_clear.txt
new file mode 100644
index 00000000..0756b070
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack/method/pack_clear.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Pack.pack_clear~~
+====== Efl.Pack.pack_clear ======
+
+===== Description =====
+
+%%Removes all packed sub-objects and unreferences them.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:pack:method:pack_clear:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+pack_clear @pure_virtual {
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_clear(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack:method:pack_clear|Efl.Pack.pack_clear]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_clear|Efl.Ui.Tab_Bar.pack_clear]]
+ * [[:develop:api:efl:ui:table:method:pack_clear|Efl.Ui.Table.pack_clear]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:pack_clear|Efl.Canvas.Layout_Part_Table.pack_clear]]
+ * [[:develop:api:efl:ui:layout_part_table:method:pack_clear|Efl.Ui.Layout_Part_Table.pack_clear]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_clear|Efl.Canvas.Layout_Part_Invalid.pack_clear]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_clear|Efl.Canvas.Layout_Part_Box.pack_clear]]
+ * [[:develop:api:efl:ui:box:method:pack_clear|Efl.Ui.Box.pack_clear]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_clear|Efl.Ui.Radio_Box.pack_clear]]
+ * [[:develop:api:efl:ui:group_item:method:pack_clear|Efl.Ui.Group_Item.pack_clear]]
+ * [[:develop:api:efl:ui:collection:method:pack_clear|Efl.Ui.Collection.pack_clear]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_clear|Efl.Ui.Layout_Part_Box.pack_clear]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_clear|Efl.Ui.Spotlight.Container.pack_clear]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_clear|Efl.Ui.Tab_Pager.pack_clear]]
+ * [[:develop:api:efl:ui:relative_layout:method:pack_clear|Efl.Ui.Relative_Layout.pack_clear]]
+
diff --git a/public_html/data/pages/develop/api/efl/pack/method/unpack.txt b/public_html/data/pages/develop/api/efl/pack/method/unpack.txt
new file mode 100644
index 00000000..e0d72e82
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack/method/unpack.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Pack.unpack~~
+====== Efl.Pack.unpack ======
+
+===== Description =====
+
+%%Removes an existing sub-object from the container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:pack:method:unpack:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+unpack @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_unpack(Eo *obj, Efl_Gfx_Entity *subobj);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%The sub-object to unpack.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]
+ * [[:develop:api:efl:ui:tab_bar:method:unpack|Efl.Ui.Tab_Bar.unpack]]
+ * [[:develop:api:efl:ui:table:method:unpack|Efl.Ui.Table.unpack]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:unpack|Efl.Canvas.Layout_Part_Table.unpack]]
+ * [[:develop:api:efl:ui:layout_part_table:method:unpack|Efl.Ui.Layout_Part_Table.unpack]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:unpack|Efl.Canvas.Layout_Part_Invalid.unpack]]
+ * [[:develop:api:efl:ui:flip:method:unpack|Efl.Ui.Flip.unpack]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:unpack|Efl.Canvas.Layout_Part_Box.unpack]]
+ * [[:develop:api:efl:ui:box:method:unpack|Efl.Ui.Box.unpack]]
+ * [[:develop:api:efl:ui:radio_box:method:unpack|Efl.Ui.Radio_Box.unpack]]
+ * [[:develop:api:efl:ui:group_item:method:unpack|Efl.Ui.Group_Item.unpack]]
+ * [[:develop:api:efl:ui:collection:method:unpack|Efl.Ui.Collection.unpack]]
+ * [[:develop:api:efl:ui:layout_part_box:method:unpack|Efl.Ui.Layout_Part_Box.unpack]]
+ * [[:develop:api:efl:ui:spotlight:container:method:unpack|Efl.Ui.Spotlight.Container.unpack]]
+ * [[:develop:api:efl:ui:tab_pager:method:unpack|Efl.Ui.Tab_Pager.unpack]]
+ * [[:develop:api:efl:ui:relative_layout:method:unpack|Efl.Ui.Relative_Layout.unpack]]
+
diff --git a/public_html/data/pages/develop/api/efl/pack/method/unpack_all.txt b/public_html/data/pages/develop/api/efl/pack/method/unpack_all.txt
new file mode 100644
index 00000000..58f5ba12
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack/method/unpack_all.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.Pack.unpack_all~~
+====== Efl.Pack.unpack_all ======
+
+===== Description =====
+
+%%Removes all packed sub-objects without unreferencing them.%%
+
+%%Use with caution.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:pack:method:unpack_all:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+unpack_all @pure_virtual {
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_unpack_all(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack:method:unpack_all|Efl.Pack.unpack_all]]
+ * [[:develop:api:efl:ui:tab_bar:method:unpack_all|Efl.Ui.Tab_Bar.unpack_all]]
+ * [[:develop:api:efl:ui:table:method:unpack_all|Efl.Ui.Table.unpack_all]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:unpack_all|Efl.Canvas.Layout_Part_Table.unpack_all]]
+ * [[:develop:api:efl:ui:layout_part_table:method:unpack_all|Efl.Ui.Layout_Part_Table.unpack_all]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:unpack_all|Efl.Canvas.Layout_Part_Invalid.unpack_all]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:unpack_all|Efl.Canvas.Layout_Part_Box.unpack_all]]
+ * [[:develop:api:efl:ui:box:method:unpack_all|Efl.Ui.Box.unpack_all]]
+ * [[:develop:api:efl:ui:radio_box:method:unpack_all|Efl.Ui.Radio_Box.unpack_all]]
+ * [[:develop:api:efl:ui:group_item:method:unpack_all|Efl.Ui.Group_Item.unpack_all]]
+ * [[:develop:api:efl:ui:collection:method:unpack_all|Efl.Ui.Collection.unpack_all]]
+ * [[:develop:api:efl:ui:layout_part_box:method:unpack_all|Efl.Ui.Layout_Part_Box.unpack_all]]
+ * [[:develop:api:efl:ui:spotlight:container:method:unpack_all|Efl.Ui.Spotlight.Container.unpack_all]]
+ * [[:develop:api:efl:ui:tab_pager:method:unpack_all|Efl.Ui.Tab_Pager.unpack_all]]
+ * [[:develop:api:efl:ui:relative_layout:method:unpack_all|Efl.Ui.Relative_Layout.unpack_all]]
+
diff --git a/public_html/data/pages/develop/api/efl/pack_layout.txt b/public_html/data/pages/develop/api/efl/pack_layout.txt
new file mode 100644
index 00000000..8ddda61e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack_layout.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Pack_Layout~~
+====== Efl.Pack_Layout (interface) ======
+
+===== Description =====
+
+%%Low-level APIs for objects that can lay their children out.%%
+
+%%Used for containers like %%[[:develop:api:efl:ui:box|Efl.Ui.Box]]%% and %%[[:develop:api:efl:ui:table|Efl.Ui.Table]]%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:pack_layout:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:pack_layout:method:layout_request|layout_request]]**\\
+> %%Requests EFL to recalculate the layout of this object.%%
+
+void efl_pack_layout_request(Eo *obj);
+
+\\
+**[[:develop:api:efl:pack_layout:method:layout_update|layout_update]]** ''protected''\\
+> %%Implementation of this container's layout algorithm.%%
+
+void efl_pack_layout_update(Eo *obj);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:pack_layout:event:layout_updated|layout,updated]]**\\
+> %%Sent after the layout was updated.%%
+
+EFL_PACK_EVENT_LAYOUT_UPDATED(void)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/pack_layout/event/layout_updated.txt b/public_html/data/pages/develop/api/efl/pack_layout/event/layout_updated.txt
new file mode 100644
index 00000000..278caba4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack_layout/event/layout_updated.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Pack_Layout: layout,updated~~
+
+===== Description =====
+
+%%Sent after the layout was updated.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:pack_layout:event:layout_updated:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+layout,updated;
+
+
+===== C information =====
+
+
+EFL_PACK_EVENT_LAYOUT_UPDATED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_pack_event_layout_updated(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_PACK_EVENT_LAYOUT_UPDATED, on_efl_pack_event_layout_updated, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/pack_layout/method/layout_request.txt b/public_html/data/pages/develop/api/efl/pack_layout/method/layout_request.txt
new file mode 100644
index 00000000..61a7107e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack_layout/method/layout_request.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Pack_Layout.layout_request~~
+====== Efl.Pack_Layout.layout_request ======
+
+===== Description =====
+
+%%Requests EFL to recalculate the layout of this object.%%
+
+%%Internal layout methods might be called asynchronously.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:pack_layout:method:layout_request:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+layout_request @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_pack_layout_request(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_layout:method:layout_request|Efl.Pack_Layout.layout_request]]
+ * [[:develop:api:efl:ui:table:method:layout_request|Efl.Ui.Table.layout_request]]
+ * [[:develop:api:efl:ui:box:method:layout_request|Efl.Ui.Box.layout_request]]
+ * [[:develop:api:efl:ui:relative_layout:method:layout_request|Efl.Ui.Relative_Layout.layout_request]]
+
diff --git a/public_html/data/pages/develop/api/efl/pack_layout/method/layout_update.txt b/public_html/data/pages/develop/api/efl/pack_layout/method/layout_update.txt
new file mode 100644
index 00000000..9a0297c1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack_layout/method/layout_update.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Pack_Layout.layout_update~~
+====== Efl.Pack_Layout.layout_update ======
+
+===== Description =====
+
+%%Implementation of this container's layout algorithm.%%
+
+%%EFL will call this function whenever the contents of this container need to be re-laid out on the canvas.%%
+
+%%This can be overridden to implement custom layout behaviors.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:pack_layout:method:layout_update:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+layout_update @protected @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_pack_layout_update(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_layout:method:layout_update|Efl.Pack_Layout.layout_update]]
+ * [[:develop:api:efl:ui:table:method:layout_update|Efl.Ui.Table.layout_update]]
+ * [[:develop:api:efl:ui:table_static:method:layout_update|Efl.Ui.Table_Static.layout_update]]
+ * [[:develop:api:efl:ui:box:method:layout_update|Efl.Ui.Box.layout_update]]
+ * [[:develop:api:efl:ui:box_stack:method:layout_update|Efl.Ui.Box_Stack.layout_update]]
+ * [[:develop:api:efl:ui:box_flow:method:layout_update|Efl.Ui.Box_Flow.layout_update]]
+ * [[:develop:api:efl:ui:relative_layout:method:layout_update|Efl.Ui.Relative_Layout.layout_update]]
+
diff --git a/public_html/data/pages/develop/api/efl/pack_linear.txt b/public_html/data/pages/develop/api/efl/pack_linear.txt
new file mode 100644
index 00000000..9091d670
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack_linear.txt
@@ -0,0 +1,92 @@
+~~Title: Efl.Pack_Linear~~
+====== Efl.Pack_Linear (interface) ======
+
+===== Description =====
+
+%%Common interface for objects (containers) with multiple contents (sub-objects) which can be added and removed at runtime in a linear fashion.%%
+
+%%This means the sub-objects are internally organized in an ordered list.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:pack_linear:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:pack|Efl.Pack]] //(interface)// => [[:develop:api:efl:container|Efl.Container]] //(interface)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:pack|Efl.Pack]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:pack_linear:method:pack_after|pack_after]]**\\
+> %%Append an object after the %%''existing''%% sub-object.%%
+
+Eina_Bool efl_pack_after(Eo *obj, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing);
+
+\\
+**[[:develop:api:efl:pack_linear:method:pack_at|pack_at]]**\\
+> %%Inserts %%''subobj''%% BEFORE the sub-object at position %%''index''%%.%%
+
+Eina_Bool efl_pack_at(Eo *obj, Efl_Gfx_Entity *subobj, int index);
+
+\\
+**[[:develop:api:efl:pack_linear:method:pack_before|pack_before]]**\\
+> %%Prepend an object before the %%''existing''%% sub-object.%%
+
+Eina_Bool efl_pack_before(Eo *obj, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing);
+
+\\
+**[[:develop:api:efl:pack_linear:method:pack_begin|pack_begin]]**\\
+> %%Prepend an object at the beginning of this container.%%
+
+Eina_Bool efl_pack_begin(Eo *obj, Efl_Gfx_Entity *subobj);
+
+\\
+**[[:develop:api:efl:pack_linear:method:pack_content_get|pack_content_get]]**\\
+> %%Sub-object at a given %%''index''%% in this container.%%
+
+Efl_Gfx_Entity *efl_pack_content_get(Eo *obj, int index);
+
+\\
+**[[:develop:api:efl:pack_linear:method:pack_end|pack_end]]**\\
+> %%Append object at the end of this container.%%
+
+Eina_Bool efl_pack_end(Eo *obj, Efl_Gfx_Entity *subobj);
+
+\\
+**[[:develop:api:efl:pack_linear:method:pack_index_get|pack_index_get]]**\\
+> %%Get the index of a sub-object in this container.%%
+
+int efl_pack_index_get(Eo *obj, const Efl_Gfx_Entity *subobj);
+
+\\
+**[[:develop:api:efl:pack_linear:method:pack_unpack_at|pack_unpack_at]]**\\
+> %%Pop out (remove) the sub-object at the specified %%''index''%%.%%
+
+Efl_Gfx_Entity *efl_pack_unpack_at(Eo *obj, int index);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:container:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+^ [[:develop:api:efl:pack|Efl.Pack]] ^^^
+| | **[[:develop:api:efl:pack:method:pack|pack]]** | %%Adds a sub-object to this container.%% |
+| | **[[:develop:api:efl:pack:method:pack_clear|pack_clear]]** | %%Removes all packed sub-objects and unreferences them.%% |
+| | **[[:develop:api:efl:pack:method:unpack|unpack]]** | %%Removes an existing sub-object from the container without deleting it.%% |
+| | **[[:develop:api:efl:pack:method:unpack_all|unpack_all]]** | %%Removes all packed sub-objects without unreferencing them.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
diff --git a/public_html/data/pages/develop/api/efl/pack_linear/method/pack_after.txt b/public_html/data/pages/develop/api/efl/pack_linear/method/pack_after.txt
new file mode 100644
index 00000000..00e6f8a0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack_linear/method/pack_after.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Pack_Linear.pack_after~~
+====== Efl.Pack_Linear.pack_after ======
+
+===== Description =====
+
+%%Append an object after the %%''existing''%% sub-object.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+%%If %%''existing''%% is %%''NULL''%% this method behaves like %%[[:develop:api:efl:pack_linear:method:pack_end|Efl.Pack_Linear.pack_end]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:pack_linear:method:pack_after:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+pack_after @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ @in existing: const(Efl.Gfx.Entity);
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_after(Eo *obj, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%Object to pack after %%''existing''%%.%%
+ * **existing** //(in)// - %%Existing reference sub-object. Must already belong to the container or be %%''NULL''%%.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_after|Efl.Pack_Linear.pack_after]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_after|Efl.Ui.Tab_Bar.pack_after]]
+ * [[:develop:api:efl:ui:flip:method:pack_after|Efl.Ui.Flip.pack_after]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_after|Efl.Canvas.Layout_Part_Box.pack_after]]
+ * [[:develop:api:efl:ui:box:method:pack_after|Efl.Ui.Box.pack_after]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_after|Efl.Ui.Radio_Box.pack_after]]
+ * [[:develop:api:efl:ui:group_item:method:pack_after|Efl.Ui.Group_Item.pack_after]]
+ * [[:develop:api:efl:ui:collection:method:pack_after|Efl.Ui.Collection.pack_after]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_after|Efl.Ui.Layout_Part_Box.pack_after]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_after|Efl.Canvas.Layout_Part_Invalid.pack_after]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_after|Efl.Ui.Spotlight.Container.pack_after]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_after|Efl.Ui.Tab_Pager.pack_after]]
+
diff --git a/public_html/data/pages/develop/api/efl/pack_linear/method/pack_at.txt b/public_html/data/pages/develop/api/efl/pack_linear/method/pack_at.txt
new file mode 100644
index 00000000..eab6c149
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack_linear/method/pack_at.txt
@@ -0,0 +1,54 @@
+~~Title: Efl.Pack_Linear.pack_at~~
+====== Efl.Pack_Linear.pack_at ======
+
+===== Description =====
+
+%%Inserts %%''subobj''%% BEFORE the sub-object at position %%''index''%%.%%
+
+%%%%''index''%% ranges from %%''-count''%% to %%''count-1''%%, where positive numbers go from first sub-object (%%''0''%%) to last (%%''count-1''%%), and negative numbers go from last sub-object (%%''-1''%%) to first (%%''-count''%%). %%''count''%% is the number of sub-objects currently in the container as returned by %%[[:develop:api:efl:container:method:content_count|Efl.Container.content_count]]%%.%%
+
+%%If %%''index''%% is less than %%''-count''%%, it will trigger %%[[:develop:api:efl:pack_linear:method:pack_begin|Efl.Pack_Linear.pack_begin]]%% whereas %%''index''%% greater than %%''count-1''%% will trigger %%[[:develop:api:efl:pack_linear:method:pack_end|Efl.Pack_Linear.pack_end]]%%.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:pack_linear:method:pack_at:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+pack_at @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ @in index: int;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_at(Eo *obj, Efl_Gfx_Entity *subobj, int index);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%Object to pack.%%
+ * **index** //(in)// - %%Index of existing sub-object to insert BEFORE. Valid range is %%''-count''%% to %%''count-1''%%).%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_at|Efl.Pack_Linear.pack_at]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_at|Efl.Ui.Tab_Bar.pack_at]]
+ * [[:develop:api:efl:ui:flip:method:pack_at|Efl.Ui.Flip.pack_at]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_at|Efl.Canvas.Layout_Part_Box.pack_at]]
+ * [[:develop:api:efl:ui:box:method:pack_at|Efl.Ui.Box.pack_at]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_at|Efl.Ui.Radio_Box.pack_at]]
+ * [[:develop:api:efl:ui:group_item:method:pack_at|Efl.Ui.Group_Item.pack_at]]
+ * [[:develop:api:efl:ui:collection:method:pack_at|Efl.Ui.Collection.pack_at]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_at|Efl.Ui.Layout_Part_Box.pack_at]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_at|Efl.Canvas.Layout_Part_Invalid.pack_at]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_at|Efl.Ui.Spotlight.Container.pack_at]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_at|Efl.Ui.Tab_Pager.pack_at]]
+
diff --git a/public_html/data/pages/develop/api/efl/pack_linear/method/pack_before.txt b/public_html/data/pages/develop/api/efl/pack_linear/method/pack_before.txt
new file mode 100644
index 00000000..ede1322b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack_linear/method/pack_before.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Pack_Linear.pack_before~~
+====== Efl.Pack_Linear.pack_before ======
+
+===== Description =====
+
+%%Prepend an object before the %%''existing''%% sub-object.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+%%If %%''existing''%% is %%''NULL''%% this method behaves like %%[[:develop:api:efl:pack_linear:method:pack_begin|Efl.Pack_Linear.pack_begin]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:pack_linear:method:pack_before:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+pack_before @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ @in existing: const(Efl.Gfx.Entity);
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_before(Eo *obj, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%Object to pack before %%''existing''%%.%%
+ * **existing** //(in)// - %%Existing reference sub-object. Must already belong to the container or be %%''NULL''%%.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_before|Efl.Pack_Linear.pack_before]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_before|Efl.Ui.Tab_Bar.pack_before]]
+ * [[:develop:api:efl:ui:flip:method:pack_before|Efl.Ui.Flip.pack_before]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_before|Efl.Canvas.Layout_Part_Box.pack_before]]
+ * [[:develop:api:efl:ui:box:method:pack_before|Efl.Ui.Box.pack_before]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_before|Efl.Ui.Radio_Box.pack_before]]
+ * [[:develop:api:efl:ui:group_item:method:pack_before|Efl.Ui.Group_Item.pack_before]]
+ * [[:develop:api:efl:ui:collection:method:pack_before|Efl.Ui.Collection.pack_before]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_before|Efl.Ui.Layout_Part_Box.pack_before]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_before|Efl.Canvas.Layout_Part_Invalid.pack_before]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_before|Efl.Ui.Spotlight.Container.pack_before]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_before|Efl.Ui.Tab_Pager.pack_before]]
+
diff --git a/public_html/data/pages/develop/api/efl/pack_linear/method/pack_begin.txt b/public_html/data/pages/develop/api/efl/pack_linear/method/pack_begin.txt
new file mode 100644
index 00000000..f1ef67aa
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack_linear/method/pack_begin.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Pack_Linear.pack_begin~~
+====== Efl.Pack_Linear.pack_begin ======
+
+===== Description =====
+
+%%Prepend an object at the beginning of this container.%%
+
+%%This is the same as %%[[:develop:api:efl:pack_linear:method:pack_at|Efl.Pack_Linear.pack_at]]%% with a %%''0''%% index.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:pack_linear:method:pack_begin:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+pack_begin @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_begin(Eo *obj, Efl_Gfx_Entity *subobj);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%Object to pack at the beginning.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_begin|Efl.Pack_Linear.pack_begin]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_begin|Efl.Ui.Tab_Bar.pack_begin]]
+ * [[:develop:api:efl:ui:flip:method:pack_begin|Efl.Ui.Flip.pack_begin]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_begin|Efl.Canvas.Layout_Part_Box.pack_begin]]
+ * [[:develop:api:efl:ui:box:method:pack_begin|Efl.Ui.Box.pack_begin]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_begin|Efl.Ui.Radio_Box.pack_begin]]
+ * [[:develop:api:efl:ui:group_item:method:pack_begin|Efl.Ui.Group_Item.pack_begin]]
+ * [[:develop:api:efl:ui:collection:method:pack_begin|Efl.Ui.Collection.pack_begin]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_begin|Efl.Ui.Layout_Part_Box.pack_begin]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_begin|Efl.Canvas.Layout_Part_Invalid.pack_begin]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_begin|Efl.Ui.Spotlight.Container.pack_begin]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_begin|Efl.Ui.Tab_Pager.pack_begin]]
+
diff --git a/public_html/data/pages/develop/api/efl/pack_linear/method/pack_content_get.txt b/public_html/data/pages/develop/api/efl/pack_linear/method/pack_content_get.txt
new file mode 100644
index 00000000..01b5046f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack_linear/method/pack_content_get.txt
@@ -0,0 +1,47 @@
+~~Title: Efl.Pack_Linear.pack_content_get~~
+====== Efl.Pack_Linear.pack_content_get ======
+
+===== Description =====
+
+%%Sub-object at a given %%''index''%% in this container.%%
+
+%%%%''index''%% ranges from %%''-count''%% to %%''count-1''%%, where positive numbers go from first sub-object (%%''0''%%) to last (%%''count-1''%%), and negative numbers go from last sub-object (%%''-1''%%) to first (%%''-count''%%). %%''count''%% is the number of sub-objects currently in the container as returned by %%[[:develop:api:efl:container:method:content_count|Efl.Container.content_count]]%%.%%
+
+%%If %%''index''%% is less than %%''-count''%%, it will return the first sub-object whereas %%''index''%% greater than %%''count-1''%% will return the last sub-object.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:pack_linear:method:pack_content_get:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+pack_content_get @pure_virtual {
+ params {
+ @in index: int;
+ }
+ return: Efl.Gfx.Entity;
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_pack_content_get(Eo *obj, int index);
+
+
+===== Parameters =====
+
+ * **index** //(in)// - %%Index of the existing sub-object to retrieve. Valid range is %%''-count''%% to %%''count-1''%%.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_content_get|Efl.Pack_Linear.pack_content_get]]
+ * [[:develop:api:efl:ui:flip:method:pack_content_get|Efl.Ui.Flip.pack_content_get]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_content_get|Efl.Canvas.Layout_Part_Box.pack_content_get]]
+ * [[:develop:api:efl:ui:box:method:pack_content_get|Efl.Ui.Box.pack_content_get]]
+ * [[:develop:api:efl:ui:group_item:method:pack_content_get|Efl.Ui.Group_Item.pack_content_get]]
+ * [[:develop:api:efl:ui:collection:method:pack_content_get|Efl.Ui.Collection.pack_content_get]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_content_get|Efl.Ui.Layout_Part_Box.pack_content_get]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_content_get|Efl.Canvas.Layout_Part_Invalid.pack_content_get]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_content_get|Efl.Ui.Spotlight.Container.pack_content_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/pack_linear/method/pack_end.txt b/public_html/data/pages/develop/api/efl/pack_linear/method/pack_end.txt
new file mode 100644
index 00000000..a919ea4e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack_linear/method/pack_end.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Pack_Linear.pack_end~~
+====== Efl.Pack_Linear.pack_end ======
+
+===== Description =====
+
+%%Append object at the end of this container.%%
+
+%%This is the same as %%[[:develop:api:efl:pack_linear:method:pack_at|Efl.Pack_Linear.pack_at]]%% with a %%''-1''%% index.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:pack_linear:method:pack_end:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+pack_end @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_end(Eo *obj, Efl_Gfx_Entity *subobj);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%Object to pack at the end.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_end|Efl.Pack_Linear.pack_end]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_end|Efl.Ui.Tab_Bar.pack_end]]
+ * [[:develop:api:efl:ui:flip:method:pack_end|Efl.Ui.Flip.pack_end]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_end|Efl.Canvas.Layout_Part_Box.pack_end]]
+ * [[:develop:api:efl:ui:box:method:pack_end|Efl.Ui.Box.pack_end]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_end|Efl.Ui.Radio_Box.pack_end]]
+ * [[:develop:api:efl:ui:group_item:method:pack_end|Efl.Ui.Group_Item.pack_end]]
+ * [[:develop:api:efl:ui:collection:method:pack_end|Efl.Ui.Collection.pack_end]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_end|Efl.Ui.Layout_Part_Box.pack_end]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_end|Efl.Canvas.Layout_Part_Invalid.pack_end]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_end|Efl.Ui.Spotlight.Container.pack_end]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_end|Efl.Ui.Tab_Pager.pack_end]]
+
diff --git a/public_html/data/pages/develop/api/efl/pack_linear/method/pack_index_get.txt b/public_html/data/pages/develop/api/efl/pack_linear/method/pack_index_get.txt
new file mode 100644
index 00000000..d48022a2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack_linear/method/pack_index_get.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Pack_Linear.pack_index_get~~
+====== Efl.Pack_Linear.pack_index_get ======
+
+===== Description =====
+
+%%Get the index of a sub-object in this container.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:pack_linear:method:pack_index_get:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+pack_index_get @pure_virtual {
+ params {
+ @in subobj: const(Efl.Gfx.Entity);
+ }
+ return: int (+1);
+}
+
+
+===== C signature =====
+
+
+int efl_pack_index_get(Eo *obj, const Efl_Gfx_Entity *subobj);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%An existing sub-object in this container.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_index_get|Efl.Pack_Linear.pack_index_get]]
+ * [[:develop:api:efl:ui:flip:method:pack_index_get|Efl.Ui.Flip.pack_index_get]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_index_get|Efl.Canvas.Layout_Part_Box.pack_index_get]]
+ * [[:develop:api:efl:ui:box:method:pack_index_get|Efl.Ui.Box.pack_index_get]]
+ * [[:develop:api:efl:ui:group_item:method:pack_index_get|Efl.Ui.Group_Item.pack_index_get]]
+ * [[:develop:api:efl:ui:collection:method:pack_index_get|Efl.Ui.Collection.pack_index_get]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_index_get|Efl.Ui.Layout_Part_Box.pack_index_get]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_index_get|Efl.Canvas.Layout_Part_Invalid.pack_index_get]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_index_get|Efl.Ui.Spotlight.Container.pack_index_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/pack_linear/method/pack_unpack_at.txt b/public_html/data/pages/develop/api/efl/pack_linear/method/pack_unpack_at.txt
new file mode 100644
index 00000000..fd17fe59
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack_linear/method/pack_unpack_at.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Pack_Linear.pack_unpack_at~~
+====== Efl.Pack_Linear.pack_unpack_at ======
+
+===== Description =====
+
+%%Pop out (remove) the sub-object at the specified %%''index''%%.%%
+
+%%%%''index''%% ranges from %%''-count''%% to %%''count-1''%%, where positive numbers go from first sub-object (%%''0''%%) to last (%%''count-1''%%), and negative numbers go from last sub-object (%%''-1''%%) to first (%%''-count''%%). %%''count''%% is the number of sub-objects currently in the container as returned by %%[[:develop:api:efl:container:method:content_count|Efl.Container.content_count]]%%.%%
+
+%%If %%''index''%% is less than -%%''count''%%, it will remove the first sub-object whereas %%''index''%% greater than %%''count''%%-1 will remove the last sub-object.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:pack_linear:method:pack_unpack_at:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+pack_unpack_at @pure_virtual {
+ params {
+ @in index: int;
+ }
+ return: Efl.Gfx.Entity;
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_pack_unpack_at(Eo *obj, int index);
+
+
+===== Parameters =====
+
+ * **index** //(in)// - %%Index of the sub-object to remove. Valid range is %%''-count''%% to %%''count-1''%%.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_unpack_at|Efl.Pack_Linear.pack_unpack_at]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_unpack_at|Efl.Ui.Tab_Bar.pack_unpack_at]]
+ * [[:develop:api:efl:ui:flip:method:pack_unpack_at|Efl.Ui.Flip.pack_unpack_at]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_unpack_at|Efl.Canvas.Layout_Part_Box.pack_unpack_at]]
+ * [[:develop:api:efl:ui:box:method:pack_unpack_at|Efl.Ui.Box.pack_unpack_at]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_unpack_at|Efl.Ui.Radio_Box.pack_unpack_at]]
+ * [[:develop:api:efl:ui:group_item:method:pack_unpack_at|Efl.Ui.Group_Item.pack_unpack_at]]
+ * [[:develop:api:efl:ui:collection:method:pack_unpack_at|Efl.Ui.Collection.pack_unpack_at]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_unpack_at|Efl.Ui.Layout_Part_Box.pack_unpack_at]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_unpack_at|Efl.Canvas.Layout_Part_Invalid.pack_unpack_at]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_unpack_at|Efl.Ui.Spotlight.Container.pack_unpack_at]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_unpack_at|Efl.Ui.Tab_Pager.pack_unpack_at]]
+
diff --git a/public_html/data/pages/develop/api/efl/pack_table.txt b/public_html/data/pages/develop/api/efl/pack_table.txt
new file mode 100644
index 00000000..7cbf6378
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack_table.txt
@@ -0,0 +1,97 @@
+~~Title: Efl.Pack_Table~~
+====== Efl.Pack_Table (interface) ======
+
+===== Description =====
+
+%%Interface for 2D containers which arrange their elements on a table with rows and columns.%%
+
+%%Elements can be positioned on a specific row and column, or they can be simply added to the table using %%[[:develop:api:efl:pack:method:pack|Efl.Pack.pack]]%% and the container will chose where to put them.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:pack_table:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:pack|Efl.Pack]] //(interface)// => [[:develop:api:efl:container|Efl.Container]] //(interface)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:pack|Efl.Pack]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:pack_table:method:pack_table|pack_table]]**\\
+> %%Pack object at a given location in the table.%%
+
+Eina_Bool efl_pack_table(Eo *obj, Efl_Gfx_Entity *subobj, int col, int row, int colspan, int rowspan);
+
+\\
+**[[:develop:api:efl:pack_table:property:table_cell_column|table_cell_column]]** //**(get, set)**//\\
+> %%column of the %%''subobj''%% in this container.%%
+
+Eina_Bool efl_pack_table_cell_column_get(const Eo *obj, Efl_Gfx_Entity *subobj, int *col, int *colspan);
+void efl_pack_table_cell_column_set(Eo *obj, Efl_Gfx_Entity *subobj, int col, int colspan);
+
+\\
+**[[:develop:api:efl:pack_table:property:table_cell_row|table_cell_row]]** //**(get, set)**//\\
+> %%row of the %%''subobj''%% in this container.%%
+
+Eina_Bool efl_pack_table_cell_row_get(const Eo *obj, Efl_Gfx_Entity *subobj, int *row, int *rowspan);
+void efl_pack_table_cell_row_set(Eo *obj, Efl_Gfx_Entity *subobj, int row, int rowspan);
+
+\\
+**[[:develop:api:efl:pack_table:property:table_columns|table_columns]]** //**(get, set)**//\\
+> %%Specifies the amount of columns the table will have when the fill direction is horizontal. If it is vertical, the amount of columns depends on the amount of cells added and %%[[:develop:api:efl:pack_table:property:table_rows|Efl.Pack_Table.table_rows]]%%.%%
+
+int efl_pack_table_columns_get(const Eo *obj);
+void efl_pack_table_columns_set(Eo *obj, int cols);
+
+\\
+**[[:develop:api:efl:pack_table:method:table_content_get|table_content_get]]**\\
+> %%Returns a child at a given position, see %%[[:develop:api:efl:pack_table:method:table_contents_get|Efl.Pack_Table.table_contents_get]]%%.%%
+
+Efl_Gfx_Entity *efl_pack_table_content_get(Eo *obj, int col, int row);
+
+\\
+**[[:develop:api:efl:pack_table:method:table_contents_get|table_contents_get]]**\\
+> %%Returns all objects at a given position in this table.%%
+
+Eina_Iterator *efl_pack_table_contents_get(Eo *obj, int col, int row, Eina_Bool below);
+
+\\
+**[[:develop:api:efl:pack_table:property:table_rows|table_rows]]** //**(get, set)**//\\
+> %%Specifies the amount of rows the table will have when the fill direction is vertical. If it is horizontal, the amount of rows depends on the amount of cells added and %%[[:develop:api:efl:pack_table:property:table_columns|Efl.Pack_Table.table_columns]]%%.%%
+
+int efl_pack_table_rows_get(const Eo *obj);
+void efl_pack_table_rows_set(Eo *obj, int rows);
+
+\\
+**[[:develop:api:efl:pack_table:property:table_size|table_size]]** //**(get, set)**//\\
+> %%Combines %%[[:develop:api:efl:pack_table:property:table_columns|Efl.Pack_Table.table_columns]]%% and %%[[:develop:api:efl:pack_table:property:table_rows|Efl.Pack_Table.table_rows]]%%%%
+
+void efl_pack_table_size_get(const Eo *obj, int *cols, int *rows);
+void efl_pack_table_size_set(Eo *obj, int cols, int rows);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:container:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+^ [[:develop:api:efl:pack|Efl.Pack]] ^^^
+| | **[[:develop:api:efl:pack:method:pack|pack]]** | %%Adds a sub-object to this container.%% |
+| | **[[:develop:api:efl:pack:method:pack_clear|pack_clear]]** | %%Removes all packed sub-objects and unreferences them.%% |
+| | **[[:develop:api:efl:pack:method:unpack|unpack]]** | %%Removes an existing sub-object from the container without deleting it.%% |
+| | **[[:develop:api:efl:pack:method:unpack_all|unpack_all]]** | %%Removes all packed sub-objects without unreferencing them.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
diff --git a/public_html/data/pages/develop/api/efl/pack_table/method/pack_table.txt b/public_html/data/pages/develop/api/efl/pack_table/method/pack_table.txt
new file mode 100644
index 00000000..1257a3aa
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack_table/method/pack_table.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Pack_Table.pack_table~~
+====== Efl.Pack_Table.pack_table ======
+
+===== Description =====
+
+%%Pack object at a given location in the table.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:pack_table:method:pack_table:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+pack_table @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ @in col: int;
+ @in row: int;
+ @in colspan: int @optional;
+ @in rowspan: int @optional;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_table(Eo *obj, Efl_Gfx_Entity *subobj, int col, int row, int colspan, int rowspan);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%A child object to pack in this table.%%
+ * **col** //(in)// - %%Column number%%
+ * **row** //(in)// - %%Row number%%
+ * **colspan** //(in)// - %%0 means 1, -1 means %%[[:develop:api:efl:pack_table:property:table_columns|Efl.Pack_Table.table_columns]]%%%%
+ * **rowspan** //(in)// - %%0 means 1, -1 means %%[[:develop:api:efl:pack_table:property:table_rows|Efl.Pack_Table.table_rows]]%%%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_table:method:pack_table|Efl.Pack_Table.pack_table]]
+ * [[:develop:api:efl:ui:table:method:pack_table|Efl.Ui.Table.pack_table]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:pack_table|Efl.Canvas.Layout_Part_Table.pack_table]]
+ * [[:develop:api:efl:ui:layout_part_table:method:pack_table|Efl.Ui.Layout_Part_Table.pack_table]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_table|Efl.Canvas.Layout_Part_Invalid.pack_table]]
+
diff --git a/public_html/data/pages/develop/api/efl/pack_table/method/table_content_get.txt b/public_html/data/pages/develop/api/efl/pack_table/method/table_content_get.txt
new file mode 100644
index 00000000..a5fb120f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack_table/method/table_content_get.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Pack_Table.table_content_get~~
+====== Efl.Pack_Table.table_content_get ======
+
+===== Description =====
+
+%%Returns a child at a given position, see %%[[:develop:api:efl:pack_table:method:table_contents_get|Efl.Pack_Table.table_contents_get]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:pack_table:method:table_content_get:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+table_content_get @pure_virtual {
+ params {
+ @in col: int;
+ @in row: int;
+ }
+ return: Efl.Gfx.Entity;
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_pack_table_content_get(Eo *obj, int col, int row);
+
+
+===== Parameters =====
+
+ * **col** //(in)// - %%Column number%%
+ * **row** //(in)// - %%Row number%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_table:method:table_content_get|Efl.Pack_Table.table_content_get]]
+ * [[:develop:api:efl:ui:table:method:table_content_get|Efl.Ui.Table.table_content_get]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:table_content_get|Efl.Canvas.Layout_Part_Table.table_content_get]]
+ * [[:develop:api:efl:ui:layout_part_table:method:table_content_get|Efl.Ui.Layout_Part_Table.table_content_get]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:table_content_get|Efl.Canvas.Layout_Part_Invalid.table_content_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/pack_table/method/table_contents_get.txt b/public_html/data/pages/develop/api/efl/pack_table/method/table_contents_get.txt
new file mode 100644
index 00000000..590a7041
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack_table/method/table_contents_get.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Pack_Table.table_contents_get~~
+====== Efl.Pack_Table.table_contents_get ======
+
+===== Description =====
+
+%%Returns all objects at a given position in this table.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:pack_table:method:table_contents_get:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+table_contents_get @pure_virtual {
+ params {
+ @in col: int;
+ @in row: int;
+ @in below: bool @optional;
+ }
+ return: iterator;
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_pack_table_contents_get(Eo *obj, int col, int row, Eina_Bool below);
+
+
+===== Parameters =====
+
+ * **col** //(in)// - %%Column number%%
+ * **row** //(in)// - %%Row number%%
+ * **below** //(in)// - %%If %%''true''%% get objects spanning over this cell.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_table:method:table_contents_get|Efl.Pack_Table.table_contents_get]]
+ * [[:develop:api:efl:ui:table:method:table_contents_get|Efl.Ui.Table.table_contents_get]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:table_contents_get|Efl.Canvas.Layout_Part_Table.table_contents_get]]
+ * [[:develop:api:efl:ui:layout_part_table:method:table_contents_get|Efl.Ui.Layout_Part_Table.table_contents_get]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:table_contents_get|Efl.Canvas.Layout_Part_Invalid.table_contents_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/pack_table/property/table_cell_column.txt b/public_html/data/pages/develop/api/efl/pack_table/property/table_cell_column.txt
new file mode 100644
index 00000000..d925903c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack_table/property/table_cell_column.txt
@@ -0,0 +1,51 @@
+~~Title: Efl.Pack_Table.table_cell_column~~
+====== Efl.Pack_Table.table_cell_column ======
+
+===== Description =====
+
+%%column of the %%''subobj''%% in this container.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:pack_table:property:table_cell_column:description&nouser&nolink&nodate}}
+
+===== Keys =====
+
+ * **subobj** - %%Child object%%
+===== Values =====
+
+ * **col** - %%Column number%%
+ * **colspan** - %%Column span%%
+
+===== Signature =====
+
+
+@property table_cell_column @pure_virtual {
+ get {
+ return: bool;
+ }
+ set {}
+ keys {
+ subobj: Efl.Gfx.Entity;
+ }
+ values {
+ col: int;
+ colspan: int;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_table_cell_column_get(const Eo *obj, Efl_Gfx_Entity *subobj, int *col, int *colspan);
+void efl_pack_table_cell_column_set(Eo *obj, Efl_Gfx_Entity *subobj, int col, int colspan);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_table:property:table_cell_column|Efl.Pack_Table.table_cell_column]]
+ * [[:develop:api:efl:ui:table:property:table_cell_column|Efl.Ui.Table.table_cell_column]]
+ * [[:develop:api:efl:canvas:layout_part_table:property:table_cell_column|Efl.Canvas.Layout_Part_Table.table_cell_column]]
+ * [[:develop:api:efl:ui:layout_part_table:property:table_cell_column|Efl.Ui.Layout_Part_Table.table_cell_column]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:table_cell_column|Efl.Canvas.Layout_Part_Invalid.table_cell_column]]
+
diff --git a/public_html/data/pages/develop/api/efl/pack_table/property/table_cell_row.txt b/public_html/data/pages/develop/api/efl/pack_table/property/table_cell_row.txt
new file mode 100644
index 00000000..83e8d831
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack_table/property/table_cell_row.txt
@@ -0,0 +1,51 @@
+~~Title: Efl.Pack_Table.table_cell_row~~
+====== Efl.Pack_Table.table_cell_row ======
+
+===== Description =====
+
+%%row of the %%''subobj''%% in this container.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:pack_table:property:table_cell_row:description&nouser&nolink&nodate}}
+
+===== Keys =====
+
+ * **subobj** - %%Child object%%
+===== Values =====
+
+ * **row** - %%Row number%%
+ * **rowspan** - %%Row span%%
+
+===== Signature =====
+
+
+@property table_cell_row @pure_virtual {
+ get {
+ return: bool;
+ }
+ set {}
+ keys {
+ subobj: Efl.Gfx.Entity;
+ }
+ values {
+ row: int;
+ rowspan: int;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_table_cell_row_get(const Eo *obj, Efl_Gfx_Entity *subobj, int *row, int *rowspan);
+void efl_pack_table_cell_row_set(Eo *obj, Efl_Gfx_Entity *subobj, int row, int rowspan);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_table:property:table_cell_row|Efl.Pack_Table.table_cell_row]]
+ * [[:develop:api:efl:ui:table:property:table_cell_row|Efl.Ui.Table.table_cell_row]]
+ * [[:develop:api:efl:canvas:layout_part_table:property:table_cell_row|Efl.Canvas.Layout_Part_Table.table_cell_row]]
+ * [[:develop:api:efl:ui:layout_part_table:property:table_cell_row|Efl.Ui.Layout_Part_Table.table_cell_row]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:table_cell_row|Efl.Canvas.Layout_Part_Invalid.table_cell_row]]
+
diff --git a/public_html/data/pages/develop/api/efl/pack_table/property/table_columns.txt b/public_html/data/pages/develop/api/efl/pack_table/property/table_columns.txt
new file mode 100644
index 00000000..b9b6439f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack_table/property/table_columns.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Pack_Table.table_columns~~
+====== Efl.Pack_Table.table_columns ======
+
+===== Description =====
+
+%%Specifies the amount of columns the table will have when the fill direction is horizontal. If it is vertical, the amount of columns depends on the amount of cells added and %%[[:develop:api:efl:pack_table:property:table_rows|Efl.Pack_Table.table_rows]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:pack_table:property:table_columns:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **cols** - %%Amount of columns.%%
+
+===== Signature =====
+
+
+@property table_columns @pure_virtual {
+ get {}
+ set {}
+ values {
+ cols: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_pack_table_columns_get(const Eo *obj);
+void efl_pack_table_columns_set(Eo *obj, int cols);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_table:property:table_columns|Efl.Pack_Table.table_columns]]
+ * [[:develop:api:efl:ui:table:property:table_columns|Efl.Ui.Table.table_columns]]
+ * [[:develop:api:efl:canvas:layout_part_table:property:table_columns|Efl.Canvas.Layout_Part_Table.table_columns]]
+ * [[:develop:api:efl:ui:layout_part_table:property:table_columns|Efl.Ui.Layout_Part_Table.table_columns]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:table_columns|Efl.Canvas.Layout_Part_Invalid.table_columns]]
+
diff --git a/public_html/data/pages/develop/api/efl/pack_table/property/table_rows.txt b/public_html/data/pages/develop/api/efl/pack_table/property/table_rows.txt
new file mode 100644
index 00000000..8c32e2d6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack_table/property/table_rows.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Pack_Table.table_rows~~
+====== Efl.Pack_Table.table_rows ======
+
+===== Description =====
+
+%%Specifies the amount of rows the table will have when the fill direction is vertical. If it is horizontal, the amount of rows depends on the amount of cells added and %%[[:develop:api:efl:pack_table:property:table_columns|Efl.Pack_Table.table_columns]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:pack_table:property:table_rows:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **rows** - %%Amount of rows.%%
+
+===== Signature =====
+
+
+@property table_rows @pure_virtual {
+ get {}
+ set {}
+ values {
+ rows: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_pack_table_rows_get(const Eo *obj);
+void efl_pack_table_rows_set(Eo *obj, int rows);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_table:property:table_rows|Efl.Pack_Table.table_rows]]
+ * [[:develop:api:efl:ui:table:property:table_rows|Efl.Ui.Table.table_rows]]
+ * [[:develop:api:efl:canvas:layout_part_table:property:table_rows|Efl.Canvas.Layout_Part_Table.table_rows]]
+ * [[:develop:api:efl:ui:layout_part_table:property:table_rows|Efl.Ui.Layout_Part_Table.table_rows]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:table_rows|Efl.Canvas.Layout_Part_Invalid.table_rows]]
+
diff --git a/public_html/data/pages/develop/api/efl/pack_table/property/table_size.txt b/public_html/data/pages/develop/api/efl/pack_table/property/table_size.txt
new file mode 100644
index 00000000..6c4f4259
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pack_table/property/table_size.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Pack_Table.table_size~~
+====== Efl.Pack_Table.table_size ======
+
+===== Description =====
+
+%%Combines %%[[:develop:api:efl:pack_table:property:table_columns|Efl.Pack_Table.table_columns]]%% and %%[[:develop:api:efl:pack_table:property:table_rows|Efl.Pack_Table.table_rows]]%%%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:pack_table:property:table_size:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **cols** - %%Number of columns%%
+ * **rows** - %%Number of rows%%
+
+===== Signature =====
+
+
+@property table_size @pure_virtual {
+ get {}
+ set {}
+ values {
+ cols: int;
+ rows: int;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_pack_table_size_get(const Eo *obj, int *cols, int *rows);
+void efl_pack_table_size_set(Eo *obj, int cols, int rows);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_table:property:table_size|Efl.Pack_Table.table_size]]
+ * [[:develop:api:efl:ui:table:property:table_size|Efl.Ui.Table.table_size]]
+ * [[:develop:api:efl:canvas:layout_part_table:property:table_size|Efl.Canvas.Layout_Part_Table.table_size]]
+ * [[:develop:api:efl:ui:layout_part_table:property:table_size|Efl.Ui.Layout_Part_Table.table_size]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:table_size|Efl.Canvas.Layout_Part_Invalid.table_size]]
+
diff --git a/public_html/data/pages/develop/api/efl/part.txt b/public_html/data/pages/develop/api/efl/part.txt
new file mode 100644
index 00000000..b8d523a0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/part.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Part~~
+====== Efl.Part (interface) ======
+
+===== Description =====
+
+%%Interface for objects supporting named parts.%%
+
+%%An object implementing this interface will be able to provide access to some of its sub-objects by name. This gives access to parts as defined in a widget's theme.%%
+
+%%Part proxy objects have a special lifetime that is limited to one and only one function call. This behavior is implemented in efl_part() which call %%[[:develop:api:efl:part:method:part_get|Efl.Part.part_get]]%%(). Calling %%[[:develop:api:efl:part:method:part_get|Efl.Part.part_get]]%%() directly should be avoided.%%
+
+%%In other words, the caller does not hold a reference to this proxy object. It may be possible, in languages that allow it, to get an extra reference to this part object and extend its lifetime to more than a single function call.%%
+
+%%In pseudo-code, this means only the following two use cases are supported:%%
+
+%%obj.func(part(obj, "part"), args)%%
+
+%%And:%%
+
+%%part = ref(part(obj, "part")) func1(part, args) func2(part, args) func3(part, args) unref(part)%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:part:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:part:method:part_get|part_get]]** ''protected''\\
+> %%Get a proxy object referring to a part of an object.%%
+
+Efl_Object *efl_part_get(const Eo *obj, const char *name);
+
+\\
+
+===== Events =====
+
diff --git a/public_html/data/pages/develop/api/efl/part/method/part_get.txt b/public_html/data/pages/develop/api/efl/part/method/part_get.txt
new file mode 100644
index 00000000..c72e6c45
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/part/method/part_get.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Part.part_get~~
+====== Efl.Part.part_get ======
+
+===== Description =====
+
+%%Get a proxy object referring to a part of an object.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:part:method:part_get:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+part_get @protected @const @pure_virtual {
+ params {
+ @in name: string;
+ }
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_part_get(const Eo *obj, const char *name);
+
+
+===== Parameters =====
+
+ * **name** //(in)// - %%The part name.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:part:method:part_get|Efl.Part.part_get]]
+ * [[:develop:api:efl:canvas:layout:method:part_get|Efl.Canvas.Layout.part_get]]
+ * [[:develop:api:efl:ui:widget:method:part_get|Efl.Ui.Widget.part_get]]
+ * [[:develop:api:efl:ui:win:method:part_get|Efl.Ui.Win.part_get]]
+ * [[:develop:api:efl:ui:flip:method:part_get|Efl.Ui.Flip.part_get]]
+ * [[:develop:api:efl:ui:layout_base:method:part_get|Efl.Ui.Layout_Base.part_get]]
+ * [[:develop:api:efl:ui:text:method:part_get|Efl.Ui.Text.part_get]]
+ * [[:develop:api:efl:ui:default_item:method:part_get|Efl.Ui.Default_Item.part_get]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:part_get|Efl.Ui.List_Placeholder_Item.part_get]]
+ * [[:develop:api:efl:ui:textpath:method:part_get|Efl.Ui.Textpath.part_get]]
+ * [[:develop:api:efl:ui:panes:method:part_get|Efl.Ui.Panes.part_get]]
+ * [[:develop:api:efl:ui:progressbar:method:part_get|Efl.Ui.Progressbar.part_get]]
+ * [[:develop:api:efl:ui:popup:method:part_get|Efl.Ui.Popup.part_get]]
+ * [[:develop:api:efl:ui:alert_popup:method:part_get|Efl.Ui.Alert_Popup.part_get]]
+ * [[:develop:api:efl:ui:navigation_bar:method:part_get|Efl.Ui.Navigation_Bar.part_get]]
+ * [[:develop:api:efl:ui:widget_factory:method:part_get|Efl.Ui.Widget_Factory.part_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/player.txt b/public_html/data/pages/develop/api/efl/player.txt
new file mode 100644
index 00000000..2afdaa64
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/player.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Player~~
+====== Efl.Player (interface) ======
+
+===== Description =====
+
+%%Efl media player interface%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:player:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:player:property:paused|paused]]** //**(get, set)**//\\
+> %%Pause state of the media file.%%
+
+Eina_Bool efl_player_paused_get(const Eo *obj);
+Eina_Bool efl_player_paused_set(Eo *obj, Eina_Bool paused);
+
+\\
+**[[:develop:api:efl:player:property:playback_position|playback_position]]** //**(get, set)**//\\
+> %%Position in the media file.%%
+
+double efl_player_playback_position_get(const Eo *obj);
+void efl_player_playback_position_set(Eo *obj, double sec);
+
+\\
+**[[:develop:api:efl:player:property:playback_progress|playback_progress]]** //**(get)**//\\
+>
+
+double efl_player_playback_progress_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:player:property:playback_speed|playback_speed]]** //**(get, set)**//\\
+> %%Control the playback speed of the media file.%%
+
+double efl_player_playback_speed_get(const Eo *obj);
+void efl_player_playback_speed_set(Eo *obj, double speed);
+
+\\
+**[[:develop:api:efl:player:property:playing|playing]]** //**(get, set)**//\\
+> %%Playback state of the media file.%%
+
+Eina_Bool efl_player_playing_get(const Eo *obj);
+Eina_Bool efl_player_playing_set(Eo *obj, Eina_Bool playing);
+
+\\
+
+===== Events =====
+
diff --git a/public_html/data/pages/develop/api/efl/player/property/paused.txt b/public_html/data/pages/develop/api/efl/player/property/paused.txt
new file mode 100644
index 00000000..a638cbf0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/player/property/paused.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Player.paused~~
+====== Efl.Player.paused ======
+
+===== Description =====
+
+%%Pause state of the media file.%%
+
+%%This property sets the pause state of the media. Re-setting the current pause state has no effect.%%
+
+%%If %%[[:develop:api:efl:player:property:playing|Efl.Player.playing]]%% is set to %%''true''%%, this property can be used to pause and resume playback of the media without changing its %%[[:develop:api:efl:player:property:playback_progress|Efl.Player.playback_progress]]%% property. This property cannot be changed if %%[[:develop:api:efl:player:property:playing|Efl.Player.playing]]%% is %%''false''%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:player:property:paused:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **paused** - %%%%''true''%% if paused, %%''false''%% otherwise.%%
+
+===== Signature =====
+
+
+@property paused @pure_virtual {
+ get {}
+ set {
+ return: bool (false);
+ }
+ values {
+ paused: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_player_paused_get(const Eo *obj);
+Eina_Bool efl_player_paused_set(Eo *obj, Eina_Bool paused);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:player:property:paused|Efl.Player.paused]]
+ * [[:develop:api:efl:canvas:video:property:paused|Efl.Canvas.Video.paused]]
+ * [[:develop:api:efl:canvas:animation_player:property:paused|Efl.Canvas.Animation_Player.paused]]
+ * [[:develop:api:efl:canvas:layout:property:paused|Efl.Canvas.Layout.paused]]
+ * [[:develop:api:efl:ui:image:property:paused|Efl.Ui.Image.paused]]
+ * [[:develop:api:efl:ui:image_zoomable:property:paused|Efl.Ui.Image_Zoomable.paused]]
+ * [[:develop:api:efl:ui:video:property:paused|Efl.Ui.Video.paused]]
+
diff --git a/public_html/data/pages/develop/api/efl/player/property/playback_position.txt b/public_html/data/pages/develop/api/efl/player/property/playback_position.txt
new file mode 100644
index 00000000..c61bb27f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/player/property/playback_position.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Player.playback_position~~
+====== Efl.Player.playback_position ======
+
+===== Description =====
+
+%%Position in the media file.%%
+
+%%This property sets the current position of the media file to %%''sec''%% seconds since the beginning of the media file. This only works on seekable streams. Setting the position doesn't change the %%[[:develop:api:efl:player:property:playing|Efl.Player.playing]]%% or %%[[:develop:api:efl:player:property:paused|Efl.Player.paused]]%% states of the media file.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:player:property:playback_position:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **sec** - %%The position (in seconds).%%
+
+===== Signature =====
+
+
+@property playback_position @pure_virtual {
+ get {}
+ set {}
+ values {
+ sec: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_player_playback_position_get(const Eo *obj);
+void efl_player_playback_position_set(Eo *obj, double sec);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:player:property:playback_position|Efl.Player.playback_position]]
+ * [[:develop:api:efl:canvas:video:property:playback_position|Efl.Canvas.Video.playback_position]]
+ * [[:develop:api:efl:canvas:animation_player:property:playback_position|Efl.Canvas.Animation_Player.playback_position]]
+ * [[:develop:api:efl:ui:image:property:playback_position|Efl.Ui.Image.playback_position]]
+ * [[:develop:api:efl:ui:image_zoomable:property:playback_position|Efl.Ui.Image_Zoomable.playback_position]]
+
diff --git a/public_html/data/pages/develop/api/efl/player/property/playback_progress.txt b/public_html/data/pages/develop/api/efl/player/property/playback_progress.txt
new file mode 100644
index 00000000..3d23e374
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/player/property/playback_progress.txt
@@ -0,0 +1,35 @@
+~~Title: Efl.Player.playback_progress~~
+====== Efl.Player.playback_progress ======
+
+===== Values =====
+
+ * **progress** - %%The progress within the [0, 1] range.%%
+
+
+\\ {{page>:develop:api-include:efl:player:property:playback_progress:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property playback_progress @pure_virtual {
+ get {}
+ values {
+ progress: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_player_playback_progress_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:player:property:playback_progress|Efl.Player.playback_progress]]
+ * [[:develop:api:efl:canvas:video:property:playback_progress|Efl.Canvas.Video.playback_progress]]
+ * [[:develop:api:efl:canvas:animation_player:property:playback_progress|Efl.Canvas.Animation_Player.playback_progress]]
+ * [[:develop:api:efl:ui:image:property:playback_progress|Efl.Ui.Image.playback_progress]]
+ * [[:develop:api:efl:ui:image_zoomable:property:playback_progress|Efl.Ui.Image_Zoomable.playback_progress]]
+
diff --git a/public_html/data/pages/develop/api/efl/player/property/playback_speed.txt b/public_html/data/pages/develop/api/efl/player/property/playback_speed.txt
new file mode 100644
index 00000000..99ed8415
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/player/property/playback_speed.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Player.playback_speed~~
+====== Efl.Player.playback_speed ======
+
+===== Description =====
+
+%%Control the playback speed of the media file.%%
+
+%%This function control the speed with which the media file will be played. 1.0 represents the normal speed, 2 double speed, 0.5 half speed and so on.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:player:property:playback_speed:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **speed** - %%The play speed in the [0, infinity) range.%%
+
+===== Signature =====
+
+
+@property playback_speed @pure_virtual {
+ get {}
+ set {}
+ values {
+ speed: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_player_playback_speed_get(const Eo *obj);
+void efl_player_playback_speed_set(Eo *obj, double speed);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:player:property:playback_speed|Efl.Player.playback_speed]]
+ * [[:develop:api:efl:canvas:animation_player:property:playback_speed|Efl.Canvas.Animation_Player.playback_speed]]
+ * [[:develop:api:efl:canvas:layout:property:playback_speed|Efl.Canvas.Layout.playback_speed]]
+ * [[:develop:api:efl:ui:image:property:playback_speed|Efl.Ui.Image.playback_speed]]
+ * [[:develop:api:efl:ui:image_zoomable:property:playback_speed|Efl.Ui.Image_Zoomable.playback_speed]]
+
diff --git a/public_html/data/pages/develop/api/efl/player/property/playing.txt b/public_html/data/pages/develop/api/efl/player/property/playing.txt
new file mode 100644
index 00000000..dcc5c05b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/player/property/playing.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Player.playing~~
+====== Efl.Player.playing ======
+
+===== Description =====
+
+%%Playback state of the media file.%%
+
+%%This property sets the playback state of the object. Re-setting the current playback state has no effect.%%
+
+%%If set to %%''false''%%, the object's %%[[:develop:api:efl:player:property:playback_progress|Efl.Player.playback_progress]]%% property is, by default, reset to %%''0.0''%%. A class may alter this behavior, and it will be stated in the documentation for a class if such behavior changes should be expected.%%
+
+%%Applying the %%''false''%% playing state also has the same effect as the player object reaching the end of its playback, which may invoke additional behavior based on a class's implementation.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:player:property:playing:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **playing** - %%%%''true''%% if playing, %%''false''%% otherwise.%%
+
+===== Signature =====
+
+
+@property playing @pure_virtual {
+ get {}
+ set {
+ return: bool (false);
+ }
+ values {
+ playing: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_player_playing_get(const Eo *obj);
+Eina_Bool efl_player_playing_set(Eo *obj, Eina_Bool playing);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:player:property:playing|Efl.Player.playing]]
+ * [[:develop:api:efl:canvas:video:property:playing|Efl.Canvas.Video.playing]]
+ * [[:develop:api:efl:canvas:animation_player:property:playing|Efl.Canvas.Animation_Player.playing]]
+ * [[:develop:api:efl:ui:image:property:playing|Efl.Ui.Image.playing]]
+ * [[:develop:api:efl:ui:image_zoomable:property:playing|Efl.Ui.Image_Zoomable.playing]]
+ * [[:develop:api:efl:ui:video:property:playing|Efl.Ui.Video.playing]]
+
diff --git a/public_html/data/pages/develop/api/efl/pointer/action.txt b/public_html/data/pages/develop/api/efl/pointer/action.txt
new file mode 100644
index 00000000..ab31326c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pointer/action.txt
@@ -0,0 +1,55 @@
+~~Title: Efl.Pointer.Action~~
+
+===== Description =====
+
+%%Pointer event type. Represents which kind of event this is.%%
+
+//Since 1.19//
+
+{{page>:develop:api-include:efl:pointer:action:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:pointer:action:fields&nouser&nolink&nodate}}
+
+ * **none** - %%Not a valid event, or nothing new happened (eg. when querying current state of touch points).%%
+ * **move** - %%Mouse or equivalent pointer moved.%%
+ * **down** - %%Mouse button or equivalent pointer pressed down. Always followed by up or cancel.%%
+ * **up** - %%Mouse button or equivalent pointer released. See also cancel.%%
+ * **cancel** - %%Special event happening after a down if the up counterpart can not happen (eg. another window forcibly stole the focus).%%
+ * **in** - %%Mouse or pointer entered the object.%%
+ * **out** - %%Mouse or pointer exited the object.%%
+ * **wheel** - %%Mouse wheel scroll, horizontally or vertically.%%
+ * **axis** - %%Axis event (pen, stick, ...).%%
+
+===== Signature =====
+
+
+enum Efl.Pointer.Action {
+ none: 0,
+ move,
+ down,
+ up,
+ cancel,
+ in,
+ out,
+ wheel,
+ axis
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_POINTER_ACTION_NONE = 0,
+ EFL_POINTER_ACTION_MOVE,
+ EFL_POINTER_ACTION_DOWN,
+ EFL_POINTER_ACTION_UP,
+ EFL_POINTER_ACTION_CANCEL,
+ EFL_POINTER_ACTION_IN,
+ EFL_POINTER_ACTION_OUT,
+ EFL_POINTER_ACTION_WHEEL,
+ EFL_POINTER_ACTION_AXIS
+} Efl_Pointer_Action;
+
diff --git a/public_html/data/pages/develop/api/efl/pointer/flags.txt b/public_html/data/pages/develop/api/efl/pointer/flags.txt
new file mode 100644
index 00000000..a443d192
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/pointer/flags.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Pointer.Flags~~
+
+===== Description =====
+
+%%Pointer flags indicating whether a double or triple click is under way.%%
+
+//Since 1.19//
+
+{{page>:develop:api-include:efl:pointer:flags:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:pointer:flags:fields&nouser&nolink&nodate}}
+
+ * **none** - %%No extra mouse button data%%
+ * **double_click** - %%This mouse button press was the 2nd press of a double click%%
+ * **triple_click** - %%This mouse button press was the 3rd press of a triple click%%
+
+===== Signature =====
+
+
+enum Efl.Pointer.Flags {
+ none: 0,
+ double_click: 1 >> 0,
+ triple_click: 1 >> 1
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_POINTER_FLAGS_NONE = 0,
+ EFL_POINTER_FLAGS_DOUBLE_CLICK = 1 /* 1 >> 0 */,
+ EFL_POINTER_FLAGS_TRIPLE_CLICK = 2 /* 1 >> 1 */
+} Efl_Pointer_Flags;
+
diff --git a/public_html/data/pages/develop/api/efl/screen.txt b/public_html/data/pages/develop/api/efl/screen.txt
new file mode 100644
index 00000000..b0267ac1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/screen.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Screen~~
+====== Efl.Screen (interface) ======
+
+===== Description =====
+
+%%Efl screen interface%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:screen:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:screen:property:screen_dpi|screen_dpi]]** //**(get)**//\\
+>
+
+void efl_screen_dpi_get(const Eo *obj, int *xdpi, int *ydpi);
+
+\\
+**[[:develop:api:efl:screen:property:screen_rotation|screen_rotation]]** //**(get)**//\\
+>
+
+int efl_screen_rotation_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:screen:property:screen_scale_factor|screen_scale_factor]]** //**(get)**//\\
+>
+
+float efl_screen_scale_factor_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:screen:property:screen_size_in_pixels|screen_size_in_pixels]]** //**(get)**//\\
+>
+
+Eina_Size2D efl_screen_size_in_pixels_get(const Eo *obj);
+
+\\
+
+===== Events =====
+
diff --git a/public_html/data/pages/develop/api/efl/screen/property/screen_dpi.txt b/public_html/data/pages/develop/api/efl/screen/property/screen_dpi.txt
new file mode 100644
index 00000000..a43fcb33
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/screen/property/screen_dpi.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Screen.screen_dpi~~
+====== Efl.Screen.screen_dpi ======
+
+===== Values =====
+
+ * **xdpi** - %%Horizontal DPI.%%
+ * **ydpi** - %%Vertical DPI.%%
+
+
+\\ {{page>:develop:api-include:efl:screen:property:screen_dpi:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property screen_dpi @pure_virtual {
+ get {}
+ values {
+ xdpi: int;
+ ydpi: int;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_screen_dpi_get(const Eo *obj, int *xdpi, int *ydpi);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:screen:property:screen_dpi|Efl.Screen.screen_dpi]]
+ * [[:develop:api:efl:ui:win:property:screen_dpi|Efl.Ui.Win.screen_dpi]]
+
diff --git a/public_html/data/pages/develop/api/efl/screen/property/screen_rotation.txt b/public_html/data/pages/develop/api/efl/screen/property/screen_rotation.txt
new file mode 100644
index 00000000..9f44ed3d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/screen/property/screen_rotation.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.Screen.screen_rotation~~
+====== Efl.Screen.screen_rotation ======
+
+===== Values =====
+
+ * **rotation** - %%Screen rotation in degrees.%%
+
+
+\\ {{page>:develop:api-include:efl:screen:property:screen_rotation:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property screen_rotation @pure_virtual {
+ get {}
+ values {
+ rotation: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_screen_rotation_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:screen:property:screen_rotation|Efl.Screen.screen_rotation]]
+ * [[:develop:api:efl:ui:win:property:screen_rotation|Efl.Ui.Win.screen_rotation]]
+
diff --git a/public_html/data/pages/develop/api/efl/screen/property/screen_scale_factor.txt b/public_html/data/pages/develop/api/efl/screen/property/screen_scale_factor.txt
new file mode 100644
index 00000000..211ac8cd
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/screen/property/screen_scale_factor.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.Screen.screen_scale_factor~~
+====== Efl.Screen.screen_scale_factor ======
+
+===== Values =====
+
+ * **size** - %%The screen scaling factor.%%
+
+
+\\ {{page>:develop:api-include:efl:screen:property:screen_scale_factor:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property screen_scale_factor @pure_virtual {
+ get {}
+ values {
+ size: float;
+ }
+}
+
+
+===== C signature =====
+
+
+float efl_screen_scale_factor_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:screen:property:screen_scale_factor|Efl.Screen.screen_scale_factor]]
+ * [[:develop:api:efl:ui:win:property:screen_scale_factor|Efl.Ui.Win.screen_scale_factor]]
+
diff --git a/public_html/data/pages/develop/api/efl/screen/property/screen_size_in_pixels.txt b/public_html/data/pages/develop/api/efl/screen/property/screen_size_in_pixels.txt
new file mode 100644
index 00000000..57ef2873
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/screen/property/screen_size_in_pixels.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.Screen.screen_size_in_pixels~~
+====== Efl.Screen.screen_size_in_pixels ======
+
+===== Values =====
+
+ * **size** - %%The screen size in pixels.%%
+
+
+\\ {{page>:develop:api-include:efl:screen:property:screen_size_in_pixels:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property screen_size_in_pixels @pure_virtual {
+ get {}
+ values {
+ size: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_screen_size_in_pixels_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:screen:property:screen_size_in_pixels|Efl.Screen.screen_size_in_pixels]]
+ * [[:develop:api:efl:ui:win:property:screen_size_in_pixels|Efl.Ui.Win.screen_size_in_pixels]]
+
diff --git a/public_html/data/pages/develop/api/efl/task.txt b/public_html/data/pages/develop/api/efl/task.txt
new file mode 100644
index 00000000..ad2e56d3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/task.txt
@@ -0,0 +1,126 @@
+~~Title: Efl.Task~~
+====== Efl.Task (class) ======
+
+===== Description =====
+
+%%EFL's abstraction for a task (process).%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:task:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:task:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:task:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:task:method:end|end]]**\\
+> %%Request the task end (may send a signal or interrupt signal resulting in a terminate event being triggered in the target task loop).%%
+
+void efl_task_end(Eo *obj);
+
+\\
+**[[:develop:api:efl:task:property:exit_code|exit_code]]** //**(get)**//\\
+>
+
+int efl_task_exit_code_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:task:property:flags|flags]]** //**(get, set)**//\\
+> %%Flags to further customize task's behavior.%%
+
+Efl_Task_Flags efl_task_flags_get(const Eo *obj);
+void efl_task_flags_set(Eo *obj, Efl_Task_Flags flags);
+
+\\
+**[[:develop:api:efl:task:property:parent|parent]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%The parent of an object.%%
+
+Efl_Object *efl_parent_get(const Eo *obj);
+void efl_parent_set(Eo *obj, Efl_Object *parent);
+
+\\
+**[[:develop:api:efl:task:property:priority|priority]]** //**(get, set)**//\\
+> %%The priority of this task.%%
+
+Efl_Task_Priority efl_task_priority_get(const Eo *obj);
+void efl_task_priority_set(Eo *obj, Efl_Task_Priority priority);
+
+\\
+**[[:develop:api:efl:task:method:run|run]]**\\
+> %%Actually run the task.%%
+
+Eina_Bool efl_task_run(Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+
+===== Events =====
+
+**[[:develop:api:efl:task:event:exit|exit]]**\\
+> %%Called when the task exits. You can pick up any information you need at this point such as exit_code etc.%%
+
+EFL_TASK_EVENT_EXIT(void)
+
+\\ ==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
diff --git a/public_html/data/pages/develop/api/efl/task/event/exit.txt b/public_html/data/pages/develop/api/efl/task/event/exit.txt
new file mode 100644
index 00000000..f85e48bb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/task/event/exit.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Task: exit~~
+
+===== Description =====
+
+%%Called when the task exits. You can pick up any information you need at this point such as exit_code etc.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:task:event:exit:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+exit;
+
+
+===== C information =====
+
+
+EFL_TASK_EVENT_EXIT(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_task_event_exit(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_TASK_EVENT_EXIT, on_efl_task_event_exit, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/task/method/constructor.txt b/public_html/data/pages/develop/api/efl/task/method/constructor.txt
new file mode 100644
index 00000000..a54b131a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/task/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Task.constructor~~
+====== Efl.Task.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:task:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/task/method/destructor.txt b/public_html/data/pages/develop/api/efl/task/method/destructor.txt
new file mode 100644
index 00000000..905a19a2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/task/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Task.destructor~~
+====== Efl.Task.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:task:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/task/method/end.txt b/public_html/data/pages/develop/api/efl/task/method/end.txt
new file mode 100644
index 00000000..a30cc1ec
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/task/method/end.txt
@@ -0,0 +1,29 @@
+~~Title: Efl.Task.end~~
+====== Efl.Task.end ======
+
+===== Description =====
+
+%%Request the task end (may send a signal or interrupt signal resulting in a terminate event being triggered in the target task loop).%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:task:method:end:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+end @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_task_end(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:task:method:end|Efl.Task.end]]
+ * [[:develop:api:efl:loop:method:end|Efl.Loop.end]]
+ * [[:develop:api:efl:exe:method:end|Efl.Exe.end]]
+ * [[:develop:api:efl:thread:method:end|Efl.Thread.end]]
+
diff --git a/public_html/data/pages/develop/api/efl/task/method/run.txt b/public_html/data/pages/develop/api/efl/task/method/run.txt
new file mode 100644
index 00000000..004c9f13
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/task/method/run.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Task.run~~
+====== Efl.Task.run ======
+
+===== Description =====
+
+%%Actually run the task.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:task:method:run:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+run @pure_virtual {
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_task_run(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:task:method:run|Efl.Task.run]]
+ * [[:develop:api:efl:loop:method:run|Efl.Loop.run]]
+ * [[:develop:api:efl:exe:method:run|Efl.Exe.run]]
+ * [[:develop:api:efl:thread:method:run|Efl.Thread.run]]
+
diff --git a/public_html/data/pages/develop/api/efl/task/property/exit_code.txt b/public_html/data/pages/develop/api/efl/task/property/exit_code.txt
new file mode 100644
index 00000000..4542fa42
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/task/property/exit_code.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Task.exit_code~~
+====== Efl.Task.exit_code ======
+
+===== Values =====
+
+ * **code** - %%The exit code.%%
+
+
+\\ {{page>:develop:api-include:efl:task:property:exit_code:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property exit_code {
+ get {}
+ values {
+ code: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_task_exit_code_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:task:property:exit_code|Efl.Task.exit_code]]
+
diff --git a/public_html/data/pages/develop/api/efl/task/property/flags.txt b/public_html/data/pages/develop/api/efl/task/property/flags.txt
new file mode 100644
index 00000000..0903954c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/task/property/flags.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Task.flags~~
+====== Efl.Task.flags ======
+
+===== Description =====
+
+%%Flags to further customize task's behavior.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:task:property:flags:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **flags** - %%Desired task flags.%%
+
+===== Signature =====
+
+
+@property flags {
+ get {}
+ set {}
+ values {
+ flags: Efl.Task_Flags (Efl.Task_Flags.exit_with_parent);
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Task_Flags efl_task_flags_get(const Eo *obj);
+void efl_task_flags_set(Eo *obj, Efl_Task_Flags flags);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:task:property:flags|Efl.Task.flags]]
+
diff --git a/public_html/data/pages/develop/api/efl/task/property/parent.txt b/public_html/data/pages/develop/api/efl/task/property/parent.txt
new file mode 100644
index 00000000..8880dd27
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/task/property/parent.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Task.parent~~
+====== Efl.Task.parent ======
+
+===== Description =====
+
+%%The parent of an object.%%
+
+%%Parents keep references to their children and will release these references when destroyed. In this way, objects can be assigned to a parent upon creation, tying their life cycle so the programmer does not need to worry about destroying the child object. In order to destroy an object before its parent, set the parent to %%''NULL''%% and use efl_unref(), or use efl_del() directly.%%
+
+%%The Eo parent is conceptually user set. That means that a parent should not be changed behind the scenes in an unexpected way.%%
+
+%%For example: If you have a widget which can swallow objects into an internal box, the parent of the swallowed objects should be the widget, not the internal box. The user is not even aware of the existence of the internal box.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:task:property:parent:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **parent** - %%The new parent.%%
+
+//Overridden from [[:develop:api:efl:loop_consumer:property:parent|Efl.Object.parent]] **(set)**.//===== Signature =====
+
+
+@property parent {
+ get {}
+ set {}
+ values {
+ parent: Efl.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_parent_get(const Eo *obj);
+void efl_parent_set(Eo *obj, Efl_Object *parent);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:property:parent|Efl.Object.parent]]
+ * [[:develop:api:efl:loop_handler:property:parent|Efl.Loop_Handler.parent]]
+ * [[:develop:api:efl:canvas:vg:node:property:parent|Efl.Canvas.Vg.Node.parent]]
+ * [[:develop:api:efl:canvas:vg:container:property:parent|Efl.Canvas.Vg.Container.parent]]
+ * [[:develop:api:efl:input:device:property:parent|Efl.Input.Device.parent]]
+ * [[:develop:api:efl:loop_consumer:property:parent|Efl.Loop_Consumer.parent]]
+ * [[:develop:api:efl:loop_fd:property:parent|Efl.Loop_Fd.parent]]
+ * [[:develop:api:efl:loop_timer:property:parent|Efl.Loop_Timer.parent]]
+ * [[:develop:api:efl:task:property:parent|Efl.Task.parent]]
+ * [[:develop:api:efl:thread:property:parent|Efl.Thread.parent]]
+
diff --git a/public_html/data/pages/develop/api/efl/task/property/priority.txt b/public_html/data/pages/develop/api/efl/task/property/priority.txt
new file mode 100644
index 00000000..5079adc7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/task/property/priority.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Task.priority~~
+====== Efl.Task.priority ======
+
+===== Description =====
+
+%%The priority of this task.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:task:property:priority:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **priority** - %%Desired priority.%%
+
+===== Signature =====
+
+
+@property priority {
+ get {}
+ set {}
+ values {
+ priority: Efl.Task_Priority;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Task_Priority efl_task_priority_get(const Eo *obj);
+void efl_task_priority_set(Eo *obj, Efl_Task_Priority priority);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:task:property:priority|Efl.Task.priority]]
+ * [[:develop:api:efl:app:property:priority|Efl.App.priority]]
+ * [[:develop:api:efl:exe:property:priority|Efl.Exe.priority]]
+
diff --git a/public_html/data/pages/develop/api/efl/task_flags.txt b/public_html/data/pages/develop/api/efl/task_flags.txt
new file mode 100644
index 00000000..baac5b07
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/task_flags.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Task_Flags~~
+
+===== Description =====
+
+%%Flags to further customize task's behavior.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:task_flags:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:task_flags:fields&nouser&nolink&nodate}}
+
+ * **none** - %%No special flags.%%
+ * **use_stdin** - %%Task will require console input.%%
+ * **use_stdout** - %%Task will require console output.%%
+ * **no_exit_code_error** - %%Task will not produce an exit code upon termination.%%
+ * **exit_with_parent** - %%Exit when parent exits.%%
+
+===== Signature =====
+
+
+enum Efl.Task_Flags {
+ none: 0,
+ use_stdin: 1,
+ use_stdout: 2,
+ no_exit_code_error: 4,
+ exit_with_parent: 8
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_TASK_FLAGS_NONE = 0,
+ EFL_TASK_FLAGS_USE_STDIN = 1,
+ EFL_TASK_FLAGS_USE_STDOUT = 2,
+ EFL_TASK_FLAGS_NO_EXIT_CODE_ERROR = 4,
+ EFL_TASK_FLAGS_EXIT_WITH_PARENT = 8
+} Efl_Task_Flags;
+
diff --git a/public_html/data/pages/develop/api/efl/task_priority.txt b/public_html/data/pages/develop/api/efl/task_priority.txt
new file mode 100644
index 00000000..fe1c624f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/task_priority.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Task_Priority~~
+
+===== Description =====
+
+%%How much processor time will this task get compared to other tasks running on the same processor.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:task_priority:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:task_priority:fields&nouser&nolink&nodate}}
+
+ * **normal** - %%Neither above nor below average priority. This is the default.%%
+ * **background** - %%Far below average priority.%%
+ * **low** - %%Below average priority.%%
+ * **high** - %%Above average priority.%%
+ * **ultra** - %%Far above average priority.%%
+
+===== Signature =====
+
+
+enum Efl.Task_Priority {
+ normal: 0,
+ background,
+ low,
+ high,
+ ultra
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_TASK_PRIORITY_NORMAL = 0,
+ EFL_TASK_PRIORITY_BACKGROUND,
+ EFL_TASK_PRIORITY_LOW,
+ EFL_TASK_PRIORITY_HIGH,
+ EFL_TASK_PRIORITY_ULTRA
+} Efl_Task_Priority;
+
diff --git a/public_html/data/pages/develop/api/efl/text.txt b/public_html/data/pages/develop/api/efl/text.txt
new file mode 100644
index 00000000..96039011
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/text.txt
@@ -0,0 +1,23 @@
+~~Title: Efl.Text~~
+====== Efl.Text (interface) ======
+
+===== Description =====
+
+%%Efl text interface%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:text:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:text:property:text|text]]** //**(get, set)**//\\
+> %%The text string to be displayed by the given text object.%%
+
+const char *efl_text_get(const Eo *obj);
+void efl_text_set(Eo *obj, const char *text);
+
+\\
+
+===== Events =====
+
diff --git a/public_html/data/pages/develop/api/efl/text/property/text.txt b/public_html/data/pages/develop/api/efl/text/property/text.txt
new file mode 100644
index 00000000..7eb5e063
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/text/property/text.txt
@@ -0,0 +1,67 @@
+~~Title: Efl.Text.text~~
+====== Efl.Text.text ======
+
+===== Description =====
+
+%%The text string to be displayed by the given text object.%%
+
+%%Do not release (free) the returned value.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:text:property:text:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **text** - %%Text string to display.%%
+
+===== Signature =====
+
+
+@property text @pure_virtual {
+ get {}
+ set {}
+ values {
+ text: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_text_get(const Eo *obj);
+void efl_text_set(Eo *obj, const char *text);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:text:property:text|Efl.Text.text]]
+ * [[:develop:api:efl:ui:check:property:text|Efl.Ui.Check.text]]
+ * [[:develop:api:efl:ui:win:property:text|Efl.Ui.Win.text]]
+ * [[:develop:api:efl:ui:default_item:property:text|Efl.Ui.Default_Item.text]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:property:text|Efl.Ui.Navigation_Bar_Part_Back_Button.text]]
+ * [[:develop:api:efl:ui:layout_part_legacy:property:text|Efl.Ui.Layout_Part_Legacy.text]]
+ * [[:develop:api:elm_actionslider:part:property:text|Elm_Actionslider.Part.text]]
+ * [[:develop:api:elm:entry:part:property:text|Elm.Entry.Part.text]]
+ * [[:develop:api:elm_label:part:property:text|Elm_Label.Part.text]]
+ * [[:develop:api:elm:multibuttonentry_part:property:text|Elm.Multibuttonentry_Part.text]]
+ * [[:develop:api:elm:naviframe:part:property:text|Elm.Naviframe.Part.text]]
+ * [[:develop:api:elm_bubble:part:property:text|Elm_Bubble.Part.text]]
+ * [[:develop:api:elm:fileselector:entry:part:property:text|Elm.Fileselector.Entry.Part.text]]
+ * [[:develop:api:elm:fileselector:part:property:text|Elm.Fileselector.Part.text]]
+ * [[:develop:api:elm:popup:part:property:text|Elm.Popup.Part.text]]
+ * [[:develop:api:elm:notify:part:property:text|Elm.Notify.Part.text]]
+ * [[:develop:api:efl:canvas:text:property:text|Efl.Canvas.Text.text]]
+ * [[:develop:api:efl:ui:layout_part_text:property:text|Efl.Ui.Layout_Part_Text.text]]
+ * [[:develop:api:efl:ui:textpath_part:property:text|Efl.Ui.Textpath_Part.text]]
+ * [[:develop:api:efl:ui:alert_popup_part:property:text|Efl.Ui.Alert_Popup_Part.text]]
+ * [[:develop:api:efl:ui:text_part:property:text|Efl.Ui.Text_Part.text]]
+ * [[:develop:api:efl:ui:textpath:property:text|Efl.Ui.Textpath.text]]
+ * [[:develop:api:efl:ui:tags:property:text|Efl.Ui.Tags.text]]
+ * [[:develop:api:efl:ui:frame:property:text|Efl.Ui.Frame.text]]
+ * [[:develop:api:efl:ui:progressbar:property:text|Efl.Ui.Progressbar.text]]
+ * [[:develop:api:efl:ui:button:property:text|Efl.Ui.Button.text]]
+ * [[:develop:api:efl:ui:navigation_bar:property:text|Efl.Ui.Navigation_Bar.text]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:text|Efl.Canvas.Layout_Part_Invalid.text]]
+ * [[:develop:api:efl:canvas:layout_part_text:property:text|Efl.Canvas.Layout_Part_Text.text]]
+
diff --git a/public_html/data/pages/develop/api/efl/text_bidirectional_type.txt b/public_html/data/pages/develop/api/efl/text_bidirectional_type.txt
new file mode 100644
index 00000000..6a273a33
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/text_bidirectional_type.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Text_Bidirectional_Type~~
+
+===== Description =====
+
+%%Bidirectionaltext type%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:text_bidirectional_type:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:text_bidirectional_type:fields&nouser&nolink&nodate}}
+
+ * **natural** - %%Natural text type, same as neutral%%
+ * **neutral** - %%Neutral text type, same as natural%%
+ * **ltr** - %%Left to right text type%%
+ * **rtl** - %%Right to left text type%%
+ * **inherit** - %%Inherit text type%%
+
+===== Signature =====
+
+
+enum Efl.Text_Bidirectional_Type {
+ natural: 0,
+ neutral: 0,
+ ltr,
+ rtl,
+ inherit
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_TEXT_BIDIRECTIONAL_TYPE_NATURAL = 0,
+ EFL_TEXT_BIDIRECTIONAL_TYPE_NEUTRAL = 0,
+ EFL_TEXT_BIDIRECTIONAL_TYPE_LTR,
+ EFL_TEXT_BIDIRECTIONAL_TYPE_RTL,
+ EFL_TEXT_BIDIRECTIONAL_TYPE_INHERIT
+} Efl_Text_Bidirectional_Type;
+
diff --git a/public_html/data/pages/develop/api/efl/time.txt b/public_html/data/pages/develop/api/efl/time.txt
new file mode 100644
index 00000000..cbb565f8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/time.txt
@@ -0,0 +1,55 @@
+~~Title: Efl.Time~~
+
+===== Description =====
+
+%%This type is a alias for struct tm. It is intended to be a standard way to reference it in .eo files.%%
+
+//Since 1.18//
+
+{{page>:develop:api-include:efl:time:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:time:fields&nouser&nolink&nodate}}
+
+ * **tm_sec** - %%Seconds. [0-60] (1 leap second)%%
+ * **tm_min** - %%Minutes. [0-59]%%
+ * **tm_hour** - %%Hours. [0-23]%%
+ * **tm_mday** - %%Day. [1-31]%%
+ * **tm_mon** - %%Month. [0-11]%%
+ * **tm_year** - %%Year - 1900.%%
+ * **tm_wday** - %%Day of week. [0-6]%%
+ * **tm_yday** - %%Days in year.[0-365]%%
+ * **tm_isdst** - %%DST. [-1/0/1]%%
+
+===== Signature =====
+
+
+struct @extern Efl.Time {
+ tm_sec: int;
+ tm_min: int;
+ tm_hour: int;
+ tm_mday: int;
+ tm_mon: int;
+ tm_year: int;
+ tm_wday: int;
+ tm_yday: int;
+ tm_isdst: int;
+}
+
+
+===== C signature =====
+
+
+typedef struct _Efl_Time {
+ int tm_sec;
+ int tm_min;
+ int tm_hour;
+ int tm_mday;
+ int tm_mon;
+ int tm_year;
+ int tm_wday;
+ int tm_yday;
+ int tm_isdst;
+} Efl_Time;
+
diff --git a/public_html/data/pages/develop/api/efl/ui/alert_popup.txt b/public_html/data/pages/develop/api/efl/ui/alert_popup.txt
new file mode 100644
index 00000000..d66734bb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/alert_popup.txt
@@ -0,0 +1,450 @@
+~~Title: Efl.Ui.Alert_Popup~~
+====== Efl.Ui.Alert_Popup (class) ======
+
+===== Description =====
+
+%%A variant of %%[[:develop:api:efl:ui:popup|Efl.Ui.Popup]]%% which uses a layout containing a content object and a variable number of buttons (up to 3 total).%%
+
+%%An Alert_Popup is a popup which can be used when an application requires user interaction. It provides functionality for easily creating button objects on the popup and passing information about which button has been pressed to the button event callback.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:alert_popup:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:popup|Efl.Ui.Popup]] //(class)// => [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)// => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:popup|Efl.Ui.Popup]] //(class)//
+ * [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)//
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] //(interface)//
+ * [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] //(interface)//
+ * [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] //(interface)//
+ * [[:develop:api:efl:layout:group|Efl.Layout.Group]] //(interface)//
+ * [[:develop:api:efl:content|Efl.Content]] //(interface)//
+ * [[:develop:api:efl:ui:focus:layer|Efl.Ui.Focus.Layer]] //(mixin)//
+ * [[:develop:api:efl:ui:widget_focus_manager|Efl.Ui.Widget_Focus_Manager]] //(mixin)//
+ * [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] //(interface)//
+ * [[:develop:api:efl:ui:widget_scrollable_content|Efl.Ui.Widget_Scrollable_Content]] //(mixin)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:alert_popup:property:button|button]]** //**(set)**//\\
+>
+
+void efl_ui_alert_popup_button_set(Eo *obj, Efl_Ui_Alert_Popup_Button type, const char *text, Efl_Canvas_Object *icon);
+
+\\
+**[[:develop:api:efl:ui:alert_popup:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:alert_popup:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:alert_popup:method:part_get|part_get]]** ''protected''// [Overridden from [[:develop:api:efl:part|Efl.Part]]]//\\
+> %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%%
+
+Efl_Object *efl_part_get(const Eo *obj, const char *name);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:layer|Efl.Ui.Focus.Layer]] ^^^
+| | **[[:develop:api:efl:ui:focus:layer:method:move|move]]** | %%Moves the focus in the given direction to the next regular widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:layer:property:behaviour|behaviour]]** //**(get, set)**// | %%Sets the behaviour of the focus layer.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:layer:property:enable|enable]]** //**(get, set)**// | %%Whether the focus layer is enabled. This can be handled automatically through %%[[:develop:api:efl:gfx:entity:property:visible|Efl.Gfx.Entity.visible]]%% and %%[[:develop:api:efl:ui:focus:layer:property:behaviour|Efl.Ui.Focus.Layer.behaviour]]%%.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:layer:method:focus_manager_create|focus_manager_create]]** | %%If the widget needs a focus manager, this function will be called.%% |
+^ [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] ^^^
+| | **[[:develop:api:efl:ui:focus:manager:property:border_elements|border_elements]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:focus:manager:method:dirty_logic_freeze|dirty_logic_freeze]]** | %%Disables the cache invalidation when an object is moved.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:dirty_logic_unfreeze|dirty_logic_unfreeze]]** | %%Enables the cache invalidation when an object is moved.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:fetch|fetch]]** | %%Fetches the data from a registered node.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:logical_end|logical_end]]** | %%Returns the last logical object.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:manager_focus|manager_focus]]** //**(get, set)**// | %%The element which is currently focused by this manager.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:pop_history_stack|pop_history_stack]]** | %%Removes the uppermost history element, and focuses the previous one.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:redirect|redirect]]** //**(get, set)**// | %%Add another manager to serve the move requests.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:request_move|request_move]]** | %%Returns the object in the %%''direction''%% from %%''child''%%.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:request_subchild|request_subchild]]** | %%Returns the widget in the direction next.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:reset_history|reset_history]]** | %%Resets the history stack of this manager object. This means the uppermost element will be unfocused, and all other elements will be removed from the remembered list.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:root|root]]** //**(get, set)**// | %%Root node for all logical sub-trees.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:setup_on_first_touch|setup_on_first_touch]]** | %%Called when this manager is set as redirect.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:viewport_elements|viewport_elements]]** //**(get)**// | |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:property:automatic_theme_rotation|automatic_theme_rotation]]** //**(get, set)**// | %%This flag tells if this object will automatically mirror the rotation changes of the window to this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**// | %%Whether this object updates its size hints automatically.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_freeze|calc_freeze]]** | %%Freezes the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_parts_extends|calc_parts_extends]]** | %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_size_min|calc_size_min]]** | %%Calculates the minimum required size for a given layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_thaw|calc_thaw]]** | %%Thaws the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:layout_base:method:factory_bind|factory_bind]]** | %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:finger_size_multiplier|finger_size_multiplier]]** //**(get, set)**// | %%Set a multiplier for applying finger size to the layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:group_data|group_data]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_max|group_size_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_min|group_size_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:l10n_text|l10n_text]]** //**(get, set)**// | %%A unique string to be translated.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:message_send|message_send]]** | %%Sends an (Edje) message to a given Edje object%% |
+| | **[[:develop:api:efl:ui:layout_base:property:part_exist|part_exist]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_add|signal_callback_add]]** | %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_del|signal_callback_del]]** | %%Removes a signal-triggered callback from an object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_emit|signal_emit]]** | %%Sends/emits an Edje signal to this layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_process|signal_process]]** | %%Processes an object's messages and signals queue.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:theme|theme]]** //**(get, set)**// | %%The theme of this widget, defines which edje group will be used.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:theme_rotation_apply|theme_rotation_apply]]** | %%Apply a new rotation value to this object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:calc_force|calc_force]]** | %%Forces a Size/Geometry calculation.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:on_focus_update|on_focus_update]]** | %%Virtual function handling focus in/out events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:theme_apply|theme_apply]]** | %%Virtual function called when the widget needs to re-apply its theme.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+^ [[:develop:api:efl:ui:popup|Efl.Ui.Popup]] ^^^
+| | **[[:develop:api:efl:ui:popup:property:align|align]]** //**(get, set)**// | %%The align property specifies a Popup's current positioning relative to its anchor.%% |
+| | **[[:develop:api:efl:ui:popup:property:align_priority|align_priority]]** //**(get, set)**// | %%This is the priority in which alignments will be tested using the anchor object if the value of %%[[:develop:api:efl:ui:popup:property:align|Efl.Ui.Popup.align]]%% is determined to be invalid. If a given alignment would result in the popup being partially or fully outside the visible area of the window, it is deemed invalid, and the next alignment is tested until either the priority list is exhausted or a usable alignment is found.%% |
+| | **[[:develop:api:efl:ui:popup:property:anchor|anchor]]** //**(get, set)**// | %%The anchor object is the reference object for positioning a Popup using the %%[[:develop:api:efl:ui:popup:property:align|Efl.Ui.Popup.align]]%% and %%[[:develop:api:efl:ui:popup:property:align_priority|Efl.Ui.Popup.align_priority]]%% properties.%% |
+| | **[[:develop:api:efl:ui:popup:property:closing_timeout|closing_timeout]]** //**(get, set)**// | %%The closing_timeout property is the time after which the Popup widget will be automatically deleted.%% |
+| | **[[:develop:api:efl:ui:popup:property:content|content]]** //**(get, set)**// | %%Sub-object currently set as this object's single content.%% |
+| | **[[:develop:api:efl:ui:popup:method:content_unset|content_unset]]** | %%Remove the sub-object currently set as content of this object and return it. This object becomes empty.%% |
+| | **[[:develop:api:efl:ui:popup:method:group_calculate|group_calculate]]** | %%Triggers an immediate recalculation of this object's geometry.%% |
+| | **[[:develop:api:efl:ui:popup:property:position|position]]** //**(get, set)**// | %%The 2D position of a canvas object.%% |
+| | **[[:develop:api:efl:ui:popup:property:size|size]]** //**(get, set)**// | %%The 2D size of a canvas object.%% |
+| | **[[:develop:api:efl:ui:popup:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:popup:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_input_event_handler|widget_input_event_handler]]** | %%Virtual function handling input events on the widget.%% |
+^ [[:develop:api:efl:ui:widget_scrollable_content|Efl.Ui.Widget_Scrollable_Content]] ^^^
+| | **[[:develop:api:efl:ui:widget_scrollable_content:property:scrollable_content|scrollable_content]]** //**(get, set)**// | %%This is the content which will be placed in the internal scroller.%% |
+| | **[[:develop:api:efl:ui:widget_scrollable_content:property:scrollable_text|scrollable_text]]** //**(get, set)**// | %%The text string to be displayed by the given text object. The text will use %%[[:develop:api:efl:text_format_wrap|Efl.Text_Format_Wrap.mixed]]%% wrapping, and it will be scrollable depending on its size relative to the object's geometry.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget_scrollable_content:property:scrollable_content_did_group_calc|scrollable_content_did_group_calc]]** //**(get)**// | |
+
+===== Events =====
+
+**[[:develop:api:efl:ui:alert_popup:event:button_clicked|button,clicked]]**\\
+> %%Called when an Alert_Popup button was clicked.%%
+
+EFL_UI_ALERT_POPUP_EVENT_BUTTON_CLICKED(Efl_Ui_Alert_Popup_Button_Clicked_Event)
+
+\\ ==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:content|Efl.Content]] ^^^
+| | **[[:develop:api:efl:content:event:content_changed|content,changed]]** | %%Sent after the content is set or unset using the current content object.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] ^^^
+| | **[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]** | %%A circular dependency between parts of the object was found.%% |
+| | **[[:develop:api:efl:layout:calc:event:recalc|recalc]]** | %%The layout was recalculated.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] ^^^
+| | **[[:develop:api:efl:ui:focus:manager:event:coords_dirty|coords,dirty]]** | %%Cached relationship calculation results have been invalidated.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:dirty_logic_freeze_changed|dirty_logic_freeze,changed]]** | %%Called when this focus manager is frozen or thawed, even_info being %%''true''%% indicates that it is now frozen, %%''false''%% indicates that it is thawed.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:flush_pre|flush,pre]]** | %%After this event, the manager object will calculate relations in the graph. Can be used to add / remove children in a lazy fashion.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:manager_focus_changed|manager_focus,changed]]** | %%The manager_focus property has changed. The previously focused object is passed as an event argument.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:redirect_changed|redirect,changed]]** | %%Redirect object has changed, the old manager is passed as an event argument.%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:event:theme_changed|theme,changed]]** | %%Called when theme changed%% |
+^ [[:develop:api:efl:ui:popup|Efl.Ui.Popup]] ^^^
+| | **[[:develop:api:efl:ui:popup:event:backwall_clicked|backwall,clicked]]** | %%This is called whenever the user clicks the backwall part of the Popup.%% |
+| | **[[:develop:api:efl:ui:popup:event:timeout|timeout]]** | %%This is called when Popup times out.%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
+^ [[:develop:api:efl:ui:widget_scrollable_content|Efl.Ui.Widget_Scrollable_Content]] ^^^
+| | **[[:develop:api:efl:ui:widget_scrollable_content:event:optimal_size_calc|optimal_size,calc]]** | %%The optimal size for the widget based on scrollable content.%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/alert_popup/event/button_clicked.txt b/public_html/data/pages/develop/api/efl/ui/alert_popup/event/button_clicked.txt
new file mode 100644
index 00000000..c026081a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/alert_popup/event/button_clicked.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Alert_Popup: button,clicked~~
+
+===== Description =====
+
+%%Called when an Alert_Popup button was clicked.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:alert_popup:event:button_clicked:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+button,clicked: Efl.Ui.Alert_Popup_Button_Clicked_Event;
+
+
+===== C information =====
+
+
+EFL_UI_ALERT_POPUP_EVENT_BUTTON_CLICKED(Efl_Ui_Alert_Popup_Button_Clicked_Event)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_alert_popup_event_button_clicked(void *data, const Efl_Event *event)
+{
+ Efl_Ui_Alert_Popup_Button_Clicked_Event info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_ALERT_POPUP_EVENT_BUTTON_CLICKED, on_efl_ui_alert_popup_event_button_clicked, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/alert_popup/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/alert_popup/method/constructor.txt
new file mode 100644
index 00000000..df33359c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/alert_popup/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Alert_Popup.constructor~~
+====== Efl.Ui.Alert_Popup.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:alert_popup:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:popup:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/alert_popup/method/destructor.txt b/public_html/data/pages/develop/api/efl/ui/alert_popup/method/destructor.txt
new file mode 100644
index 00000000..691070a7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/alert_popup/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Ui.Alert_Popup.destructor~~
+====== Efl.Ui.Alert_Popup.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:alert_popup:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:popup:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/alert_popup/method/part_get.txt b/public_html/data/pages/develop/api/efl/ui/alert_popup/method/part_get.txt
new file mode 100644
index 00000000..39c5aa5c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/alert_popup/method/part_get.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Alert_Popup.part_get~~
+====== Efl.Ui.Alert_Popup.part_get ======
+
+===== Description =====
+
+%%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:alert_popup:method:part_get:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:popup:method:part_get|Efl.Part.part_get]].//===== Signature =====
+
+
+part_get @protected @const @pure_virtual {
+ params {
+ @in name: string;
+ }
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_part_get(const Eo *obj, const char *name);
+
+
+===== Parameters =====
+
+ * **name** //(in)// - %%The part name.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:part:method:part_get|Efl.Part.part_get]]
+ * [[:develop:api:efl:canvas:layout:method:part_get|Efl.Canvas.Layout.part_get]]
+ * [[:develop:api:efl:ui:widget:method:part_get|Efl.Ui.Widget.part_get]]
+ * [[:develop:api:efl:ui:win:method:part_get|Efl.Ui.Win.part_get]]
+ * [[:develop:api:efl:ui:flip:method:part_get|Efl.Ui.Flip.part_get]]
+ * [[:develop:api:efl:ui:layout_base:method:part_get|Efl.Ui.Layout_Base.part_get]]
+ * [[:develop:api:efl:ui:text:method:part_get|Efl.Ui.Text.part_get]]
+ * [[:develop:api:efl:ui:default_item:method:part_get|Efl.Ui.Default_Item.part_get]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:part_get|Efl.Ui.List_Placeholder_Item.part_get]]
+ * [[:develop:api:efl:ui:textpath:method:part_get|Efl.Ui.Textpath.part_get]]
+ * [[:develop:api:efl:ui:panes:method:part_get|Efl.Ui.Panes.part_get]]
+ * [[:develop:api:efl:ui:progressbar:method:part_get|Efl.Ui.Progressbar.part_get]]
+ * [[:develop:api:efl:ui:popup:method:part_get|Efl.Ui.Popup.part_get]]
+ * [[:develop:api:efl:ui:alert_popup:method:part_get|Efl.Ui.Alert_Popup.part_get]]
+ * [[:develop:api:efl:ui:navigation_bar:method:part_get|Efl.Ui.Navigation_Bar.part_get]]
+ * [[:develop:api:efl:ui:widget_factory:method:part_get|Efl.Ui.Widget_Factory.part_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/alert_popup/property/button.txt b/public_html/data/pages/develop/api/efl/ui/alert_popup/property/button.txt
new file mode 100644
index 00000000..419c3d8b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/alert_popup/property/button.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.Alert_Popup.button~~
+====== Efl.Ui.Alert_Popup.button ======
+
+===== Keys =====
+
+ * **type** - %%Alert_Popup button type.%%
+===== Values =====
+
+ * **text** - %%Text of the specified button type.%%
+ * **icon** - %%Visual to use as an icon for the specified button type.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:alert_popup:property:button:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property button {
+ set {
+ keys {
+ type: Efl.Ui.Alert_Popup_Button;
+ }
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_alert_popup_button_set(Eo *obj, Efl_Ui_Alert_Popup_Button type, const char *text, Efl_Canvas_Object *icon);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:alert_popup:property:button|Efl.Ui.Alert_Popup.button]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/alert_popup_button.txt b/public_html/data/pages/develop/api/efl/ui/alert_popup_button.txt
new file mode 100644
index 00000000..a482cb6f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/alert_popup_button.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Alert_Popup_Button~~
+
+===== Description =====
+
+%%Defines the type of the alert button.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:alert_popup_button:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:ui:alert_popup_button:fields&nouser&nolink&nodate}}
+
+ * **positive** - %%Button having positive meaning. E.g. "Yes".%%
+ * **negative** - %%Button having negative meaning. E.g. "No".%%
+ * **user** - %%Button having user-defined meaning. E.g. "More information".%%
+
+===== Signature =====
+
+
+enum Efl.Ui.Alert_Popup_Button {
+ positive: 0,
+ negative,
+ user
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_UI_ALERT_POPUP_BUTTON_POSITIVE = 0,
+ EFL_UI_ALERT_POPUP_BUTTON_NEGATIVE,
+ EFL_UI_ALERT_POPUP_BUTTON_USER
+} Efl_Ui_Alert_Popup_Button;
+
diff --git a/public_html/data/pages/develop/api/efl/ui/alert_popup_button_clicked_event.txt b/public_html/data/pages/develop/api/efl/ui/alert_popup_button_clicked_event.txt
new file mode 100644
index 00000000..efd7b75e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/alert_popup_button_clicked_event.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Ui.Alert_Popup_Button_Clicked_Event~~
+
+===== Description =====
+
+%%Information for %%[[:develop:api:efl:ui:alert_popup:event:button,clicked|Efl.Ui.Alert_Popup.button,clicked]]%% event.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:alert_popup_button_clicked_event:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:ui:alert_popup_button_clicked_event:fields&nouser&nolink&nodate}}
+
+ * **button_type** - %%Clicked button type.%%
+
+===== Signature =====
+
+
+struct Efl.Ui.Alert_Popup_Button_Clicked_Event {
+ button_type: Efl.Ui.Alert_Popup_Button;
+}
+
+
+===== C signature =====
+
+
+typedef struct _Efl_Ui_Alert_Popup_Button_Clicked_Event {
+ Efl_Ui_Alert_Popup_Button button_type;
+} Efl_Ui_Alert_Popup_Button_Clicked_Event;
+
diff --git a/public_html/data/pages/develop/api/efl/ui/autorepeat.txt b/public_html/data/pages/develop/api/efl/ui/autorepeat.txt
new file mode 100644
index 00000000..7d7c9f20
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/autorepeat.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Ui.Autorepeat~~
+====== Efl.Ui.Autorepeat (interface) ======
+
+===== Description =====
+
+%%Interface for autorepeating clicks.%%
+
+%%This interface abstracts functions for enabling / disabling this feature. When enabled, keeping a button pressed will continuously emit the %%''repeated''%% event until the button is released. The time it takes until it starts emitting the event is given by %%[[:develop:api:efl:ui:autorepeat:property:autorepeat_initial_timeout|Efl.Ui.Autorepeat.autorepeat_initial_timeout]]%%, and the time between each new emission by %%[[:develop:api:efl:ui:autorepeat:property:autorepeat_gap_timeout|Efl.Ui.Autorepeat.autorepeat_gap_timeout]]%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:autorepeat:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:ui:autorepeat:property:autorepeat_enabled|autorepeat_enabled]]** //**(get, set)**//\\
+> %%Turn on/off the autorepeat event generated when a button is kept pressed.%%
+
+Eina_Bool efl_ui_autorepeat_enabled_get(const Eo *obj);
+void efl_ui_autorepeat_enabled_set(Eo *obj, Eina_Bool on);
+
+\\
+**[[:develop:api:efl:ui:autorepeat:property:autorepeat_gap_timeout|autorepeat_gap_timeout]]** //**(get, set)**//\\
+> %%The interval between each generated autorepeat event.%%
+
+double efl_ui_autorepeat_gap_timeout_get(const Eo *obj);
+void efl_ui_autorepeat_gap_timeout_set(Eo *obj, double t);
+
+\\
+**[[:develop:api:efl:ui:autorepeat:property:autorepeat_initial_timeout|autorepeat_initial_timeout]]** //**(get, set)**//\\
+> %%The initial timeout before the autorepeat event is generated.%%
+
+double efl_ui_autorepeat_initial_timeout_get(const Eo *obj);
+void efl_ui_autorepeat_initial_timeout_set(Eo *obj, double t);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:ui:autorepeat:event:repeated|repeated]]**\\
+> %%Called when a repeated event is emitted%%
+
+EFL_UI_AUTOREPEAT_EVENT_REPEATED(void)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/ui/autorepeat/event/repeated.txt b/public_html/data/pages/develop/api/efl/ui/autorepeat/event/repeated.txt
new file mode 100644
index 00000000..9855016f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/autorepeat/event/repeated.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Autorepeat: repeated~~
+
+===== Description =====
+
+%%Called when a repeated event is emitted%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:autorepeat:event:repeated:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+repeated;
+
+
+===== C information =====
+
+
+EFL_UI_AUTOREPEAT_EVENT_REPEATED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_autorepeat_event_repeated(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_AUTOREPEAT_EVENT_REPEATED, on_efl_ui_autorepeat_event_repeated, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/autorepeat/property/autorepeat_enabled.txt b/public_html/data/pages/develop/api/efl/ui/autorepeat/property/autorepeat_enabled.txt
new file mode 100644
index 00000000..268328c3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/autorepeat/property/autorepeat_enabled.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Autorepeat.autorepeat_enabled~~
+====== Efl.Ui.Autorepeat.autorepeat_enabled ======
+
+===== Description =====
+
+%%Turn on/off the autorepeat event generated when a button is kept pressed.%%
+
+%%When off, no autorepeat is performed and buttons emit a normal %%''clicked''%% event when they are clicked.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:autorepeat:property:autorepeat_enabled:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **on** - %%A bool to turn on/off the repeat event generation.%%
+
+===== Signature =====
+
+
+@property autorepeat_enabled @pure_virtual {
+ get {}
+ set {}
+ values {
+ on: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_autorepeat_enabled_get(const Eo *obj);
+void efl_ui_autorepeat_enabled_set(Eo *obj, Eina_Bool on);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:autorepeat:property:autorepeat_enabled|Efl.Ui.Autorepeat.autorepeat_enabled]]
+ * [[:develop:api:efl:ui:button:property:autorepeat_enabled|Efl.Ui.Button.autorepeat_enabled]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/autorepeat/property/autorepeat_gap_timeout.txt b/public_html/data/pages/develop/api/efl/ui/autorepeat/property/autorepeat_gap_timeout.txt
new file mode 100644
index 00000000..46a305e9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/autorepeat/property/autorepeat_gap_timeout.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Autorepeat.autorepeat_gap_timeout~~
+====== Efl.Ui.Autorepeat.autorepeat_gap_timeout ======
+
+===== Description =====
+
+%%The interval between each generated autorepeat event.%%
+
+%%After the first %%''repeated''%% event is fired, all subsequent ones will follow after a delay of %%''t''%% seconds for each.%%
+
+%%See also %%[[:develop:api:efl:ui:autorepeat:property:autorepeat_initial_timeout|Efl.Ui.Autorepeat.autorepeat_initial_timeout]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:autorepeat:property:autorepeat_gap_timeout:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **t** - %%Time interval in seconds.%%
+
+===== Signature =====
+
+
+@property autorepeat_gap_timeout @pure_virtual {
+ get {}
+ set {}
+ values {
+ t: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_ui_autorepeat_gap_timeout_get(const Eo *obj);
+void efl_ui_autorepeat_gap_timeout_set(Eo *obj, double t);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:autorepeat:property:autorepeat_gap_timeout|Efl.Ui.Autorepeat.autorepeat_gap_timeout]]
+ * [[:develop:api:efl:ui:button:property:autorepeat_gap_timeout|Efl.Ui.Button.autorepeat_gap_timeout]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/autorepeat/property/autorepeat_initial_timeout.txt b/public_html/data/pages/develop/api/efl/ui/autorepeat/property/autorepeat_initial_timeout.txt
new file mode 100644
index 00000000..a01fc94b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/autorepeat/property/autorepeat_initial_timeout.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Autorepeat.autorepeat_initial_timeout~~
+====== Efl.Ui.Autorepeat.autorepeat_initial_timeout ======
+
+===== Description =====
+
+%%The initial timeout before the autorepeat event is generated.%%
+
+%%Sets the timeout, in seconds, since the button is pressed until the first %%''repeated''%% signal is emitted. If %%''t''%% is 0.0 or less, there won't be any delay and the event will be fired the moment the button is pressed.%%
+
+%%See also %%[[:develop:api:efl:ui:autorepeat:property:autorepeat_enabled|Efl.Ui.Autorepeat.autorepeat_enabled]]%% and %%[[:develop:api:efl:ui:autorepeat:property:autorepeat_gap_timeout|Efl.Ui.Autorepeat.autorepeat_gap_timeout]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:autorepeat:property:autorepeat_initial_timeout:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **t** - %%Timeout in seconds.%%
+
+===== Signature =====
+
+
+@property autorepeat_initial_timeout @pure_virtual {
+ get {}
+ set {}
+ values {
+ t: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_ui_autorepeat_initial_timeout_get(const Eo *obj);
+void efl_ui_autorepeat_initial_timeout_set(Eo *obj, double t);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:autorepeat:property:autorepeat_initial_timeout|Efl.Ui.Autorepeat.autorepeat_initial_timeout]]
+ * [[:develop:api:efl:ui:button:property:autorepeat_initial_timeout|Efl.Ui.Button.autorepeat_initial_timeout]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/bg.txt b/public_html/data/pages/develop/api/efl/ui/bg.txt
new file mode 100644
index 00000000..2d9f42c0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/bg.txt
@@ -0,0 +1,460 @@
+~~Title: Efl.Ui.Bg~~
+====== Efl.Ui.Bg (class) ======
+
+===== Description =====
+
+%%The bg (background) widget is used for setting (solid) background decorations for a window (unless it has transparency enabled) or for any container object. It works just like an image, but has some properties useful for backgrounds, such as setting it to tiled, centered, scaled or stretched.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:bg:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)// => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)//
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] //(interface)//
+ * [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] //(interface)//
+ * [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] //(interface)//
+ * [[:develop:api:efl:layout:group|Efl.Layout.Group]] //(interface)//
+ * [[:develop:api:efl:file|Efl.File]] //(mixin)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:image|Efl.Gfx.Image]] //(interface)//
+ * [[:develop:api:efl:gfx:image_load_controller|Efl.Gfx.Image_Load_Controller]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:bg:property:color|color]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:color|Efl.Gfx.Color]]]//\\
+> %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%%
+
+void efl_gfx_color_get(const Eo *obj, int *r, int *g, int *b, int *a);
+void efl_gfx_color_set(Eo *obj, int r, int g, int b, int a);
+
+\\
+**[[:develop:api:efl:ui:bg:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:bg:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:bg:property:file|file]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:file|Efl.File]]]//\\
+> %%The file path from where an object will fetch the data.%%
+
+const char *efl_file_get(const Eo *obj);
+Eina_Error efl_file_set(Eo *obj, const char *file);
+
+\\
+**[[:develop:api:efl:ui:bg:method:finalize|finalize]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+Efl_Object *efl_finalize(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:bg:property:key|key]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:file|Efl.File]]]//\\
+> %%The key which corresponds to the target data within a file.%%
+
+const char *efl_file_key_get(const Eo *obj);
+void efl_file_key_set(Eo *obj, const char *key);
+
+\\
+**[[:develop:api:efl:ui:bg:method:load|load]]**// [Overridden from [[:develop:api:efl:file|Efl.File]]]//\\
+> %%Perform all necessary operations to open and load file data into the object using the %%[[:develop:api:efl:file:property:file|Efl.File.file]]%% (or %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap]]%%) and %%[[:develop:api:efl:file:property:key|Efl.File.key]]%% properties.%%
+
+Eina_Error efl_file_load(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:bg:property:mmap|mmap]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:file|Efl.File]]]//\\
+> %%The mmaped file from where an object will fetch the real data (it must be an %%[[:develop:api:eina:file|Eina.File]]%%).%%
+
+const Eina_File efl_file_mmap_get(const Eo *obj);
+Eina_Error efl_file_mmap_set(Eo *obj, const Eina_File f);
+
+\\
+**[[:develop:api:efl:ui:bg:method:unload|unload]]**// [Overridden from [[:develop:api:efl:file|Efl.File]]]//\\
+> %%Perform all necessary operations to unload file data from the object.%%
+
+void efl_file_unload(Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:file|Efl.File]] ^^^
+| | **[[:develop:api:efl:file:property:loaded|loaded]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:image|Efl.Gfx.Image]] ^^^
+| | **[[:develop:api:efl:gfx:image:property:border_insets|border_insets]]** //**(get, set)**// | %%Dimensions of this image's border, a region that does not scale with the center area.%% |
+| | **[[:develop:api:efl:gfx:image:property:border_insets_scale|border_insets_scale]]** //**(get, set)**// | %%Scaling factor applied to the image borders.%% |
+| | **[[:develop:api:efl:gfx:image:property:can_downscale|can_downscale]]** //**(get, set)**// | %%If %%''true''%%, the image may be scaled to a smaller size. If %%''false''%%, the image will never be resized smaller than its native size.%% |
+| | **[[:develop:api:efl:gfx:image:property:can_upscale|can_upscale]]** //**(get, set)**// | %%If %%''true''%%, the image may be scaled to a larger size. If %%''false''%%, the image will never be resized larger than its native size.%% |
+| | **[[:develop:api:efl:gfx:image:property:center_fill_mode|center_fill_mode]]** //**(get, set)**// | %%Specifies how the center part of the object (not the borders) should be drawn when EFL is rendering it.%% |
+| | **[[:develop:api:efl:gfx:image:property:content_hint|content_hint]]** //**(get, set)**// | %%Content hint setting for the image. These hints might be used by EFL to enable optimizations.%% |
+| | **[[:develop:api:efl:gfx:image:property:content_region|content_region]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:image:property:image_load_error|image_load_error]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:image:property:image_size|image_size]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:image:property:ratio|ratio]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:image:property:scale_hint|scale_hint]]** //**(get, set)**// | %%The scale hint of a given image of the canvas.%% |
+| | **[[:develop:api:efl:gfx:image:property:scale_method|scale_method]]** //**(get, set)**// | %%Determine how the image is scaled at render time.%% |
+| | **[[:develop:api:efl:gfx:image:property:smooth_scale|smooth_scale]]** //**(get, set)**// | %%Whether to use high-quality image scaling algorithm for this image.%% |
+| | **[[:develop:api:efl:gfx:image:property:stretch_region|stretch_region]]** //**(get, set)**// | %%This property defines the stretchable pixels region of an image.%% |
+^ [[:develop:api:efl:gfx:image_load_controller|Efl.Gfx.Image_Load_Controller]] ^^^
+| | **[[:develop:api:efl:gfx:image_load_controller:method:load_async_cancel|load_async_cancel]]** | %%Cancel preloading an image object's image data in the background.%% |
+| | **[[:develop:api:efl:gfx:image_load_controller:method:load_async_start|load_async_start]]** | %%Begin preloading an image object's image data in the background.%% |
+| | **[[:develop:api:efl:gfx:image_load_controller:property:load_dpi|load_dpi]]** //**(get, set)**// | %%The DPI resolution of an image object's source image.%% |
+| | **[[:develop:api:efl:gfx:image_load_controller:property:load_orientation|load_orientation]]** //**(get, set)**// | %%Defines whether the orientation information in the image file should be honored.%% |
+| | **[[:develop:api:efl:gfx:image_load_controller:property:load_region|load_region]]** //**(get, set)**// | %%Inform a given image object to load a selective region of its source image.%% |
+| | **[[:develop:api:efl:gfx:image_load_controller:property:load_region_support|load_region_support]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:image_load_controller:property:load_scale_down|load_scale_down]]** //**(get, set)**// | %%The scale down factor is a divider on the original image size.%% |
+| | **[[:develop:api:efl:gfx:image_load_controller:property:load_size|load_size]]** //**(get, set)**// | %%The load size of an image.%% |
+| | **[[:develop:api:efl:gfx:image_load_controller:property:load_skip_header|load_skip_header]]** //**(get, set)**// | %%Initial load should skip header check and leave it all to data load.%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:property:automatic_theme_rotation|automatic_theme_rotation]]** //**(get, set)**// | %%This flag tells if this object will automatically mirror the rotation changes of the window to this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**// | %%Whether this object updates its size hints automatically.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_freeze|calc_freeze]]** | %%Freezes the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_parts_extends|calc_parts_extends]]** | %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_size_min|calc_size_min]]** | %%Calculates the minimum required size for a given layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_thaw|calc_thaw]]** | %%Thaws the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:layout_base:method:factory_bind|factory_bind]]** | %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:finger_size_multiplier|finger_size_multiplier]]** //**(get, set)**// | %%Set a multiplier for applying finger size to the layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:group_calculate|group_calculate]]** | %%Triggers an immediate recalculation of this object's geometry.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:group_data|group_data]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_max|group_size_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_min|group_size_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:l10n_text|l10n_text]]** //**(get, set)**// | %%A unique string to be translated.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:message_send|message_send]]** | %%Sends an (Edje) message to a given Edje object%% |
+| | **[[:develop:api:efl:ui:layout_base:property:part_exist|part_exist]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_add|signal_callback_add]]** | %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_del|signal_callback_del]]** | %%Removes a signal-triggered callback from an object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_emit|signal_emit]]** | %%Sends/emits an Edje signal to this layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_process|signal_process]]** | %%Processes an object's messages and signals queue.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:theme|theme]]** //**(get, set)**// | %%The theme of this widget, defines which edje group will be used.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:theme_rotation_apply|theme_rotation_apply]]** | %%Apply a new rotation value to this object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:calc_force|calc_force]]** | %%Forces a Size/Geometry calculation.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:on_focus_update|on_focus_update]]** | %%Virtual function handling focus in/out events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:part_get|part_get]]** | %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:theme_apply|theme_apply]]** | %%Virtual function called when the widget needs to re-apply its theme.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:property:position|position]]** //**(get, set)**// | %%The 2D position of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:size|size]]** //**(get, set)**// | %%The 2D size of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| | **[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_input_event_handler|widget_input_event_handler]]** | %%Virtual function handling input events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:image|Efl.Gfx.Image]] ^^^
+| | **[[:develop:api:efl:gfx:image:event:image_preload_state_changed|image,preload_state,changed]]** | %%If %%''true''%%, image data has been preloaded and can be displayed. If %%''false''%%, the image data has been unloaded and can no longer be displayed.%% |
+| | **[[:develop:api:efl:gfx:image:event:image_resized|image,resized]]** | %%Image was resized (its pixel data). The event data is the image's new size.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] ^^^
+| | **[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]** | %%A circular dependency between parts of the object was found.%% |
+| | **[[:develop:api:efl:layout:calc:event:recalc|recalc]]** | %%The layout was recalculated.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:event:theme_changed|theme,changed]]** | %%Called when theme changed%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/bg/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/bg/method/constructor.txt
new file mode 100644
index 00000000..540f53d1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/bg/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Bg.constructor~~
+====== Efl.Ui.Bg.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:bg:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/bg/method/destructor.txt b/public_html/data/pages/develop/api/efl/ui/bg/method/destructor.txt
new file mode 100644
index 00000000..a85992c7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/bg/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Ui.Bg.destructor~~
+====== Efl.Ui.Bg.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:bg:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/bg/method/finalize.txt b/public_html/data/pages/develop/api/efl/ui/bg/method/finalize.txt
new file mode 100644
index 00000000..6f3786df
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/bg/method/finalize.txt
@@ -0,0 +1,91 @@
+~~Title: Efl.Ui.Bg.finalize~~
+====== Efl.Ui.Bg.finalize ======
+
+===== Description =====
+
+%%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+%%Use this method to delay expensive operations until user configuration has finished, to avoid building the object in a "default" state in the constructor, just to have to throw it all away because a user configuration (a property being set, for example) requires a different state. This is the last call inside efl_add() and will set %%[[:develop:api:efl:object:property:finalized|Efl.Object.finalized]]%% to %%''true''%% once it returns. This is an optimization and implementing this method is optional if you already perform all your initialization in the %%[[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]%% method. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:bg:method:finalize:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:finalize|Efl.Object.finalize]].//===== Signature =====
+
+
+finalize {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_finalize(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]
+ * [[:develop:api:efl:loop_handler:method:finalize|Efl.Loop_Handler.finalize]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:finalize|Efl.Ui.Position_Manager.Grid.finalize]]
+ * [[:develop:api:efl:canvas:layout_part:method:finalize|Efl.Canvas.Layout_Part.finalize]]
+ * [[:develop:api:efl:net:server_udp_client:method:finalize|Efl.Net.Server_Udp_Client.finalize]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:finalize|Efl.Ui.Widget_Part_Bg.finalize]]
+ * [[:develop:api:efl:ui:layout_part_bg:method:finalize|Efl.Ui.Layout_Part_Bg.finalize]]
+ * [[:develop:api:efl:io:buffered_stream:method:finalize|Efl.Io.Buffered_Stream.finalize]]
+ * [[:develop:api:efl:net:dialer_simple:method:finalize|Efl.Net.Dialer_Simple.finalize]]
+ * [[:develop:api:efl:io:file:method:finalize|Efl.Io.File.finalize]]
+ * [[:develop:api:efl:net:server_fd:method:finalize|Efl.Net.Server_Fd.finalize]]
+ * [[:develop:api:efl:io:stderr:method:finalize|Efl.Io.Stderr.finalize]]
+ * [[:develop:api:efl:io:stdin:method:finalize|Efl.Io.Stdin.finalize]]
+ * [[:develop:api:efl:io:stdout:method:finalize|Efl.Io.Stdout.finalize]]
+ * [[:develop:api:efl:net:socket_fd:method:finalize|Efl.Net.Socket_Fd.finalize]]
+ * [[:develop:api:efl:net:socket_ssl:method:finalize|Efl.Net.Socket_Ssl.finalize]]
+ * [[:develop:api:efl:net:dialer_ssl:method:finalize|Efl.Net.Dialer_Ssl.finalize]]
+ * [[:develop:api:efl:canvas:object:method:finalize|Efl.Canvas.Object.finalize]]
+ * [[:develop:api:efl:canvas:image_internal:method:finalize|Efl.Canvas.Image_Internal.finalize]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:finalize|Efl.Ui.Internal.Text.Interactive.finalize]]
+ * [[:develop:api:efl:ui:widget:method:finalize|Efl.Ui.Widget.finalize]]
+ * [[:develop:api:efl:ui:win:method:finalize|Efl.Ui.Win.finalize]]
+ * [[:develop:api:efl:ui:win_socket:method:finalize|Efl.Ui.Win_Socket.finalize]]
+ * [[:develop:api:efl:ui:win_inlined:method:finalize|Efl.Ui.Win_Inlined.finalize]]
+ * [[:develop:api:efl:ui:layout_base:method:finalize|Efl.Ui.Layout_Base.finalize]]
+ * [[:develop:api:efl:ui:text:method:finalize|Efl.Ui.Text.finalize]]
+ * [[:develop:api:efl:ui:tab_bar:method:finalize|Efl.Ui.Tab_Bar.finalize]]
+ * [[:develop:api:efl:ui:item:method:finalize|Efl.Ui.Item.finalize]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:finalize|Efl.Ui.List_Placeholder_Item.finalize]]
+ * [[:develop:api:elm:code_widget:method:finalize|Elm.Code_Widget.finalize]]
+ * [[:develop:api:efl:ui:scroller:method:finalize|Efl.Ui.Scroller.finalize]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:finalize|Efl.Ui.Internal_Text_Scroller.finalize]]
+ * [[:develop:api:efl:ui:collection:method:finalize|Efl.Ui.Collection.finalize]]
+ * [[:develop:api:efl:ui:spotlight:container:method:finalize|Efl.Ui.Spotlight.Container.finalize]]
+ * [[:develop:api:efl:ui:tab_pager:method:finalize|Efl.Ui.Tab_Pager.finalize]]
+ * [[:develop:api:efl:ui:bg:method:finalize|Efl.Ui.Bg.finalize]]
+ * [[:develop:api:efl:canvas:vg:object:method:finalize|Efl.Canvas.Vg.Object.finalize]]
+ * [[:develop:api:efl:loop_timer:method:finalize|Efl.Loop_Timer.finalize]]
+ * [[:develop:api:eldbus:model:method:finalize|Eldbus.Model.finalize]]
+ * [[:develop:api:eldbus:model:proxy:method:finalize|Eldbus.Model.Proxy.finalize]]
+ * [[:develop:api:eldbus:model:arguments:method:finalize|Eldbus.Model.Arguments.finalize]]
+ * [[:develop:api:eldbus:model:method:method:finalize|Eldbus.Model.Method.finalize]]
+ * [[:develop:api:eldbus:model:object:method:finalize|Eldbus.Model.Object.finalize]]
+ * [[:develop:api:efl:composite_model:method:finalize|Efl.Composite_Model.finalize]]
+ * [[:develop:api:efl:container_model:method:finalize|Efl.Container_Model.finalize]]
+ * [[:develop:api:efl:ui:view_model:method:finalize|Efl.Ui.View_Model.finalize]]
+ * [[:develop:api:efl:io:model:method:finalize|Efl.Io.Model.finalize]]
+ * [[:develop:api:efl:net:server_simple:method:finalize|Efl.Net.Server_Simple.finalize]]
+ * [[:develop:api:efl:net:control:manager:method:finalize|Efl.Net.Control.Manager.finalize]]
+ * [[:develop:api:efl:ui:widget_factory:method:finalize|Efl.Ui.Widget_Factory.finalize]]
+ * [[:develop:api:efl:ui:caching_factory:method:finalize|Efl.Ui.Caching_Factory.finalize]]
+ * [[:develop:api:efl:thread:method:finalize|Efl.Thread.finalize]]
+ * [[:develop:api:efl:net:session:method:finalize|Efl.Net.Session.finalize]]
+ * [[:develop:api:efl:io:copier:method:finalize|Efl.Io.Copier.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:finalize|Efl.Ui.Focus.Manager_Calc.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:finalize|Efl.Ui.Focus.Manager_Root_Focus.finalize]]
+ * [[:develop:api:evas:canvas3d:node:method:finalize|Evas.Canvas3D.Node.finalize]]
+ * [[:develop:api:efl:net:ssl:context:method:finalize|Efl.Net.Ssl.Context.finalize]]
+ * [[:develop:api:efl:io:buffer:method:finalize|Efl.Io.Buffer.finalize]]
+ * [[:develop:api:efl:net:ip_address:method:finalize|Efl.Net.Ip_Address.finalize]]
+ * [[:develop:api:efl:io:queue:method:finalize|Efl.Io.Queue.finalize]]
+ * [[:develop:api:ector:renderer:method:finalize|Ector.Renderer.finalize]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/bg/method/load.txt b/public_html/data/pages/develop/api/efl/ui/bg/method/load.txt
new file mode 100644
index 00000000..297c9dac
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/bg/method/load.txt
@@ -0,0 +1,48 @@
+~~Title: Efl.Ui.Bg.load~~
+====== Efl.Ui.Bg.load ======
+
+===== Description =====
+
+%%Perform all necessary operations to open and load file data into the object using the %%[[:develop:api:efl:file:property:file|Efl.File.file]]%% (or %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap]]%%) and %%[[:develop:api:efl:file:property:key|Efl.File.key]]%% properties.%%
+
+%%In the case where %%[[:develop:api:efl:file:property:file|Efl.File.file.set]]%% has been called on an object, this will internally open the file and call %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap.set]]%% on the object using the opened file handle.%%
+
+%%Calling %%[[:develop:api:efl:file:method:load|Efl.File.load]]%% on an object which has already performed file operations based on the currently set properties will have no effect.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:bg:method:load:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:file:method:load|Efl.File.load]].//===== Signature =====
+
+
+load {
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_file_load(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:method:load|Efl.File.load]]
+ * [[:develop:api:evas:canvas3d:mesh:method:load|Evas.Canvas3D.Mesh.load]]
+ * [[:develop:api:efl:ui:win_part:method:load|Efl.Ui.Win_Part.load]]
+ * [[:develop:api:efl:canvas:video:method:load|Efl.Canvas.Video.load]]
+ * [[:develop:api:efl:ui:text:method:load|Efl.Ui.Text.load]]
+ * [[:develop:api:efl:canvas:image:method:load|Efl.Canvas.Image.load]]
+ * [[:develop:api:efl:canvas:layout:method:load|Efl.Canvas.Layout.load]]
+ * [[:develop:api:efl:ui:layout:method:load|Efl.Ui.Layout.load]]
+ * [[:develop:api:efl:ui:image:method:load|Efl.Ui.Image.load]]
+ * [[:develop:api:efl:ui:image_zoomable:method:load|Efl.Ui.Image_Zoomable.load]]
+ * [[:develop:api:efl:ui:animation_view:method:load|Efl.Ui.Animation_View.load]]
+ * [[:develop:api:evas:canvas3d:texture:method:load|Evas.Canvas3D.Texture.load]]
+ * [[:develop:api:efl:canvas:vg:object:method:load|Efl.Canvas.Vg.Object.load]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:load|Efl.Ui.Widget_Part_Bg.load]]
+ * [[:develop:api:efl:ui:video:method:load|Efl.Ui.Video.load]]
+ * [[:develop:api:efl:ui:popup_part_backwall:method:load|Efl.Ui.Popup_Part_Backwall.load]]
+ * [[:develop:api:efl:ui:bg:method:load|Efl.Ui.Bg.load]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/bg/method/unload.txt b/public_html/data/pages/develop/api/efl/ui/bg/method/unload.txt
new file mode 100644
index 00000000..6a28b59a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/bg/method/unload.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Bg.unload~~
+====== Efl.Ui.Bg.unload ======
+
+===== Description =====
+
+%%Perform all necessary operations to unload file data from the object.%%
+
+%%In the case where %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap.set]]%% has been externally called on an object, the file handle stored in the object will be preserved.%%
+
+%%Calling %%[[:develop:api:efl:file:method:unload|Efl.File.unload]]%% on an object which is not currently loaded will have no effect.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:bg:method:unload:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:file:method:unload|Efl.File.unload]].//===== Signature =====
+
+
+unload {}
+
+
+===== C signature =====
+
+
+void efl_file_unload(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:method:unload|Efl.File.unload]]
+ * [[:develop:api:evas:canvas3d:mesh:method:unload|Evas.Canvas3D.Mesh.unload]]
+ * [[:develop:api:efl:ui:win_part:method:unload|Efl.Ui.Win_Part.unload]]
+ * [[:develop:api:efl:canvas:video:method:unload|Efl.Canvas.Video.unload]]
+ * [[:develop:api:efl:ui:text:method:unload|Efl.Ui.Text.unload]]
+ * [[:develop:api:efl:canvas:image:method:unload|Efl.Canvas.Image.unload]]
+ * [[:develop:api:efl:canvas:layout:method:unload|Efl.Canvas.Layout.unload]]
+ * [[:develop:api:efl:ui:layout:method:unload|Efl.Ui.Layout.unload]]
+ * [[:develop:api:efl:ui:image:method:unload|Efl.Ui.Image.unload]]
+ * [[:develop:api:efl:ui:image_zoomable:method:unload|Efl.Ui.Image_Zoomable.unload]]
+ * [[:develop:api:efl:ui:animation_view:method:unload|Efl.Ui.Animation_View.unload]]
+ * [[:develop:api:evas:canvas3d:texture:method:unload|Evas.Canvas3D.Texture.unload]]
+ * [[:develop:api:efl:canvas:vg:object:method:unload|Efl.Canvas.Vg.Object.unload]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:unload|Efl.Ui.Widget_Part_Bg.unload]]
+ * [[:develop:api:efl:ui:video:method:unload|Efl.Ui.Video.unload]]
+ * [[:develop:api:efl:ui:popup_part_backwall:method:unload|Efl.Ui.Popup_Part_Backwall.unload]]
+ * [[:develop:api:efl:ui:bg:method:unload|Efl.Ui.Bg.unload]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/bg/property/color.txt b/public_html/data/pages/develop/api/efl/ui/bg/property/color.txt
new file mode 100644
index 00000000..e2cdc1ed
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/bg/property/color.txt
@@ -0,0 +1,69 @@
+~~Title: Efl.Ui.Bg.color~~
+====== Efl.Ui.Bg.color ======
+
+===== Description =====
+
+%%The general/main color of the given Evas object.%%
+
+%%Represents the main color's RGB component (and alpha channel) values, which range from 0 to 255. For the alpha channel, which defines the object's transparency level, 0 means totally transparent, while 255 means opaque. These color values are premultiplied by the alpha value.%%
+
+%%Usually you'll use this attribute for text and rectangle objects, where the main color is the only color. If set for objects which themselves have colors, like the images one, those colors get modulated by this one.%%
+
+%%All newly created Evas rectangles get the default color values of 255 255 255 255 (opaque white).%%
+
+%%When reading this property, use %%''NULL''%% pointers on the components you're not interested in and they'll be ignored by the function.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:bg:property:color:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **r** - No description supplied.
+ * **g** - No description supplied.
+ * **b** - No description supplied.
+ * **a** - No description supplied.
+==== Setter ====
+
+%%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:bg:property:color:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:widget:property:color|Efl.Gfx.Color.color]] **(get, set)**.//===== Signature =====
+
+
+@property color @pure_virtual {
+ get {}
+ set {}
+ values {
+ r: int;
+ g: int;
+ b: int;
+ a: int;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_color_get(const Eo *obj, int *r, int *g, int *b, int *a);
+void efl_gfx_color_set(Eo *obj, int r, int g, int b, int a);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:color:property:color|Efl.Gfx.Color.color]]
+ * [[:develop:api:efl:canvas:vg:node:property:color|Efl.Canvas.Vg.Node.color]]
+ * [[:develop:api:efl:ui:win_part:property:color|Efl.Ui.Win_Part.color]]
+ * [[:develop:api:efl:ui:widget_part_shadow:property:color|Efl.Ui.Widget_Part_Shadow.color]]
+ * [[:develop:api:efl:canvas:object:property:color|Efl.Canvas.Object.color]]
+ * [[:develop:api:efl:canvas:group:property:color|Efl.Canvas.Group.color]]
+ * [[:develop:api:efl:ui:widget:property:color|Efl.Ui.Widget.color]]
+ * [[:develop:api:efl:ui:image:property:color|Efl.Ui.Image.color]]
+ * [[:develop:api:efl:ui:bg:property:color|Efl.Ui.Bg.color]]
+ * [[:develop:api:efl:ui:widget_part_bg:property:color|Efl.Ui.Widget_Part_Bg.color]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/bg/property/file.txt b/public_html/data/pages/develop/api/efl/ui/bg/property/file.txt
new file mode 100644
index 00000000..96dbaa68
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/bg/property/file.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Ui.Bg.file~~
+====== Efl.Ui.Bg.file ======
+
+===== Description =====
+
+%%The file path from where an object will fetch the data.%%
+
+%%If file is set during object construction, the object will automatically call %%[[:develop:api:efl:file:method:load|Efl.File.load]]%% during the finalize phase of construction.%%
+
+%%You must not modify the strings on the returned pointers.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:bg:property:file:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **file** - %%The file path.%%
+
+//Overridden from [[:develop:api:efl:file:property:file|Efl.File.file]] **(get, set)**.//===== Signature =====
+
+
+@property file {
+ get {}
+ set {
+ return: Eina.Error;
+ }
+ values {
+ file: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_file_get(const Eo *obj);
+Eina_Error efl_file_set(Eo *obj, const char *file);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:property:file|Efl.File.file]]
+ * [[:develop:api:efl:ui:win_part:property:file|Efl.Ui.Win_Part.file]]
+ * [[:develop:api:efl:canvas:video:property:file|Efl.Canvas.Video.file]]
+ * [[:develop:api:efl:ui:text:property:file|Efl.Ui.Text.file]]
+ * [[:develop:api:efl:ui:layout:property:file|Efl.Ui.Layout.file]]
+ * [[:develop:api:efl:ui:image_zoomable:property:file|Efl.Ui.Image_Zoomable.file]]
+ * [[:develop:api:efl:canvas:vg:object:property:file|Efl.Canvas.Vg.Object.file]]
+ * [[:develop:api:efl:ui:widget_part_bg:property:file|Efl.Ui.Widget_Part_Bg.file]]
+ * [[:develop:api:efl:ui:popup_part_backwall:property:file|Efl.Ui.Popup_Part_Backwall.file]]
+ * [[:develop:api:efl:ui:bg:property:file|Efl.Ui.Bg.file]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/bg/property/key.txt b/public_html/data/pages/develop/api/efl/ui/bg/property/key.txt
new file mode 100644
index 00000000..d590a350
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/bg/property/key.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Bg.key~~
+====== Efl.Ui.Bg.key ======
+
+===== Description =====
+
+%%The key which corresponds to the target data within a file.%%
+
+%%Some file types can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example %%[[:develop:api:efl:ui:image|Efl.Ui.Image]]%% or %%[[:develop:api:efl:ui:layout|Efl.Ui.Layout]]%%).%%
+
+%%You must not modify the strings on the returned pointers.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:bg:property:key:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **key** - %%The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.%%
+
+//Overridden from [[:develop:api:efl:file:property:key|Efl.File.key]] **(get, set)**.//===== Signature =====
+
+
+@property key {
+ get {}
+ set {}
+ values {
+ key: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_file_key_get(const Eo *obj);
+void efl_file_key_set(Eo *obj, const char *key);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:property:key|Efl.File.key]]
+ * [[:develop:api:efl:ui:win_part:property:key|Efl.Ui.Win_Part.key]]
+ * [[:develop:api:efl:ui:layout:property:key|Efl.Ui.Layout.key]]
+ * [[:develop:api:efl:ui:widget_part_bg:property:key|Efl.Ui.Widget_Part_Bg.key]]
+ * [[:develop:api:efl:ui:popup_part_backwall:property:key|Efl.Ui.Popup_Part_Backwall.key]]
+ * [[:develop:api:efl:ui:bg:property:key|Efl.Ui.Bg.key]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/bg/property/mmap.txt b/public_html/data/pages/develop/api/efl/ui/bg/property/mmap.txt
new file mode 100644
index 00000000..d6701058
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/bg/property/mmap.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.Ui.Bg.mmap~~
+====== Efl.Ui.Bg.mmap ======
+
+===== Description =====
+
+%%The mmaped file from where an object will fetch the real data (it must be an %%[[:develop:api:eina:file|Eina.File]]%%).%%
+
+%%If mmap is set during object construction, the object will automatically call %%[[:develop:api:efl:file:method:load|Efl.File.load]]%% during the finalize phase of construction.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:bg:property:mmap:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **f** - %%The handle to the %%[[:develop:api:eina:file|Eina.File]]%% that will be used%%
+
+//Overridden from [[:develop:api:efl:file:property:mmap|Efl.File.mmap]] **(get, set)**.//===== Signature =====
+
+
+@property mmap {
+ get {}
+ set {
+ return: Eina.Error;
+ }
+ values {
+ f: const(Eina.File);
+ }
+}
+
+
+===== C signature =====
+
+
+const Eina_File efl_file_mmap_get(const Eo *obj);
+Eina_Error efl_file_mmap_set(Eo *obj, const Eina_File f);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:property:mmap|Efl.File.mmap]]
+ * [[:develop:api:efl:ui:layout:property:mmap|Efl.Ui.Layout.mmap]]
+ * [[:develop:api:efl:ui:widget_part_bg:property:mmap|Efl.Ui.Widget_Part_Bg.mmap]]
+ * [[:develop:api:efl:ui:bg:property:mmap|Efl.Ui.Bg.mmap]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box.txt b/public_html/data/pages/develop/api/efl/ui/box.txt
new file mode 100644
index 00000000..236d1acb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box.txt
@@ -0,0 +1,519 @@
+~~Title: Efl.Ui.Box~~
+====== Efl.Ui.Box (class) ======
+
+===== Description =====
+
+%%A container that arranges children widgets in a vertical or horizontal fashion.%%
+
+%%The Box widget is the most basic (and the most used) of the container widgets. Other widgets are added to the Box through the %%[[:develop:api:efl:pack_linear|Efl.Pack_Linear]]%% interface, and the layout direction (either vertical or horizontal) is controlled through the %%[[:develop:api:efl:ui:layout_orientable:property:orientation|Efl.Ui.Layout_Orientable.orientation]]%% property.%%
+
+%%The Box widget itself is invisible, as are most container widgets: Their purpose is to handle the position and size of all their children so you don't have to.%%
+
+%%All widgets inside a vertical Box container will have the same width as the container, and their heights will be automatically chosen so that they cover the whole surface of the container from top to bottom (Imagine a stack of pizza boxes neatly fitting inside your oven). The %%[[:develop:api:efl:ui:box:property:homogeneous|Efl.Ui.Box.homogeneous]]%% property then controls whether all widgets have the same height (homogeneous) or not.%%
+
+%%A horizontal Box container example would be the button toolbar at the top of most word processing programs.%%
+
+%%Precise layout can be further customized through the %%[[:develop:api:efl:gfx:arrangement|Efl.Gfx.Arrangement]]%% interface on the Box itself, or through the %%[[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]%% interface on each of the children widgets.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:box:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:pack_linear|Efl.Pack_Linear]] //(interface)//
+ * [[:develop:api:efl:pack|Efl.Pack]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:pack_layout|Efl.Pack_Layout]] //(interface)//
+ * [[:develop:api:efl:ui:layout_orientable|Efl.Ui.Layout_Orientable]] //(interface)//
+ * [[:develop:api:efl:gfx:arrangement|Efl.Gfx.Arrangement]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:box:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:box:property:content_align|content_align]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:arrangement|Efl.Gfx.Arrangement]]]//\\
+> %%This property determines how contents will be aligned within a container if there is unused space.%%
+
+void efl_gfx_arrangement_content_align_get(const Eo *obj, double *align_horiz, double *align_vert);
+void efl_gfx_arrangement_content_align_set(Eo *obj, double align_horiz, double align_vert);
+
+\\
+**[[:develop:api:efl:ui:box:method:content_count|content_count]]**// [Overridden from [[:develop:api:efl:container|Efl.Container]]]//\\
+> %%Returns the number of contained sub-objects.%%
+
+int efl_content_count(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:box:method:content_iterate|content_iterate]]**// [Overridden from [[:develop:api:efl:container|Efl.Container]]]//\\
+> %%Begin iterating over this object's contents.%%
+
+Eina_Iterator *efl_content_iterate(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:box:property:content_padding|content_padding]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:arrangement|Efl.Gfx.Arrangement]]]//\\
+> %%This property determines the space between a container's content items.%%
+
+void efl_gfx_arrangement_content_padding_get(const Eo *obj, double *pad_horiz, double *pad_vert, Eina_Bool *scalable);
+void efl_gfx_arrangement_content_padding_set(Eo *obj, double pad_horiz, double pad_vert, Eina_Bool scalable);
+
+\\
+**[[:develop:api:efl:ui:box:method:group_calculate|group_calculate]]**// [Overridden from [[:develop:api:efl:canvas:group|Efl.Canvas.Group]]]//\\
+> %%Triggers an immediate recalculation of this object's geometry.%%
+
+void efl_canvas_group_calculate(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:box:property:homogeneous|homogeneous]]** //**(get, set)**//\\
+> %%In homogeneous mode all children of a vertical Box have the same height, equal to the height of the tallest widget. Children of a horizontal Box have the same width, equal to the width of the widest widget. Otherwise, individual widget sizes are not modified.%%
+
+Eina_Bool efl_ui_box_homogeneous_get(const Eo *obj);
+void efl_ui_box_homogeneous_set(Eo *obj, Eina_Bool homogeneous);
+
+\\
+**[[:develop:api:efl:ui:box:method:invalidate|invalidate]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to perform special actions when your object loses its parent, if you need to.%%
+
+void efl_invalidate(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:box:property:l10n_text|l10n_text]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]]]//\\
+> %%A unique string to be translated.%%
+
+const char *efl_ui_l10n_text_get(const Eo *obj, const char **domain);
+void efl_ui_l10n_text_set(Eo *obj, const char *label, const char *domain);
+
+\\
+**[[:develop:api:efl:ui:box:property:language|language]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]]]//\\
+> %%The (human) language for this object.%%
+
+const char *efl_ui_language_get(const Eo *obj);
+void efl_ui_language_set(Eo *obj, const char *language);
+
+\\
+**[[:develop:api:efl:ui:box:method:layout_request|layout_request]]**// [Overridden from [[:develop:api:efl:pack_layout|Efl.Pack_Layout]]]//\\
+> %%Requests EFL to recalculate the layout of this object.%%
+
+void efl_pack_layout_request(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:box:property:orientation|orientation]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:layout_orientable|Efl.Ui.Layout_Orientable]]]//\\
+> %%Control the direction of a given widget.%%
+
+Efl_Ui_Layout_Orientation efl_ui_layout_orientation_get(const Eo *obj);
+void efl_ui_layout_orientation_set(Eo *obj, Efl_Ui_Layout_Orientation dir);
+
+\\
+**[[:develop:api:efl:ui:box:method:pack|pack]]**// [Overridden from [[:develop:api:efl:pack|Efl.Pack]]]//\\
+> %%Adds a sub-object to this container.%%
+
+Eina_Bool efl_pack(Eo *obj, Efl_Gfx_Entity *subobj);
+
+\\
+**[[:develop:api:efl:ui:box:method:pack_after|pack_after]]**// [Overridden from [[:develop:api:efl:pack_linear|Efl.Pack_Linear]]]//\\
+> %%Append an object after the %%''existing''%% sub-object.%%
+
+Eina_Bool efl_pack_after(Eo *obj, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing);
+
+\\
+**[[:develop:api:efl:ui:box:method:pack_at|pack_at]]**// [Overridden from [[:develop:api:efl:pack_linear|Efl.Pack_Linear]]]//\\
+> %%Inserts %%''subobj''%% BEFORE the sub-object at position %%''index''%%.%%
+
+Eina_Bool efl_pack_at(Eo *obj, Efl_Gfx_Entity *subobj, int index);
+
+\\
+**[[:develop:api:efl:ui:box:method:pack_before|pack_before]]**// [Overridden from [[:develop:api:efl:pack_linear|Efl.Pack_Linear]]]//\\
+> %%Prepend an object before the %%''existing''%% sub-object.%%
+
+Eina_Bool efl_pack_before(Eo *obj, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing);
+
+\\
+**[[:develop:api:efl:ui:box:method:pack_begin|pack_begin]]**// [Overridden from [[:develop:api:efl:pack_linear|Efl.Pack_Linear]]]//\\
+> %%Prepend an object at the beginning of this container.%%
+
+Eina_Bool efl_pack_begin(Eo *obj, Efl_Gfx_Entity *subobj);
+
+\\
+**[[:develop:api:efl:ui:box:method:pack_clear|pack_clear]]**// [Overridden from [[:develop:api:efl:pack|Efl.Pack]]]//\\
+> %%Removes all packed sub-objects and unreferences them.%%
+
+Eina_Bool efl_pack_clear(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:box:method:pack_content_get|pack_content_get]]**// [Overridden from [[:develop:api:efl:pack_linear|Efl.Pack_Linear]]]//\\
+> %%Sub-object at a given %%''index''%% in this container.%%
+
+Efl_Gfx_Entity *efl_pack_content_get(Eo *obj, int index);
+
+\\
+**[[:develop:api:efl:ui:box:method:pack_end|pack_end]]**// [Overridden from [[:develop:api:efl:pack_linear|Efl.Pack_Linear]]]//\\
+> %%Append object at the end of this container.%%
+
+Eina_Bool efl_pack_end(Eo *obj, Efl_Gfx_Entity *subobj);
+
+\\
+**[[:develop:api:efl:ui:box:method:pack_index_get|pack_index_get]]**// [Overridden from [[:develop:api:efl:pack_linear|Efl.Pack_Linear]]]//\\
+> %%Get the index of a sub-object in this container.%%
+
+int efl_pack_index_get(Eo *obj, const Efl_Gfx_Entity *subobj);
+
+\\
+**[[:develop:api:efl:ui:box:method:pack_unpack_at|pack_unpack_at]]**// [Overridden from [[:develop:api:efl:pack_linear|Efl.Pack_Linear]]]//\\
+> %%Pop out (remove) the sub-object at the specified %%''index''%%.%%
+
+Efl_Gfx_Entity *efl_pack_unpack_at(Eo *obj, int index);
+
+\\
+**[[:develop:api:efl:ui:box:property:position|position]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The 2D position of a canvas object.%%
+
+Eina_Position2D efl_gfx_entity_position_get(const Eo *obj);
+void efl_gfx_entity_position_set(Eo *obj, Eina_Position2D pos);
+
+\\
+**[[:develop:api:efl:ui:box:property:size|size]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The 2D size of a canvas object.%%
+
+Eina_Size2D efl_gfx_entity_size_get(const Eo *obj);
+void efl_gfx_entity_size_set(Eo *obj, Eina_Size2D size);
+
+\\
+**[[:develop:api:efl:ui:box:method:unpack|unpack]]**// [Overridden from [[:develop:api:efl:pack|Efl.Pack]]]//\\
+> %%Removes an existing sub-object from the container without deleting it.%%
+
+Eina_Bool efl_pack_unpack(Eo *obj, Efl_Gfx_Entity *subobj);
+
+\\
+**[[:develop:api:efl:ui:box:method:unpack_all|unpack_all]]**// [Overridden from [[:develop:api:efl:pack|Efl.Pack]]]//\\
+> %%Removes all packed sub-objects without unreferencing them.%%
+
+Eina_Bool efl_pack_unpack_all(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:box:method:layout_update|layout_update]]** ''protected''// [Overridden from [[:develop:api:efl:pack_layout|Efl.Pack_Layout]]]//\\
+> %%Implementation of this container's layout algorithm.%%
+
+void efl_pack_layout_update(Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:ui:widget:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| | **[[:develop:api:efl:ui:widget:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:widget:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| | **[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_focus_update|on_focus_update]]** | %%Virtual function handling focus in/out events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:part_get|part_get]]** | %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:theme_apply|theme_apply]]** | %%Virtual function called when the widget needs to re-apply its theme.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_input_event_handler|widget_input_event_handler]]** | %%Virtual function handling input events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:pack_layout|Efl.Pack_Layout]] ^^^
+| | **[[:develop:api:efl:pack_layout:event:layout_updated|layout,updated]]** | %%Sent after the layout was updated.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/box/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/box/method/constructor.txt
new file mode 100644
index 00000000..043e2a10
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Box.constructor~~
+====== Efl.Ui.Box.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:box:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/method/content_count.txt b/public_html/data/pages/develop/api/efl/ui/box/method/content_count.txt
new file mode 100644
index 00000000..38fbf3b9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/method/content_count.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Box.content_count~~
+====== Efl.Ui.Box.content_count ======
+
+===== Description =====
+
+%%Returns the number of contained sub-objects.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:box:method:content_count:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:container:method:content_count|Efl.Container.content_count]].//===== Signature =====
+
+
+content_count @pure_virtual {
+ return: int;
+}
+
+
+===== C signature =====
+
+
+int efl_content_count(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:container:method:content_count|Efl.Container.content_count]]
+ * [[:develop:api:efl:canvas:layout:method:content_count|Efl.Canvas.Layout.content_count]]
+ * [[:develop:api:efl:ui:tab_bar:method:content_count|Efl.Ui.Tab_Bar.content_count]]
+ * [[:develop:api:efl:ui:table:method:content_count|Efl.Ui.Table.content_count]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:content_count|Efl.Canvas.Layout_Part_Table.content_count]]
+ * [[:develop:api:efl:ui:layout_part_table:method:content_count|Efl.Ui.Layout_Part_Table.content_count]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:content_count|Efl.Canvas.Layout_Part_Invalid.content_count]]
+ * [[:develop:api:efl:ui:flip:method:content_count|Efl.Ui.Flip.content_count]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:content_count|Efl.Canvas.Layout_Part_Box.content_count]]
+ * [[:develop:api:efl:ui:box:method:content_count|Efl.Ui.Box.content_count]]
+ * [[:develop:api:efl:ui:group_item:method:content_count|Efl.Ui.Group_Item.content_count]]
+ * [[:develop:api:efl:ui:collection:method:content_count|Efl.Ui.Collection.content_count]]
+ * [[:develop:api:efl:ui:layout_part_box:method:content_count|Efl.Ui.Layout_Part_Box.content_count]]
+ * [[:develop:api:efl:ui:spotlight:container:method:content_count|Efl.Ui.Spotlight.Container.content_count]]
+ * [[:develop:api:efl:ui:relative_layout:method:content_count|Efl.Ui.Relative_Layout.content_count]]
+ * [[:develop:api:efl:ui:layout_base:method:content_count|Efl.Ui.Layout_Base.content_count]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/method/content_iterate.txt b/public_html/data/pages/develop/api/efl/ui/box/method/content_iterate.txt
new file mode 100644
index 00000000..dc5fcb31
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/method/content_iterate.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Box.content_iterate~~
+====== Efl.Ui.Box.content_iterate ======
+
+===== Description =====
+
+%%Begin iterating over this object's contents.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:box:method:content_iterate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:container:method:content_iterate|Efl.Container.content_iterate]].//===== Signature =====
+
+
+content_iterate @pure_virtual {
+ return: iterator @no_unused;
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_content_iterate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:container:method:content_iterate|Efl.Container.content_iterate]]
+ * [[:develop:api:efl:canvas:layout:method:content_iterate|Efl.Canvas.Layout.content_iterate]]
+ * [[:develop:api:efl:ui:tab_bar:method:content_iterate|Efl.Ui.Tab_Bar.content_iterate]]
+ * [[:develop:api:efl:ui:table:method:content_iterate|Efl.Ui.Table.content_iterate]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:content_iterate|Efl.Canvas.Layout_Part_Table.content_iterate]]
+ * [[:develop:api:efl:ui:layout_part_table:method:content_iterate|Efl.Ui.Layout_Part_Table.content_iterate]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:content_iterate|Efl.Canvas.Layout_Part_Invalid.content_iterate]]
+ * [[:develop:api:efl:ui:flip:method:content_iterate|Efl.Ui.Flip.content_iterate]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:content_iterate|Efl.Canvas.Layout_Part_Box.content_iterate]]
+ * [[:develop:api:efl:ui:box:method:content_iterate|Efl.Ui.Box.content_iterate]]
+ * [[:develop:api:efl:ui:group_item:method:content_iterate|Efl.Ui.Group_Item.content_iterate]]
+ * [[:develop:api:efl:ui:collection:method:content_iterate|Efl.Ui.Collection.content_iterate]]
+ * [[:develop:api:efl:ui:layout_part_box:method:content_iterate|Efl.Ui.Layout_Part_Box.content_iterate]]
+ * [[:develop:api:efl:ui:spotlight:container:method:content_iterate|Efl.Ui.Spotlight.Container.content_iterate]]
+ * [[:develop:api:efl:ui:relative_layout:method:content_iterate|Efl.Ui.Relative_Layout.content_iterate]]
+ * [[:develop:api:efl:ui:layout_base:method:content_iterate|Efl.Ui.Layout_Base.content_iterate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/method/group_calculate.txt b/public_html/data/pages/develop/api/efl/ui/box/method/group_calculate.txt
new file mode 100644
index 00000000..787863fb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/method/group_calculate.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Ui.Box.group_calculate~~
+====== Efl.Ui.Box.group_calculate ======
+
+===== Description =====
+
+%%Triggers an immediate recalculation of this object's geometry.%%
+
+%%This will also reset the flag %%[[:develop:api:efl:canvas:group:property:group_need_recalculate|Efl.Canvas.Group.group_need_recalculate]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:box:method:group_calculate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:group_calculate|Efl.Canvas.Group.group_calculate]].//===== Signature =====
+
+
+group_calculate {}
+
+
+===== C signature =====
+
+
+void efl_canvas_group_calculate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:group:method:group_calculate|Efl.Canvas.Group.group_calculate]]
+ * [[:develop:api:efl:canvas:event_grabber:method:group_calculate|Efl.Canvas.Event_Grabber.group_calculate]]
+ * [[:develop:api:efl:canvas:layout:method:group_calculate|Efl.Canvas.Layout.group_calculate]]
+ * [[:develop:api:efl:ui:widget:method:group_calculate|Efl.Ui.Widget.group_calculate]]
+ * [[:develop:api:efl:ui:table:method:group_calculate|Efl.Ui.Table.group_calculate]]
+ * [[:develop:api:efl:ui:box:method:group_calculate|Efl.Ui.Box.group_calculate]]
+ * [[:develop:api:efl:ui:layout_base:method:group_calculate|Efl.Ui.Layout_Base.group_calculate]]
+ * [[:develop:api:efl:ui:clock:method:group_calculate|Efl.Ui.Clock.group_calculate]]
+ * [[:develop:api:efl:ui:text:method:group_calculate|Efl.Ui.Text.group_calculate]]
+ * [[:develop:api:efl:ui:panel:method:group_calculate|Efl.Ui.Panel.group_calculate]]
+ * [[:develop:api:efl:ui:layout:method:group_calculate|Efl.Ui.Layout.group_calculate]]
+ * [[:develop:api:efl:ui:textpath:method:group_calculate|Efl.Ui.Textpath.group_calculate]]
+ * [[:develop:api:efl:ui:scroller:method:group_calculate|Efl.Ui.Scroller.group_calculate]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:group_calculate|Efl.Ui.Internal_Text_Scroller.group_calculate]]
+ * [[:develop:api:efl:ui:panes:method:group_calculate|Efl.Ui.Panes.group_calculate]]
+ * [[:develop:api:efl:ui:calendar:method:group_calculate|Efl.Ui.Calendar.group_calculate]]
+ * [[:develop:api:efl:ui:frame:method:group_calculate|Efl.Ui.Frame.group_calculate]]
+ * [[:develop:api:efl:ui:popup:method:group_calculate|Efl.Ui.Popup.group_calculate]]
+ * [[:develop:api:efl:ui:video:method:group_calculate|Efl.Ui.Video.group_calculate]]
+ * [[:develop:api:efl:ui:relative_layout:method:group_calculate|Efl.Ui.Relative_Layout.group_calculate]]
+ * [[:develop:api:efl:ui:pan:method:group_calculate|Efl.Ui.Pan.group_calculate]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:group_calculate|Efl.Ui.Image_Zoomable_Pan.group_calculate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/method/invalidate.txt b/public_html/data/pages/develop/api/efl/ui/box/method/invalidate.txt
new file mode 100644
index 00000000..6abab849
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/method/invalidate.txt
@@ -0,0 +1,74 @@
+~~Title: Efl.Ui.Box.invalidate~~
+====== Efl.Ui.Box.invalidate ======
+
+===== Description =====
+
+%%Implement this method to perform special actions when your object loses its parent, if you need to.%%
+
+%%It is called when the parent reference is lost or set to %%''NULL''%%. After this call returns, %%[[:develop:api:efl:object:property:invalidated|Efl.Object.invalidated]]%% is set to %%''true''%%. This allows a simpler tear down of complex hierarchies, by performing object destruction in two steps, first all object relationships are broken and then the isolated objects are destroyed. Performing everything in the %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%% can sometimes lead to deadlocks, but implementing this method is optional if this is not your case. When an object with a parent is destroyed, it first receives a call to %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% and then to %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:box:method:invalidate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:invalidate|Efl.Object.invalidate]].//===== Signature =====
+
+
+invalidate {}
+
+
+===== C signature =====
+
+
+void efl_invalidate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]
+ * [[:develop:api:efl:canvas:vg:node:method:invalidate|Efl.Canvas.Vg.Node.invalidate]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:invalidate|Efl.Ui.Position_Manager.Grid.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:manager_scroll:method:invalidate|Efl.Ui.Spotlight.Manager_Scroll.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:manager_stack:method:invalidate|Efl.Ui.Spotlight.Manager_Stack.invalidate]]
+ * [[:develop:api:efl:net:server_udp_client:method:invalidate|Efl.Net.Server_Udp_Client.invalidate]]
+ * [[:develop:api:efl:net:server_windows:method:invalidate|Efl.Net.Server_Windows.invalidate]]
+ * [[:develop:api:efl:io:buffered_stream:method:invalidate|Efl.Io.Buffered_Stream.invalidate]]
+ * [[:develop:api:efl:net:dialer_simple:method:invalidate|Efl.Net.Dialer_Simple.invalidate]]
+ * [[:develop:api:efl:loop_fd:method:invalidate|Efl.Loop_Fd.invalidate]]
+ * [[:develop:api:efl:net:server_ssl:method:invalidate|Efl.Net.Server_Ssl.invalidate]]
+ * [[:develop:api:efl:net:socket_fd:method:invalidate|Efl.Net.Socket_Fd.invalidate]]
+ * [[:develop:api:efl:net:dialer_udp:method:invalidate|Efl.Net.Dialer_Udp.invalidate]]
+ * [[:develop:api:efl:net:dialer_unix:method:invalidate|Efl.Net.Dialer_Unix.invalidate]]
+ * [[:develop:api:efl:net:dialer_tcp:method:invalidate|Efl.Net.Dialer_Tcp.invalidate]]
+ * [[:develop:api:efl:net:socket_ssl:method:invalidate|Efl.Net.Socket_Ssl.invalidate]]
+ * [[:develop:api:efl:net:dialer_ssl:method:invalidate|Efl.Net.Dialer_Ssl.invalidate]]
+ * [[:develop:api:efl:canvas:object:method:invalidate|Efl.Canvas.Object.invalidate]]
+ * [[:develop:api:efl:canvas:layout:method:invalidate|Efl.Canvas.Layout.invalidate]]
+ * [[:develop:api:efl:ui:widget:method:invalidate|Efl.Ui.Widget.invalidate]]
+ * [[:develop:api:efl:ui:table:method:invalidate|Efl.Ui.Table.invalidate]]
+ * [[:develop:api:efl:ui:box:method:invalidate|Efl.Ui.Box.invalidate]]
+ * [[:develop:api:efl:ui:image:method:invalidate|Efl.Ui.Image.invalidate]]
+ * [[:develop:api:efl:ui:layout_base:method:invalidate|Efl.Ui.Layout_Base.invalidate]]
+ * [[:develop:api:efl:ui:collection_view:method:invalidate|Efl.Ui.Collection_View.invalidate]]
+ * [[:develop:api:efl:ui:group_item:method:invalidate|Efl.Ui.Group_Item.invalidate]]
+ * [[:develop:api:efl:ui:collection:method:invalidate|Efl.Ui.Collection.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:container:method:invalidate|Efl.Ui.Spotlight.Container.invalidate]]
+ * [[:develop:api:efl:ui:relative_layout:method:invalidate|Efl.Ui.Relative_Layout.invalidate]]
+ * [[:develop:api:efl:canvas:vg:object:method:invalidate|Efl.Canvas.Vg.Object.invalidate]]
+ * [[:develop:api:efl:loop_model:method:invalidate|Efl.Loop_Model.invalidate]]
+ * [[:develop:api:eldbus:model:method:invalidate|Eldbus.Model.invalidate]]
+ * [[:develop:api:eldbus:model:connection:method:invalidate|Eldbus.Model.Connection.invalidate]]
+ * [[:develop:api:eldbus:model:proxy:method:invalidate|Eldbus.Model.Proxy.invalidate]]
+ * [[:develop:api:eldbus:model:arguments:method:invalidate|Eldbus.Model.Arguments.invalidate]]
+ * [[:develop:api:eldbus:model:signal:method:invalidate|Eldbus.Model.Signal.invalidate]]
+ * [[:develop:api:eldbus:model:object:method:invalidate|Eldbus.Model.Object.invalidate]]
+ * [[:develop:api:efl:composite_model:method:invalidate|Efl.Composite_Model.invalidate]]
+ * [[:develop:api:efl:ui:select_model:method:invalidate|Efl.Ui.Select_Model.invalidate]]
+ * [[:develop:api:efl:io:model:method:invalidate|Efl.Io.Model.invalidate]]
+ * [[:develop:api:efl:net:dialer_websocket:method:invalidate|Efl.Net.Dialer_Websocket.invalidate]]
+ * [[:develop:api:efl:net:server_simple:method:invalidate|Efl.Net.Server_Simple.invalidate]]
+ * [[:develop:api:efl:ui:caching_factory:method:invalidate|Efl.Ui.Caching_Factory.invalidate]]
+ * [[:develop:api:efl:loop:method:invalidate|Efl.Loop.invalidate]]
+ * [[:develop:api:efl:net:dialer_http:method:invalidate|Efl.Net.Dialer_Http.invalidate]]
+ * [[:develop:api:efl:io:copier:method:invalidate|Efl.Io.Copier.invalidate]]
+ * [[:develop:api:efl:ui:position_manager:list:method:invalidate|Efl.Ui.Position_Manager.List.invalidate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/method/layout_request.txt b/public_html/data/pages/develop/api/efl/ui/box/method/layout_request.txt
new file mode 100644
index 00000000..43881cac
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/method/layout_request.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Ui.Box.layout_request~~
+====== Efl.Ui.Box.layout_request ======
+
+===== Description =====
+
+%%Requests EFL to recalculate the layout of this object.%%
+
+%%Internal layout methods might be called asynchronously.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:box:method:layout_request:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_layout:method:layout_request|Efl.Pack_Layout.layout_request]].//===== Signature =====
+
+
+layout_request @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_pack_layout_request(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_layout:method:layout_request|Efl.Pack_Layout.layout_request]]
+ * [[:develop:api:efl:ui:table:method:layout_request|Efl.Ui.Table.layout_request]]
+ * [[:develop:api:efl:ui:box:method:layout_request|Efl.Ui.Box.layout_request]]
+ * [[:develop:api:efl:ui:relative_layout:method:layout_request|Efl.Ui.Relative_Layout.layout_request]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/method/layout_update.txt b/public_html/data/pages/develop/api/efl/ui/box/method/layout_update.txt
new file mode 100644
index 00000000..82cd407c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/method/layout_update.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.Box.layout_update~~
+====== Efl.Ui.Box.layout_update ======
+
+===== Description =====
+
+%%Implementation of this container's layout algorithm.%%
+
+%%EFL will call this function whenever the contents of this container need to be re-laid out on the canvas.%%
+
+%%This can be overridden to implement custom layout behaviors.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:box:method:layout_update:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_layout:method:layout_update|Efl.Pack_Layout.layout_update]].//===== Signature =====
+
+
+layout_update @protected @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_pack_layout_update(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_layout:method:layout_update|Efl.Pack_Layout.layout_update]]
+ * [[:develop:api:efl:ui:table:method:layout_update|Efl.Ui.Table.layout_update]]
+ * [[:develop:api:efl:ui:table_static:method:layout_update|Efl.Ui.Table_Static.layout_update]]
+ * [[:develop:api:efl:ui:box:method:layout_update|Efl.Ui.Box.layout_update]]
+ * [[:develop:api:efl:ui:box_stack:method:layout_update|Efl.Ui.Box_Stack.layout_update]]
+ * [[:develop:api:efl:ui:box_flow:method:layout_update|Efl.Ui.Box_Flow.layout_update]]
+ * [[:develop:api:efl:ui:relative_layout:method:layout_update|Efl.Ui.Relative_Layout.layout_update]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/method/pack.txt b/public_html/data/pages/develop/api/efl/ui/box/method/pack.txt
new file mode 100644
index 00000000..97335be5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/method/pack.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Ui.Box.pack~~
+====== Efl.Ui.Box.pack ======
+
+===== Description =====
+
+%%Adds a sub-object to this container.%%
+
+%%Depending on the container this will either fill in the default spot, replacing any already existing element or append to the end of the container if there is no default part.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:box:method:pack:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack:method:pack|Efl.Pack.pack]].//===== Signature =====
+
+
+pack @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack(Eo *obj, Efl_Gfx_Entity *subobj);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%The object to pack.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack:method:pack|Efl.Pack.pack]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack|Efl.Ui.Tab_Bar.pack]]
+ * [[:develop:api:efl:ui:table:method:pack|Efl.Ui.Table.pack]]
+ * [[:develop:api:efl:ui:layout_part_table:method:pack|Efl.Ui.Layout_Part_Table.pack]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack|Efl.Canvas.Layout_Part_Invalid.pack]]
+ * [[:develop:api:efl:ui:flip:method:pack|Efl.Ui.Flip.pack]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack|Efl.Canvas.Layout_Part_Box.pack]]
+ * [[:develop:api:efl:ui:box:method:pack|Efl.Ui.Box.pack]]
+ * [[:develop:api:efl:ui:radio_box:method:pack|Efl.Ui.Radio_Box.pack]]
+ * [[:develop:api:efl:ui:group_item:method:pack|Efl.Ui.Group_Item.pack]]
+ * [[:develop:api:efl:ui:collection:method:pack|Efl.Ui.Collection.pack]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack|Efl.Ui.Layout_Part_Box.pack]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack|Efl.Ui.Spotlight.Container.pack]]
+ * [[:develop:api:efl:ui:relative_layout:method:pack|Efl.Ui.Relative_Layout.pack]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/method/pack_after.txt b/public_html/data/pages/develop/api/efl/ui/box/method/pack_after.txt
new file mode 100644
index 00000000..082fecb8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/method/pack_after.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Ui.Box.pack_after~~
+====== Efl.Ui.Box.pack_after ======
+
+===== Description =====
+
+%%Append an object after the %%''existing''%% sub-object.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+%%If %%''existing''%% is %%''NULL''%% this method behaves like %%[[:develop:api:efl:pack_linear:method:pack_end|Efl.Pack_Linear.pack_end]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:box:method:pack_after:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_linear:method:pack_after|Efl.Pack_Linear.pack_after]].//===== Signature =====
+
+
+pack_after @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ @in existing: const(Efl.Gfx.Entity);
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_after(Eo *obj, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%Object to pack after %%''existing''%%.%%
+ * **existing** //(in)// - %%Existing reference sub-object. Must already belong to the container or be %%''NULL''%%.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_after|Efl.Pack_Linear.pack_after]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_after|Efl.Ui.Tab_Bar.pack_after]]
+ * [[:develop:api:efl:ui:flip:method:pack_after|Efl.Ui.Flip.pack_after]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_after|Efl.Canvas.Layout_Part_Box.pack_after]]
+ * [[:develop:api:efl:ui:box:method:pack_after|Efl.Ui.Box.pack_after]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_after|Efl.Ui.Radio_Box.pack_after]]
+ * [[:develop:api:efl:ui:group_item:method:pack_after|Efl.Ui.Group_Item.pack_after]]
+ * [[:develop:api:efl:ui:collection:method:pack_after|Efl.Ui.Collection.pack_after]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_after|Efl.Ui.Layout_Part_Box.pack_after]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_after|Efl.Canvas.Layout_Part_Invalid.pack_after]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_after|Efl.Ui.Spotlight.Container.pack_after]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_after|Efl.Ui.Tab_Pager.pack_after]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/method/pack_at.txt b/public_html/data/pages/develop/api/efl/ui/box/method/pack_at.txt
new file mode 100644
index 00000000..365832a4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/method/pack_at.txt
@@ -0,0 +1,54 @@
+~~Title: Efl.Ui.Box.pack_at~~
+====== Efl.Ui.Box.pack_at ======
+
+===== Description =====
+
+%%Inserts %%''subobj''%% BEFORE the sub-object at position %%''index''%%.%%
+
+%%%%''index''%% ranges from %%''-count''%% to %%''count-1''%%, where positive numbers go from first sub-object (%%''0''%%) to last (%%''count-1''%%), and negative numbers go from last sub-object (%%''-1''%%) to first (%%''-count''%%). %%''count''%% is the number of sub-objects currently in the container as returned by %%[[:develop:api:efl:container:method:content_count|Efl.Container.content_count]]%%.%%
+
+%%If %%''index''%% is less than %%''-count''%%, it will trigger %%[[:develop:api:efl:pack_linear:method:pack_begin|Efl.Pack_Linear.pack_begin]]%% whereas %%''index''%% greater than %%''count-1''%% will trigger %%[[:develop:api:efl:pack_linear:method:pack_end|Efl.Pack_Linear.pack_end]]%%.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:box:method:pack_at:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_linear:method:pack_at|Efl.Pack_Linear.pack_at]].//===== Signature =====
+
+
+pack_at @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ @in index: int;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_at(Eo *obj, Efl_Gfx_Entity *subobj, int index);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%Object to pack.%%
+ * **index** //(in)// - %%Index of existing sub-object to insert BEFORE. Valid range is %%''-count''%% to %%''count-1''%%).%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_at|Efl.Pack_Linear.pack_at]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_at|Efl.Ui.Tab_Bar.pack_at]]
+ * [[:develop:api:efl:ui:flip:method:pack_at|Efl.Ui.Flip.pack_at]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_at|Efl.Canvas.Layout_Part_Box.pack_at]]
+ * [[:develop:api:efl:ui:box:method:pack_at|Efl.Ui.Box.pack_at]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_at|Efl.Ui.Radio_Box.pack_at]]
+ * [[:develop:api:efl:ui:group_item:method:pack_at|Efl.Ui.Group_Item.pack_at]]
+ * [[:develop:api:efl:ui:collection:method:pack_at|Efl.Ui.Collection.pack_at]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_at|Efl.Ui.Layout_Part_Box.pack_at]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_at|Efl.Canvas.Layout_Part_Invalid.pack_at]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_at|Efl.Ui.Spotlight.Container.pack_at]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_at|Efl.Ui.Tab_Pager.pack_at]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/method/pack_before.txt b/public_html/data/pages/develop/api/efl/ui/box/method/pack_before.txt
new file mode 100644
index 00000000..3d0b7252
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/method/pack_before.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Ui.Box.pack_before~~
+====== Efl.Ui.Box.pack_before ======
+
+===== Description =====
+
+%%Prepend an object before the %%''existing''%% sub-object.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+%%If %%''existing''%% is %%''NULL''%% this method behaves like %%[[:develop:api:efl:pack_linear:method:pack_begin|Efl.Pack_Linear.pack_begin]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:box:method:pack_before:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_linear:method:pack_before|Efl.Pack_Linear.pack_before]].//===== Signature =====
+
+
+pack_before @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ @in existing: const(Efl.Gfx.Entity);
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_before(Eo *obj, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%Object to pack before %%''existing''%%.%%
+ * **existing** //(in)// - %%Existing reference sub-object. Must already belong to the container or be %%''NULL''%%.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_before|Efl.Pack_Linear.pack_before]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_before|Efl.Ui.Tab_Bar.pack_before]]
+ * [[:develop:api:efl:ui:flip:method:pack_before|Efl.Ui.Flip.pack_before]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_before|Efl.Canvas.Layout_Part_Box.pack_before]]
+ * [[:develop:api:efl:ui:box:method:pack_before|Efl.Ui.Box.pack_before]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_before|Efl.Ui.Radio_Box.pack_before]]
+ * [[:develop:api:efl:ui:group_item:method:pack_before|Efl.Ui.Group_Item.pack_before]]
+ * [[:develop:api:efl:ui:collection:method:pack_before|Efl.Ui.Collection.pack_before]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_before|Efl.Ui.Layout_Part_Box.pack_before]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_before|Efl.Canvas.Layout_Part_Invalid.pack_before]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_before|Efl.Ui.Spotlight.Container.pack_before]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_before|Efl.Ui.Tab_Pager.pack_before]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/method/pack_begin.txt b/public_html/data/pages/develop/api/efl/ui/box/method/pack_begin.txt
new file mode 100644
index 00000000..2ed6c211
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/method/pack_begin.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Box.pack_begin~~
+====== Efl.Ui.Box.pack_begin ======
+
+===== Description =====
+
+%%Prepend an object at the beginning of this container.%%
+
+%%This is the same as %%[[:develop:api:efl:pack_linear:method:pack_at|Efl.Pack_Linear.pack_at]]%% with a %%''0''%% index.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:box:method:pack_begin:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_linear:method:pack_begin|Efl.Pack_Linear.pack_begin]].//===== Signature =====
+
+
+pack_begin @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_begin(Eo *obj, Efl_Gfx_Entity *subobj);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%Object to pack at the beginning.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_begin|Efl.Pack_Linear.pack_begin]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_begin|Efl.Ui.Tab_Bar.pack_begin]]
+ * [[:develop:api:efl:ui:flip:method:pack_begin|Efl.Ui.Flip.pack_begin]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_begin|Efl.Canvas.Layout_Part_Box.pack_begin]]
+ * [[:develop:api:efl:ui:box:method:pack_begin|Efl.Ui.Box.pack_begin]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_begin|Efl.Ui.Radio_Box.pack_begin]]
+ * [[:develop:api:efl:ui:group_item:method:pack_begin|Efl.Ui.Group_Item.pack_begin]]
+ * [[:develop:api:efl:ui:collection:method:pack_begin|Efl.Ui.Collection.pack_begin]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_begin|Efl.Ui.Layout_Part_Box.pack_begin]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_begin|Efl.Canvas.Layout_Part_Invalid.pack_begin]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_begin|Efl.Ui.Spotlight.Container.pack_begin]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_begin|Efl.Ui.Tab_Pager.pack_begin]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/method/pack_clear.txt b/public_html/data/pages/develop/api/efl/ui/box/method/pack_clear.txt
new file mode 100644
index 00000000..dc96d30d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/method/pack_clear.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Box.pack_clear~~
+====== Efl.Ui.Box.pack_clear ======
+
+===== Description =====
+
+%%Removes all packed sub-objects and unreferences them.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:box:method:pack_clear:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack:method:pack_clear|Efl.Pack.pack_clear]].//===== Signature =====
+
+
+pack_clear @pure_virtual {
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_clear(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack:method:pack_clear|Efl.Pack.pack_clear]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_clear|Efl.Ui.Tab_Bar.pack_clear]]
+ * [[:develop:api:efl:ui:table:method:pack_clear|Efl.Ui.Table.pack_clear]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:pack_clear|Efl.Canvas.Layout_Part_Table.pack_clear]]
+ * [[:develop:api:efl:ui:layout_part_table:method:pack_clear|Efl.Ui.Layout_Part_Table.pack_clear]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_clear|Efl.Canvas.Layout_Part_Invalid.pack_clear]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_clear|Efl.Canvas.Layout_Part_Box.pack_clear]]
+ * [[:develop:api:efl:ui:box:method:pack_clear|Efl.Ui.Box.pack_clear]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_clear|Efl.Ui.Radio_Box.pack_clear]]
+ * [[:develop:api:efl:ui:group_item:method:pack_clear|Efl.Ui.Group_Item.pack_clear]]
+ * [[:develop:api:efl:ui:collection:method:pack_clear|Efl.Ui.Collection.pack_clear]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_clear|Efl.Ui.Layout_Part_Box.pack_clear]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_clear|Efl.Ui.Spotlight.Container.pack_clear]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_clear|Efl.Ui.Tab_Pager.pack_clear]]
+ * [[:develop:api:efl:ui:relative_layout:method:pack_clear|Efl.Ui.Relative_Layout.pack_clear]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/method/pack_content_get.txt b/public_html/data/pages/develop/api/efl/ui/box/method/pack_content_get.txt
new file mode 100644
index 00000000..bec511f6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/method/pack_content_get.txt
@@ -0,0 +1,47 @@
+~~Title: Efl.Ui.Box.pack_content_get~~
+====== Efl.Ui.Box.pack_content_get ======
+
+===== Description =====
+
+%%Sub-object at a given %%''index''%% in this container.%%
+
+%%%%''index''%% ranges from %%''-count''%% to %%''count-1''%%, where positive numbers go from first sub-object (%%''0''%%) to last (%%''count-1''%%), and negative numbers go from last sub-object (%%''-1''%%) to first (%%''-count''%%). %%''count''%% is the number of sub-objects currently in the container as returned by %%[[:develop:api:efl:container:method:content_count|Efl.Container.content_count]]%%.%%
+
+%%If %%''index''%% is less than %%''-count''%%, it will return the first sub-object whereas %%''index''%% greater than %%''count-1''%% will return the last sub-object.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:box:method:pack_content_get:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_linear:method:pack_content_get|Efl.Pack_Linear.pack_content_get]].//===== Signature =====
+
+
+pack_content_get @pure_virtual {
+ params {
+ @in index: int;
+ }
+ return: Efl.Gfx.Entity;
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_pack_content_get(Eo *obj, int index);
+
+
+===== Parameters =====
+
+ * **index** //(in)// - %%Index of the existing sub-object to retrieve. Valid range is %%''-count''%% to %%''count-1''%%.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_content_get|Efl.Pack_Linear.pack_content_get]]
+ * [[:develop:api:efl:ui:flip:method:pack_content_get|Efl.Ui.Flip.pack_content_get]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_content_get|Efl.Canvas.Layout_Part_Box.pack_content_get]]
+ * [[:develop:api:efl:ui:box:method:pack_content_get|Efl.Ui.Box.pack_content_get]]
+ * [[:develop:api:efl:ui:group_item:method:pack_content_get|Efl.Ui.Group_Item.pack_content_get]]
+ * [[:develop:api:efl:ui:collection:method:pack_content_get|Efl.Ui.Collection.pack_content_get]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_content_get|Efl.Ui.Layout_Part_Box.pack_content_get]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_content_get|Efl.Canvas.Layout_Part_Invalid.pack_content_get]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_content_get|Efl.Ui.Spotlight.Container.pack_content_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/method/pack_end.txt b/public_html/data/pages/develop/api/efl/ui/box/method/pack_end.txt
new file mode 100644
index 00000000..98bc84a4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/method/pack_end.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Box.pack_end~~
+====== Efl.Ui.Box.pack_end ======
+
+===== Description =====
+
+%%Append object at the end of this container.%%
+
+%%This is the same as %%[[:develop:api:efl:pack_linear:method:pack_at|Efl.Pack_Linear.pack_at]]%% with a %%''-1''%% index.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:box:method:pack_end:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_linear:method:pack_end|Efl.Pack_Linear.pack_end]].//===== Signature =====
+
+
+pack_end @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_end(Eo *obj, Efl_Gfx_Entity *subobj);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%Object to pack at the end.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_end|Efl.Pack_Linear.pack_end]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_end|Efl.Ui.Tab_Bar.pack_end]]
+ * [[:develop:api:efl:ui:flip:method:pack_end|Efl.Ui.Flip.pack_end]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_end|Efl.Canvas.Layout_Part_Box.pack_end]]
+ * [[:develop:api:efl:ui:box:method:pack_end|Efl.Ui.Box.pack_end]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_end|Efl.Ui.Radio_Box.pack_end]]
+ * [[:develop:api:efl:ui:group_item:method:pack_end|Efl.Ui.Group_Item.pack_end]]
+ * [[:develop:api:efl:ui:collection:method:pack_end|Efl.Ui.Collection.pack_end]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_end|Efl.Ui.Layout_Part_Box.pack_end]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_end|Efl.Canvas.Layout_Part_Invalid.pack_end]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_end|Efl.Ui.Spotlight.Container.pack_end]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_end|Efl.Ui.Tab_Pager.pack_end]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/method/pack_index_get.txt b/public_html/data/pages/develop/api/efl/ui/box/method/pack_index_get.txt
new file mode 100644
index 00000000..45f8e9a3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/method/pack_index_get.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Box.pack_index_get~~
+====== Efl.Ui.Box.pack_index_get ======
+
+===== Description =====
+
+%%Get the index of a sub-object in this container.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:box:method:pack_index_get:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_linear:method:pack_index_get|Efl.Pack_Linear.pack_index_get]].//===== Signature =====
+
+
+pack_index_get @pure_virtual {
+ params {
+ @in subobj: const(Efl.Gfx.Entity);
+ }
+ return: int (+1);
+}
+
+
+===== C signature =====
+
+
+int efl_pack_index_get(Eo *obj, const Efl_Gfx_Entity *subobj);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%An existing sub-object in this container.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_index_get|Efl.Pack_Linear.pack_index_get]]
+ * [[:develop:api:efl:ui:flip:method:pack_index_get|Efl.Ui.Flip.pack_index_get]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_index_get|Efl.Canvas.Layout_Part_Box.pack_index_get]]
+ * [[:develop:api:efl:ui:box:method:pack_index_get|Efl.Ui.Box.pack_index_get]]
+ * [[:develop:api:efl:ui:group_item:method:pack_index_get|Efl.Ui.Group_Item.pack_index_get]]
+ * [[:develop:api:efl:ui:collection:method:pack_index_get|Efl.Ui.Collection.pack_index_get]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_index_get|Efl.Ui.Layout_Part_Box.pack_index_get]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_index_get|Efl.Canvas.Layout_Part_Invalid.pack_index_get]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_index_get|Efl.Ui.Spotlight.Container.pack_index_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/method/pack_unpack_at.txt b/public_html/data/pages/develop/api/efl/ui/box/method/pack_unpack_at.txt
new file mode 100644
index 00000000..a269dbf6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/method/pack_unpack_at.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Box.pack_unpack_at~~
+====== Efl.Ui.Box.pack_unpack_at ======
+
+===== Description =====
+
+%%Pop out (remove) the sub-object at the specified %%''index''%%.%%
+
+%%%%''index''%% ranges from %%''-count''%% to %%''count-1''%%, where positive numbers go from first sub-object (%%''0''%%) to last (%%''count-1''%%), and negative numbers go from last sub-object (%%''-1''%%) to first (%%''-count''%%). %%''count''%% is the number of sub-objects currently in the container as returned by %%[[:develop:api:efl:container:method:content_count|Efl.Container.content_count]]%%.%%
+
+%%If %%''index''%% is less than -%%''count''%%, it will remove the first sub-object whereas %%''index''%% greater than %%''count''%%-1 will remove the last sub-object.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:box:method:pack_unpack_at:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_linear:method:pack_unpack_at|Efl.Pack_Linear.pack_unpack_at]].//===== Signature =====
+
+
+pack_unpack_at @pure_virtual {
+ params {
+ @in index: int;
+ }
+ return: Efl.Gfx.Entity;
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_pack_unpack_at(Eo *obj, int index);
+
+
+===== Parameters =====
+
+ * **index** //(in)// - %%Index of the sub-object to remove. Valid range is %%''-count''%% to %%''count-1''%%.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_unpack_at|Efl.Pack_Linear.pack_unpack_at]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_unpack_at|Efl.Ui.Tab_Bar.pack_unpack_at]]
+ * [[:develop:api:efl:ui:flip:method:pack_unpack_at|Efl.Ui.Flip.pack_unpack_at]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_unpack_at|Efl.Canvas.Layout_Part_Box.pack_unpack_at]]
+ * [[:develop:api:efl:ui:box:method:pack_unpack_at|Efl.Ui.Box.pack_unpack_at]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_unpack_at|Efl.Ui.Radio_Box.pack_unpack_at]]
+ * [[:develop:api:efl:ui:group_item:method:pack_unpack_at|Efl.Ui.Group_Item.pack_unpack_at]]
+ * [[:develop:api:efl:ui:collection:method:pack_unpack_at|Efl.Ui.Collection.pack_unpack_at]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_unpack_at|Efl.Ui.Layout_Part_Box.pack_unpack_at]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_unpack_at|Efl.Canvas.Layout_Part_Invalid.pack_unpack_at]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_unpack_at|Efl.Ui.Spotlight.Container.pack_unpack_at]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_unpack_at|Efl.Ui.Tab_Pager.pack_unpack_at]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/method/unpack.txt b/public_html/data/pages/develop/api/efl/ui/box/method/unpack.txt
new file mode 100644
index 00000000..bfcd9663
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/method/unpack.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Box.unpack~~
+====== Efl.Ui.Box.unpack ======
+
+===== Description =====
+
+%%Removes an existing sub-object from the container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:box:method:unpack:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]].//===== Signature =====
+
+
+unpack @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_unpack(Eo *obj, Efl_Gfx_Entity *subobj);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%The sub-object to unpack.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]
+ * [[:develop:api:efl:ui:tab_bar:method:unpack|Efl.Ui.Tab_Bar.unpack]]
+ * [[:develop:api:efl:ui:table:method:unpack|Efl.Ui.Table.unpack]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:unpack|Efl.Canvas.Layout_Part_Table.unpack]]
+ * [[:develop:api:efl:ui:layout_part_table:method:unpack|Efl.Ui.Layout_Part_Table.unpack]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:unpack|Efl.Canvas.Layout_Part_Invalid.unpack]]
+ * [[:develop:api:efl:ui:flip:method:unpack|Efl.Ui.Flip.unpack]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:unpack|Efl.Canvas.Layout_Part_Box.unpack]]
+ * [[:develop:api:efl:ui:box:method:unpack|Efl.Ui.Box.unpack]]
+ * [[:develop:api:efl:ui:radio_box:method:unpack|Efl.Ui.Radio_Box.unpack]]
+ * [[:develop:api:efl:ui:group_item:method:unpack|Efl.Ui.Group_Item.unpack]]
+ * [[:develop:api:efl:ui:collection:method:unpack|Efl.Ui.Collection.unpack]]
+ * [[:develop:api:efl:ui:layout_part_box:method:unpack|Efl.Ui.Layout_Part_Box.unpack]]
+ * [[:develop:api:efl:ui:spotlight:container:method:unpack|Efl.Ui.Spotlight.Container.unpack]]
+ * [[:develop:api:efl:ui:tab_pager:method:unpack|Efl.Ui.Tab_Pager.unpack]]
+ * [[:develop:api:efl:ui:relative_layout:method:unpack|Efl.Ui.Relative_Layout.unpack]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/method/unpack_all.txt b/public_html/data/pages/develop/api/efl/ui/box/method/unpack_all.txt
new file mode 100644
index 00000000..e0cd47c2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/method/unpack_all.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.Ui.Box.unpack_all~~
+====== Efl.Ui.Box.unpack_all ======
+
+===== Description =====
+
+%%Removes all packed sub-objects without unreferencing them.%%
+
+%%Use with caution.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:box:method:unpack_all:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack:method:unpack_all|Efl.Pack.unpack_all]].//===== Signature =====
+
+
+unpack_all @pure_virtual {
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_unpack_all(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack:method:unpack_all|Efl.Pack.unpack_all]]
+ * [[:develop:api:efl:ui:tab_bar:method:unpack_all|Efl.Ui.Tab_Bar.unpack_all]]
+ * [[:develop:api:efl:ui:table:method:unpack_all|Efl.Ui.Table.unpack_all]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:unpack_all|Efl.Canvas.Layout_Part_Table.unpack_all]]
+ * [[:develop:api:efl:ui:layout_part_table:method:unpack_all|Efl.Ui.Layout_Part_Table.unpack_all]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:unpack_all|Efl.Canvas.Layout_Part_Invalid.unpack_all]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:unpack_all|Efl.Canvas.Layout_Part_Box.unpack_all]]
+ * [[:develop:api:efl:ui:box:method:unpack_all|Efl.Ui.Box.unpack_all]]
+ * [[:develop:api:efl:ui:radio_box:method:unpack_all|Efl.Ui.Radio_Box.unpack_all]]
+ * [[:develop:api:efl:ui:group_item:method:unpack_all|Efl.Ui.Group_Item.unpack_all]]
+ * [[:develop:api:efl:ui:collection:method:unpack_all|Efl.Ui.Collection.unpack_all]]
+ * [[:develop:api:efl:ui:layout_part_box:method:unpack_all|Efl.Ui.Layout_Part_Box.unpack_all]]
+ * [[:develop:api:efl:ui:spotlight:container:method:unpack_all|Efl.Ui.Spotlight.Container.unpack_all]]
+ * [[:develop:api:efl:ui:tab_pager:method:unpack_all|Efl.Ui.Tab_Pager.unpack_all]]
+ * [[:develop:api:efl:ui:relative_layout:method:unpack_all|Efl.Ui.Relative_Layout.unpack_all]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/property/content_align.txt b/public_html/data/pages/develop/api/efl/ui/box/property/content_align.txt
new file mode 100644
index 00000000..9cba5eb0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/property/content_align.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Box.content_align~~
+====== Efl.Ui.Box.content_align ======
+
+===== Description =====
+
+%%This property determines how contents will be aligned within a container if there is unused space.%%
+
+%%It is different than the %%[[:develop:api:efl:gfx:hint:property:hint_align|Efl.Gfx.Hint.hint_align]]%% property in that it affects the position of all the contents within the container. For example, if a box widget has extra space on the horizontal axis, this property can be used to align the box's contents to the left or the right side.%%
+
+%%See also %%[[:develop:api:efl:gfx:hint:property:hint_align|Efl.Gfx.Hint.hint_align]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:box:property:content_align:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **align_horiz** - %%Double, ranging from 0.0 to 1.0, where 0.0 is at the start of the horizontal axis and 1.0 is at the end.%%
+ * **align_vert** - %%Double, ranging from 0.0 to 1.0, where 0.0 is at the start of the vertical axis and 1.0 is at the end.%%
+
+//Overridden from [[:develop:api:efl:gfx:arrangement:property:content_align|Efl.Gfx.Arrangement.content_align]] **(get, set)**.//===== Signature =====
+
+
+@property content_align @pure_virtual {
+ get {}
+ set {}
+ values {
+ align_horiz: double (0.500000);
+ align_vert: double (0.500000);
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_arrangement_content_align_get(const Eo *obj, double *align_horiz, double *align_vert);
+void efl_gfx_arrangement_content_align_set(Eo *obj, double align_horiz, double align_vert);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:arrangement:property:content_align|Efl.Gfx.Arrangement.content_align]]
+ * [[:develop:api:efl:ui:table:property:content_align|Efl.Ui.Table.content_align]]
+ * [[:develop:api:efl:ui:box:property:content_align|Efl.Ui.Box.content_align]]
+ * [[:develop:api:efl:ui:image:property:content_align|Efl.Ui.Image.content_align]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/property/content_padding.txt b/public_html/data/pages/develop/api/efl/ui/box/property/content_padding.txt
new file mode 100644
index 00000000..29dc59f1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/property/content_padding.txt
@@ -0,0 +1,47 @@
+~~Title: Efl.Ui.Box.content_padding~~
+====== Efl.Ui.Box.content_padding ======
+
+===== Description =====
+
+%%This property determines the space between a container's content items.%%
+
+%%It is different than the %%[[:develop:api:efl:gfx:hint:property:hint_margin|Efl.Gfx.Hint.hint_margin]]%% property in that it is applied to each content item within the container instead of a single item. The calculation for these two properties is cumulative.%%
+
+%%See also %%[[:develop:api:efl:gfx:hint:property:hint_margin|Efl.Gfx.Hint.hint_margin]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:box:property:content_padding:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **pad_horiz** - %%Horizontal padding.%%
+ * **pad_vert** - %%Vertical padding.%%
+ * **scalable** - %%%%''true''%% if scalable.%%
+
+//Overridden from [[:develop:api:efl:gfx:arrangement:property:content_padding|Efl.Gfx.Arrangement.content_padding]] **(get, set)**.//===== Signature =====
+
+
+@property content_padding @beta @pure_virtual {
+ get {}
+ set {}
+ values {
+ pad_horiz: double (0.000000);
+ pad_vert: double (0.000000);
+ scalable: bool (false);
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_arrangement_content_padding_get(const Eo *obj, double *pad_horiz, double *pad_vert, Eina_Bool *scalable);
+void efl_gfx_arrangement_content_padding_set(Eo *obj, double pad_horiz, double pad_vert, Eina_Bool scalable);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:arrangement:property:content_padding|Efl.Gfx.Arrangement.content_padding]]
+ * [[:develop:api:efl:ui:table:property:content_padding|Efl.Ui.Table.content_padding]]
+ * [[:develop:api:efl:ui:box:property:content_padding|Efl.Ui.Box.content_padding]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/property/homogeneous.txt b/public_html/data/pages/develop/api/efl/ui/box/property/homogeneous.txt
new file mode 100644
index 00000000..66049107
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/property/homogeneous.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Box.homogeneous~~
+====== Efl.Ui.Box.homogeneous ======
+
+===== Description =====
+
+%%In homogeneous mode all children of a vertical Box have the same height, equal to the height of the tallest widget. Children of a horizontal Box have the same width, equal to the width of the widest widget. Otherwise, individual widget sizes are not modified.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:box:property:homogeneous:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **homogeneous** - %%%%''true''%% if the Box is homogeneous, %%''false''%% otherwise.%%
+
+===== Signature =====
+
+
+@property homogeneous {
+ get {}
+ set {}
+ values {
+ homogeneous: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_box_homogeneous_get(const Eo *obj);
+void efl_ui_box_homogeneous_set(Eo *obj, Eina_Bool homogeneous);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:box:property:homogeneous|Efl.Ui.Box.homogeneous]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/property/l10n_text.txt b/public_html/data/pages/develop/api/efl/ui/box/property/l10n_text.txt
new file mode 100644
index 00000000..145b0f9f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/property/l10n_text.txt
@@ -0,0 +1,72 @@
+~~Title: Efl.Ui.Box.l10n_text~~
+====== Efl.Ui.Box.l10n_text ======
+
+===== Description =====
+
+%%A unique string to be translated.%%
+
+%%Often this will be a human-readable string (e.g. in English) but it can also be a unique string identifier that must then be translated to the current locale with %%''dgettext''%%() or any similar mechanism.%%
+
+%%Setting this property will enable translation for this object or part.%%
+
+
+{{page>:develop:api-include:efl:ui:box:property:l10n_text:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+==== Getter ====
+
+ * **domain** - %%A translation domain. If %%''null''%% this means the default domain is used.%%
+==== Setter ====
+
+ * **label** - %%A unique (untranslated) string.%%
+ * **domain** - %%A translation domain. If %%''null''%% this uses the default domain (eg. set by %%''textdomain''%%()).%%
+==== Setter ====
+
+%%Sets the new untranslated string and domain for this object.%%
+{{page>:develop:api-include:efl:ui:box:property:l10n_text:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:l10n:property:l10n_text|Efl.Ui.L10n.l10n_text]] **(get, set)**.//===== Signature =====
+
+
+@property l10n_text @pure_virtual {
+ get {
+ values {
+ domain: string @optional;
+ }
+ return: string;
+ }
+ set {
+ values {
+ label: string;
+ domain: string @optional;
+ }
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_ui_l10n_text_get(const Eo *obj, const char **domain);
+void efl_ui_l10n_text_set(Eo *obj, const char *label, const char *domain);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:l10n:property:l10n_text|Efl.Ui.L10n.l10n_text]]
+ * [[:develop:api:efl:ui:default_item:property:l10n_text|Efl.Ui.Default_Item.l10n_text]]
+ * [[:develop:api:efl:ui:layout_part_legacy:property:l10n_text|Efl.Ui.Layout_Part_Legacy.l10n_text]]
+ * [[:develop:api:elm:notify:part:property:l10n_text|Elm.Notify.Part.l10n_text]]
+ * [[:develop:api:efl:ui:layout_part_text:property:l10n_text|Efl.Ui.Layout_Part_Text.l10n_text]]
+ * [[:develop:api:efl:ui:win:property:l10n_text|Efl.Ui.Win.l10n_text]]
+ * [[:develop:api:efl:ui:table:property:l10n_text|Efl.Ui.Table.l10n_text]]
+ * [[:develop:api:efl:ui:box:property:l10n_text|Efl.Ui.Box.l10n_text]]
+ * [[:develop:api:efl:ui:layout_base:property:l10n_text|Efl.Ui.Layout_Base.l10n_text]]
+ * [[:develop:api:efl:ui:check:property:l10n_text|Efl.Ui.Check.l10n_text]]
+ * [[:develop:api:efl:ui:frame:property:l10n_text|Efl.Ui.Frame.l10n_text]]
+ * [[:develop:api:efl:ui:progressbar:property:l10n_text|Efl.Ui.Progressbar.l10n_text]]
+ * [[:develop:api:efl:ui:button:property:l10n_text|Efl.Ui.Button.l10n_text]]
+ * [[:develop:api:efl:ui:navigation_bar:property:l10n_text|Efl.Ui.Navigation_Bar.l10n_text]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/property/language.txt b/public_html/data/pages/develop/api/efl/ui/box/property/language.txt
new file mode 100644
index 00000000..dfcf54a5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/property/language.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Box.language~~
+====== Efl.Ui.Box.language ======
+
+===== Description =====
+
+%%The (human) language for this object.%%
+{{page>:develop:api-include:efl:ui:box:property:language:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **language** - %%The current language.%%
+
+//Overridden from [[:develop:api:efl:ui:i18n:property:language|Efl.Ui.I18n.language]] **(get, set)**.//===== Signature =====
+
+
+@property language @pure_virtual {
+ get {}
+ set {}
+ values {
+ language: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_ui_language_get(const Eo *obj);
+void efl_ui_language_set(Eo *obj, const char *language);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:i18n:property:language|Efl.Ui.I18n.language]]
+ * [[:develop:api:efl:canvas:layout:property:language|Efl.Canvas.Layout.language]]
+ * [[:develop:api:efl:ui:win:property:language|Efl.Ui.Win.language]]
+ * [[:develop:api:efl:ui:table:property:language|Efl.Ui.Table.language]]
+ * [[:develop:api:efl:ui:box:property:language|Efl.Ui.Box.language]]
+ * [[:develop:api:efl:ui:layout_base:property:language|Efl.Ui.Layout_Base.language]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/property/orientation.txt b/public_html/data/pages/develop/api/efl/ui/box/property/orientation.txt
new file mode 100644
index 00000000..d13d2d0c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/property/orientation.txt
@@ -0,0 +1,56 @@
+~~Title: Efl.Ui.Box.orientation~~
+====== Efl.Ui.Box.orientation ======
+
+===== Description =====
+
+%%Control the direction of a given widget.%%
+
+%%Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.%%
+
+%%Mirroring as defined in %%[[:develop:api:efl:ui:i18n|Efl.Ui.I18n]]%% can invert the %%''horizontal''%% direction: it is %%''ltr''%% by default, but becomes %%''rtl''%% if the object is mirrored.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:box:property:orientation:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **dir** - %%Direction of the widget.%%
+
+//Overridden from [[:develop:api:efl:ui:layout_orientable:property:orientation|Efl.Ui.Layout_Orientable.orientation]] **(get, set)**.//===== Signature =====
+
+
+@property orientation @pure_virtual {
+ get {}
+ set {}
+ values {
+ dir: Efl.Ui.Layout_Orientation;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Layout_Orientation efl_ui_layout_orientation_get(const Eo *obj);
+void efl_ui_layout_orientation_set(Eo *obj, Efl_Ui_Layout_Orientation dir);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:layout_orientable:property:orientation|Efl.Ui.Layout_Orientable.orientation]]
+ * [[:develop:api:efl:ui:slider:property:orientation|Efl.Ui.Slider.orientation]]
+ * [[:develop:api:efl:ui:layout_orientable_readonly:property:orientation|Efl.Ui.Layout_Orientable_Readonly.orientation]]
+ * [[:develop:api:efl:canvas:layout_part_box:property:orientation|Efl.Canvas.Layout_Part_Box.orientation]]
+ * [[:develop:api:efl:ui:layout_part_box:property:orientation|Efl.Ui.Layout_Part_Box.orientation]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:orientation|Efl.Canvas.Layout_Part_Invalid.orientation]]
+ * [[:develop:api:efl:ui:collection_view:property:orientation|Efl.Ui.Collection_View.orientation]]
+ * [[:develop:api:efl:ui:table:property:orientation|Efl.Ui.Table.orientation]]
+ * [[:develop:api:efl:ui:box:property:orientation|Efl.Ui.Box.orientation]]
+ * [[:develop:api:efl:ui:slider_interval:property:orientation|Efl.Ui.Slider_Interval.orientation]]
+ * [[:develop:api:efl:ui:collection:property:orientation|Efl.Ui.Collection.orientation]]
+ * [[:develop:api:efl:ui:panes:property:orientation|Efl.Ui.Panes.orientation]]
+ * [[:develop:api:efl:ui:progressbar:property:orientation|Efl.Ui.Progressbar.orientation]]
+ * [[:develop:api:efl:ui:spin_button:property:orientation|Efl.Ui.Spin_Button.orientation]]
+ * [[:develop:api:efl:ui:position_manager:grid:property:orientation|Efl.Ui.Position_Manager.Grid.orientation]]
+ * [[:develop:api:efl:ui:position_manager:list:property:orientation|Efl.Ui.Position_Manager.List.orientation]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/property/position.txt b/public_html/data/pages/develop/api/efl/ui/box/property/position.txt
new file mode 100644
index 00000000..6c3c9251
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/property/position.txt
@@ -0,0 +1,76 @@
+~~Title: Efl.Ui.Box.position~~
+====== Efl.Ui.Box.position ======
+
+===== Description =====
+
+%%The 2D position of a canvas object.%%
+
+%%The position is absolute, in pixels, relative to the top-left corner of the window, within its border decorations (application space).%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:box:property:position:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **pos** - %%A 2D coordinate in pixel units.%%
+==== Getter ====
+
+%%Retrieves the position of the given canvas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:box:property:position:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Moves the given canvas object to the given location inside its canvas' viewport. If unchanged this call may be entirely skipped, but if changed this will trigger move events, as well as potential pointer,in or pointer,out events.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:box:property:position:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:widget:property:position|Efl.Gfx.Entity.position]] **(set)**.//===== Signature =====
+
+
+@property position @pure_virtual {
+ get {}
+ set {}
+ values {
+ pos: Eina.Position2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Position2D efl_gfx_entity_position_get(const Eo *obj);
+void efl_gfx_entity_position_set(Eo *obj, Eina_Position2D pos);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:position|Efl.Gfx.Entity.position]]
+ * [[:develop:api:efl:canvas:vg:node:property:position|Efl.Canvas.Vg.Node.position]]
+ * [[:develop:api:efl:ui:win:property:position|Efl.Ui.Win.position]]
+ * [[:develop:api:efl:ui:image:property:position|Efl.Ui.Image.position]]
+ * [[:develop:api:efl:ui:image_zoomable:property:position|Efl.Ui.Image_Zoomable.position]]
+ * [[:develop:api:efl:ui:widget:property:position|Efl.Ui.Widget.position]]
+ * [[:develop:api:efl:ui:table:property:position|Efl.Ui.Table.position]]
+ * [[:develop:api:efl:ui:box:property:position|Efl.Ui.Box.position]]
+ * [[:develop:api:efl:ui:animation_view:property:position|Efl.Ui.Animation_View.position]]
+ * [[:develop:api:efl:ui:text:property:position|Efl.Ui.Text.position]]
+ * [[:develop:api:efl:ui:textpath:property:position|Efl.Ui.Textpath.position]]
+ * [[:develop:api:efl:ui:popup:property:position|Efl.Ui.Popup.position]]
+ * [[:develop:api:efl:ui:relative_layout:property:position|Efl.Ui.Relative_Layout.position]]
+ * [[:develop:api:efl:canvas:object:property:position|Efl.Canvas.Object.position]]
+ * [[:develop:api:efl:canvas:group:property:position|Efl.Canvas.Group.position]]
+ * [[:develop:api:efl:canvas:video:property:position|Efl.Canvas.Video.position]]
+ * [[:develop:api:efl:canvas:event_grabber:property:position|Efl.Canvas.Event_Grabber.position]]
+ * [[:develop:api:efl:canvas:layout:property:position|Efl.Canvas.Layout.position]]
+ * [[:develop:api:efl:ui:pan:property:position|Efl.Ui.Pan.position]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:property:position|Efl.Ui.Image_Zoomable_Pan.position]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box/property/size.txt b/public_html/data/pages/develop/api/efl/ui/box/property/size.txt
new file mode 100644
index 00000000..045616cc
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box/property/size.txt
@@ -0,0 +1,76 @@
+~~Title: Efl.Ui.Box.size~~
+====== Efl.Ui.Box.size ======
+
+===== Description =====
+
+%%The 2D size of a canvas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:box:property:size:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **size** - %%A 2D size in pixel units.%%
+==== Getter ====
+
+%%Retrieves the (rectangular) size of the given Evas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:box:property:size:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Changes the size of the given object.%%
+
+%%Note that setting the actual size of an object might be the job of its container, so this function might have no effect. Look at %%[[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]%% instead, when manipulating widgets.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:box:property:size:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:widget:property:size|Efl.Gfx.Entity.size]] **(set)**.//===== Signature =====
+
+
+@property size @pure_virtual {
+ get {}
+ set {}
+ values {
+ size: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_entity_size_get(const Eo *obj);
+void efl_gfx_entity_size_set(Eo *obj, Eina_Size2D size);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:size|Efl.Gfx.Entity.size]]
+ * [[:develop:api:efl:canvas:vg:node:property:size|Efl.Canvas.Vg.Node.size]]
+ * [[:develop:api:efl:ui:win:property:size|Efl.Ui.Win.size]]
+ * [[:develop:api:efl:ui:image:property:size|Efl.Ui.Image.size]]
+ * [[:develop:api:efl:ui:image_zoomable:property:size|Efl.Ui.Image_Zoomable.size]]
+ * [[:develop:api:efl:ui:widget:property:size|Efl.Ui.Widget.size]]
+ * [[:develop:api:efl:ui:table:property:size|Efl.Ui.Table.size]]
+ * [[:develop:api:efl:ui:box:property:size|Efl.Ui.Box.size]]
+ * [[:develop:api:efl:ui:animation_view:property:size|Efl.Ui.Animation_View.size]]
+ * [[:develop:api:efl:ui:text:property:size|Efl.Ui.Text.size]]
+ * [[:develop:api:efl:ui:panel:property:size|Efl.Ui.Panel.size]]
+ * [[:develop:api:efl:ui:textpath:property:size|Efl.Ui.Textpath.size]]
+ * [[:develop:api:efl:ui:popup:property:size|Efl.Ui.Popup.size]]
+ * [[:develop:api:efl:ui:relative_layout:property:size|Efl.Ui.Relative_Layout.size]]
+ * [[:develop:api:efl:canvas:object:property:size|Efl.Canvas.Object.size]]
+ * [[:develop:api:efl:canvas:video:property:size|Efl.Canvas.Video.size]]
+ * [[:develop:api:efl:canvas:event_grabber:property:size|Efl.Canvas.Event_Grabber.size]]
+ * [[:develop:api:efl:canvas:layout:property:size|Efl.Canvas.Layout.size]]
+ * [[:develop:api:efl:ui:pan:property:size|Efl.Ui.Pan.size]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:property:size|Efl.Ui.Image_Zoomable_Pan.size]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box_flow.txt b/public_html/data/pages/develop/api/efl/ui/box_flow.txt
new file mode 100644
index 00000000..52987fca
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box_flow.txt
@@ -0,0 +1,373 @@
+~~Title: Efl.Ui.Box_Flow~~
+====== Efl.Ui.Box_Flow (class) ======
+
+===== Description =====
+
+%%A Flow Box is a customized type of %%[[:develop:api:efl:ui:box|Efl.Ui.Box]]%%. It will fill along the axis selected with %%[[:develop:api:efl:ui:layout_orientable:property:orientation|Efl.Ui.Layout_Orientable.orientation]]%% (which defaults to Horizontal), until items will no longer fit in the available space, at which point it will begin filling items in a new row/column after the current one. This is useful if an application wants to e.g., present a group of items and wrap them onto subsequent lines when the number of items grows too large to fit on the screen. Adding or removing items in the middle re-arrange the rest of the items as expected.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:box_flow:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:box|Efl.Ui.Box]] //(class)// => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:box|Efl.Ui.Box]] //(class)//
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:pack_linear|Efl.Pack_Linear]] //(interface)//
+ * [[:develop:api:efl:pack|Efl.Pack]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:pack_layout|Efl.Pack_Layout]] //(interface)//
+ * [[:develop:api:efl:ui:layout_orientable|Efl.Ui.Layout_Orientable]] //(interface)//
+ * [[:develop:api:efl:gfx:arrangement|Efl.Gfx.Arrangement]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:box_flow:method:layout_update|layout_update]]** ''protected''// [Overridden from [[:develop:api:efl:pack_layout|Efl.Pack_Layout]]]//\\
+> %%Implementation of this container's layout algorithm.%%
+
+void efl_pack_layout_update(Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:box|Efl.Ui.Box]] ^^^
+| | **[[:develop:api:efl:ui:box:method:constructor|constructor]]** | %%Implement this method to provide optional initialization code for your object.%% |
+| | **[[:develop:api:efl:ui:box:property:content_align|content_align]]** //**(get, set)**// | %%This property determines how contents will be aligned within a container if there is unused space.%% |
+| | **[[:develop:api:efl:ui:box:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:ui:box:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+| | **[[:develop:api:efl:ui:box:property:content_padding|content_padding]]** //**(get, set)**// | %%This property determines the space between a container's content items.%% |
+| | **[[:develop:api:efl:ui:box:method:group_calculate|group_calculate]]** | %%Triggers an immediate recalculation of this object's geometry.%% |
+| | **[[:develop:api:efl:ui:box:property:homogeneous|homogeneous]]** //**(get, set)**// | %%In homogeneous mode all children of a vertical Box have the same height, equal to the height of the tallest widget. Children of a horizontal Box have the same width, equal to the width of the widest widget. Otherwise, individual widget sizes are not modified.%% |
+| | **[[:develop:api:efl:ui:box:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:ui:box:property:l10n_text|l10n_text]]** //**(get, set)**// | %%A unique string to be translated.%% |
+| | **[[:develop:api:efl:ui:box:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+| | **[[:develop:api:efl:ui:box:method:layout_request|layout_request]]** | %%Requests EFL to recalculate the layout of this object.%% |
+| | **[[:develop:api:efl:ui:box:property:orientation|orientation]]** //**(get, set)**// | %%Control the direction of a given widget.%% |
+| | **[[:develop:api:efl:ui:box:method:pack|pack]]** | %%Adds a sub-object to this container.%% |
+| | **[[:develop:api:efl:ui:box:method:pack_after|pack_after]]** | %%Append an object after the %%''existing''%% sub-object.%% |
+| | **[[:develop:api:efl:ui:box:method:pack_at|pack_at]]** | %%Inserts %%''subobj''%% BEFORE the sub-object at position %%''index''%%.%% |
+| | **[[:develop:api:efl:ui:box:method:pack_before|pack_before]]** | %%Prepend an object before the %%''existing''%% sub-object.%% |
+| | **[[:develop:api:efl:ui:box:method:pack_begin|pack_begin]]** | %%Prepend an object at the beginning of this container.%% |
+| | **[[:develop:api:efl:ui:box:method:pack_clear|pack_clear]]** | %%Removes all packed sub-objects and unreferences them.%% |
+| | **[[:develop:api:efl:ui:box:method:pack_content_get|pack_content_get]]** | %%Sub-object at a given %%''index''%% in this container.%% |
+| | **[[:develop:api:efl:ui:box:method:pack_end|pack_end]]** | %%Append object at the end of this container.%% |
+| | **[[:develop:api:efl:ui:box:method:pack_index_get|pack_index_get]]** | %%Get the index of a sub-object in this container.%% |
+| | **[[:develop:api:efl:ui:box:method:pack_unpack_at|pack_unpack_at]]** | %%Pop out (remove) the sub-object at the specified %%''index''%%.%% |
+| | **[[:develop:api:efl:ui:box:property:position|position]]** //**(get, set)**// | %%The 2D position of a canvas object.%% |
+| | **[[:develop:api:efl:ui:box:property:size|size]]** //**(get, set)**// | %%The 2D size of a canvas object.%% |
+| | **[[:develop:api:efl:ui:box:method:unpack|unpack]]** | %%Removes an existing sub-object from the container without deleting it.%% |
+| | **[[:develop:api:efl:ui:box:method:unpack_all|unpack_all]]** | %%Removes all packed sub-objects without unreferencing them.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:ui:widget:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| | **[[:develop:api:efl:ui:widget:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:widget:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| | **[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_focus_update|on_focus_update]]** | %%Virtual function handling focus in/out events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:part_get|part_get]]** | %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:theme_apply|theme_apply]]** | %%Virtual function called when the widget needs to re-apply its theme.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_input_event_handler|widget_input_event_handler]]** | %%Virtual function handling input events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:pack_layout|Efl.Pack_Layout]] ^^^
+| | **[[:develop:api:efl:pack_layout:event:layout_updated|layout,updated]]** | %%Sent after the layout was updated.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/box_flow/method/layout_update.txt b/public_html/data/pages/develop/api/efl/ui/box_flow/method/layout_update.txt
new file mode 100644
index 00000000..0fd0d467
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box_flow/method/layout_update.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.Box_Flow.layout_update~~
+====== Efl.Ui.Box_Flow.layout_update ======
+
+===== Description =====
+
+%%Implementation of this container's layout algorithm.%%
+
+%%EFL will call this function whenever the contents of this container need to be re-laid out on the canvas.%%
+
+%%This can be overridden to implement custom layout behaviors.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:box_flow:method:layout_update:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:box:method:layout_update|Efl.Pack_Layout.layout_update]].//===== Signature =====
+
+
+layout_update @protected @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_pack_layout_update(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_layout:method:layout_update|Efl.Pack_Layout.layout_update]]
+ * [[:develop:api:efl:ui:table:method:layout_update|Efl.Ui.Table.layout_update]]
+ * [[:develop:api:efl:ui:table_static:method:layout_update|Efl.Ui.Table_Static.layout_update]]
+ * [[:develop:api:efl:ui:box:method:layout_update|Efl.Ui.Box.layout_update]]
+ * [[:develop:api:efl:ui:box_stack:method:layout_update|Efl.Ui.Box_Stack.layout_update]]
+ * [[:develop:api:efl:ui:box_flow:method:layout_update|Efl.Ui.Box_Flow.layout_update]]
+ * [[:develop:api:efl:ui:relative_layout:method:layout_update|Efl.Ui.Relative_Layout.layout_update]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/box_stack.txt b/public_html/data/pages/develop/api/efl/ui/box_stack.txt
new file mode 100644
index 00000000..9d8ceb02
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box_stack.txt
@@ -0,0 +1,377 @@
+~~Title: Efl.Ui.Box_Stack~~
+====== Efl.Ui.Box_Stack (class) ======
+
+===== Description =====
+
+%%A custom layout engine for %%[[:develop:api:efl:ui:box|Efl.Ui.Box]]%% that stacks items.%%
+
+%%Items will be stacked on top of each other (in the Z direction) meaning that, in the absence of transparency, only the last item added through the %%[[:develop:api:efl:pack|Efl.Pack]]%% interface will actually be visible.%%
+
+%%This can be useful to display transparent objects on top of each other, for example.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:box_stack:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:box|Efl.Ui.Box]] //(class)// => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:box|Efl.Ui.Box]] //(class)//
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:pack_linear|Efl.Pack_Linear]] //(interface)//
+ * [[:develop:api:efl:pack|Efl.Pack]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:pack_layout|Efl.Pack_Layout]] //(interface)//
+ * [[:develop:api:efl:ui:layout_orientable|Efl.Ui.Layout_Orientable]] //(interface)//
+ * [[:develop:api:efl:gfx:arrangement|Efl.Gfx.Arrangement]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:box_stack:method:layout_update|layout_update]]** ''protected''// [Overridden from [[:develop:api:efl:pack_layout|Efl.Pack_Layout]]]//\\
+> %%Implementation of this container's layout algorithm.%%
+
+void efl_pack_layout_update(Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:box|Efl.Ui.Box]] ^^^
+| | **[[:develop:api:efl:ui:box:method:constructor|constructor]]** | %%Implement this method to provide optional initialization code for your object.%% |
+| | **[[:develop:api:efl:ui:box:property:content_align|content_align]]** //**(get, set)**// | %%This property determines how contents will be aligned within a container if there is unused space.%% |
+| | **[[:develop:api:efl:ui:box:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:ui:box:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+| | **[[:develop:api:efl:ui:box:property:content_padding|content_padding]]** //**(get, set)**// | %%This property determines the space between a container's content items.%% |
+| | **[[:develop:api:efl:ui:box:method:group_calculate|group_calculate]]** | %%Triggers an immediate recalculation of this object's geometry.%% |
+| | **[[:develop:api:efl:ui:box:property:homogeneous|homogeneous]]** //**(get, set)**// | %%In homogeneous mode all children of a vertical Box have the same height, equal to the height of the tallest widget. Children of a horizontal Box have the same width, equal to the width of the widest widget. Otherwise, individual widget sizes are not modified.%% |
+| | **[[:develop:api:efl:ui:box:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:ui:box:property:l10n_text|l10n_text]]** //**(get, set)**// | %%A unique string to be translated.%% |
+| | **[[:develop:api:efl:ui:box:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+| | **[[:develop:api:efl:ui:box:method:layout_request|layout_request]]** | %%Requests EFL to recalculate the layout of this object.%% |
+| | **[[:develop:api:efl:ui:box:property:orientation|orientation]]** //**(get, set)**// | %%Control the direction of a given widget.%% |
+| | **[[:develop:api:efl:ui:box:method:pack|pack]]** | %%Adds a sub-object to this container.%% |
+| | **[[:develop:api:efl:ui:box:method:pack_after|pack_after]]** | %%Append an object after the %%''existing''%% sub-object.%% |
+| | **[[:develop:api:efl:ui:box:method:pack_at|pack_at]]** | %%Inserts %%''subobj''%% BEFORE the sub-object at position %%''index''%%.%% |
+| | **[[:develop:api:efl:ui:box:method:pack_before|pack_before]]** | %%Prepend an object before the %%''existing''%% sub-object.%% |
+| | **[[:develop:api:efl:ui:box:method:pack_begin|pack_begin]]** | %%Prepend an object at the beginning of this container.%% |
+| | **[[:develop:api:efl:ui:box:method:pack_clear|pack_clear]]** | %%Removes all packed sub-objects and unreferences them.%% |
+| | **[[:develop:api:efl:ui:box:method:pack_content_get|pack_content_get]]** | %%Sub-object at a given %%''index''%% in this container.%% |
+| | **[[:develop:api:efl:ui:box:method:pack_end|pack_end]]** | %%Append object at the end of this container.%% |
+| | **[[:develop:api:efl:ui:box:method:pack_index_get|pack_index_get]]** | %%Get the index of a sub-object in this container.%% |
+| | **[[:develop:api:efl:ui:box:method:pack_unpack_at|pack_unpack_at]]** | %%Pop out (remove) the sub-object at the specified %%''index''%%.%% |
+| | **[[:develop:api:efl:ui:box:property:position|position]]** //**(get, set)**// | %%The 2D position of a canvas object.%% |
+| | **[[:develop:api:efl:ui:box:property:size|size]]** //**(get, set)**// | %%The 2D size of a canvas object.%% |
+| | **[[:develop:api:efl:ui:box:method:unpack|unpack]]** | %%Removes an existing sub-object from the container without deleting it.%% |
+| | **[[:develop:api:efl:ui:box:method:unpack_all|unpack_all]]** | %%Removes all packed sub-objects without unreferencing them.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:ui:widget:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| | **[[:develop:api:efl:ui:widget:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:widget:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| | **[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_focus_update|on_focus_update]]** | %%Virtual function handling focus in/out events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:part_get|part_get]]** | %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:theme_apply|theme_apply]]** | %%Virtual function called when the widget needs to re-apply its theme.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_input_event_handler|widget_input_event_handler]]** | %%Virtual function handling input events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:pack_layout|Efl.Pack_Layout]] ^^^
+| | **[[:develop:api:efl:pack_layout:event:layout_updated|layout,updated]]** | %%Sent after the layout was updated.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/box_stack/method/layout_update.txt b/public_html/data/pages/develop/api/efl/ui/box_stack/method/layout_update.txt
new file mode 100644
index 00000000..66d51501
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/box_stack/method/layout_update.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.Box_Stack.layout_update~~
+====== Efl.Ui.Box_Stack.layout_update ======
+
+===== Description =====
+
+%%Implementation of this container's layout algorithm.%%
+
+%%EFL will call this function whenever the contents of this container need to be re-laid out on the canvas.%%
+
+%%This can be overridden to implement custom layout behaviors.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:box_stack:method:layout_update:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:box:method:layout_update|Efl.Pack_Layout.layout_update]].//===== Signature =====
+
+
+layout_update @protected @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_pack_layout_update(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_layout:method:layout_update|Efl.Pack_Layout.layout_update]]
+ * [[:develop:api:efl:ui:table:method:layout_update|Efl.Ui.Table.layout_update]]
+ * [[:develop:api:efl:ui:table_static:method:layout_update|Efl.Ui.Table_Static.layout_update]]
+ * [[:develop:api:efl:ui:box:method:layout_update|Efl.Ui.Box.layout_update]]
+ * [[:develop:api:efl:ui:box_stack:method:layout_update|Efl.Ui.Box_Stack.layout_update]]
+ * [[:develop:api:efl:ui:box_flow:method:layout_update|Efl.Ui.Box_Flow.layout_update]]
+ * [[:develop:api:efl:ui:relative_layout:method:layout_update|Efl.Ui.Relative_Layout.layout_update]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/button.txt b/public_html/data/pages/develop/api/efl/ui/button.txt
new file mode 100644
index 00000000..dabad0e4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/button.txt
@@ -0,0 +1,476 @@
+~~Title: Efl.Ui.Button~~
+====== Efl.Ui.Button (class) ======
+
+===== Description =====
+
+%%Push-button widget%%
+
+%%Press it and run some function. It can contain a simple label and icon object and it also has an autorepeat feature.%%
+
+%%The icon can be set using %%[[:develop:api:efl:content:property:content|Efl.Content.content]]%%, the text can be set using %%[[:develop:api:efl:text:property:text|Efl.Text.text]]%%.%%
+
+%%The events of %%[[:develop:api:efl:input:clickable|Efl.Input.Clickable]]%% can be used to listen to a click event from the user.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:button:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)// => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)//
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] //(interface)//
+ * [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] //(interface)//
+ * [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] //(interface)//
+ * [[:develop:api:efl:layout:group|Efl.Layout.Group]] //(interface)//
+ * [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] //(mixin)//
+ * [[:develop:api:efl:ui:autorepeat|Efl.Ui.Autorepeat]] //(interface)//
+ * [[:develop:api:efl:text|Efl.Text]] //(interface)//
+ * [[:develop:api:efl:content|Efl.Content]] //(interface)//
+ * [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]] //(mixin)//
+ * [[:develop:api:efl:access:action|Efl.Access.Action]] //(mixin)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:button:property:autorepeat_enabled|autorepeat_enabled]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:autorepeat|Efl.Ui.Autorepeat]]]//\\
+> %%Turn on/off the autorepeat event generated when a button is kept pressed.%%
+
+Eina_Bool efl_ui_autorepeat_enabled_get(const Eo *obj);
+void efl_ui_autorepeat_enabled_set(Eo *obj, Eina_Bool on);
+
+\\
+**[[:develop:api:efl:ui:button:property:autorepeat_gap_timeout|autorepeat_gap_timeout]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:autorepeat|Efl.Ui.Autorepeat]]]//\\
+> %%The interval between each generated autorepeat event.%%
+
+double efl_ui_autorepeat_gap_timeout_get(const Eo *obj);
+void efl_ui_autorepeat_gap_timeout_set(Eo *obj, double t);
+
+\\
+**[[:develop:api:efl:ui:button:property:autorepeat_initial_timeout|autorepeat_initial_timeout]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:autorepeat|Efl.Ui.Autorepeat]]]//\\
+> %%The initial timeout before the autorepeat event is generated.%%
+
+double efl_ui_autorepeat_initial_timeout_get(const Eo *obj);
+void efl_ui_autorepeat_initial_timeout_set(Eo *obj, double t);
+
+\\
+**[[:develop:api:efl:ui:button:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:button:property:content|content]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:content|Efl.Content]]]//\\
+> %%Sub-object currently set as this object's single content.%%
+
+Efl_Gfx_Entity *efl_content_get(const Eo *obj);
+Eina_Bool efl_content_set(Eo *obj, Efl_Gfx_Entity *content);
+
+\\
+**[[:develop:api:efl:ui:button:method:content_unset|content_unset]]**// [Overridden from [[:develop:api:efl:content|Efl.Content]]]//\\
+> %%Remove the sub-object currently set as content of this object and return it. This object becomes empty.%%
+
+Efl_Gfx_Entity *efl_content_unset(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:button:property:l10n_text|l10n_text]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]]]//\\
+> %%A unique string to be translated.%%
+
+const char *efl_ui_l10n_text_get(const Eo *obj, const char **domain);
+void efl_ui_l10n_text_set(Eo *obj, const char *label, const char *domain);
+
+\\
+**[[:develop:api:efl:ui:button:property:text|text]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:text|Efl.Text]]]//\\
+> %%The text string to be displayed by the given text object.%%
+
+const char *efl_text_get(const Eo *obj);
+void efl_text_set(Eo *obj, const char *text);
+
+\\
+**[[:develop:api:efl:ui:button:property:elm_actions|elm_actions]]** //**(get)**// ''protected''// [Overridden from [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]]]//\\
+>
+
+const Efl_Access_Action_Data *efl_access_widget_action_elm_actions_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:button:method:on_access_activate|on_access_activate]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Hook function called when widget is activated through accessibility.%%
+
+Eina_Bool efl_ui_widget_on_access_activate(Eo *obj, Efl_Ui_Activate act);
+
+\\
+**[[:develop:api:efl:ui:button:method:widget_input_event_handler|widget_input_event_handler]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Virtual function handling input events on the widget.%%
+
+Eina_Bool efl_ui_widget_input_event_handler(Eo *obj, const Efl_Event *eo_event, Efl_Canvas_Object *source);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:action|Efl.Access.Action]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:action:property:action_localized_name|action_localized_name]]** //**(get)**// | |
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:action_description|action_description]]** //**(get, set)**// | %%Action description for given id%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:method:action_do|action_do]]** | %%Performs action on given widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:method:action_keybinding_get|action_keybinding_get]]** | %%Gets configured keybinding for specific action and widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:action_name|action_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:actions|actions]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] ^^^
+| | **[[:develop:api:efl:input:clickable:property:interaction|interaction]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:button_state_reset|button_state_reset]]** | %%This aborts the internal state after a press call.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:longpress_abort|longpress_abort]]** | %%This aborts ongoing longpress event.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:press|press]]** | %%Change internal states that a button got pressed.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:unpress|unpress]]** | %%Change internal states that a button got unpressed.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:property:automatic_theme_rotation|automatic_theme_rotation]]** //**(get, set)**// | %%This flag tells if this object will automatically mirror the rotation changes of the window to this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**// | %%Whether this object updates its size hints automatically.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_freeze|calc_freeze]]** | %%Freezes the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_parts_extends|calc_parts_extends]]** | %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_size_min|calc_size_min]]** | %%Calculates the minimum required size for a given layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_thaw|calc_thaw]]** | %%Thaws the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:layout_base:method:factory_bind|factory_bind]]** | %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:finger_size_multiplier|finger_size_multiplier]]** //**(get, set)**// | %%Set a multiplier for applying finger size to the layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:group_calculate|group_calculate]]** | %%Triggers an immediate recalculation of this object's geometry.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:group_data|group_data]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_max|group_size_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_min|group_size_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:message_send|message_send]]** | %%Sends an (Edje) message to a given Edje object%% |
+| | **[[:develop:api:efl:ui:layout_base:property:part_exist|part_exist]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_add|signal_callback_add]]** | %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_del|signal_callback_del]]** | %%Removes a signal-triggered callback from an object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_emit|signal_emit]]** | %%Sends/emits an Edje signal to this layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_process|signal_process]]** | %%Processes an object's messages and signals queue.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:theme|theme]]** //**(get, set)**// | %%The theme of this widget, defines which edje group will be used.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:theme_rotation_apply|theme_rotation_apply]]** | %%Apply a new rotation value to this object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:calc_force|calc_force]]** | %%Forces a Size/Geometry calculation.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:on_focus_update|on_focus_update]]** | %%Virtual function handling focus in/out events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:part_get|part_get]]** | %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:theme_apply|theme_apply]]** | %%Virtual function called when the widget needs to re-apply its theme.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:ui:widget:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:property:position|position]]** //**(get, set)**// | %%The 2D position of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:size|size]]** //**(get, set)**// | %%The 2D size of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| | **[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:content|Efl.Content]] ^^^
+| | **[[:develop:api:efl:content:event:content_changed|content,changed]]** | %%Sent after the content is set or unset using the current content object.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] ^^^
+| | **[[:develop:api:efl:input:clickable:event:clicked|clicked]]** | %%Called when object is in sequence pressed and unpressed by the primary button%% |
+| | **[[:develop:api:efl:input:clickable:event:clicked_any|clicked,any]]** | %%Called when object is in sequence pressed and unpressed by any button. The button that triggered the event can be found in the event information.%% |
+| | **[[:develop:api:efl:input:clickable:event:longpressed|longpressed]]** | %%Called when the object receives a long press, event_info is the button that got pressed%% |
+| | **[[:develop:api:efl:input:clickable:event:pressed|pressed]]** | %%Called when the object is pressed, event_info is the button that got pressed%% |
+| | **[[:develop:api:efl:input:clickable:event:unpressed|unpressed]]** | %%Called when the object is no longer pressed, event_info is the button that got pressed%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] ^^^
+| | **[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]** | %%A circular dependency between parts of the object was found.%% |
+| | **[[:develop:api:efl:layout:calc:event:recalc|recalc]]** | %%The layout was recalculated.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:autorepeat|Efl.Ui.Autorepeat]] ^^^
+| | **[[:develop:api:efl:ui:autorepeat:event:repeated|repeated]]** | %%Called when a repeated event is emitted%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:event:theme_changed|theme,changed]]** | %%Called when theme changed%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/button/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/button/method/constructor.txt
new file mode 100644
index 00000000..e824c3d5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/button/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Button.constructor~~
+====== Efl.Ui.Button.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:button:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/button/method/content_unset.txt b/public_html/data/pages/develop/api/efl/ui/button/method/content_unset.txt
new file mode 100644
index 00000000..942c93e1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/button/method/content_unset.txt
@@ -0,0 +1,62 @@
+~~Title: Efl.Ui.Button.content_unset~~
+====== Efl.Ui.Button.content_unset ======
+
+===== Description =====
+
+%%Remove the sub-object currently set as content of this object and return it. This object becomes empty.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:button:method:content_unset:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:content:method:content_unset|Efl.Content.content_unset]].//===== Signature =====
+
+
+content_unset @pure_virtual {
+ return: Efl.Gfx.Entity;
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_content_unset(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:content:method:content_unset|Efl.Content.content_unset]]
+ * [[:develop:api:efl:ui:check:method:content_unset|Efl.Ui.Check.content_unset]]
+ * [[:develop:api:efl:ui:win:method:content_unset|Efl.Ui.Win.content_unset]]
+ * [[:develop:api:efl:ui:default_item:method:content_unset|Efl.Ui.Default_Item.content_unset]]
+ * [[:develop:api:efl:ui:win_part:method:content_unset|Efl.Ui.Win_Part.content_unset]]
+ * [[:develop:api:efl:canvas:layout_part_external:method:content_unset|Efl.Canvas.Layout_Part_External.content_unset]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:method:content_unset|Efl.Ui.Navigation_Bar_Part_Back_Button.content_unset]]
+ * [[:develop:api:efl:ui:layout_part_legacy:method:content_unset|Efl.Ui.Layout_Part_Legacy.content_unset]]
+ * [[:develop:api:elm:dayselector:part:method:content_unset|Elm.Dayselector.Part.content_unset]]
+ * [[:develop:api:elm:entry:part:method:content_unset|Elm.Entry.Part.content_unset]]
+ * [[:develop:api:elm:naviframe:part:method:content_unset|Elm.Naviframe.Part.content_unset]]
+ * [[:develop:api:elm:ctxpopup:part:method:content_unset|Elm.Ctxpopup.Part.content_unset]]
+ * [[:develop:api:elm:fileselector:entry:part:method:content_unset|Elm.Fileselector.Entry.Part.content_unset]]
+ * [[:develop:api:elm:popup:part:method:content_unset|Elm.Popup.Part.content_unset]]
+ * [[:develop:api:elm:hover:part:method:content_unset|Elm.Hover.Part.content_unset]]
+ * [[:develop:api:elm:scroller:part:method:content_unset|Elm.Scroller.Part.content_unset]]
+ * [[:develop:api:elm:notify:part:method:content_unset|Elm.Notify.Part.content_unset]]
+ * [[:develop:api:efl:ui:panel:method:content_unset|Efl.Ui.Panel.content_unset]]
+ * [[:develop:api:elm:panel:part:method:content_unset|Elm.Panel.Part.content_unset]]
+ * [[:develop:api:efl:ui:tab_page:method:content_unset|Efl.Ui.Tab_Page.content_unset]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:content_unset|Efl.Ui.List_Placeholder_Item.content_unset]]
+ * [[:develop:api:elm:mapbuf:part:method:content_unset|Elm.Mapbuf.Part.content_unset]]
+ * [[:develop:api:efl:ui:scroller:method:content_unset|Efl.Ui.Scroller.content_unset]]
+ * [[:develop:api:efl:ui:flip_part:method:content_unset|Efl.Ui.Flip_Part.content_unset]]
+ * [[:develop:api:efl:canvas:layout_part_swallow:method:content_unset|Efl.Canvas.Layout_Part_Swallow.content_unset]]
+ * [[:develop:api:efl:ui:pan:method:content_unset|Efl.Ui.Pan.content_unset]]
+ * [[:develop:api:efl:ui:frame:method:content_unset|Efl.Ui.Frame.content_unset]]
+ * [[:develop:api:efl:ui:progressbar:method:content_unset|Efl.Ui.Progressbar.content_unset]]
+ * [[:develop:api:efl:ui:popup:method:content_unset|Efl.Ui.Popup.content_unset]]
+ * [[:develop:api:efl:ui:navigation_layout:method:content_unset|Efl.Ui.Navigation_Layout.content_unset]]
+ * [[:develop:api:elm:flip:part:method:content_unset|Elm.Flip.Part.content_unset]]
+ * [[:develop:api:efl:ui:button:method:content_unset|Efl.Ui.Button.content_unset]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:content_unset|Efl.Canvas.Layout_Part_Invalid.content_unset]]
+ * [[:develop:api:efl:ui:layout_part_content:method:content_unset|Efl.Ui.Layout_Part_Content.content_unset]]
+ * [[:develop:api:efl:ui:navigation_bar_part:method:content_unset|Efl.Ui.Navigation_Bar_Part.content_unset]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/button/method/on_access_activate.txt b/public_html/data/pages/develop/api/efl/ui/button/method/on_access_activate.txt
new file mode 100644
index 00000000..cc64cfe2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/button/method/on_access_activate.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Button.on_access_activate~~
+====== Efl.Ui.Button.on_access_activate ======
+
+===== Description =====
+
+%%Hook function called when widget is activated through accessibility.%%
+
+%%This meant to be overridden by subclasses to support accessibility. This is an unstable API.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:button:method:on_access_activate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:on_access_activate|Efl.Ui.Widget.on_access_activate]].//===== Signature =====
+
+
+on_access_activate @beta @protected {
+ params {
+ @in act: Efl.Ui.Activate;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_on_access_activate(Eo *obj, Efl_Ui_Activate act);
+
+
+===== Parameters =====
+
+ * **act** //(in)// - %%Type of activation.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:on_access_activate|Efl.Ui.Widget.on_access_activate]]
+ * [[:develop:api:efl:ui:slider:method:on_access_activate|Efl.Ui.Slider.on_access_activate]]
+ * [[:develop:api:efl:ui:check:method:on_access_activate|Efl.Ui.Check.on_access_activate]]
+ * [[:develop:api:efl:ui:radio:method:on_access_activate|Efl.Ui.Radio.on_access_activate]]
+ * [[:develop:api:efl:ui:text:method:on_access_activate|Efl.Ui.Text.on_access_activate]]
+ * [[:develop:api:efl:ui:slider_interval:method:on_access_activate|Efl.Ui.Slider_Interval.on_access_activate]]
+ * [[:develop:api:efl:ui:button:method:on_access_activate|Efl.Ui.Button.on_access_activate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/button/method/widget_input_event_handler.txt b/public_html/data/pages/develop/api/efl/ui/button/method/widget_input_event_handler.txt
new file mode 100644
index 00000000..831128d5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/button/method/widget_input_event_handler.txt
@@ -0,0 +1,57 @@
+~~Title: Efl.Ui.Button.widget_input_event_handler~~
+====== Efl.Ui.Button.widget_input_event_handler ======
+
+===== Description =====
+
+%%Virtual function handling input events on the widget.%%
+
+%%This method should return %%''true''%% if the event has been processed. Only key down, key up and pointer wheel events will be propagated through this function.%%
+
+%%It is common for the event to be also marked as processed as in %%[[:develop:api:efl:input:event:property:processed|Efl.Input.Event.processed]]%%, if this operation was successful. This makes sure other widgets will not also process this input event.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:button:method:widget_input_event_handler:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:widget_input_event_handler|Efl.Ui.Widget.widget_input_event_handler]].//===== Signature =====
+
+
+widget_input_event_handler @protected {
+ params {
+ @in eo_event: const(event);
+ @in source: Efl.Canvas.Object;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_input_event_handler(Eo *obj, const Efl_Event *eo_event, Efl_Canvas_Object *source);
+
+
+===== Parameters =====
+
+ * **eo_event** //(in)// - %%EO event struct with an Efl.Input.Event as info.%%
+ * **source** //(in)// - %%Source object where the event originated. Often same as this.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:widget_input_event_handler|Efl.Ui.Widget.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:win:method:widget_input_event_handler|Efl.Ui.Win.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:image:method:widget_input_event_handler|Efl.Ui.Image.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:image_zoomable:method:widget_input_event_handler|Efl.Ui.Image_Zoomable.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:slider:method:widget_input_event_handler|Efl.Ui.Slider.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:check:method:widget_input_event_handler|Efl.Ui.Check.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:radio:method:widget_input_event_handler|Efl.Ui.Radio.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:spin_button:method:widget_input_event_handler|Efl.Ui.Spin_Button.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:panel:method:widget_input_event_handler|Efl.Ui.Panel.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:item:method:widget_input_event_handler|Efl.Ui.Item.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:slider_interval:method:widget_input_event_handler|Efl.Ui.Slider_Interval.widget_input_event_handler]]
+ * [[:develop:api:elm:code_widget:method:widget_input_event_handler|Elm.Code_Widget.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:tags:method:widget_input_event_handler|Efl.Ui.Tags.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:scroller:method:widget_input_event_handler|Efl.Ui.Scroller.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:calendar:method:widget_input_event_handler|Efl.Ui.Calendar.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:video:method:widget_input_event_handler|Efl.Ui.Video.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:button:method:widget_input_event_handler|Efl.Ui.Button.widget_input_event_handler]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/button/property/autorepeat_enabled.txt b/public_html/data/pages/develop/api/efl/ui/button/property/autorepeat_enabled.txt
new file mode 100644
index 00000000..3f164540
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/button/property/autorepeat_enabled.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Button.autorepeat_enabled~~
+====== Efl.Ui.Button.autorepeat_enabled ======
+
+===== Description =====
+
+%%Turn on/off the autorepeat event generated when a button is kept pressed.%%
+
+%%When off, no autorepeat is performed and buttons emit a normal %%''clicked''%% event when they are clicked.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:button:property:autorepeat_enabled:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **on** - %%A bool to turn on/off the repeat event generation.%%
+
+//Overridden from [[:develop:api:efl:ui:autorepeat:property:autorepeat_enabled|Efl.Ui.Autorepeat.autorepeat_enabled]] **(get, set)**.//===== Signature =====
+
+
+@property autorepeat_enabled @pure_virtual {
+ get {}
+ set {}
+ values {
+ on: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_autorepeat_enabled_get(const Eo *obj);
+void efl_ui_autorepeat_enabled_set(Eo *obj, Eina_Bool on);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:autorepeat:property:autorepeat_enabled|Efl.Ui.Autorepeat.autorepeat_enabled]]
+ * [[:develop:api:efl:ui:button:property:autorepeat_enabled|Efl.Ui.Button.autorepeat_enabled]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/button/property/autorepeat_gap_timeout.txt b/public_html/data/pages/develop/api/efl/ui/button/property/autorepeat_gap_timeout.txt
new file mode 100644
index 00000000..a6190771
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/button/property/autorepeat_gap_timeout.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Button.autorepeat_gap_timeout~~
+====== Efl.Ui.Button.autorepeat_gap_timeout ======
+
+===== Description =====
+
+%%The interval between each generated autorepeat event.%%
+
+%%After the first %%''repeated''%% event is fired, all subsequent ones will follow after a delay of %%''t''%% seconds for each.%%
+
+%%See also %%[[:develop:api:efl:ui:autorepeat:property:autorepeat_initial_timeout|Efl.Ui.Autorepeat.autorepeat_initial_timeout]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:button:property:autorepeat_gap_timeout:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **t** - %%Time interval in seconds.%%
+
+//Overridden from [[:develop:api:efl:ui:autorepeat:property:autorepeat_gap_timeout|Efl.Ui.Autorepeat.autorepeat_gap_timeout]] **(get, set)**.//===== Signature =====
+
+
+@property autorepeat_gap_timeout @pure_virtual {
+ get {}
+ set {}
+ values {
+ t: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_ui_autorepeat_gap_timeout_get(const Eo *obj);
+void efl_ui_autorepeat_gap_timeout_set(Eo *obj, double t);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:autorepeat:property:autorepeat_gap_timeout|Efl.Ui.Autorepeat.autorepeat_gap_timeout]]
+ * [[:develop:api:efl:ui:button:property:autorepeat_gap_timeout|Efl.Ui.Button.autorepeat_gap_timeout]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/button/property/autorepeat_initial_timeout.txt b/public_html/data/pages/develop/api/efl/ui/button/property/autorepeat_initial_timeout.txt
new file mode 100644
index 00000000..44706f26
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/button/property/autorepeat_initial_timeout.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Button.autorepeat_initial_timeout~~
+====== Efl.Ui.Button.autorepeat_initial_timeout ======
+
+===== Description =====
+
+%%The initial timeout before the autorepeat event is generated.%%
+
+%%Sets the timeout, in seconds, since the button is pressed until the first %%''repeated''%% signal is emitted. If %%''t''%% is 0.0 or less, there won't be any delay and the event will be fired the moment the button is pressed.%%
+
+%%See also %%[[:develop:api:efl:ui:autorepeat:property:autorepeat_enabled|Efl.Ui.Autorepeat.autorepeat_enabled]]%% and %%[[:develop:api:efl:ui:autorepeat:property:autorepeat_gap_timeout|Efl.Ui.Autorepeat.autorepeat_gap_timeout]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:button:property:autorepeat_initial_timeout:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **t** - %%Timeout in seconds.%%
+
+//Overridden from [[:develop:api:efl:ui:autorepeat:property:autorepeat_initial_timeout|Efl.Ui.Autorepeat.autorepeat_initial_timeout]] **(get, set)**.//===== Signature =====
+
+
+@property autorepeat_initial_timeout @pure_virtual {
+ get {}
+ set {}
+ values {
+ t: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_ui_autorepeat_initial_timeout_get(const Eo *obj);
+void efl_ui_autorepeat_initial_timeout_set(Eo *obj, double t);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:autorepeat:property:autorepeat_initial_timeout|Efl.Ui.Autorepeat.autorepeat_initial_timeout]]
+ * [[:develop:api:efl:ui:button:property:autorepeat_initial_timeout|Efl.Ui.Button.autorepeat_initial_timeout]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/button/property/content.txt b/public_html/data/pages/develop/api/efl/ui/button/property/content.txt
new file mode 100644
index 00000000..38152cbf
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/button/property/content.txt
@@ -0,0 +1,80 @@
+~~Title: Efl.Ui.Button.content~~
+====== Efl.Ui.Button.content ======
+
+===== Description =====
+
+%%Sub-object currently set as this object's single content.%%
+
+%%If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid %%''content''%% is set the object will become empty (it will have no sub-object).%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:button:property:content:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **content** - %%The sub-object.%%
+
+//Overridden from [[:develop:api:efl:content:property:content|Efl.Content.content]] **(get, set)**.//===== Signature =====
+
+
+@property content @pure_virtual {
+ get {}
+ set {
+ return: bool;
+ }
+ values {
+ content: Efl.Gfx.Entity;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_content_get(const Eo *obj);
+Eina_Bool efl_content_set(Eo *obj, Efl_Gfx_Entity *content);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:content:property:content|Efl.Content.content]]
+ * [[:develop:api:efl:ui:check:property:content|Efl.Ui.Check.content]]
+ * [[:develop:api:efl:ui:win:property:content|Efl.Ui.Win.content]]
+ * [[:develop:api:efl:ui:default_item:property:content|Efl.Ui.Default_Item.content]]
+ * [[:develop:api:efl:ui:win_part:property:content|Efl.Ui.Win_Part.content]]
+ * [[:develop:api:efl:canvas:layout_part_external:property:content|Efl.Canvas.Layout_Part_External.content]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:property:content|Efl.Ui.Navigation_Bar_Part_Back_Button.content]]
+ * [[:develop:api:efl:ui:layout_part_legacy:property:content|Efl.Ui.Layout_Part_Legacy.content]]
+ * [[:develop:api:elm:dayselector:part:property:content|Elm.Dayselector.Part.content]]
+ * [[:develop:api:elm:entry:part:property:content|Elm.Entry.Part.content]]
+ * [[:develop:api:elm:naviframe:part:property:content|Elm.Naviframe.Part.content]]
+ * [[:develop:api:elm:ctxpopup:part:property:content|Elm.Ctxpopup.Part.content]]
+ * [[:develop:api:elm:fileselector:entry:part:property:content|Elm.Fileselector.Entry.Part.content]]
+ * [[:develop:api:elm:popup:part:property:content|Elm.Popup.Part.content]]
+ * [[:develop:api:elm:hover:part:property:content|Elm.Hover.Part.content]]
+ * [[:develop:api:elm:scroller:part:property:content|Elm.Scroller.Part.content]]
+ * [[:develop:api:elm:player:part:property:content|Elm.Player.Part.content]]
+ * [[:develop:api:elm:notify:part:property:content|Elm.Notify.Part.content]]
+ * [[:develop:api:efl:ui:panel:property:content|Efl.Ui.Panel.content]]
+ * [[:develop:api:elm:panel:part:property:content|Elm.Panel.Part.content]]
+ * [[:develop:api:efl:ui:tab_page:property:content|Efl.Ui.Tab_Page.content]]
+ * [[:develop:api:efl:ui:list_placeholder_item:property:content|Efl.Ui.List_Placeholder_Item.content]]
+ * [[:develop:api:elm:mapbuf:part:property:content|Elm.Mapbuf.Part.content]]
+ * [[:develop:api:efl:ui:scroller:property:content|Efl.Ui.Scroller.content]]
+ * [[:develop:api:efl:ui:flip_part:property:content|Efl.Ui.Flip_Part.content]]
+ * [[:develop:api:efl:canvas:layout_part_swallow:property:content|Efl.Canvas.Layout_Part_Swallow.content]]
+ * [[:develop:api:efl:ui:pan:property:content|Efl.Ui.Pan.content]]
+ * [[:develop:api:efl:ui:frame:property:content|Efl.Ui.Frame.content]]
+ * [[:develop:api:efl:ui:progressbar:property:content|Efl.Ui.Progressbar.content]]
+ * [[:develop:api:efl:ui:popup:property:content|Efl.Ui.Popup.content]]
+ * [[:develop:api:efl:ui:navigation_layout:property:content|Efl.Ui.Navigation_Layout.content]]
+ * [[:develop:api:elm:flip:part:property:content|Elm.Flip.Part.content]]
+ * [[:develop:api:efl:ui:button:property:content|Efl.Ui.Button.content]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:content|Efl.Canvas.Layout_Part_Invalid.content]]
+ * [[:develop:api:efl:ui:layout_part_content:property:content|Efl.Ui.Layout_Part_Content.content]]
+ * [[:develop:api:efl:ui:progressbar_legacy_part:property:content|Efl.Ui.Progressbar_Legacy_Part.content]]
+ * [[:develop:api:efl:ui:check_legacy_part:property:content|Efl.Ui.Check_Legacy_Part.content]]
+ * [[:develop:api:efl:ui:button_legacy_part:property:content|Efl.Ui.Button_Legacy_Part.content]]
+ * [[:develop:api:efl:ui:navigation_bar_part:property:content|Efl.Ui.Navigation_Bar_Part.content]]
+ * [[:develop:api:efl:ui:radio_legacy_part:property:content|Efl.Ui.Radio_Legacy_Part.content]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/button/property/elm_actions.txt b/public_html/data/pages/develop/api/efl/ui/button/property/elm_actions.txt
new file mode 100644
index 00000000..cb7f1e1b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/button/property/elm_actions.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Button.elm_actions~~
+====== Efl.Ui.Button.elm_actions ======
+
+===== Values =====
+
+ * **actions** - %%NULL-terminated array of Efl.Access.Action_Data.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:button:property:elm_actions:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:access:widget:action:property:elm_actions|Efl.Access.Widget.Action.elm_actions]] **(get)**.//===== Signature =====
+
+
+@property elm_actions @beta @pure_virtual {
+ get @protected {}
+ values {
+ actions: ptr(const(Efl.Access.Action_Data));
+ }
+}
+
+
+===== C signature =====
+
+
+const Efl_Access_Action_Data *efl_access_widget_action_elm_actions_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:widget:action:property:elm_actions|Efl.Access.Widget.Action.elm_actions]]
+ * [[:develop:api:efl:ui:slider:property:elm_actions|Efl.Ui.Slider.elm_actions]]
+ * [[:develop:api:efl:ui:check:property:elm_actions|Efl.Ui.Check.elm_actions]]
+ * [[:develop:api:efl:ui:radio:property:elm_actions|Efl.Ui.Radio.elm_actions]]
+ * [[:develop:api:efl:ui:win:property:elm_actions|Efl.Ui.Win.elm_actions]]
+ * [[:develop:api:efl:ui:spin_button:property:elm_actions|Efl.Ui.Spin_Button.elm_actions]]
+ * [[:develop:api:efl:ui:panel:property:elm_actions|Efl.Ui.Panel.elm_actions]]
+ * [[:develop:api:efl:ui:slider_interval:property:elm_actions|Efl.Ui.Slider_Interval.elm_actions]]
+ * [[:develop:api:efl:ui:image:property:elm_actions|Efl.Ui.Image.elm_actions]]
+ * [[:develop:api:efl:ui:image_zoomable:property:elm_actions|Efl.Ui.Image_Zoomable.elm_actions]]
+ * [[:develop:api:efl:ui:calendar:property:elm_actions|Efl.Ui.Calendar.elm_actions]]
+ * [[:develop:api:efl:ui:video:property:elm_actions|Efl.Ui.Video.elm_actions]]
+ * [[:develop:api:efl:ui:button:property:elm_actions|Efl.Ui.Button.elm_actions]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/button/property/l10n_text.txt b/public_html/data/pages/develop/api/efl/ui/button/property/l10n_text.txt
new file mode 100644
index 00000000..5bddc9c4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/button/property/l10n_text.txt
@@ -0,0 +1,72 @@
+~~Title: Efl.Ui.Button.l10n_text~~
+====== Efl.Ui.Button.l10n_text ======
+
+===== Description =====
+
+%%A unique string to be translated.%%
+
+%%Often this will be a human-readable string (e.g. in English) but it can also be a unique string identifier that must then be translated to the current locale with %%''dgettext''%%() or any similar mechanism.%%
+
+%%Setting this property will enable translation for this object or part.%%
+
+
+{{page>:develop:api-include:efl:ui:button:property:l10n_text:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+==== Getter ====
+
+ * **domain** - %%A translation domain. If %%''null''%% this means the default domain is used.%%
+==== Setter ====
+
+ * **label** - %%A unique (untranslated) string.%%
+ * **domain** - %%A translation domain. If %%''null''%% this uses the default domain (eg. set by %%''textdomain''%%()).%%
+==== Setter ====
+
+%%Sets the new untranslated string and domain for this object.%%
+{{page>:develop:api-include:efl:ui:button:property:l10n_text:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:layout_base:property:l10n_text|Efl.Ui.L10n.l10n_text]] **(get, set)**.//===== Signature =====
+
+
+@property l10n_text @pure_virtual {
+ get {
+ values {
+ domain: string @optional;
+ }
+ return: string;
+ }
+ set {
+ values {
+ label: string;
+ domain: string @optional;
+ }
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_ui_l10n_text_get(const Eo *obj, const char **domain);
+void efl_ui_l10n_text_set(Eo *obj, const char *label, const char *domain);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:l10n:property:l10n_text|Efl.Ui.L10n.l10n_text]]
+ * [[:develop:api:efl:ui:default_item:property:l10n_text|Efl.Ui.Default_Item.l10n_text]]
+ * [[:develop:api:efl:ui:layout_part_legacy:property:l10n_text|Efl.Ui.Layout_Part_Legacy.l10n_text]]
+ * [[:develop:api:elm:notify:part:property:l10n_text|Elm.Notify.Part.l10n_text]]
+ * [[:develop:api:efl:ui:layout_part_text:property:l10n_text|Efl.Ui.Layout_Part_Text.l10n_text]]
+ * [[:develop:api:efl:ui:win:property:l10n_text|Efl.Ui.Win.l10n_text]]
+ * [[:develop:api:efl:ui:table:property:l10n_text|Efl.Ui.Table.l10n_text]]
+ * [[:develop:api:efl:ui:box:property:l10n_text|Efl.Ui.Box.l10n_text]]
+ * [[:develop:api:efl:ui:layout_base:property:l10n_text|Efl.Ui.Layout_Base.l10n_text]]
+ * [[:develop:api:efl:ui:check:property:l10n_text|Efl.Ui.Check.l10n_text]]
+ * [[:develop:api:efl:ui:frame:property:l10n_text|Efl.Ui.Frame.l10n_text]]
+ * [[:develop:api:efl:ui:progressbar:property:l10n_text|Efl.Ui.Progressbar.l10n_text]]
+ * [[:develop:api:efl:ui:button:property:l10n_text|Efl.Ui.Button.l10n_text]]
+ * [[:develop:api:efl:ui:navigation_bar:property:l10n_text|Efl.Ui.Navigation_Bar.l10n_text]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/button/property/text.txt b/public_html/data/pages/develop/api/efl/ui/button/property/text.txt
new file mode 100644
index 00000000..ce31083f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/button/property/text.txt
@@ -0,0 +1,67 @@
+~~Title: Efl.Ui.Button.text~~
+====== Efl.Ui.Button.text ======
+
+===== Description =====
+
+%%The text string to be displayed by the given text object.%%
+
+%%Do not release (free) the returned value.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:button:property:text:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **text** - %%Text string to display.%%
+
+//Overridden from [[:develop:api:efl:text:property:text|Efl.Text.text]] **(get, set)**.//===== Signature =====
+
+
+@property text @pure_virtual {
+ get {}
+ set {}
+ values {
+ text: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_text_get(const Eo *obj);
+void efl_text_set(Eo *obj, const char *text);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:text:property:text|Efl.Text.text]]
+ * [[:develop:api:efl:ui:check:property:text|Efl.Ui.Check.text]]
+ * [[:develop:api:efl:ui:win:property:text|Efl.Ui.Win.text]]
+ * [[:develop:api:efl:ui:default_item:property:text|Efl.Ui.Default_Item.text]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:property:text|Efl.Ui.Navigation_Bar_Part_Back_Button.text]]
+ * [[:develop:api:efl:ui:layout_part_legacy:property:text|Efl.Ui.Layout_Part_Legacy.text]]
+ * [[:develop:api:elm_actionslider:part:property:text|Elm_Actionslider.Part.text]]
+ * [[:develop:api:elm:entry:part:property:text|Elm.Entry.Part.text]]
+ * [[:develop:api:elm_label:part:property:text|Elm_Label.Part.text]]
+ * [[:develop:api:elm:multibuttonentry_part:property:text|Elm.Multibuttonentry_Part.text]]
+ * [[:develop:api:elm:naviframe:part:property:text|Elm.Naviframe.Part.text]]
+ * [[:develop:api:elm_bubble:part:property:text|Elm_Bubble.Part.text]]
+ * [[:develop:api:elm:fileselector:entry:part:property:text|Elm.Fileselector.Entry.Part.text]]
+ * [[:develop:api:elm:fileselector:part:property:text|Elm.Fileselector.Part.text]]
+ * [[:develop:api:elm:popup:part:property:text|Elm.Popup.Part.text]]
+ * [[:develop:api:elm:notify:part:property:text|Elm.Notify.Part.text]]
+ * [[:develop:api:efl:canvas:text:property:text|Efl.Canvas.Text.text]]
+ * [[:develop:api:efl:ui:layout_part_text:property:text|Efl.Ui.Layout_Part_Text.text]]
+ * [[:develop:api:efl:ui:textpath_part:property:text|Efl.Ui.Textpath_Part.text]]
+ * [[:develop:api:efl:ui:alert_popup_part:property:text|Efl.Ui.Alert_Popup_Part.text]]
+ * [[:develop:api:efl:ui:text_part:property:text|Efl.Ui.Text_Part.text]]
+ * [[:develop:api:efl:ui:textpath:property:text|Efl.Ui.Textpath.text]]
+ * [[:develop:api:efl:ui:tags:property:text|Efl.Ui.Tags.text]]
+ * [[:develop:api:efl:ui:frame:property:text|Efl.Ui.Frame.text]]
+ * [[:develop:api:efl:ui:progressbar:property:text|Efl.Ui.Progressbar.text]]
+ * [[:develop:api:efl:ui:button:property:text|Efl.Ui.Button.text]]
+ * [[:develop:api:efl:ui:navigation_bar:property:text|Efl.Ui.Navigation_Bar.text]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:text|Efl.Canvas.Layout_Part_Invalid.text]]
+ * [[:develop:api:efl:canvas:layout_part_text:property:text|Efl.Canvas.Layout_Part_Text.text]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/check.txt b/public_html/data/pages/develop/api/efl/ui/check.txt
new file mode 100644
index 00000000..d9094a54
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/check.txt
@@ -0,0 +1,468 @@
+~~Title: Efl.Ui.Check~~
+====== Efl.Ui.Check (class) ======
+
+===== Description =====
+
+%%Check widget.%%
+
+%%The check widget allows for toggling a value between %%''true''%% and %%''false''%%. Check objects are a lot like %%[[:develop:api:efl:ui:radio|Efl.Ui.Radio]]%% objects in layout and functionality, except they do not work as a group, but independently, and only toggle the value of a boolean between %%''false''%% and %%''true''%%. The boolean value of the check can be retrieved using the %%[[:develop:api:efl:ui:selectable:property:selected|Efl.Ui.Selectable.selected]]%% property. Changes to %%[[:develop:api:efl:ui:selectable:property:selected|Efl.Ui.Selectable.selected]]%% can be listed to using the %%[[:develop:api:efl:ui:selectable:event:selected,changed|Efl.Ui.Selectable.selected,changed]]%% event.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:check:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)// => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)//
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] //(interface)//
+ * [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] //(interface)//
+ * [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] //(interface)//
+ * [[:develop:api:efl:layout:group|Efl.Layout.Group]] //(interface)//
+ * [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]] //(mixin)//
+ * [[:develop:api:efl:access:action|Efl.Access.Action]] //(mixin)//
+ * [[:develop:api:efl:text|Efl.Text]] //(interface)//
+ * [[:develop:api:efl:content|Efl.Content]] //(interface)//
+ * [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] //(mixin)//
+ * [[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:check:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:check:property:content|content]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:content|Efl.Content]]]//\\
+> %%Sub-object currently set as this object's single content.%%
+
+Efl_Gfx_Entity *efl_content_get(const Eo *obj);
+Eina_Bool efl_content_set(Eo *obj, Efl_Gfx_Entity *content);
+
+\\
+**[[:develop:api:efl:ui:check:method:content_unset|content_unset]]**// [Overridden from [[:develop:api:efl:content|Efl.Content]]]//\\
+> %%Remove the sub-object currently set as content of this object and return it. This object becomes empty.%%
+
+Efl_Gfx_Entity *efl_content_unset(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:check:property:l10n_text|l10n_text]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]]]//\\
+> %%A unique string to be translated.%%
+
+const char *efl_ui_l10n_text_get(const Eo *obj, const char **domain);
+void efl_ui_l10n_text_set(Eo *obj, const char *label, const char *domain);
+
+\\
+**[[:develop:api:efl:ui:check:property:selected|selected]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]]]//\\
+> %%The selected state of this object%%
+
+Eina_Bool efl_ui_selectable_selected_get(const Eo *obj);
+void efl_ui_selectable_selected_set(Eo *obj, Eina_Bool selected);
+
+\\
+**[[:develop:api:efl:ui:check:property:text|text]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:text|Efl.Text]]]//\\
+> %%The text string to be displayed by the given text object.%%
+
+const char *efl_text_get(const Eo *obj);
+void efl_text_set(Eo *obj, const char *text);
+
+\\
+**[[:develop:api:efl:ui:check:property:elm_actions|elm_actions]]** //**(get)**// ''protected''// [Overridden from [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]]]//\\
+>
+
+const Efl_Access_Action_Data *efl_access_widget_action_elm_actions_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:check:method:on_access_activate|on_access_activate]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Hook function called when widget is activated through accessibility.%%
+
+Eina_Bool efl_ui_widget_on_access_activate(Eo *obj, Efl_Ui_Activate act);
+
+\\
+**[[:develop:api:efl:ui:check:property:state_set|state_set]]** //**(get)**// ''protected''// [Overridden from [[:develop:api:efl:access:object|Efl.Access.Object]]]//\\
+>
+
+Efl_Access_State_Set efl_access_object_state_set_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:check:method:theme_apply|theme_apply]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Virtual function called when the widget needs to re-apply its theme.%%
+
+Eina_Error efl_ui_widget_theme_apply(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:check:method:widget_input_event_handler|widget_input_event_handler]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Virtual function handling input events on the widget.%%
+
+Eina_Bool efl_ui_widget_input_event_handler(Eo *obj, const Efl_Event *eo_event, Efl_Canvas_Object *source);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:action|Efl.Access.Action]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:action:property:action_localized_name|action_localized_name]]** //**(get)**// | |
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:action_description|action_description]]** //**(get, set)**// | %%Action description for given id%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:method:action_do|action_do]]** | %%Performs action on given widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:method:action_keybinding_get|action_keybinding_get]]** | %%Gets configured keybinding for specific action and widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:action_name|action_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:actions|actions]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] ^^^
+| | **[[:develop:api:efl:input:clickable:property:interaction|interaction]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:button_state_reset|button_state_reset]]** | %%This aborts the internal state after a press call.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:longpress_abort|longpress_abort]]** | %%This aborts ongoing longpress event.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:press|press]]** | %%Change internal states that a button got pressed.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:unpress|unpress]]** | %%Change internal states that a button got unpressed.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:property:automatic_theme_rotation|automatic_theme_rotation]]** //**(get, set)**// | %%This flag tells if this object will automatically mirror the rotation changes of the window to this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**// | %%Whether this object updates its size hints automatically.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_freeze|calc_freeze]]** | %%Freezes the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_parts_extends|calc_parts_extends]]** | %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_size_min|calc_size_min]]** | %%Calculates the minimum required size for a given layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_thaw|calc_thaw]]** | %%Thaws the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:layout_base:method:factory_bind|factory_bind]]** | %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:finger_size_multiplier|finger_size_multiplier]]** //**(get, set)**// | %%Set a multiplier for applying finger size to the layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:group_calculate|group_calculate]]** | %%Triggers an immediate recalculation of this object's geometry.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:group_data|group_data]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_max|group_size_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_min|group_size_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:message_send|message_send]]** | %%Sends an (Edje) message to a given Edje object%% |
+| | **[[:develop:api:efl:ui:layout_base:property:part_exist|part_exist]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_add|signal_callback_add]]** | %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_del|signal_callback_del]]** | %%Removes a signal-triggered callback from an object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_emit|signal_emit]]** | %%Sends/emits an Edje signal to this layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_process|signal_process]]** | %%Processes an object's messages and signals queue.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:theme|theme]]** //**(get, set)**// | %%The theme of this widget, defines which edje group will be used.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:theme_rotation_apply|theme_rotation_apply]]** | %%Apply a new rotation value to this object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:calc_force|calc_force]]** | %%Forces a Size/Geometry calculation.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:on_focus_update|on_focus_update]]** | %%Virtual function handling focus in/out events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:part_get|part_get]]** | %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:ui:widget:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:property:position|position]]** //**(get, set)**// | %%The 2D position of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:size|size]]** //**(get, set)**// | %%The 2D size of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| | **[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:content|Efl.Content]] ^^^
+| | **[[:develop:api:efl:content:event:content_changed|content,changed]]** | %%Sent after the content is set or unset using the current content object.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] ^^^
+| | **[[:develop:api:efl:input:clickable:event:clicked|clicked]]** | %%Called when object is in sequence pressed and unpressed by the primary button%% |
+| | **[[:develop:api:efl:input:clickable:event:clicked_any|clicked,any]]** | %%Called when object is in sequence pressed and unpressed by any button. The button that triggered the event can be found in the event information.%% |
+| | **[[:develop:api:efl:input:clickable:event:longpressed|longpressed]]** | %%Called when the object receives a long press, event_info is the button that got pressed%% |
+| | **[[:develop:api:efl:input:clickable:event:pressed|pressed]]** | %%Called when the object is pressed, event_info is the button that got pressed%% |
+| | **[[:develop:api:efl:input:clickable:event:unpressed|unpressed]]** | %%Called when the object is no longer pressed, event_info is the button that got pressed%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] ^^^
+| | **[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]** | %%A circular dependency between parts of the object was found.%% |
+| | **[[:develop:api:efl:layout:calc:event:recalc|recalc]]** | %%The layout was recalculated.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:event:theme_changed|theme,changed]]** | %%Called when theme changed%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]] ^^^
+| | **[[:develop:api:efl:ui:selectable:event:selected_changed|selected,changed]]** | %%Called when the selected state has changed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/check/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/check/method/constructor.txt
new file mode 100644
index 00000000..15196b04
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/check/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Check.constructor~~
+====== Efl.Ui.Check.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:check:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/check/method/content_unset.txt b/public_html/data/pages/develop/api/efl/ui/check/method/content_unset.txt
new file mode 100644
index 00000000..016abad2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/check/method/content_unset.txt
@@ -0,0 +1,62 @@
+~~Title: Efl.Ui.Check.content_unset~~
+====== Efl.Ui.Check.content_unset ======
+
+===== Description =====
+
+%%Remove the sub-object currently set as content of this object and return it. This object becomes empty.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:check:method:content_unset:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:content:method:content_unset|Efl.Content.content_unset]].//===== Signature =====
+
+
+content_unset @pure_virtual {
+ return: Efl.Gfx.Entity;
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_content_unset(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:content:method:content_unset|Efl.Content.content_unset]]
+ * [[:develop:api:efl:ui:check:method:content_unset|Efl.Ui.Check.content_unset]]
+ * [[:develop:api:efl:ui:win:method:content_unset|Efl.Ui.Win.content_unset]]
+ * [[:develop:api:efl:ui:default_item:method:content_unset|Efl.Ui.Default_Item.content_unset]]
+ * [[:develop:api:efl:ui:win_part:method:content_unset|Efl.Ui.Win_Part.content_unset]]
+ * [[:develop:api:efl:canvas:layout_part_external:method:content_unset|Efl.Canvas.Layout_Part_External.content_unset]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:method:content_unset|Efl.Ui.Navigation_Bar_Part_Back_Button.content_unset]]
+ * [[:develop:api:efl:ui:layout_part_legacy:method:content_unset|Efl.Ui.Layout_Part_Legacy.content_unset]]
+ * [[:develop:api:elm:dayselector:part:method:content_unset|Elm.Dayselector.Part.content_unset]]
+ * [[:develop:api:elm:entry:part:method:content_unset|Elm.Entry.Part.content_unset]]
+ * [[:develop:api:elm:naviframe:part:method:content_unset|Elm.Naviframe.Part.content_unset]]
+ * [[:develop:api:elm:ctxpopup:part:method:content_unset|Elm.Ctxpopup.Part.content_unset]]
+ * [[:develop:api:elm:fileselector:entry:part:method:content_unset|Elm.Fileselector.Entry.Part.content_unset]]
+ * [[:develop:api:elm:popup:part:method:content_unset|Elm.Popup.Part.content_unset]]
+ * [[:develop:api:elm:hover:part:method:content_unset|Elm.Hover.Part.content_unset]]
+ * [[:develop:api:elm:scroller:part:method:content_unset|Elm.Scroller.Part.content_unset]]
+ * [[:develop:api:elm:notify:part:method:content_unset|Elm.Notify.Part.content_unset]]
+ * [[:develop:api:efl:ui:panel:method:content_unset|Efl.Ui.Panel.content_unset]]
+ * [[:develop:api:elm:panel:part:method:content_unset|Elm.Panel.Part.content_unset]]
+ * [[:develop:api:efl:ui:tab_page:method:content_unset|Efl.Ui.Tab_Page.content_unset]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:content_unset|Efl.Ui.List_Placeholder_Item.content_unset]]
+ * [[:develop:api:elm:mapbuf:part:method:content_unset|Elm.Mapbuf.Part.content_unset]]
+ * [[:develop:api:efl:ui:scroller:method:content_unset|Efl.Ui.Scroller.content_unset]]
+ * [[:develop:api:efl:ui:flip_part:method:content_unset|Efl.Ui.Flip_Part.content_unset]]
+ * [[:develop:api:efl:canvas:layout_part_swallow:method:content_unset|Efl.Canvas.Layout_Part_Swallow.content_unset]]
+ * [[:develop:api:efl:ui:pan:method:content_unset|Efl.Ui.Pan.content_unset]]
+ * [[:develop:api:efl:ui:frame:method:content_unset|Efl.Ui.Frame.content_unset]]
+ * [[:develop:api:efl:ui:progressbar:method:content_unset|Efl.Ui.Progressbar.content_unset]]
+ * [[:develop:api:efl:ui:popup:method:content_unset|Efl.Ui.Popup.content_unset]]
+ * [[:develop:api:efl:ui:navigation_layout:method:content_unset|Efl.Ui.Navigation_Layout.content_unset]]
+ * [[:develop:api:elm:flip:part:method:content_unset|Elm.Flip.Part.content_unset]]
+ * [[:develop:api:efl:ui:button:method:content_unset|Efl.Ui.Button.content_unset]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:content_unset|Efl.Canvas.Layout_Part_Invalid.content_unset]]
+ * [[:develop:api:efl:ui:layout_part_content:method:content_unset|Efl.Ui.Layout_Part_Content.content_unset]]
+ * [[:develop:api:efl:ui:navigation_bar_part:method:content_unset|Efl.Ui.Navigation_Bar_Part.content_unset]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/check/method/on_access_activate.txt b/public_html/data/pages/develop/api/efl/ui/check/method/on_access_activate.txt
new file mode 100644
index 00000000..91162f8f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/check/method/on_access_activate.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Check.on_access_activate~~
+====== Efl.Ui.Check.on_access_activate ======
+
+===== Description =====
+
+%%Hook function called when widget is activated through accessibility.%%
+
+%%This meant to be overridden by subclasses to support accessibility. This is an unstable API.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:check:method:on_access_activate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:on_access_activate|Efl.Ui.Widget.on_access_activate]].//===== Signature =====
+
+
+on_access_activate @beta @protected {
+ params {
+ @in act: Efl.Ui.Activate;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_on_access_activate(Eo *obj, Efl_Ui_Activate act);
+
+
+===== Parameters =====
+
+ * **act** //(in)// - %%Type of activation.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:on_access_activate|Efl.Ui.Widget.on_access_activate]]
+ * [[:develop:api:efl:ui:slider:method:on_access_activate|Efl.Ui.Slider.on_access_activate]]
+ * [[:develop:api:efl:ui:check:method:on_access_activate|Efl.Ui.Check.on_access_activate]]
+ * [[:develop:api:efl:ui:radio:method:on_access_activate|Efl.Ui.Radio.on_access_activate]]
+ * [[:develop:api:efl:ui:text:method:on_access_activate|Efl.Ui.Text.on_access_activate]]
+ * [[:develop:api:efl:ui:slider_interval:method:on_access_activate|Efl.Ui.Slider_Interval.on_access_activate]]
+ * [[:develop:api:efl:ui:button:method:on_access_activate|Efl.Ui.Button.on_access_activate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/check/method/theme_apply.txt b/public_html/data/pages/develop/api/efl/ui/check/method/theme_apply.txt
new file mode 100644
index 00000000..84123134
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/check/method/theme_apply.txt
@@ -0,0 +1,55 @@
+~~Title: Efl.Ui.Check.theme_apply~~
+====== Efl.Ui.Check.theme_apply ======
+
+===== Description =====
+
+%%Virtual function called when the widget needs to re-apply its theme.%%
+
+%%This may be called when the object is first created, or whenever the widget is modified in any way that may require a reload of the theme. This may include but is not limited to scale, theme, or mirrored mode changes.%%
+
+
+theme_apply @protected {
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_widget_theme_apply(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:theme_apply|Efl.Ui.Widget.theme_apply]]
+ * [[:develop:api:efl:ui:win:method:theme_apply|Efl.Ui.Win.theme_apply]]
+ * [[:develop:api:efl:ui:flip:method:theme_apply|Efl.Ui.Flip.theme_apply]]
+ * [[:develop:api:efl:ui:image:method:theme_apply|Efl.Ui.Image.theme_apply]]
+ * [[:develop:api:efl:ui:image_zoomable:method:theme_apply|Efl.Ui.Image_Zoomable.theme_apply]]
+ * [[:develop:api:efl:ui:layout_base:method:theme_apply|Efl.Ui.Layout_Base.theme_apply]]
+ * [[:develop:api:efl:ui:slider:method:theme_apply|Efl.Ui.Slider.theme_apply]]
+ * [[:develop:api:efl:ui:check:method:theme_apply|Efl.Ui.Check.theme_apply]]
+ * [[:develop:api:efl:ui:radio:method:theme_apply|Efl.Ui.Radio.theme_apply]]
+ * [[:develop:api:efl:ui:clock:method:theme_apply|Efl.Ui.Clock.theme_apply]]
+ * [[:develop:api:efl:ui:text:method:theme_apply|Efl.Ui.Text.theme_apply]]
+ * [[:develop:api:efl:ui:spin_button:method:theme_apply|Efl.Ui.Spin_Button.theme_apply]]
+ * [[:develop:api:efl:ui:collection_view:method:theme_apply|Efl.Ui.Collection_View.theme_apply]]
+ * [[:develop:api:efl:ui:panel:method:theme_apply|Efl.Ui.Panel.theme_apply]]
+ * [[:develop:api:efl:ui:slider_interval:method:theme_apply|Efl.Ui.Slider_Interval.theme_apply]]
+ * [[:develop:api:elm:code_widget:method:theme_apply|Elm.Code_Widget.theme_apply]]
+ * [[:develop:api:efl:ui:textpath:method:theme_apply|Efl.Ui.Textpath.theme_apply]]
+ * [[:develop:api:efl:ui:scroller:method:theme_apply|Efl.Ui.Scroller.theme_apply]]
+ * [[:develop:api:efl:ui:collection:method:theme_apply|Efl.Ui.Collection.theme_apply]]
+ * [[:develop:api:efl:ui:panes:method:theme_apply|Efl.Ui.Panes.theme_apply]]
+ * [[:develop:api:efl:ui:calendar:method:theme_apply|Efl.Ui.Calendar.theme_apply]]
+ * [[:develop:api:efl:ui:progressbar:method:theme_apply|Efl.Ui.Progressbar.theme_apply]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/check/method/widget_input_event_handler.txt b/public_html/data/pages/develop/api/efl/ui/check/method/widget_input_event_handler.txt
new file mode 100644
index 00000000..61e29cc7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/check/method/widget_input_event_handler.txt
@@ -0,0 +1,57 @@
+~~Title: Efl.Ui.Check.widget_input_event_handler~~
+====== Efl.Ui.Check.widget_input_event_handler ======
+
+===== Description =====
+
+%%Virtual function handling input events on the widget.%%
+
+%%This method should return %%''true''%% if the event has been processed. Only key down, key up and pointer wheel events will be propagated through this function.%%
+
+%%It is common for the event to be also marked as processed as in %%[[:develop:api:efl:input:event:property:processed|Efl.Input.Event.processed]]%%, if this operation was successful. This makes sure other widgets will not also process this input event.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:check:method:widget_input_event_handler:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:widget_input_event_handler|Efl.Ui.Widget.widget_input_event_handler]].//===== Signature =====
+
+
+widget_input_event_handler @protected {
+ params {
+ @in eo_event: const(event);
+ @in source: Efl.Canvas.Object;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_input_event_handler(Eo *obj, const Efl_Event *eo_event, Efl_Canvas_Object *source);
+
+
+===== Parameters =====
+
+ * **eo_event** //(in)// - %%EO event struct with an Efl.Input.Event as info.%%
+ * **source** //(in)// - %%Source object where the event originated. Often same as this.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:widget_input_event_handler|Efl.Ui.Widget.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:win:method:widget_input_event_handler|Efl.Ui.Win.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:image:method:widget_input_event_handler|Efl.Ui.Image.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:image_zoomable:method:widget_input_event_handler|Efl.Ui.Image_Zoomable.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:slider:method:widget_input_event_handler|Efl.Ui.Slider.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:check:method:widget_input_event_handler|Efl.Ui.Check.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:radio:method:widget_input_event_handler|Efl.Ui.Radio.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:spin_button:method:widget_input_event_handler|Efl.Ui.Spin_Button.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:panel:method:widget_input_event_handler|Efl.Ui.Panel.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:item:method:widget_input_event_handler|Efl.Ui.Item.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:slider_interval:method:widget_input_event_handler|Efl.Ui.Slider_Interval.widget_input_event_handler]]
+ * [[:develop:api:elm:code_widget:method:widget_input_event_handler|Elm.Code_Widget.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:tags:method:widget_input_event_handler|Efl.Ui.Tags.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:scroller:method:widget_input_event_handler|Efl.Ui.Scroller.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:calendar:method:widget_input_event_handler|Efl.Ui.Calendar.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:video:method:widget_input_event_handler|Efl.Ui.Video.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:button:method:widget_input_event_handler|Efl.Ui.Button.widget_input_event_handler]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/check/property/content.txt b/public_html/data/pages/develop/api/efl/ui/check/property/content.txt
new file mode 100644
index 00000000..d5d86d4d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/check/property/content.txt
@@ -0,0 +1,80 @@
+~~Title: Efl.Ui.Check.content~~
+====== Efl.Ui.Check.content ======
+
+===== Description =====
+
+%%Sub-object currently set as this object's single content.%%
+
+%%If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid %%''content''%% is set the object will become empty (it will have no sub-object).%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:check:property:content:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **content** - %%The sub-object.%%
+
+//Overridden from [[:develop:api:efl:content:property:content|Efl.Content.content]] **(get, set)**.//===== Signature =====
+
+
+@property content @pure_virtual {
+ get {}
+ set {
+ return: bool;
+ }
+ values {
+ content: Efl.Gfx.Entity;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_content_get(const Eo *obj);
+Eina_Bool efl_content_set(Eo *obj, Efl_Gfx_Entity *content);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:content:property:content|Efl.Content.content]]
+ * [[:develop:api:efl:ui:check:property:content|Efl.Ui.Check.content]]
+ * [[:develop:api:efl:ui:win:property:content|Efl.Ui.Win.content]]
+ * [[:develop:api:efl:ui:default_item:property:content|Efl.Ui.Default_Item.content]]
+ * [[:develop:api:efl:ui:win_part:property:content|Efl.Ui.Win_Part.content]]
+ * [[:develop:api:efl:canvas:layout_part_external:property:content|Efl.Canvas.Layout_Part_External.content]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:property:content|Efl.Ui.Navigation_Bar_Part_Back_Button.content]]
+ * [[:develop:api:efl:ui:layout_part_legacy:property:content|Efl.Ui.Layout_Part_Legacy.content]]
+ * [[:develop:api:elm:dayselector:part:property:content|Elm.Dayselector.Part.content]]
+ * [[:develop:api:elm:entry:part:property:content|Elm.Entry.Part.content]]
+ * [[:develop:api:elm:naviframe:part:property:content|Elm.Naviframe.Part.content]]
+ * [[:develop:api:elm:ctxpopup:part:property:content|Elm.Ctxpopup.Part.content]]
+ * [[:develop:api:elm:fileselector:entry:part:property:content|Elm.Fileselector.Entry.Part.content]]
+ * [[:develop:api:elm:popup:part:property:content|Elm.Popup.Part.content]]
+ * [[:develop:api:elm:hover:part:property:content|Elm.Hover.Part.content]]
+ * [[:develop:api:elm:scroller:part:property:content|Elm.Scroller.Part.content]]
+ * [[:develop:api:elm:player:part:property:content|Elm.Player.Part.content]]
+ * [[:develop:api:elm:notify:part:property:content|Elm.Notify.Part.content]]
+ * [[:develop:api:efl:ui:panel:property:content|Efl.Ui.Panel.content]]
+ * [[:develop:api:elm:panel:part:property:content|Elm.Panel.Part.content]]
+ * [[:develop:api:efl:ui:tab_page:property:content|Efl.Ui.Tab_Page.content]]
+ * [[:develop:api:efl:ui:list_placeholder_item:property:content|Efl.Ui.List_Placeholder_Item.content]]
+ * [[:develop:api:elm:mapbuf:part:property:content|Elm.Mapbuf.Part.content]]
+ * [[:develop:api:efl:ui:scroller:property:content|Efl.Ui.Scroller.content]]
+ * [[:develop:api:efl:ui:flip_part:property:content|Efl.Ui.Flip_Part.content]]
+ * [[:develop:api:efl:canvas:layout_part_swallow:property:content|Efl.Canvas.Layout_Part_Swallow.content]]
+ * [[:develop:api:efl:ui:pan:property:content|Efl.Ui.Pan.content]]
+ * [[:develop:api:efl:ui:frame:property:content|Efl.Ui.Frame.content]]
+ * [[:develop:api:efl:ui:progressbar:property:content|Efl.Ui.Progressbar.content]]
+ * [[:develop:api:efl:ui:popup:property:content|Efl.Ui.Popup.content]]
+ * [[:develop:api:efl:ui:navigation_layout:property:content|Efl.Ui.Navigation_Layout.content]]
+ * [[:develop:api:elm:flip:part:property:content|Elm.Flip.Part.content]]
+ * [[:develop:api:efl:ui:button:property:content|Efl.Ui.Button.content]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:content|Efl.Canvas.Layout_Part_Invalid.content]]
+ * [[:develop:api:efl:ui:layout_part_content:property:content|Efl.Ui.Layout_Part_Content.content]]
+ * [[:develop:api:efl:ui:progressbar_legacy_part:property:content|Efl.Ui.Progressbar_Legacy_Part.content]]
+ * [[:develop:api:efl:ui:check_legacy_part:property:content|Efl.Ui.Check_Legacy_Part.content]]
+ * [[:develop:api:efl:ui:button_legacy_part:property:content|Efl.Ui.Button_Legacy_Part.content]]
+ * [[:develop:api:efl:ui:navigation_bar_part:property:content|Efl.Ui.Navigation_Bar_Part.content]]
+ * [[:develop:api:efl:ui:radio_legacy_part:property:content|Efl.Ui.Radio_Legacy_Part.content]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/check/property/elm_actions.txt b/public_html/data/pages/develop/api/efl/ui/check/property/elm_actions.txt
new file mode 100644
index 00000000..e6a8c265
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/check/property/elm_actions.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Check.elm_actions~~
+====== Efl.Ui.Check.elm_actions ======
+
+===== Values =====
+
+ * **actions** - %%NULL-terminated array of Efl.Access.Action_Data.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:check:property:elm_actions:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:access:widget:action:property:elm_actions|Efl.Access.Widget.Action.elm_actions]] **(get)**.//===== Signature =====
+
+
+@property elm_actions @beta @pure_virtual {
+ get @protected {}
+ values {
+ actions: ptr(const(Efl.Access.Action_Data));
+ }
+}
+
+
+===== C signature =====
+
+
+const Efl_Access_Action_Data *efl_access_widget_action_elm_actions_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:widget:action:property:elm_actions|Efl.Access.Widget.Action.elm_actions]]
+ * [[:develop:api:efl:ui:slider:property:elm_actions|Efl.Ui.Slider.elm_actions]]
+ * [[:develop:api:efl:ui:check:property:elm_actions|Efl.Ui.Check.elm_actions]]
+ * [[:develop:api:efl:ui:radio:property:elm_actions|Efl.Ui.Radio.elm_actions]]
+ * [[:develop:api:efl:ui:win:property:elm_actions|Efl.Ui.Win.elm_actions]]
+ * [[:develop:api:efl:ui:spin_button:property:elm_actions|Efl.Ui.Spin_Button.elm_actions]]
+ * [[:develop:api:efl:ui:panel:property:elm_actions|Efl.Ui.Panel.elm_actions]]
+ * [[:develop:api:efl:ui:slider_interval:property:elm_actions|Efl.Ui.Slider_Interval.elm_actions]]
+ * [[:develop:api:efl:ui:image:property:elm_actions|Efl.Ui.Image.elm_actions]]
+ * [[:develop:api:efl:ui:image_zoomable:property:elm_actions|Efl.Ui.Image_Zoomable.elm_actions]]
+ * [[:develop:api:efl:ui:calendar:property:elm_actions|Efl.Ui.Calendar.elm_actions]]
+ * [[:develop:api:efl:ui:video:property:elm_actions|Efl.Ui.Video.elm_actions]]
+ * [[:develop:api:efl:ui:button:property:elm_actions|Efl.Ui.Button.elm_actions]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/check/property/l10n_text.txt b/public_html/data/pages/develop/api/efl/ui/check/property/l10n_text.txt
new file mode 100644
index 00000000..bf7c1b71
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/check/property/l10n_text.txt
@@ -0,0 +1,72 @@
+~~Title: Efl.Ui.Check.l10n_text~~
+====== Efl.Ui.Check.l10n_text ======
+
+===== Description =====
+
+%%A unique string to be translated.%%
+
+%%Often this will be a human-readable string (e.g. in English) but it can also be a unique string identifier that must then be translated to the current locale with %%''dgettext''%%() or any similar mechanism.%%
+
+%%Setting this property will enable translation for this object or part.%%
+
+
+{{page>:develop:api-include:efl:ui:check:property:l10n_text:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+==== Getter ====
+
+ * **domain** - %%A translation domain. If %%''null''%% this means the default domain is used.%%
+==== Setter ====
+
+ * **label** - %%A unique (untranslated) string.%%
+ * **domain** - %%A translation domain. If %%''null''%% this uses the default domain (eg. set by %%''textdomain''%%()).%%
+==== Setter ====
+
+%%Sets the new untranslated string and domain for this object.%%
+{{page>:develop:api-include:efl:ui:check:property:l10n_text:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:layout_base:property:l10n_text|Efl.Ui.L10n.l10n_text]] **(get, set)**.//===== Signature =====
+
+
+@property l10n_text @pure_virtual {
+ get {
+ values {
+ domain: string @optional;
+ }
+ return: string;
+ }
+ set {
+ values {
+ label: string;
+ domain: string @optional;
+ }
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_ui_l10n_text_get(const Eo *obj, const char **domain);
+void efl_ui_l10n_text_set(Eo *obj, const char *label, const char *domain);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:l10n:property:l10n_text|Efl.Ui.L10n.l10n_text]]
+ * [[:develop:api:efl:ui:default_item:property:l10n_text|Efl.Ui.Default_Item.l10n_text]]
+ * [[:develop:api:efl:ui:layout_part_legacy:property:l10n_text|Efl.Ui.Layout_Part_Legacy.l10n_text]]
+ * [[:develop:api:elm:notify:part:property:l10n_text|Elm.Notify.Part.l10n_text]]
+ * [[:develop:api:efl:ui:layout_part_text:property:l10n_text|Efl.Ui.Layout_Part_Text.l10n_text]]
+ * [[:develop:api:efl:ui:win:property:l10n_text|Efl.Ui.Win.l10n_text]]
+ * [[:develop:api:efl:ui:table:property:l10n_text|Efl.Ui.Table.l10n_text]]
+ * [[:develop:api:efl:ui:box:property:l10n_text|Efl.Ui.Box.l10n_text]]
+ * [[:develop:api:efl:ui:layout_base:property:l10n_text|Efl.Ui.Layout_Base.l10n_text]]
+ * [[:develop:api:efl:ui:check:property:l10n_text|Efl.Ui.Check.l10n_text]]
+ * [[:develop:api:efl:ui:frame:property:l10n_text|Efl.Ui.Frame.l10n_text]]
+ * [[:develop:api:efl:ui:progressbar:property:l10n_text|Efl.Ui.Progressbar.l10n_text]]
+ * [[:develop:api:efl:ui:button:property:l10n_text|Efl.Ui.Button.l10n_text]]
+ * [[:develop:api:efl:ui:navigation_bar:property:l10n_text|Efl.Ui.Navigation_Bar.l10n_text]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/check/property/selected.txt b/public_html/data/pages/develop/api/efl/ui/check/property/selected.txt
new file mode 100644
index 00000000..1a250e12
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/check/property/selected.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Check.selected~~
+====== Efl.Ui.Check.selected ======
+
+===== Description =====
+
+%%The selected state of this object%%
+
+%%A change to this property emits the changed event.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:check:property:selected:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **selected** - %%The selected state of this object.%%
+
+//Overridden from [[:develop:api:efl:ui:selectable:property:selected|Efl.Ui.Selectable.selected]] **(get, set)**.//===== Signature =====
+
+
+@property selected @pure_virtual {
+ get {}
+ set {}
+ values {
+ selected: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_selectable_selected_get(const Eo *obj);
+void efl_ui_selectable_selected_set(Eo *obj, Eina_Bool selected);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:selectable:property:selected|Efl.Ui.Selectable.selected]]
+ * [[:develop:api:efl:ui:check:property:selected|Efl.Ui.Check.selected]]
+ * [[:develop:api:efl:ui:radio:property:selected|Efl.Ui.Radio.selected]]
+ * [[:develop:api:efl:ui:select_model:property:selected|Efl.Ui.Select_Model.selected]]
+ * [[:develop:api:efl:ui:item:property:selected|Efl.Ui.Item.selected]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/check/property/state_set.txt b/public_html/data/pages/develop/api/efl/ui/check/property/state_set.txt
new file mode 100644
index 00000000..9fc5a926
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/check/property/state_set.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.Check.state_set~~
+====== Efl.Ui.Check.state_set ======
+
+===== Values =====
+
+ * **states** - %%Accessible state set%%
+
+
+\\ {{page>:develop:api-include:efl:ui:check:property:state_set:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:property:state_set|Efl.Access.Object.state_set]] **(get)**.//===== Signature =====
+
+
+@property state_set @beta {
+ get @protected {}
+ values {
+ states: Efl.Access.State_Set;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Access_State_Set efl_access_object_state_set_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:object:property:state_set|Efl.Access.Object.state_set]]
+ * [[:develop:api:efl:ui:widget:property:state_set|Efl.Ui.Widget.state_set]]
+ * [[:develop:api:efl:ui:win:property:state_set|Efl.Ui.Win.state_set]]
+ * [[:develop:api:efl:ui:check:property:state_set|Efl.Ui.Check.state_set]]
+ * [[:develop:api:efl:ui:radio:property:state_set|Efl.Ui.Radio.state_set]]
+ * [[:develop:api:efl:ui:text:property:state_set|Efl.Ui.Text.state_set]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/check/property/text.txt b/public_html/data/pages/develop/api/efl/ui/check/property/text.txt
new file mode 100644
index 00000000..05bddc9e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/check/property/text.txt
@@ -0,0 +1,67 @@
+~~Title: Efl.Ui.Check.text~~
+====== Efl.Ui.Check.text ======
+
+===== Description =====
+
+%%The text string to be displayed by the given text object.%%
+
+%%Do not release (free) the returned value.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:check:property:text:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **text** - %%Text string to display.%%
+
+//Overridden from [[:develop:api:efl:text:property:text|Efl.Text.text]] **(get, set)**.//===== Signature =====
+
+
+@property text @pure_virtual {
+ get {}
+ set {}
+ values {
+ text: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_text_get(const Eo *obj);
+void efl_text_set(Eo *obj, const char *text);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:text:property:text|Efl.Text.text]]
+ * [[:develop:api:efl:ui:check:property:text|Efl.Ui.Check.text]]
+ * [[:develop:api:efl:ui:win:property:text|Efl.Ui.Win.text]]
+ * [[:develop:api:efl:ui:default_item:property:text|Efl.Ui.Default_Item.text]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:property:text|Efl.Ui.Navigation_Bar_Part_Back_Button.text]]
+ * [[:develop:api:efl:ui:layout_part_legacy:property:text|Efl.Ui.Layout_Part_Legacy.text]]
+ * [[:develop:api:elm_actionslider:part:property:text|Elm_Actionslider.Part.text]]
+ * [[:develop:api:elm:entry:part:property:text|Elm.Entry.Part.text]]
+ * [[:develop:api:elm_label:part:property:text|Elm_Label.Part.text]]
+ * [[:develop:api:elm:multibuttonentry_part:property:text|Elm.Multibuttonentry_Part.text]]
+ * [[:develop:api:elm:naviframe:part:property:text|Elm.Naviframe.Part.text]]
+ * [[:develop:api:elm_bubble:part:property:text|Elm_Bubble.Part.text]]
+ * [[:develop:api:elm:fileselector:entry:part:property:text|Elm.Fileselector.Entry.Part.text]]
+ * [[:develop:api:elm:fileselector:part:property:text|Elm.Fileselector.Part.text]]
+ * [[:develop:api:elm:popup:part:property:text|Elm.Popup.Part.text]]
+ * [[:develop:api:elm:notify:part:property:text|Elm.Notify.Part.text]]
+ * [[:develop:api:efl:canvas:text:property:text|Efl.Canvas.Text.text]]
+ * [[:develop:api:efl:ui:layout_part_text:property:text|Efl.Ui.Layout_Part_Text.text]]
+ * [[:develop:api:efl:ui:textpath_part:property:text|Efl.Ui.Textpath_Part.text]]
+ * [[:develop:api:efl:ui:alert_popup_part:property:text|Efl.Ui.Alert_Popup_Part.text]]
+ * [[:develop:api:efl:ui:text_part:property:text|Efl.Ui.Text_Part.text]]
+ * [[:develop:api:efl:ui:textpath:property:text|Efl.Ui.Textpath.text]]
+ * [[:develop:api:efl:ui:tags:property:text|Efl.Ui.Tags.text]]
+ * [[:develop:api:efl:ui:frame:property:text|Efl.Ui.Frame.text]]
+ * [[:develop:api:efl:ui:progressbar:property:text|Efl.Ui.Progressbar.text]]
+ * [[:develop:api:efl:ui:button:property:text|Efl.Ui.Button.text]]
+ * [[:develop:api:efl:ui:navigation_bar:property:text|Efl.Ui.Navigation_Bar.text]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:text|Efl.Canvas.Layout_Part_Invalid.text]]
+ * [[:develop:api:efl:canvas:layout_part_text:property:text|Efl.Canvas.Layout_Part_Text.text]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection.txt b/public_html/data/pages/develop/api/efl/ui/collection.txt
new file mode 100644
index 00000000..461e9e51
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection.txt
@@ -0,0 +1,671 @@
+~~Title: Efl.Ui.Collection~~
+====== Efl.Ui.Collection (class) ======
+
+===== Description =====
+
+%%This widget displays a list of items in an arrangement controlled by an external %%[[:develop:api:efl:ui:collection:property:position_manager|Efl.Ui.Collection.position_manager]]%% object. By using different %%[[:develop:api:efl:ui:collection:property:position_manager|Efl.Ui.Collection.position_manager]]%% objects this widget can show unidimensional lists or two-dimensional grids of items, for example.%%
+
+%%This class is intended to act as a base for widgets like %%[[:develop:api:efl:ui:list|Efl.Ui.List]]%% or %%[[:develop:api:efl:ui:grid|Efl.Ui.Grid]]%%, which hide this complexity from the user.%%
+
+%%Items are added using the %%[[:develop:api:efl:pack_linear|Efl.Pack_Linear]]%% interface and must be of %%[[:develop:api:efl:ui:item|Efl.Ui.Item]]%% type.%%
+
+%%The direction of the arrangement can be controlled through %%[[:develop:api:efl:ui:layout_orientable:property:orientation|Efl.Ui.Layout_Orientable.orientation]]%%.%%
+
+%%If all items do not fit in the current widget size scrolling facilities are provided.%%
+
+%%Items inside this widget can be selected according to the %%[[:develop:api:efl:ui:multi_selectable:property:select_mode|Efl.Ui.Multi_Selectable.select_mode]]%% policy, and the selection can be retrieved with %%[[:develop:api:efl:ui:multi_selectable:method:selected_iterator_new|Efl.Ui.Multi_Selectable.selected_iterator_new]]%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:collection:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)// => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)//
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] //(interface)//
+ * [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] //(interface)//
+ * [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] //(interface)//
+ * [[:develop:api:efl:layout:group|Efl.Layout.Group]] //(interface)//
+ * [[:develop:api:efl:pack_linear|Efl.Pack_Linear]] //(interface)//
+ * [[:develop:api:efl:pack|Efl.Pack]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:layout_orientable|Efl.Ui.Layout_Orientable]] //(interface)//
+ * [[:develop:api:efl:ui:multi_selectable|Efl.Ui.Multi_Selectable]] //(interface)//
+ * [[:develop:api:efl:ui:single_selectable|Efl.Ui.Single_Selectable]] //(interface)//
+ * [[:develop:api:efl:ui:focus:manager_sub|Efl.Ui.Focus.Manager_Sub]] //(mixin)//
+ * [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] //(interface)//
+ * [[:develop:api:efl:ui:widget_focus_manager|Efl.Ui.Widget_Focus_Manager]] //(mixin)//
+ * [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] //(interface)//
+ * [[:develop:api:efl:ui:item_clickable|Efl.Ui.Item_Clickable]] //(interface)//
+ * [[:develop:api:efl:ui:scrollable|Efl.Ui.Scrollable]] //(interface)//
+ * [[:develop:api:efl:ui:scrollbar|Efl.Ui.Scrollbar]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:collection:method:all_select|all_select]]**// [Overridden from [[:develop:api:efl:ui:multi_selectable|Efl.Ui.Multi_Selectable]]]//\\
+> %%Select all %%[[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]]%%%%
+
+void efl_ui_selectable_all_select(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:collection:method:all_unselect|all_unselect]]**// [Overridden from [[:develop:api:efl:ui:multi_selectable|Efl.Ui.Multi_Selectable]]]//\\
+> %%Unselect all %%[[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]]%%%%
+
+void efl_ui_selectable_all_unselect(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:collection:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:collection:method:content_count|content_count]]**// [Overridden from [[:develop:api:efl:container|Efl.Container]]]//\\
+> %%Returns the number of contained sub-objects.%%
+
+int efl_content_count(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:collection:method:content_iterate|content_iterate]]**// [Overridden from [[:develop:api:efl:container|Efl.Container]]]//\\
+> %%Begin iterating over this object's contents.%%
+
+Eina_Iterator *efl_content_iterate(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:collection:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:collection:property:fallback_selection|fallback_selection]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:single_selectable|Efl.Ui.Single_Selectable]]]//\\
+> %%A object that will be selected in case nothing is selected%%
+
+Efl_Ui_Selectable *efl_ui_selectable_fallback_selection_get(const Eo *obj);
+void efl_ui_selectable_fallback_selection_set(Eo *obj, Efl_Ui_Selectable *fallback);
+
+\\
+**[[:develop:api:efl:ui:collection:method:finalize|finalize]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+Efl_Object *efl_finalize(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:collection:method:invalidate|invalidate]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to perform special actions when your object loses its parent, if you need to.%%
+
+void efl_invalidate(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:collection:method:item_scroll|item_scroll]]**\\
+> %%Brings the passed item into the viewport.%%
+
+void efl_ui_collection_item_scroll(Eo *obj, Efl_Ui_Item *item, Eina_Bool animation);
+
+\\
+**[[:develop:api:efl:ui:collection:method:item_scroll_align|item_scroll_align]]**\\
+> %%Brings the passed item into the viewport and align it.%%
+
+void efl_ui_collection_item_scroll_align(Eo *obj, Efl_Ui_Item *item, double align, Eina_Bool animation);
+
+\\
+**[[:develop:api:efl:ui:collection:property:last_selected|last_selected]]** //**(get)**//// [Overridden from [[:develop:api:efl:ui:single_selectable|Efl.Ui.Single_Selectable]]]//\\
+>
+
+Efl_Ui_Selectable *efl_ui_selectable_last_selected_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:collection:property:match_content|match_content]]** //**(set)**//// [Overridden from [[:develop:api:efl:ui:scrollable|Efl.Ui.Scrollable]]]//\\
+>
+
+void efl_ui_scrollable_match_content_set(Eo *obj, Eina_Bool w, Eina_Bool h);
+
+\\
+**[[:develop:api:efl:ui:collection:method:move|move]]**// [Overridden from [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]]]//\\
+> %%Moves the focus in the given direction to the next regular widget.%%
+
+Efl_Ui_Focus_Object *efl_ui_focus_manager_move(Eo *obj, Efl_Ui_Focus_Direction direction);
+
+\\
+**[[:develop:api:efl:ui:collection:property:orientation|orientation]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:layout_orientable|Efl.Ui.Layout_Orientable]]]//\\
+> %%Control the direction of a given widget.%%
+
+Efl_Ui_Layout_Orientation efl_ui_layout_orientation_get(const Eo *obj);
+void efl_ui_layout_orientation_set(Eo *obj, Efl_Ui_Layout_Orientation dir);
+
+\\
+**[[:develop:api:efl:ui:collection:method:pack|pack]]**// [Overridden from [[:develop:api:efl:pack|Efl.Pack]]]//\\
+> %%Adds a sub-object to this container.%%
+
+Eina_Bool efl_pack(Eo *obj, Efl_Gfx_Entity *subobj);
+
+\\
+**[[:develop:api:efl:ui:collection:method:pack_after|pack_after]]**// [Overridden from [[:develop:api:efl:pack_linear|Efl.Pack_Linear]]]//\\
+> %%Append an object after the %%''existing''%% sub-object.%%
+
+Eina_Bool efl_pack_after(Eo *obj, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing);
+
+\\
+**[[:develop:api:efl:ui:collection:method:pack_at|pack_at]]**// [Overridden from [[:develop:api:efl:pack_linear|Efl.Pack_Linear]]]//\\
+> %%Inserts %%''subobj''%% BEFORE the sub-object at position %%''index''%%.%%
+
+Eina_Bool efl_pack_at(Eo *obj, Efl_Gfx_Entity *subobj, int index);
+
+\\
+**[[:develop:api:efl:ui:collection:method:pack_before|pack_before]]**// [Overridden from [[:develop:api:efl:pack_linear|Efl.Pack_Linear]]]//\\
+> %%Prepend an object before the %%''existing''%% sub-object.%%
+
+Eina_Bool efl_pack_before(Eo *obj, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing);
+
+\\
+**[[:develop:api:efl:ui:collection:method:pack_begin|pack_begin]]**// [Overridden from [[:develop:api:efl:pack_linear|Efl.Pack_Linear]]]//\\
+> %%Prepend an object at the beginning of this container.%%
+
+Eina_Bool efl_pack_begin(Eo *obj, Efl_Gfx_Entity *subobj);
+
+\\
+**[[:develop:api:efl:ui:collection:method:pack_clear|pack_clear]]**// [Overridden from [[:develop:api:efl:pack|Efl.Pack]]]//\\
+> %%Removes all packed sub-objects and unreferences them.%%
+
+Eina_Bool efl_pack_clear(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:collection:method:pack_content_get|pack_content_get]]**// [Overridden from [[:develop:api:efl:pack_linear|Efl.Pack_Linear]]]//\\
+> %%Sub-object at a given %%''index''%% in this container.%%
+
+Efl_Gfx_Entity *efl_pack_content_get(Eo *obj, int index);
+
+\\
+**[[:develop:api:efl:ui:collection:method:pack_end|pack_end]]**// [Overridden from [[:develop:api:efl:pack_linear|Efl.Pack_Linear]]]//\\
+> %%Append object at the end of this container.%%
+
+Eina_Bool efl_pack_end(Eo *obj, Efl_Gfx_Entity *subobj);
+
+\\
+**[[:develop:api:efl:ui:collection:method:pack_index_get|pack_index_get]]**// [Overridden from [[:develop:api:efl:pack_linear|Efl.Pack_Linear]]]//\\
+> %%Get the index of a sub-object in this container.%%
+
+int efl_pack_index_get(Eo *obj, const Efl_Gfx_Entity *subobj);
+
+\\
+**[[:develop:api:efl:ui:collection:method:pack_unpack_at|pack_unpack_at]]**// [Overridden from [[:develop:api:efl:pack_linear|Efl.Pack_Linear]]]//\\
+> %%Pop out (remove) the sub-object at the specified %%''index''%%.%%
+
+Efl_Gfx_Entity *efl_pack_unpack_at(Eo *obj, int index);
+
+\\
+**[[:develop:api:efl:ui:collection:property:position_manager|position_manager]]** //**(get, set)**//\\
+> %%Position manager object that handles placement of items.%%
+
+Efl_Ui_Position_Manager_Entity *efl_ui_collection_position_manager_get(const Eo *obj);
+void efl_ui_collection_position_manager_set(Eo *obj, Efl_Ui_Position_Manager_Entity *position_manager);
+
+\\
+**[[:develop:api:efl:ui:collection:method:range_select|range_select]]**// [Overridden from [[:develop:api:efl:ui:multi_selectable|Efl.Ui.Multi_Selectable]]]//\\
+> %%Select a range of %%[[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]]%%.%%
+
+void efl_ui_selectable_range_select(Eo *obj, Efl_Ui_Selectable *a, Efl_Ui_Selectable *b);
+
+\\
+**[[:develop:api:efl:ui:collection:method:range_unselect|range_unselect]]**// [Overridden from [[:develop:api:efl:ui:multi_selectable|Efl.Ui.Multi_Selectable]]]//\\
+> %%Unselect a range of %%[[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]]%%.%%
+
+void efl_ui_selectable_range_unselect(Eo *obj, Efl_Ui_Selectable *a, Efl_Ui_Selectable *b);
+
+\\
+**[[:develop:api:efl:ui:collection:property:select_mode|select_mode]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:multi_selectable|Efl.Ui.Multi_Selectable]]]//\\
+> %%The mode type for children selection.%%
+
+Efl_Ui_Select_Mode efl_ui_selectable_select_mode_get(const Eo *obj);
+void efl_ui_selectable_select_mode_set(Eo *obj, Efl_Ui_Select_Mode mode);
+
+\\
+**[[:develop:api:efl:ui:collection:method:selected_iterator_new|selected_iterator_new]]**// [Overridden from [[:develop:api:efl:ui:multi_selectable|Efl.Ui.Multi_Selectable]]]//\\
+> %%Get the selected items in a iterator. The iterator sequence will be decided by selection.%%
+
+Eina_Iterator *efl_ui_selectable_selected_iterator_new(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:collection:method:unpack|unpack]]**// [Overridden from [[:develop:api:efl:pack|Efl.Pack]]]//\\
+> %%Removes an existing sub-object from the container without deleting it.%%
+
+Eina_Bool efl_pack_unpack(Eo *obj, Efl_Gfx_Entity *subobj);
+
+\\
+**[[:develop:api:efl:ui:collection:method:unpack_all|unpack_all]]**// [Overridden from [[:develop:api:efl:pack|Efl.Pack]]]//\\
+> %%Removes all packed sub-objects without unreferencing them.%%
+
+Eina_Bool efl_pack_unpack_all(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:collection:method:focus_manager_create|focus_manager_create]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget_focus_manager|Efl.Ui.Widget_Focus_Manager]]]//\\
+> %%If the widget needs a focus manager, this function will be called.%%
+
+Efl_Ui_Focus_Manager *efl_ui_widget_focus_manager_create(Eo *obj, Efl_Ui_Focus_Object *root);
+
+\\
+**[[:develop:api:efl:ui:collection:method:focus_state_apply|focus_state_apply]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Apply a new focus state on the widget.%%
+
+Eina_Bool efl_ui_widget_focus_state_apply(Eo *obj, Efl_Ui_Widget_Focus_State current_state, Efl_Ui_Widget_Focus_State configured_state, Efl_Ui_Widget *redirect);
+
+\\
+**[[:develop:api:efl:ui:collection:method:theme_apply|theme_apply]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Virtual function called when the widget needs to re-apply its theme.%%
+
+Eina_Error efl_ui_widget_theme_apply(Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] ^^^
+| | **[[:develop:api:efl:ui:focus:manager:property:border_elements|border_elements]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:focus:manager:method:dirty_logic_freeze|dirty_logic_freeze]]** | %%Disables the cache invalidation when an object is moved.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:dirty_logic_unfreeze|dirty_logic_unfreeze]]** | %%Enables the cache invalidation when an object is moved.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:fetch|fetch]]** | %%Fetches the data from a registered node.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:logical_end|logical_end]]** | %%Returns the last logical object.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:manager_focus|manager_focus]]** //**(get, set)**// | %%The element which is currently focused by this manager.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:pop_history_stack|pop_history_stack]]** | %%Removes the uppermost history element, and focuses the previous one.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:redirect|redirect]]** //**(get, set)**// | %%Add another manager to serve the move requests.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:request_move|request_move]]** | %%Returns the object in the %%''direction''%% from %%''child''%%.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:request_subchild|request_subchild]]** | %%Returns the widget in the direction next.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:reset_history|reset_history]]** | %%Resets the history stack of this manager object. This means the uppermost element will be unfocused, and all other elements will be removed from the remembered list.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:root|root]]** //**(get, set)**// | %%Root node for all logical sub-trees.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:setup_on_first_touch|setup_on_first_touch]]** | %%Called when this manager is set as redirect.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:viewport_elements|viewport_elements]]** //**(get)**// | |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:property:automatic_theme_rotation|automatic_theme_rotation]]** //**(get, set)**// | %%This flag tells if this object will automatically mirror the rotation changes of the window to this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**// | %%Whether this object updates its size hints automatically.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_freeze|calc_freeze]]** | %%Freezes the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_parts_extends|calc_parts_extends]]** | %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_size_min|calc_size_min]]** | %%Calculates the minimum required size for a given layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_thaw|calc_thaw]]** | %%Thaws the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:layout_base:method:factory_bind|factory_bind]]** | %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:finger_size_multiplier|finger_size_multiplier]]** //**(get, set)**// | %%Set a multiplier for applying finger size to the layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:group_calculate|group_calculate]]** | %%Triggers an immediate recalculation of this object's geometry.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:group_data|group_data]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_max|group_size_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_min|group_size_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:l10n_text|l10n_text]]** //**(get, set)**// | %%A unique string to be translated.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:message_send|message_send]]** | %%Sends an (Edje) message to a given Edje object%% |
+| | **[[:develop:api:efl:ui:layout_base:property:part_exist|part_exist]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_add|signal_callback_add]]** | %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_del|signal_callback_del]]** | %%Removes a signal-triggered callback from an object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_emit|signal_emit]]** | %%Sends/emits an Edje signal to this layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_process|signal_process]]** | %%Processes an object's messages and signals queue.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:theme|theme]]** //**(get, set)**// | %%The theme of this widget, defines which edje group will be used.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:theme_rotation_apply|theme_rotation_apply]]** | %%Apply a new rotation value to this object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:calc_force|calc_force]]** | %%Forces a Size/Geometry calculation.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:on_focus_update|on_focus_update]]** | %%Virtual function handling focus in/out events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:part_get|part_get]]** | %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+^ [[:develop:api:efl:ui:scrollable|Efl.Ui.Scrollable]] ^^^
+| | **[[:develop:api:efl:ui:scrollable:property:bounce_enabled|bounce_enabled]]** //**(get, set)**// | %%When scrolling, the scroller may "bounce" when reaching the edge of the content object. This is a visual way to indicate the end has been reached. This is enabled by default for both axes. This property determines if bouncing is enabled in each axis. When bouncing is disabled, scrolling just stops upon reaching the end of the content.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:content_pos|content_pos]]** //**(get, set)**// | %%Position of the content inside the scroller.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:content_size|content_size]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:scrollable:property:gravity|gravity]]** //**(get, set)**// | %%Control scrolling gravity on the scrollable.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:looping|looping]]** //**(get, set)**// | %%Controls infinite looping for a scroller.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:movement_block|movement_block]]** //**(get, set)**// | %%Blocking of scrolling (per axis).%% |
+| | **[[:develop:api:efl:ui:scrollable:method:scroll|scroll]]** | %%Show a specific virtual region within the scroller content object.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:scroll_freeze|scroll_freeze]]** //**(get, set)**// | %%Freezes scrolling movement (by input of a user). Unlike %%[[:develop:api:efl:ui:scrollable:property:movement_block|Efl.Ui.Scrollable.movement_block]]%%, this property freezes bidirectionally. If you want to freeze in only one direction, see %%[[:develop:api:efl:ui:scrollable:property:movement_block|Efl.Ui.Scrollable.movement_block]]%%.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:scroll_hold|scroll_hold]]** //**(get, set)**// | %%When hold turns on, it only scrolls by holding action.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:step_size|step_size]]** //**(get, set)**// | %%Amount to scroll in response to cursor key presses.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:viewport_geometry|viewport_geometry]]** //**(get)**// | |
+^ [[:develop:api:efl:ui:scrollbar|Efl.Ui.Scrollbar]] ^^^
+| | **[[:develop:api:efl:ui:scrollbar:property:bar_mode|bar_mode]]** //**(get, set)**// | %%Scrollbar visibility mode, for each of the scrollbars.%% |
+| | **[[:develop:api:efl:ui:scrollbar:property:bar_position|bar_position]]** //**(get, set)**// | %%Position of the thumb (the draggable zone) inside the scrollbar. It is calculated based on current position of the viewport inside the total content.%% |
+| | **[[:develop:api:efl:ui:scrollbar:property:bar_size|bar_size]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:scrollbar:method:bar_visibility_update|bar_visibility_update]]** | %%Update bar visibility.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:property:position|position]]** //**(get, set)**// | %%The 2D position of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:size|size]]** //**(get, set)**// | %%The 2D size of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| | **[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_input_event_handler|widget_input_event_handler]]** | %%Virtual function handling input events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] ^^^
+| | **[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]** | %%A circular dependency between parts of the object was found.%% |
+| | **[[:develop:api:efl:layout:calc:event:recalc|recalc]]** | %%The layout was recalculated.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] ^^^
+| | **[[:develop:api:efl:ui:focus:manager:event:coords_dirty|coords,dirty]]** | %%Cached relationship calculation results have been invalidated.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:dirty_logic_freeze_changed|dirty_logic_freeze,changed]]** | %%Called when this focus manager is frozen or thawed, even_info being %%''true''%% indicates that it is now frozen, %%''false''%% indicates that it is thawed.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:flush_pre|flush,pre]]** | %%After this event, the manager object will calculate relations in the graph. Can be used to add / remove children in a lazy fashion.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:manager_focus_changed|manager_focus,changed]]** | %%The manager_focus property has changed. The previously focused object is passed as an event argument.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:redirect_changed|redirect,changed]]** | %%Redirect object has changed, the old manager is passed as an event argument.%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:item_clickable|Efl.Ui.Item_Clickable]] ^^^
+| | **[[:develop:api:efl:ui:item_clickable:event:item_clicked|item,clicked]]** | %%A %%''clicked''%% event occurred over an item.%% |
+| | **[[:develop:api:efl:ui:item_clickable:event:item_clicked_any|item,clicked,any]]** | %%A %%''clicked,any''%% event occurred over an item.%% |
+| | **[[:develop:api:efl:ui:item_clickable:event:item_longpressed|item,longpressed]]** | %%A %%''longpressed''%% event occurred over an item.%% |
+| | **[[:develop:api:efl:ui:item_clickable:event:item_pressed|item,pressed]]** | %%A %%''pressed''%% event occurred over an item.%% |
+| | **[[:develop:api:efl:ui:item_clickable:event:item_unpressed|item,unpressed]]** | %%An %%''unpressed''%% event occurred over an item.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:event:theme_changed|theme,changed]]** | %%Called when theme changed%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:scrollable|Efl.Ui.Scrollable]] ^^^
+| | **[[:develop:api:efl:ui:scrollable:event:edge_down|edge,down]]** | %%Called when hitting the bottom edge.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:edge_left|edge,left]]** | %%Called when hitting the left edge.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:edge_right|edge,right]]** | %%Called when hitting the right edge.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:edge_up|edge,up]]** | %%Called when hitting the top edge.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_anim_finished|scroll,anim,finished]]** | %%Called when scroll animation finishes.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_anim_started|scroll,anim,started]]** | %%Called when scroll animation starts.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_changed|scroll,changed]]** | %%Called when scrolling.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_down|scroll,down]]** | %%Called when scrolling downwards.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_drag_finished|scroll,drag,finished]]** | %%Called when scroll drag finishes.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_drag_started|scroll,drag,started]]** | %%Called when scroll drag starts.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_finished|scroll,finished]]** | %%Called when scroll operation finishes.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_left|scroll,left]]** | %%Called when scrolling left.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_right|scroll,right]]** | %%Called when scrolling right.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_started|scroll,started]]** | %%Called when scroll operation starts.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_up|scroll,up]]** | %%Called when scrolling upwards.%% |
+^ [[:develop:api:efl:ui:scrollbar|Efl.Ui.Scrollbar]] ^^^
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_dragged|bar,dragged]]** | %%Emitted when thumb is dragged.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_hide|bar,hide]]** | %%Emitted when scrollbar is hidden.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_pos_changed|bar,pos,changed]]** | %%Emitted when thumb position has changed.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_pressed|bar,pressed]]** | %%Emitted when thumb is pressed.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_show|bar,show]]** | %%Emitted when scrollbar is shown.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_size_changed|bar,size,changed]]** | %%Emitted when thumb size has changed.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_unpressed|bar,unpressed]]** | %%Emitted when thumb is unpressed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:single_selectable|Efl.Ui.Single_Selectable]] ^^^
+| | **[[:develop:api:efl:ui:single_selectable:event:selection_changed|selection_changed]]** | %%Emitted when there is a change in the selection state. This event will collect all the item selection change events that are happening within one loop iteration. This means, you will only get this event once, even if a lot of items have changed. If you are interested in detailed changes, subscribe to the individual %%[[:develop:api:efl:ui:selectable:event:selected,changed|Efl.Ui.Selectable.selected,changed]]%% events of each item.%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/all_select.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/all_select.txt
new file mode 100644
index 00000000..5e7ed52c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/all_select.txt
@@ -0,0 +1,25 @@
+~~Title: Efl.Ui.Collection.all_select~~
+====== Efl.Ui.Collection.all_select ======
+
+===== Description =====
+
+%%Select all %%[[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]]%%%%
+{{page>:develop:api-include:efl:ui:collection:method:all_select:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:multi_selectable:method:all_select|Efl.Ui.Multi_Selectable.all_select]].//===== Signature =====
+
+
+all_select @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_ui_selectable_all_select(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:multi_selectable:method:all_select|Efl.Ui.Multi_Selectable.all_select]]
+ * [[:develop:api:efl:ui:collection:method:all_select|Efl.Ui.Collection.all_select]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/all_unselect.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/all_unselect.txt
new file mode 100644
index 00000000..3bfb1ffd
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/all_unselect.txt
@@ -0,0 +1,25 @@
+~~Title: Efl.Ui.Collection.all_unselect~~
+====== Efl.Ui.Collection.all_unselect ======
+
+===== Description =====
+
+%%Unselect all %%[[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]]%%%%
+{{page>:develop:api-include:efl:ui:collection:method:all_unselect:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:multi_selectable:method:all_unselect|Efl.Ui.Multi_Selectable.all_unselect]].//===== Signature =====
+
+
+all_unselect @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_ui_selectable_all_unselect(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:multi_selectable:method:all_unselect|Efl.Ui.Multi_Selectable.all_unselect]]
+ * [[:develop:api:efl:ui:collection:method:all_unselect|Efl.Ui.Collection.all_unselect]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/constructor.txt
new file mode 100644
index 00000000..e6a69219
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Collection.constructor~~
+====== Efl.Ui.Collection.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:collection:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/content_count.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/content_count.txt
new file mode 100644
index 00000000..523cef86
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/content_count.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Collection.content_count~~
+====== Efl.Ui.Collection.content_count ======
+
+===== Description =====
+
+%%Returns the number of contained sub-objects.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:collection:method:content_count:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:content_count|Efl.Container.content_count]].//===== Signature =====
+
+
+content_count @pure_virtual {
+ return: int;
+}
+
+
+===== C signature =====
+
+
+int efl_content_count(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:container:method:content_count|Efl.Container.content_count]]
+ * [[:develop:api:efl:canvas:layout:method:content_count|Efl.Canvas.Layout.content_count]]
+ * [[:develop:api:efl:ui:tab_bar:method:content_count|Efl.Ui.Tab_Bar.content_count]]
+ * [[:develop:api:efl:ui:table:method:content_count|Efl.Ui.Table.content_count]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:content_count|Efl.Canvas.Layout_Part_Table.content_count]]
+ * [[:develop:api:efl:ui:layout_part_table:method:content_count|Efl.Ui.Layout_Part_Table.content_count]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:content_count|Efl.Canvas.Layout_Part_Invalid.content_count]]
+ * [[:develop:api:efl:ui:flip:method:content_count|Efl.Ui.Flip.content_count]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:content_count|Efl.Canvas.Layout_Part_Box.content_count]]
+ * [[:develop:api:efl:ui:box:method:content_count|Efl.Ui.Box.content_count]]
+ * [[:develop:api:efl:ui:group_item:method:content_count|Efl.Ui.Group_Item.content_count]]
+ * [[:develop:api:efl:ui:collection:method:content_count|Efl.Ui.Collection.content_count]]
+ * [[:develop:api:efl:ui:layout_part_box:method:content_count|Efl.Ui.Layout_Part_Box.content_count]]
+ * [[:develop:api:efl:ui:spotlight:container:method:content_count|Efl.Ui.Spotlight.Container.content_count]]
+ * [[:develop:api:efl:ui:relative_layout:method:content_count|Efl.Ui.Relative_Layout.content_count]]
+ * [[:develop:api:efl:ui:layout_base:method:content_count|Efl.Ui.Layout_Base.content_count]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/content_iterate.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/content_iterate.txt
new file mode 100644
index 00000000..89ed6a81
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/content_iterate.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Collection.content_iterate~~
+====== Efl.Ui.Collection.content_iterate ======
+
+===== Description =====
+
+%%Begin iterating over this object's contents.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:collection:method:content_iterate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:content_iterate|Efl.Container.content_iterate]].//===== Signature =====
+
+
+content_iterate @pure_virtual {
+ return: iterator @no_unused;
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_content_iterate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:container:method:content_iterate|Efl.Container.content_iterate]]
+ * [[:develop:api:efl:canvas:layout:method:content_iterate|Efl.Canvas.Layout.content_iterate]]
+ * [[:develop:api:efl:ui:tab_bar:method:content_iterate|Efl.Ui.Tab_Bar.content_iterate]]
+ * [[:develop:api:efl:ui:table:method:content_iterate|Efl.Ui.Table.content_iterate]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:content_iterate|Efl.Canvas.Layout_Part_Table.content_iterate]]
+ * [[:develop:api:efl:ui:layout_part_table:method:content_iterate|Efl.Ui.Layout_Part_Table.content_iterate]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:content_iterate|Efl.Canvas.Layout_Part_Invalid.content_iterate]]
+ * [[:develop:api:efl:ui:flip:method:content_iterate|Efl.Ui.Flip.content_iterate]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:content_iterate|Efl.Canvas.Layout_Part_Box.content_iterate]]
+ * [[:develop:api:efl:ui:box:method:content_iterate|Efl.Ui.Box.content_iterate]]
+ * [[:develop:api:efl:ui:group_item:method:content_iterate|Efl.Ui.Group_Item.content_iterate]]
+ * [[:develop:api:efl:ui:collection:method:content_iterate|Efl.Ui.Collection.content_iterate]]
+ * [[:develop:api:efl:ui:layout_part_box:method:content_iterate|Efl.Ui.Layout_Part_Box.content_iterate]]
+ * [[:develop:api:efl:ui:spotlight:container:method:content_iterate|Efl.Ui.Spotlight.Container.content_iterate]]
+ * [[:develop:api:efl:ui:relative_layout:method:content_iterate|Efl.Ui.Relative_Layout.content_iterate]]
+ * [[:develop:api:efl:ui:layout_base:method:content_iterate|Efl.Ui.Layout_Base.content_iterate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/destructor.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/destructor.txt
new file mode 100644
index 00000000..b32a9d76
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Ui.Collection.destructor~~
+====== Efl.Ui.Collection.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:collection:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/finalize.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/finalize.txt
new file mode 100644
index 00000000..d48dc530
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/finalize.txt
@@ -0,0 +1,91 @@
+~~Title: Efl.Ui.Collection.finalize~~
+====== Efl.Ui.Collection.finalize ======
+
+===== Description =====
+
+%%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+%%Use this method to delay expensive operations until user configuration has finished, to avoid building the object in a "default" state in the constructor, just to have to throw it all away because a user configuration (a property being set, for example) requires a different state. This is the last call inside efl_add() and will set %%[[:develop:api:efl:object:property:finalized|Efl.Object.finalized]]%% to %%''true''%% once it returns. This is an optimization and implementing this method is optional if you already perform all your initialization in the %%[[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]%% method. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:collection:method:finalize:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:finalize|Efl.Object.finalize]].//===== Signature =====
+
+
+finalize {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_finalize(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]
+ * [[:develop:api:efl:loop_handler:method:finalize|Efl.Loop_Handler.finalize]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:finalize|Efl.Ui.Position_Manager.Grid.finalize]]
+ * [[:develop:api:efl:canvas:layout_part:method:finalize|Efl.Canvas.Layout_Part.finalize]]
+ * [[:develop:api:efl:net:server_udp_client:method:finalize|Efl.Net.Server_Udp_Client.finalize]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:finalize|Efl.Ui.Widget_Part_Bg.finalize]]
+ * [[:develop:api:efl:ui:layout_part_bg:method:finalize|Efl.Ui.Layout_Part_Bg.finalize]]
+ * [[:develop:api:efl:io:buffered_stream:method:finalize|Efl.Io.Buffered_Stream.finalize]]
+ * [[:develop:api:efl:net:dialer_simple:method:finalize|Efl.Net.Dialer_Simple.finalize]]
+ * [[:develop:api:efl:io:file:method:finalize|Efl.Io.File.finalize]]
+ * [[:develop:api:efl:net:server_fd:method:finalize|Efl.Net.Server_Fd.finalize]]
+ * [[:develop:api:efl:io:stderr:method:finalize|Efl.Io.Stderr.finalize]]
+ * [[:develop:api:efl:io:stdin:method:finalize|Efl.Io.Stdin.finalize]]
+ * [[:develop:api:efl:io:stdout:method:finalize|Efl.Io.Stdout.finalize]]
+ * [[:develop:api:efl:net:socket_fd:method:finalize|Efl.Net.Socket_Fd.finalize]]
+ * [[:develop:api:efl:net:socket_ssl:method:finalize|Efl.Net.Socket_Ssl.finalize]]
+ * [[:develop:api:efl:net:dialer_ssl:method:finalize|Efl.Net.Dialer_Ssl.finalize]]
+ * [[:develop:api:efl:canvas:object:method:finalize|Efl.Canvas.Object.finalize]]
+ * [[:develop:api:efl:canvas:image_internal:method:finalize|Efl.Canvas.Image_Internal.finalize]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:finalize|Efl.Ui.Internal.Text.Interactive.finalize]]
+ * [[:develop:api:efl:ui:widget:method:finalize|Efl.Ui.Widget.finalize]]
+ * [[:develop:api:efl:ui:win:method:finalize|Efl.Ui.Win.finalize]]
+ * [[:develop:api:efl:ui:win_socket:method:finalize|Efl.Ui.Win_Socket.finalize]]
+ * [[:develop:api:efl:ui:win_inlined:method:finalize|Efl.Ui.Win_Inlined.finalize]]
+ * [[:develop:api:efl:ui:layout_base:method:finalize|Efl.Ui.Layout_Base.finalize]]
+ * [[:develop:api:efl:ui:text:method:finalize|Efl.Ui.Text.finalize]]
+ * [[:develop:api:efl:ui:tab_bar:method:finalize|Efl.Ui.Tab_Bar.finalize]]
+ * [[:develop:api:efl:ui:item:method:finalize|Efl.Ui.Item.finalize]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:finalize|Efl.Ui.List_Placeholder_Item.finalize]]
+ * [[:develop:api:elm:code_widget:method:finalize|Elm.Code_Widget.finalize]]
+ * [[:develop:api:efl:ui:scroller:method:finalize|Efl.Ui.Scroller.finalize]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:finalize|Efl.Ui.Internal_Text_Scroller.finalize]]
+ * [[:develop:api:efl:ui:collection:method:finalize|Efl.Ui.Collection.finalize]]
+ * [[:develop:api:efl:ui:spotlight:container:method:finalize|Efl.Ui.Spotlight.Container.finalize]]
+ * [[:develop:api:efl:ui:tab_pager:method:finalize|Efl.Ui.Tab_Pager.finalize]]
+ * [[:develop:api:efl:ui:bg:method:finalize|Efl.Ui.Bg.finalize]]
+ * [[:develop:api:efl:canvas:vg:object:method:finalize|Efl.Canvas.Vg.Object.finalize]]
+ * [[:develop:api:efl:loop_timer:method:finalize|Efl.Loop_Timer.finalize]]
+ * [[:develop:api:eldbus:model:method:finalize|Eldbus.Model.finalize]]
+ * [[:develop:api:eldbus:model:proxy:method:finalize|Eldbus.Model.Proxy.finalize]]
+ * [[:develop:api:eldbus:model:arguments:method:finalize|Eldbus.Model.Arguments.finalize]]
+ * [[:develop:api:eldbus:model:method:method:finalize|Eldbus.Model.Method.finalize]]
+ * [[:develop:api:eldbus:model:object:method:finalize|Eldbus.Model.Object.finalize]]
+ * [[:develop:api:efl:composite_model:method:finalize|Efl.Composite_Model.finalize]]
+ * [[:develop:api:efl:container_model:method:finalize|Efl.Container_Model.finalize]]
+ * [[:develop:api:efl:ui:view_model:method:finalize|Efl.Ui.View_Model.finalize]]
+ * [[:develop:api:efl:io:model:method:finalize|Efl.Io.Model.finalize]]
+ * [[:develop:api:efl:net:server_simple:method:finalize|Efl.Net.Server_Simple.finalize]]
+ * [[:develop:api:efl:net:control:manager:method:finalize|Efl.Net.Control.Manager.finalize]]
+ * [[:develop:api:efl:ui:widget_factory:method:finalize|Efl.Ui.Widget_Factory.finalize]]
+ * [[:develop:api:efl:ui:caching_factory:method:finalize|Efl.Ui.Caching_Factory.finalize]]
+ * [[:develop:api:efl:thread:method:finalize|Efl.Thread.finalize]]
+ * [[:develop:api:efl:net:session:method:finalize|Efl.Net.Session.finalize]]
+ * [[:develop:api:efl:io:copier:method:finalize|Efl.Io.Copier.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:finalize|Efl.Ui.Focus.Manager_Calc.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:finalize|Efl.Ui.Focus.Manager_Root_Focus.finalize]]
+ * [[:develop:api:evas:canvas3d:node:method:finalize|Evas.Canvas3D.Node.finalize]]
+ * [[:develop:api:efl:net:ssl:context:method:finalize|Efl.Net.Ssl.Context.finalize]]
+ * [[:develop:api:efl:io:buffer:method:finalize|Efl.Io.Buffer.finalize]]
+ * [[:develop:api:efl:net:ip_address:method:finalize|Efl.Net.Ip_Address.finalize]]
+ * [[:develop:api:efl:io:queue:method:finalize|Efl.Io.Queue.finalize]]
+ * [[:develop:api:ector:renderer:method:finalize|Ector.Renderer.finalize]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/focus_manager_create.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/focus_manager_create.txt
new file mode 100644
index 00000000..31347ef6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/focus_manager_create.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Collection.focus_manager_create~~
+====== Efl.Ui.Collection.focus_manager_create ======
+
+===== Description =====
+
+%%If the widget needs a focus manager, this function will be called.%%
+
+%%It can be used and overridden to inject your own manager or set custom options on the focus manager.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:collection:method:focus_manager_create:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget_focus_manager:method:focus_manager_create|Efl.Ui.Widget_Focus_Manager.focus_manager_create]].//===== Signature =====
+
+
+focus_manager_create @protected @pure_virtual {
+ params {
+ @in root: Efl.Ui.Focus.Object;
+ }
+ return: Efl.Ui.Focus.Manager;
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Focus_Manager *efl_ui_widget_focus_manager_create(Eo *obj, Efl_Ui_Focus_Object *root);
+
+
+===== Parameters =====
+
+ * **root** //(in)// - %%The logical root object for focus.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget_focus_manager:method:focus_manager_create|Efl.Ui.Widget_Focus_Manager.focus_manager_create]]
+ * [[:develop:api:efl:ui:win:method:focus_manager_create|Efl.Ui.Win.focus_manager_create]]
+ * [[:develop:api:efl:ui:collection_view:method:focus_manager_create|Efl.Ui.Collection_View.focus_manager_create]]
+ * [[:develop:api:efl:ui:scroller:method:focus_manager_create|Efl.Ui.Scroller.focus_manager_create]]
+ * [[:develop:api:efl:ui:collection:method:focus_manager_create|Efl.Ui.Collection.focus_manager_create]]
+ * [[:develop:api:elm:interface_scrollable:method:focus_manager_create|Elm.Interface_Scrollable.focus_manager_create]]
+ * [[:develop:api:efl:ui:focus:layer:method:focus_manager_create|Efl.Ui.Focus.Layer.focus_manager_create]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/focus_state_apply.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/focus_state_apply.txt
new file mode 100644
index 00000000..289c9529
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/focus_state_apply.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Collection.focus_state_apply~~
+====== Efl.Ui.Collection.focus_state_apply ======
+
+===== Description =====
+
+%%Apply a new focus state on the widget.%%
+
+%%This method is called internally by %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%%. Override it to change how a widget interacts with its focus manager. If a widget desires to change the applied configuration, it has to modify %%''configured_state''%% in addition to any internal changes.%%
+
+%%The default implementation (when this method is not overridden) applies %%''configured_state''%% using the %%''manager''%% contained inside.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:collection:method:focus_state_apply:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:focus_state_apply|Efl.Ui.Widget.focus_state_apply]].//===== Signature =====
+
+
+focus_state_apply @protected {
+ params {
+ @in current_state: Efl.Ui.Widget_Focus_State;
+ @inout configured_state: Efl.Ui.Widget_Focus_State;
+ @in redirect: Efl.Ui.Widget;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_focus_state_apply(Eo *obj, Efl_Ui_Widget_Focus_State current_state, Efl_Ui_Widget_Focus_State configured_state, Efl_Ui_Widget *redirect);
+
+
+===== Parameters =====
+
+ * **current_state** //(in)// - %%The current focus configuration of the widget.%%
+ * **configured_state** //(inout)// - %%The new configuration being set on the widget.%%
+ * **redirect** //(in)// - %%A redirect object if there is any%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:focus_state_apply|Efl.Ui.Widget.focus_state_apply]]
+ * [[:develop:api:efl:ui:collection_view:method:focus_state_apply|Efl.Ui.Collection_View.focus_state_apply]]
+ * [[:develop:api:efl:ui:scroller:method:focus_state_apply|Efl.Ui.Scroller.focus_state_apply]]
+ * [[:develop:api:efl:ui:collection:method:focus_state_apply|Efl.Ui.Collection.focus_state_apply]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/invalidate.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/invalidate.txt
new file mode 100644
index 00000000..08106817
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/invalidate.txt
@@ -0,0 +1,74 @@
+~~Title: Efl.Ui.Collection.invalidate~~
+====== Efl.Ui.Collection.invalidate ======
+
+===== Description =====
+
+%%Implement this method to perform special actions when your object loses its parent, if you need to.%%
+
+%%It is called when the parent reference is lost or set to %%''NULL''%%. After this call returns, %%[[:develop:api:efl:object:property:invalidated|Efl.Object.invalidated]]%% is set to %%''true''%%. This allows a simpler tear down of complex hierarchies, by performing object destruction in two steps, first all object relationships are broken and then the isolated objects are destroyed. Performing everything in the %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%% can sometimes lead to deadlocks, but implementing this method is optional if this is not your case. When an object with a parent is destroyed, it first receives a call to %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% and then to %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:collection:method:invalidate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:invalidate|Efl.Object.invalidate]].//===== Signature =====
+
+
+invalidate {}
+
+
+===== C signature =====
+
+
+void efl_invalidate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]
+ * [[:develop:api:efl:canvas:vg:node:method:invalidate|Efl.Canvas.Vg.Node.invalidate]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:invalidate|Efl.Ui.Position_Manager.Grid.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:manager_scroll:method:invalidate|Efl.Ui.Spotlight.Manager_Scroll.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:manager_stack:method:invalidate|Efl.Ui.Spotlight.Manager_Stack.invalidate]]
+ * [[:develop:api:efl:net:server_udp_client:method:invalidate|Efl.Net.Server_Udp_Client.invalidate]]
+ * [[:develop:api:efl:net:server_windows:method:invalidate|Efl.Net.Server_Windows.invalidate]]
+ * [[:develop:api:efl:io:buffered_stream:method:invalidate|Efl.Io.Buffered_Stream.invalidate]]
+ * [[:develop:api:efl:net:dialer_simple:method:invalidate|Efl.Net.Dialer_Simple.invalidate]]
+ * [[:develop:api:efl:loop_fd:method:invalidate|Efl.Loop_Fd.invalidate]]
+ * [[:develop:api:efl:net:server_ssl:method:invalidate|Efl.Net.Server_Ssl.invalidate]]
+ * [[:develop:api:efl:net:socket_fd:method:invalidate|Efl.Net.Socket_Fd.invalidate]]
+ * [[:develop:api:efl:net:dialer_udp:method:invalidate|Efl.Net.Dialer_Udp.invalidate]]
+ * [[:develop:api:efl:net:dialer_unix:method:invalidate|Efl.Net.Dialer_Unix.invalidate]]
+ * [[:develop:api:efl:net:dialer_tcp:method:invalidate|Efl.Net.Dialer_Tcp.invalidate]]
+ * [[:develop:api:efl:net:socket_ssl:method:invalidate|Efl.Net.Socket_Ssl.invalidate]]
+ * [[:develop:api:efl:net:dialer_ssl:method:invalidate|Efl.Net.Dialer_Ssl.invalidate]]
+ * [[:develop:api:efl:canvas:object:method:invalidate|Efl.Canvas.Object.invalidate]]
+ * [[:develop:api:efl:canvas:layout:method:invalidate|Efl.Canvas.Layout.invalidate]]
+ * [[:develop:api:efl:ui:widget:method:invalidate|Efl.Ui.Widget.invalidate]]
+ * [[:develop:api:efl:ui:table:method:invalidate|Efl.Ui.Table.invalidate]]
+ * [[:develop:api:efl:ui:box:method:invalidate|Efl.Ui.Box.invalidate]]
+ * [[:develop:api:efl:ui:image:method:invalidate|Efl.Ui.Image.invalidate]]
+ * [[:develop:api:efl:ui:layout_base:method:invalidate|Efl.Ui.Layout_Base.invalidate]]
+ * [[:develop:api:efl:ui:collection_view:method:invalidate|Efl.Ui.Collection_View.invalidate]]
+ * [[:develop:api:efl:ui:group_item:method:invalidate|Efl.Ui.Group_Item.invalidate]]
+ * [[:develop:api:efl:ui:collection:method:invalidate|Efl.Ui.Collection.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:container:method:invalidate|Efl.Ui.Spotlight.Container.invalidate]]
+ * [[:develop:api:efl:ui:relative_layout:method:invalidate|Efl.Ui.Relative_Layout.invalidate]]
+ * [[:develop:api:efl:canvas:vg:object:method:invalidate|Efl.Canvas.Vg.Object.invalidate]]
+ * [[:develop:api:efl:loop_model:method:invalidate|Efl.Loop_Model.invalidate]]
+ * [[:develop:api:eldbus:model:method:invalidate|Eldbus.Model.invalidate]]
+ * [[:develop:api:eldbus:model:connection:method:invalidate|Eldbus.Model.Connection.invalidate]]
+ * [[:develop:api:eldbus:model:proxy:method:invalidate|Eldbus.Model.Proxy.invalidate]]
+ * [[:develop:api:eldbus:model:arguments:method:invalidate|Eldbus.Model.Arguments.invalidate]]
+ * [[:develop:api:eldbus:model:signal:method:invalidate|Eldbus.Model.Signal.invalidate]]
+ * [[:develop:api:eldbus:model:object:method:invalidate|Eldbus.Model.Object.invalidate]]
+ * [[:develop:api:efl:composite_model:method:invalidate|Efl.Composite_Model.invalidate]]
+ * [[:develop:api:efl:ui:select_model:method:invalidate|Efl.Ui.Select_Model.invalidate]]
+ * [[:develop:api:efl:io:model:method:invalidate|Efl.Io.Model.invalidate]]
+ * [[:develop:api:efl:net:dialer_websocket:method:invalidate|Efl.Net.Dialer_Websocket.invalidate]]
+ * [[:develop:api:efl:net:server_simple:method:invalidate|Efl.Net.Server_Simple.invalidate]]
+ * [[:develop:api:efl:ui:caching_factory:method:invalidate|Efl.Ui.Caching_Factory.invalidate]]
+ * [[:develop:api:efl:loop:method:invalidate|Efl.Loop.invalidate]]
+ * [[:develop:api:efl:net:dialer_http:method:invalidate|Efl.Net.Dialer_Http.invalidate]]
+ * [[:develop:api:efl:io:copier:method:invalidate|Efl.Io.Copier.invalidate]]
+ * [[:develop:api:efl:ui:position_manager:list:method:invalidate|Efl.Ui.Position_Manager.List.invalidate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/item_scroll.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/item_scroll.txt
new file mode 100644
index 00000000..06bdc3e3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/item_scroll.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.Collection.item_scroll~~
+====== Efl.Ui.Collection.item_scroll ======
+
+===== Description =====
+
+%%Brings the passed item into the viewport.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:collection:method:item_scroll:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+item_scroll {
+ params {
+ @in item: Efl.Ui.Item;
+ @in animation: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_collection_item_scroll(Eo *obj, Efl_Ui_Item *item, Eina_Bool animation);
+
+
+===== Parameters =====
+
+ * **item** //(in)// - %%The target to move into view.%%
+ * **animation** //(in)// - %%If you want to have an animated transition.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:collection:method:item_scroll|Efl.Ui.Collection.item_scroll]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/item_scroll_align.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/item_scroll_align.txt
new file mode 100644
index 00000000..b7f7e670
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/item_scroll_align.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Collection.item_scroll_align~~
+====== Efl.Ui.Collection.item_scroll_align ======
+
+===== Description =====
+
+%%Brings the passed item into the viewport and align it.%%
+
+%%%%''align''%% selects the final position of the object inside the viewport. 0.0 will move the object to the first visible position inside the viewport, 1.0 will move it to the last visible position, and values in between will move it accordingly to positions in between, along the scrolling axis.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:collection:method:item_scroll_align:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+item_scroll_align {
+ params {
+ @in item: Efl.Ui.Item;
+ @in align: double;
+ @in animation: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_collection_item_scroll_align(Eo *obj, Efl_Ui_Item *item, double align, Eina_Bool animation);
+
+
+===== Parameters =====
+
+ * **item** //(in)// - %%The target to move into view.%%
+ * **align** //(in)// - %%0.0 to have this item at the upper or left side of the viewport, 1.0 to have this item at the lower or right side of the viewport.%%
+ * **animation** //(in)// - %%If you want to have an animated transition.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:collection:method:item_scroll_align|Efl.Ui.Collection.item_scroll_align]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/move.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/move.txt
new file mode 100644
index 00000000..f5837d60
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/move.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Collection.move~~
+====== Efl.Ui.Collection.move ======
+
+===== Description =====
+
+%%Moves the focus in the given direction to the next regular widget.%%
+
+%%This call flushes all changes. This means all changes since last flush are computed.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:collection:method:move:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:focus:manager_sub:method:move|Efl.Ui.Focus.Manager.move]].//===== Signature =====
+
+
+move @pure_virtual {
+ params {
+ @in direction: Efl.Ui.Focus.Direction;
+ }
+ return: Efl.Ui.Focus.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Focus_Object *efl_ui_focus_manager_move(Eo *obj, Efl_Ui_Focus_Direction direction);
+
+
+===== Parameters =====
+
+ * **direction** //(in)// - %%The direction to move to.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:manager:method:move|Efl.Ui.Focus.Manager.move]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:move|Efl.Ui.Focus.Manager_Calc.move]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:move|Efl.Ui.Focus.Manager_Root_Focus.move]]
+ * [[:develop:api:efl:ui:focus:manager_sub:method:move|Efl.Ui.Focus.Manager_Sub.move]]
+ * [[:develop:api:efl:ui:collection_view:method:move|Efl.Ui.Collection_View.move]]
+ * [[:develop:api:efl:ui:collection:method:move|Efl.Ui.Collection.move]]
+ * [[:develop:api:efl:ui:focus:layer:method:move|Efl.Ui.Focus.Layer.move]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/pack.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/pack.txt
new file mode 100644
index 00000000..a0b0152d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/pack.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Ui.Collection.pack~~
+====== Efl.Ui.Collection.pack ======
+
+===== Description =====
+
+%%Adds a sub-object to this container.%%
+
+%%Depending on the container this will either fill in the default spot, replacing any already existing element or append to the end of the container if there is no default part.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:collection:method:pack:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack:method:pack|Efl.Pack.pack]].//===== Signature =====
+
+
+pack @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack(Eo *obj, Efl_Gfx_Entity *subobj);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%The object to pack.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack:method:pack|Efl.Pack.pack]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack|Efl.Ui.Tab_Bar.pack]]
+ * [[:develop:api:efl:ui:table:method:pack|Efl.Ui.Table.pack]]
+ * [[:develop:api:efl:ui:layout_part_table:method:pack|Efl.Ui.Layout_Part_Table.pack]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack|Efl.Canvas.Layout_Part_Invalid.pack]]
+ * [[:develop:api:efl:ui:flip:method:pack|Efl.Ui.Flip.pack]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack|Efl.Canvas.Layout_Part_Box.pack]]
+ * [[:develop:api:efl:ui:box:method:pack|Efl.Ui.Box.pack]]
+ * [[:develop:api:efl:ui:radio_box:method:pack|Efl.Ui.Radio_Box.pack]]
+ * [[:develop:api:efl:ui:group_item:method:pack|Efl.Ui.Group_Item.pack]]
+ * [[:develop:api:efl:ui:collection:method:pack|Efl.Ui.Collection.pack]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack|Efl.Ui.Layout_Part_Box.pack]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack|Efl.Ui.Spotlight.Container.pack]]
+ * [[:develop:api:efl:ui:relative_layout:method:pack|Efl.Ui.Relative_Layout.pack]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/pack_after.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/pack_after.txt
new file mode 100644
index 00000000..24564e7a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/pack_after.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Ui.Collection.pack_after~~
+====== Efl.Ui.Collection.pack_after ======
+
+===== Description =====
+
+%%Append an object after the %%''existing''%% sub-object.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+%%If %%''existing''%% is %%''NULL''%% this method behaves like %%[[:develop:api:efl:pack_linear:method:pack_end|Efl.Pack_Linear.pack_end]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:collection:method:pack_after:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_linear:method:pack_after|Efl.Pack_Linear.pack_after]].//===== Signature =====
+
+
+pack_after @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ @in existing: const(Efl.Gfx.Entity);
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_after(Eo *obj, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%Object to pack after %%''existing''%%.%%
+ * **existing** //(in)// - %%Existing reference sub-object. Must already belong to the container or be %%''NULL''%%.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_after|Efl.Pack_Linear.pack_after]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_after|Efl.Ui.Tab_Bar.pack_after]]
+ * [[:develop:api:efl:ui:flip:method:pack_after|Efl.Ui.Flip.pack_after]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_after|Efl.Canvas.Layout_Part_Box.pack_after]]
+ * [[:develop:api:efl:ui:box:method:pack_after|Efl.Ui.Box.pack_after]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_after|Efl.Ui.Radio_Box.pack_after]]
+ * [[:develop:api:efl:ui:group_item:method:pack_after|Efl.Ui.Group_Item.pack_after]]
+ * [[:develop:api:efl:ui:collection:method:pack_after|Efl.Ui.Collection.pack_after]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_after|Efl.Ui.Layout_Part_Box.pack_after]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_after|Efl.Canvas.Layout_Part_Invalid.pack_after]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_after|Efl.Ui.Spotlight.Container.pack_after]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_after|Efl.Ui.Tab_Pager.pack_after]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/pack_at.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/pack_at.txt
new file mode 100644
index 00000000..b7bf5f23
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/pack_at.txt
@@ -0,0 +1,54 @@
+~~Title: Efl.Ui.Collection.pack_at~~
+====== Efl.Ui.Collection.pack_at ======
+
+===== Description =====
+
+%%Inserts %%''subobj''%% BEFORE the sub-object at position %%''index''%%.%%
+
+%%%%''index''%% ranges from %%''-count''%% to %%''count-1''%%, where positive numbers go from first sub-object (%%''0''%%) to last (%%''count-1''%%), and negative numbers go from last sub-object (%%''-1''%%) to first (%%''-count''%%). %%''count''%% is the number of sub-objects currently in the container as returned by %%[[:develop:api:efl:container:method:content_count|Efl.Container.content_count]]%%.%%
+
+%%If %%''index''%% is less than %%''-count''%%, it will trigger %%[[:develop:api:efl:pack_linear:method:pack_begin|Efl.Pack_Linear.pack_begin]]%% whereas %%''index''%% greater than %%''count-1''%% will trigger %%[[:develop:api:efl:pack_linear:method:pack_end|Efl.Pack_Linear.pack_end]]%%.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:collection:method:pack_at:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_linear:method:pack_at|Efl.Pack_Linear.pack_at]].//===== Signature =====
+
+
+pack_at @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ @in index: int;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_at(Eo *obj, Efl_Gfx_Entity *subobj, int index);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%Object to pack.%%
+ * **index** //(in)// - %%Index of existing sub-object to insert BEFORE. Valid range is %%''-count''%% to %%''count-1''%%).%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_at|Efl.Pack_Linear.pack_at]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_at|Efl.Ui.Tab_Bar.pack_at]]
+ * [[:develop:api:efl:ui:flip:method:pack_at|Efl.Ui.Flip.pack_at]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_at|Efl.Canvas.Layout_Part_Box.pack_at]]
+ * [[:develop:api:efl:ui:box:method:pack_at|Efl.Ui.Box.pack_at]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_at|Efl.Ui.Radio_Box.pack_at]]
+ * [[:develop:api:efl:ui:group_item:method:pack_at|Efl.Ui.Group_Item.pack_at]]
+ * [[:develop:api:efl:ui:collection:method:pack_at|Efl.Ui.Collection.pack_at]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_at|Efl.Ui.Layout_Part_Box.pack_at]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_at|Efl.Canvas.Layout_Part_Invalid.pack_at]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_at|Efl.Ui.Spotlight.Container.pack_at]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_at|Efl.Ui.Tab_Pager.pack_at]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/pack_before.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/pack_before.txt
new file mode 100644
index 00000000..41fc5335
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/pack_before.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Ui.Collection.pack_before~~
+====== Efl.Ui.Collection.pack_before ======
+
+===== Description =====
+
+%%Prepend an object before the %%''existing''%% sub-object.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+%%If %%''existing''%% is %%''NULL''%% this method behaves like %%[[:develop:api:efl:pack_linear:method:pack_begin|Efl.Pack_Linear.pack_begin]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:collection:method:pack_before:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_linear:method:pack_before|Efl.Pack_Linear.pack_before]].//===== Signature =====
+
+
+pack_before @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ @in existing: const(Efl.Gfx.Entity);
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_before(Eo *obj, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%Object to pack before %%''existing''%%.%%
+ * **existing** //(in)// - %%Existing reference sub-object. Must already belong to the container or be %%''NULL''%%.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_before|Efl.Pack_Linear.pack_before]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_before|Efl.Ui.Tab_Bar.pack_before]]
+ * [[:develop:api:efl:ui:flip:method:pack_before|Efl.Ui.Flip.pack_before]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_before|Efl.Canvas.Layout_Part_Box.pack_before]]
+ * [[:develop:api:efl:ui:box:method:pack_before|Efl.Ui.Box.pack_before]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_before|Efl.Ui.Radio_Box.pack_before]]
+ * [[:develop:api:efl:ui:group_item:method:pack_before|Efl.Ui.Group_Item.pack_before]]
+ * [[:develop:api:efl:ui:collection:method:pack_before|Efl.Ui.Collection.pack_before]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_before|Efl.Ui.Layout_Part_Box.pack_before]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_before|Efl.Canvas.Layout_Part_Invalid.pack_before]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_before|Efl.Ui.Spotlight.Container.pack_before]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_before|Efl.Ui.Tab_Pager.pack_before]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/pack_begin.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/pack_begin.txt
new file mode 100644
index 00000000..55b65622
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/pack_begin.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Collection.pack_begin~~
+====== Efl.Ui.Collection.pack_begin ======
+
+===== Description =====
+
+%%Prepend an object at the beginning of this container.%%
+
+%%This is the same as %%[[:develop:api:efl:pack_linear:method:pack_at|Efl.Pack_Linear.pack_at]]%% with a %%''0''%% index.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:collection:method:pack_begin:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_linear:method:pack_begin|Efl.Pack_Linear.pack_begin]].//===== Signature =====
+
+
+pack_begin @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_begin(Eo *obj, Efl_Gfx_Entity *subobj);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%Object to pack at the beginning.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_begin|Efl.Pack_Linear.pack_begin]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_begin|Efl.Ui.Tab_Bar.pack_begin]]
+ * [[:develop:api:efl:ui:flip:method:pack_begin|Efl.Ui.Flip.pack_begin]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_begin|Efl.Canvas.Layout_Part_Box.pack_begin]]
+ * [[:develop:api:efl:ui:box:method:pack_begin|Efl.Ui.Box.pack_begin]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_begin|Efl.Ui.Radio_Box.pack_begin]]
+ * [[:develop:api:efl:ui:group_item:method:pack_begin|Efl.Ui.Group_Item.pack_begin]]
+ * [[:develop:api:efl:ui:collection:method:pack_begin|Efl.Ui.Collection.pack_begin]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_begin|Efl.Ui.Layout_Part_Box.pack_begin]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_begin|Efl.Canvas.Layout_Part_Invalid.pack_begin]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_begin|Efl.Ui.Spotlight.Container.pack_begin]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_begin|Efl.Ui.Tab_Pager.pack_begin]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/pack_clear.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/pack_clear.txt
new file mode 100644
index 00000000..89bfa780
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/pack_clear.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Collection.pack_clear~~
+====== Efl.Ui.Collection.pack_clear ======
+
+===== Description =====
+
+%%Removes all packed sub-objects and unreferences them.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:collection:method:pack_clear:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack:method:pack_clear|Efl.Pack.pack_clear]].//===== Signature =====
+
+
+pack_clear @pure_virtual {
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_clear(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack:method:pack_clear|Efl.Pack.pack_clear]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_clear|Efl.Ui.Tab_Bar.pack_clear]]
+ * [[:develop:api:efl:ui:table:method:pack_clear|Efl.Ui.Table.pack_clear]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:pack_clear|Efl.Canvas.Layout_Part_Table.pack_clear]]
+ * [[:develop:api:efl:ui:layout_part_table:method:pack_clear|Efl.Ui.Layout_Part_Table.pack_clear]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_clear|Efl.Canvas.Layout_Part_Invalid.pack_clear]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_clear|Efl.Canvas.Layout_Part_Box.pack_clear]]
+ * [[:develop:api:efl:ui:box:method:pack_clear|Efl.Ui.Box.pack_clear]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_clear|Efl.Ui.Radio_Box.pack_clear]]
+ * [[:develop:api:efl:ui:group_item:method:pack_clear|Efl.Ui.Group_Item.pack_clear]]
+ * [[:develop:api:efl:ui:collection:method:pack_clear|Efl.Ui.Collection.pack_clear]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_clear|Efl.Ui.Layout_Part_Box.pack_clear]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_clear|Efl.Ui.Spotlight.Container.pack_clear]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_clear|Efl.Ui.Tab_Pager.pack_clear]]
+ * [[:develop:api:efl:ui:relative_layout:method:pack_clear|Efl.Ui.Relative_Layout.pack_clear]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/pack_content_get.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/pack_content_get.txt
new file mode 100644
index 00000000..6feff5ec
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/pack_content_get.txt
@@ -0,0 +1,47 @@
+~~Title: Efl.Ui.Collection.pack_content_get~~
+====== Efl.Ui.Collection.pack_content_get ======
+
+===== Description =====
+
+%%Sub-object at a given %%''index''%% in this container.%%
+
+%%%%''index''%% ranges from %%''-count''%% to %%''count-1''%%, where positive numbers go from first sub-object (%%''0''%%) to last (%%''count-1''%%), and negative numbers go from last sub-object (%%''-1''%%) to first (%%''-count''%%). %%''count''%% is the number of sub-objects currently in the container as returned by %%[[:develop:api:efl:container:method:content_count|Efl.Container.content_count]]%%.%%
+
+%%If %%''index''%% is less than %%''-count''%%, it will return the first sub-object whereas %%''index''%% greater than %%''count-1''%% will return the last sub-object.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:collection:method:pack_content_get:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_linear:method:pack_content_get|Efl.Pack_Linear.pack_content_get]].//===== Signature =====
+
+
+pack_content_get @pure_virtual {
+ params {
+ @in index: int;
+ }
+ return: Efl.Gfx.Entity;
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_pack_content_get(Eo *obj, int index);
+
+
+===== Parameters =====
+
+ * **index** //(in)// - %%Index of the existing sub-object to retrieve. Valid range is %%''-count''%% to %%''count-1''%%.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_content_get|Efl.Pack_Linear.pack_content_get]]
+ * [[:develop:api:efl:ui:flip:method:pack_content_get|Efl.Ui.Flip.pack_content_get]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_content_get|Efl.Canvas.Layout_Part_Box.pack_content_get]]
+ * [[:develop:api:efl:ui:box:method:pack_content_get|Efl.Ui.Box.pack_content_get]]
+ * [[:develop:api:efl:ui:group_item:method:pack_content_get|Efl.Ui.Group_Item.pack_content_get]]
+ * [[:develop:api:efl:ui:collection:method:pack_content_get|Efl.Ui.Collection.pack_content_get]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_content_get|Efl.Ui.Layout_Part_Box.pack_content_get]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_content_get|Efl.Canvas.Layout_Part_Invalid.pack_content_get]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_content_get|Efl.Ui.Spotlight.Container.pack_content_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/pack_end.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/pack_end.txt
new file mode 100644
index 00000000..e351758c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/pack_end.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Collection.pack_end~~
+====== Efl.Ui.Collection.pack_end ======
+
+===== Description =====
+
+%%Append object at the end of this container.%%
+
+%%This is the same as %%[[:develop:api:efl:pack_linear:method:pack_at|Efl.Pack_Linear.pack_at]]%% with a %%''-1''%% index.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:collection:method:pack_end:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_linear:method:pack_end|Efl.Pack_Linear.pack_end]].//===== Signature =====
+
+
+pack_end @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_end(Eo *obj, Efl_Gfx_Entity *subobj);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%Object to pack at the end.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_end|Efl.Pack_Linear.pack_end]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_end|Efl.Ui.Tab_Bar.pack_end]]
+ * [[:develop:api:efl:ui:flip:method:pack_end|Efl.Ui.Flip.pack_end]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_end|Efl.Canvas.Layout_Part_Box.pack_end]]
+ * [[:develop:api:efl:ui:box:method:pack_end|Efl.Ui.Box.pack_end]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_end|Efl.Ui.Radio_Box.pack_end]]
+ * [[:develop:api:efl:ui:group_item:method:pack_end|Efl.Ui.Group_Item.pack_end]]
+ * [[:develop:api:efl:ui:collection:method:pack_end|Efl.Ui.Collection.pack_end]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_end|Efl.Ui.Layout_Part_Box.pack_end]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_end|Efl.Canvas.Layout_Part_Invalid.pack_end]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_end|Efl.Ui.Spotlight.Container.pack_end]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_end|Efl.Ui.Tab_Pager.pack_end]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/pack_index_get.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/pack_index_get.txt
new file mode 100644
index 00000000..31911cef
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/pack_index_get.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Collection.pack_index_get~~
+====== Efl.Ui.Collection.pack_index_get ======
+
+===== Description =====
+
+%%Get the index of a sub-object in this container.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:collection:method:pack_index_get:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_linear:method:pack_index_get|Efl.Pack_Linear.pack_index_get]].//===== Signature =====
+
+
+pack_index_get @pure_virtual {
+ params {
+ @in subobj: const(Efl.Gfx.Entity);
+ }
+ return: int (+1);
+}
+
+
+===== C signature =====
+
+
+int efl_pack_index_get(Eo *obj, const Efl_Gfx_Entity *subobj);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%An existing sub-object in this container.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_index_get|Efl.Pack_Linear.pack_index_get]]
+ * [[:develop:api:efl:ui:flip:method:pack_index_get|Efl.Ui.Flip.pack_index_get]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_index_get|Efl.Canvas.Layout_Part_Box.pack_index_get]]
+ * [[:develop:api:efl:ui:box:method:pack_index_get|Efl.Ui.Box.pack_index_get]]
+ * [[:develop:api:efl:ui:group_item:method:pack_index_get|Efl.Ui.Group_Item.pack_index_get]]
+ * [[:develop:api:efl:ui:collection:method:pack_index_get|Efl.Ui.Collection.pack_index_get]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_index_get|Efl.Ui.Layout_Part_Box.pack_index_get]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_index_get|Efl.Canvas.Layout_Part_Invalid.pack_index_get]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_index_get|Efl.Ui.Spotlight.Container.pack_index_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/pack_unpack_at.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/pack_unpack_at.txt
new file mode 100644
index 00000000..dfc7849c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/pack_unpack_at.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Collection.pack_unpack_at~~
+====== Efl.Ui.Collection.pack_unpack_at ======
+
+===== Description =====
+
+%%Pop out (remove) the sub-object at the specified %%''index''%%.%%
+
+%%%%''index''%% ranges from %%''-count''%% to %%''count-1''%%, where positive numbers go from first sub-object (%%''0''%%) to last (%%''count-1''%%), and negative numbers go from last sub-object (%%''-1''%%) to first (%%''-count''%%). %%''count''%% is the number of sub-objects currently in the container as returned by %%[[:develop:api:efl:container:method:content_count|Efl.Container.content_count]]%%.%%
+
+%%If %%''index''%% is less than -%%''count''%%, it will remove the first sub-object whereas %%''index''%% greater than %%''count''%%-1 will remove the last sub-object.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:collection:method:pack_unpack_at:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_linear:method:pack_unpack_at|Efl.Pack_Linear.pack_unpack_at]].//===== Signature =====
+
+
+pack_unpack_at @pure_virtual {
+ params {
+ @in index: int;
+ }
+ return: Efl.Gfx.Entity;
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_pack_unpack_at(Eo *obj, int index);
+
+
+===== Parameters =====
+
+ * **index** //(in)// - %%Index of the sub-object to remove. Valid range is %%''-count''%% to %%''count-1''%%.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_unpack_at|Efl.Pack_Linear.pack_unpack_at]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_unpack_at|Efl.Ui.Tab_Bar.pack_unpack_at]]
+ * [[:develop:api:efl:ui:flip:method:pack_unpack_at|Efl.Ui.Flip.pack_unpack_at]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_unpack_at|Efl.Canvas.Layout_Part_Box.pack_unpack_at]]
+ * [[:develop:api:efl:ui:box:method:pack_unpack_at|Efl.Ui.Box.pack_unpack_at]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_unpack_at|Efl.Ui.Radio_Box.pack_unpack_at]]
+ * [[:develop:api:efl:ui:group_item:method:pack_unpack_at|Efl.Ui.Group_Item.pack_unpack_at]]
+ * [[:develop:api:efl:ui:collection:method:pack_unpack_at|Efl.Ui.Collection.pack_unpack_at]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_unpack_at|Efl.Ui.Layout_Part_Box.pack_unpack_at]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_unpack_at|Efl.Canvas.Layout_Part_Invalid.pack_unpack_at]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_unpack_at|Efl.Ui.Spotlight.Container.pack_unpack_at]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_unpack_at|Efl.Ui.Tab_Pager.pack_unpack_at]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/range_select.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/range_select.txt
new file mode 100644
index 00000000..0ba3df77
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/range_select.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Collection.range_select~~
+====== Efl.Ui.Collection.range_select ======
+
+===== Description =====
+
+%%Select a range of %%[[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]]%%.%%
+
+%%This will select the range of selectables from a to b or from b to a depending on which one comes first. If a or b are not part of the widget, a error is returned, and no change is applied. %%''null''%% is not allowed as either of the parameters. Both of the passed values will also be selected.%%
+{{page>:develop:api-include:efl:ui:collection:method:range_select:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:multi_selectable:method:range_select|Efl.Ui.Multi_Selectable.range_select]].//===== Signature =====
+
+
+range_select @beta @pure_virtual {
+ params {
+ @in a: Efl.Ui.Selectable;
+ @in b: Efl.Ui.Selectable;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_selectable_range_select(Eo *obj, Efl_Ui_Selectable *a, Efl_Ui_Selectable *b);
+
+
+===== Parameters =====
+
+ * **a** //(in)// - %%One side of the range.%%
+ * **b** //(in)// - %%The other side of the range.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:multi_selectable:method:range_select|Efl.Ui.Multi_Selectable.range_select]]
+ * [[:develop:api:efl:ui:collection:method:range_select|Efl.Ui.Collection.range_select]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/range_unselect.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/range_unselect.txt
new file mode 100644
index 00000000..66a554b9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/range_unselect.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Collection.range_unselect~~
+====== Efl.Ui.Collection.range_unselect ======
+
+===== Description =====
+
+%%Unselect a range of %%[[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]]%%.%%
+
+%%This will unselect the range of selectables from a to b or from b to a depending on which one comes first. If a or b are not part of the widget, a error is returned, and no change is applied. %%''null''%% is not allowed as either of the parameters. Both of the passed values will also be unselected.%%
+{{page>:develop:api-include:efl:ui:collection:method:range_unselect:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:multi_selectable:method:range_unselect|Efl.Ui.Multi_Selectable.range_unselect]].//===== Signature =====
+
+
+range_unselect @beta @pure_virtual {
+ params {
+ @in a: Efl.Ui.Selectable;
+ @in b: Efl.Ui.Selectable;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_selectable_range_unselect(Eo *obj, Efl_Ui_Selectable *a, Efl_Ui_Selectable *b);
+
+
+===== Parameters =====
+
+ * **a** //(in)// - %%One side of the range.%%
+ * **b** //(in)// - %%The other side of the range.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:multi_selectable:method:range_unselect|Efl.Ui.Multi_Selectable.range_unselect]]
+ * [[:develop:api:efl:ui:collection:method:range_unselect|Efl.Ui.Collection.range_unselect]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/selected_iterator_new.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/selected_iterator_new.txt
new file mode 100644
index 00000000..5358c751
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/selected_iterator_new.txt
@@ -0,0 +1,27 @@
+~~Title: Efl.Ui.Collection.selected_iterator_new~~
+====== Efl.Ui.Collection.selected_iterator_new ======
+
+===== Description =====
+
+%%Get the selected items in a iterator. The iterator sequence will be decided by selection.%%
+{{page>:develop:api-include:efl:ui:collection:method:selected_iterator_new:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:multi_selectable:method:selected_iterator_new|Efl.Ui.Multi_Selectable.selected_iterator_new]].//===== Signature =====
+
+
+selected_iterator_new @pure_virtual {
+ return: iterator @no_unused;
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_ui_selectable_selected_iterator_new(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:multi_selectable:method:selected_iterator_new|Efl.Ui.Multi_Selectable.selected_iterator_new]]
+ * [[:develop:api:efl:ui:collection:method:selected_iterator_new|Efl.Ui.Collection.selected_iterator_new]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/theme_apply.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/theme_apply.txt
new file mode 100644
index 00000000..27d8e8d3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/theme_apply.txt
@@ -0,0 +1,55 @@
+~~Title: Efl.Ui.Collection.theme_apply~~
+====== Efl.Ui.Collection.theme_apply ======
+
+===== Description =====
+
+%%Virtual function called when the widget needs to re-apply its theme.%%
+
+%%This may be called when the object is first created, or whenever the widget is modified in any way that may require a reload of the theme. This may include but is not limited to scale, theme, or mirrored mode changes.%%
+
+
+theme_apply @protected {
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_widget_theme_apply(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:theme_apply|Efl.Ui.Widget.theme_apply]]
+ * [[:develop:api:efl:ui:win:method:theme_apply|Efl.Ui.Win.theme_apply]]
+ * [[:develop:api:efl:ui:flip:method:theme_apply|Efl.Ui.Flip.theme_apply]]
+ * [[:develop:api:efl:ui:image:method:theme_apply|Efl.Ui.Image.theme_apply]]
+ * [[:develop:api:efl:ui:image_zoomable:method:theme_apply|Efl.Ui.Image_Zoomable.theme_apply]]
+ * [[:develop:api:efl:ui:layout_base:method:theme_apply|Efl.Ui.Layout_Base.theme_apply]]
+ * [[:develop:api:efl:ui:slider:method:theme_apply|Efl.Ui.Slider.theme_apply]]
+ * [[:develop:api:efl:ui:check:method:theme_apply|Efl.Ui.Check.theme_apply]]
+ * [[:develop:api:efl:ui:radio:method:theme_apply|Efl.Ui.Radio.theme_apply]]
+ * [[:develop:api:efl:ui:clock:method:theme_apply|Efl.Ui.Clock.theme_apply]]
+ * [[:develop:api:efl:ui:text:method:theme_apply|Efl.Ui.Text.theme_apply]]
+ * [[:develop:api:efl:ui:spin_button:method:theme_apply|Efl.Ui.Spin_Button.theme_apply]]
+ * [[:develop:api:efl:ui:collection_view:method:theme_apply|Efl.Ui.Collection_View.theme_apply]]
+ * [[:develop:api:efl:ui:panel:method:theme_apply|Efl.Ui.Panel.theme_apply]]
+ * [[:develop:api:efl:ui:slider_interval:method:theme_apply|Efl.Ui.Slider_Interval.theme_apply]]
+ * [[:develop:api:elm:code_widget:method:theme_apply|Elm.Code_Widget.theme_apply]]
+ * [[:develop:api:efl:ui:textpath:method:theme_apply|Efl.Ui.Textpath.theme_apply]]
+ * [[:develop:api:efl:ui:scroller:method:theme_apply|Efl.Ui.Scroller.theme_apply]]
+ * [[:develop:api:efl:ui:collection:method:theme_apply|Efl.Ui.Collection.theme_apply]]
+ * [[:develop:api:efl:ui:panes:method:theme_apply|Efl.Ui.Panes.theme_apply]]
+ * [[:develop:api:efl:ui:calendar:method:theme_apply|Efl.Ui.Calendar.theme_apply]]
+ * [[:develop:api:efl:ui:progressbar:method:theme_apply|Efl.Ui.Progressbar.theme_apply]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/unpack.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/unpack.txt
new file mode 100644
index 00000000..2de36731
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/unpack.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Collection.unpack~~
+====== Efl.Ui.Collection.unpack ======
+
+===== Description =====
+
+%%Removes an existing sub-object from the container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:collection:method:unpack:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]].//===== Signature =====
+
+
+unpack @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_unpack(Eo *obj, Efl_Gfx_Entity *subobj);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%The sub-object to unpack.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]
+ * [[:develop:api:efl:ui:tab_bar:method:unpack|Efl.Ui.Tab_Bar.unpack]]
+ * [[:develop:api:efl:ui:table:method:unpack|Efl.Ui.Table.unpack]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:unpack|Efl.Canvas.Layout_Part_Table.unpack]]
+ * [[:develop:api:efl:ui:layout_part_table:method:unpack|Efl.Ui.Layout_Part_Table.unpack]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:unpack|Efl.Canvas.Layout_Part_Invalid.unpack]]
+ * [[:develop:api:efl:ui:flip:method:unpack|Efl.Ui.Flip.unpack]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:unpack|Efl.Canvas.Layout_Part_Box.unpack]]
+ * [[:develop:api:efl:ui:box:method:unpack|Efl.Ui.Box.unpack]]
+ * [[:develop:api:efl:ui:radio_box:method:unpack|Efl.Ui.Radio_Box.unpack]]
+ * [[:develop:api:efl:ui:group_item:method:unpack|Efl.Ui.Group_Item.unpack]]
+ * [[:develop:api:efl:ui:collection:method:unpack|Efl.Ui.Collection.unpack]]
+ * [[:develop:api:efl:ui:layout_part_box:method:unpack|Efl.Ui.Layout_Part_Box.unpack]]
+ * [[:develop:api:efl:ui:spotlight:container:method:unpack|Efl.Ui.Spotlight.Container.unpack]]
+ * [[:develop:api:efl:ui:tab_pager:method:unpack|Efl.Ui.Tab_Pager.unpack]]
+ * [[:develop:api:efl:ui:relative_layout:method:unpack|Efl.Ui.Relative_Layout.unpack]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/method/unpack_all.txt b/public_html/data/pages/develop/api/efl/ui/collection/method/unpack_all.txt
new file mode 100644
index 00000000..05407774
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/method/unpack_all.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.Ui.Collection.unpack_all~~
+====== Efl.Ui.Collection.unpack_all ======
+
+===== Description =====
+
+%%Removes all packed sub-objects without unreferencing them.%%
+
+%%Use with caution.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:collection:method:unpack_all:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack:method:unpack_all|Efl.Pack.unpack_all]].//===== Signature =====
+
+
+unpack_all @pure_virtual {
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_unpack_all(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack:method:unpack_all|Efl.Pack.unpack_all]]
+ * [[:develop:api:efl:ui:tab_bar:method:unpack_all|Efl.Ui.Tab_Bar.unpack_all]]
+ * [[:develop:api:efl:ui:table:method:unpack_all|Efl.Ui.Table.unpack_all]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:unpack_all|Efl.Canvas.Layout_Part_Table.unpack_all]]
+ * [[:develop:api:efl:ui:layout_part_table:method:unpack_all|Efl.Ui.Layout_Part_Table.unpack_all]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:unpack_all|Efl.Canvas.Layout_Part_Invalid.unpack_all]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:unpack_all|Efl.Canvas.Layout_Part_Box.unpack_all]]
+ * [[:develop:api:efl:ui:box:method:unpack_all|Efl.Ui.Box.unpack_all]]
+ * [[:develop:api:efl:ui:radio_box:method:unpack_all|Efl.Ui.Radio_Box.unpack_all]]
+ * [[:develop:api:efl:ui:group_item:method:unpack_all|Efl.Ui.Group_Item.unpack_all]]
+ * [[:develop:api:efl:ui:collection:method:unpack_all|Efl.Ui.Collection.unpack_all]]
+ * [[:develop:api:efl:ui:layout_part_box:method:unpack_all|Efl.Ui.Layout_Part_Box.unpack_all]]
+ * [[:develop:api:efl:ui:spotlight:container:method:unpack_all|Efl.Ui.Spotlight.Container.unpack_all]]
+ * [[:develop:api:efl:ui:tab_pager:method:unpack_all|Efl.Ui.Tab_Pager.unpack_all]]
+ * [[:develop:api:efl:ui:relative_layout:method:unpack_all|Efl.Ui.Relative_Layout.unpack_all]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/property/fallback_selection.txt b/public_html/data/pages/develop/api/efl/ui/collection/property/fallback_selection.txt
new file mode 100644
index 00000000..b19edbd8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/property/fallback_selection.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Ui.Collection.fallback_selection~~
+====== Efl.Ui.Collection.fallback_selection ======
+
+===== Description =====
+
+%%A object that will be selected in case nothing is selected%%
+
+%%A object set to this property will be selected instead of no item being selected. Which means, there will be always at least one element selected. If this property is %%''NULL''%%, the state of "no item is selected" can be reached.%%
+
+%%Setting this property as a result of selection events results in undefined behavior.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:collection:property:fallback_selection:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **fallback** - No description supplied.
+
+//Overridden from [[:develop:api:efl:ui:single_selectable:property:fallback_selection|Efl.Ui.Single_Selectable.fallback_selection]] **(get, set)**.//===== Signature =====
+
+
+@property fallback_selection @pure_virtual {
+ get {}
+ set {}
+ values {
+ fallback: Efl.Ui.Selectable;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Selectable *efl_ui_selectable_fallback_selection_get(const Eo *obj);
+void efl_ui_selectable_fallback_selection_set(Eo *obj, Efl_Ui_Selectable *fallback);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:single_selectable:property:fallback_selection|Efl.Ui.Single_Selectable.fallback_selection]]
+ * [[:develop:api:efl:ui:collection:property:fallback_selection|Efl.Ui.Collection.fallback_selection]]
+ * [[:develop:api:efl:ui:select_model:property:fallback_selection|Efl.Ui.Select_Model.fallback_selection]]
+ * [[:develop:api:efl:ui:tab_bar:property:fallback_selection|Efl.Ui.Tab_Bar.fallback_selection]]
+ * [[:develop:api:efl:ui:radio_group_impl:property:fallback_selection|Efl.Ui.Radio_Group_Impl.fallback_selection]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/property/last_selected.txt b/public_html/data/pages/develop/api/efl/ui/collection/property/last_selected.txt
new file mode 100644
index 00000000..5dfdcb06
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/property/last_selected.txt
@@ -0,0 +1,35 @@
+~~Title: Efl.Ui.Collection.last_selected~~
+====== Efl.Ui.Collection.last_selected ======
+
+===== Values =====
+
+ * **selectable** - %%The latest selected item.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:collection:property:last_selected:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:single_selectable:property:last_selected|Efl.Ui.Single_Selectable.last_selected]] **(get)**.//===== Signature =====
+
+
+@property last_selected @pure_virtual {
+ get {}
+ values {
+ selectable: Efl.Ui.Selectable;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Selectable *efl_ui_selectable_last_selected_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:single_selectable:property:last_selected|Efl.Ui.Single_Selectable.last_selected]]
+ * [[:develop:api:efl:ui:collection:property:last_selected|Efl.Ui.Collection.last_selected]]
+ * [[:develop:api:efl:ui:select_model:property:last_selected|Efl.Ui.Select_Model.last_selected]]
+ * [[:develop:api:efl:ui:tab_bar:property:last_selected|Efl.Ui.Tab_Bar.last_selected]]
+ * [[:develop:api:efl:ui:radio_group_impl:property:last_selected|Efl.Ui.Radio_Group_Impl.last_selected]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/property/match_content.txt b/public_html/data/pages/develop/api/efl/ui/collection/property/match_content.txt
new file mode 100644
index 00000000..deba4f20
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/property/match_content.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Ui.Collection.match_content~~
+====== Efl.Ui.Collection.match_content ======
+
+===== Values =====
+
+ * **w** - %%Whether to limit the minimum horizontal size.%%
+ * **h** - %%Whether to limit the minimum vertical size.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:collection:property:match_content:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:scrollable:property:match_content|Efl.Ui.Scrollable.match_content]] **(set)**.//===== Signature =====
+
+
+@property match_content @pure_virtual {
+ set {}
+}
+
+
+===== C signature =====
+
+
+void efl_ui_scrollable_match_content_set(Eo *obj, Eina_Bool w, Eina_Bool h);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:scrollable:property:match_content|Efl.Ui.Scrollable.match_content]]
+ * [[:develop:api:efl:ui:collection_view:property:match_content|Efl.Ui.Collection_View.match_content]]
+ * [[:develop:api:efl:ui:scroller:property:match_content|Efl.Ui.Scroller.match_content]]
+ * [[:develop:api:efl:ui:collection:property:match_content|Efl.Ui.Collection.match_content]]
+ * [[:develop:api:efl:ui:scroll:manager:property:match_content|Efl.Ui.Scroll.Manager.match_content]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/property/orientation.txt b/public_html/data/pages/develop/api/efl/ui/collection/property/orientation.txt
new file mode 100644
index 00000000..10e38706
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/property/orientation.txt
@@ -0,0 +1,56 @@
+~~Title: Efl.Ui.Collection.orientation~~
+====== Efl.Ui.Collection.orientation ======
+
+===== Description =====
+
+%%Control the direction of a given widget.%%
+
+%%Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.%%
+
+%%Mirroring as defined in %%[[:develop:api:efl:ui:i18n|Efl.Ui.I18n]]%% can invert the %%''horizontal''%% direction: it is %%''ltr''%% by default, but becomes %%''rtl''%% if the object is mirrored.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:collection:property:orientation:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **dir** - %%Direction of the widget.%%
+
+//Overridden from [[:develop:api:efl:ui:layout_orientable:property:orientation|Efl.Ui.Layout_Orientable.orientation]] **(get, set)**.//===== Signature =====
+
+
+@property orientation @pure_virtual {
+ get {}
+ set {}
+ values {
+ dir: Efl.Ui.Layout_Orientation;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Layout_Orientation efl_ui_layout_orientation_get(const Eo *obj);
+void efl_ui_layout_orientation_set(Eo *obj, Efl_Ui_Layout_Orientation dir);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:layout_orientable:property:orientation|Efl.Ui.Layout_Orientable.orientation]]
+ * [[:develop:api:efl:ui:slider:property:orientation|Efl.Ui.Slider.orientation]]
+ * [[:develop:api:efl:ui:layout_orientable_readonly:property:orientation|Efl.Ui.Layout_Orientable_Readonly.orientation]]
+ * [[:develop:api:efl:canvas:layout_part_box:property:orientation|Efl.Canvas.Layout_Part_Box.orientation]]
+ * [[:develop:api:efl:ui:layout_part_box:property:orientation|Efl.Ui.Layout_Part_Box.orientation]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:orientation|Efl.Canvas.Layout_Part_Invalid.orientation]]
+ * [[:develop:api:efl:ui:collection_view:property:orientation|Efl.Ui.Collection_View.orientation]]
+ * [[:develop:api:efl:ui:table:property:orientation|Efl.Ui.Table.orientation]]
+ * [[:develop:api:efl:ui:box:property:orientation|Efl.Ui.Box.orientation]]
+ * [[:develop:api:efl:ui:slider_interval:property:orientation|Efl.Ui.Slider_Interval.orientation]]
+ * [[:develop:api:efl:ui:collection:property:orientation|Efl.Ui.Collection.orientation]]
+ * [[:develop:api:efl:ui:panes:property:orientation|Efl.Ui.Panes.orientation]]
+ * [[:develop:api:efl:ui:progressbar:property:orientation|Efl.Ui.Progressbar.orientation]]
+ * [[:develop:api:efl:ui:spin_button:property:orientation|Efl.Ui.Spin_Button.orientation]]
+ * [[:develop:api:efl:ui:position_manager:grid:property:orientation|Efl.Ui.Position_Manager.Grid.orientation]]
+ * [[:develop:api:efl:ui:position_manager:list:property:orientation|Efl.Ui.Position_Manager.List.orientation]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/property/position_manager.txt b/public_html/data/pages/develop/api/efl/ui/collection/property/position_manager.txt
new file mode 100644
index 00000000..91fa971a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/property/position_manager.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Collection.position_manager~~
+====== Efl.Ui.Collection.position_manager ======
+
+===== Description =====
+
+%%Position manager object that handles placement of items.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:collection:property:position_manager:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **position_manager** - %%Ownership is passed to the item container.%%
+
+===== Signature =====
+
+
+@property position_manager @beta {
+ get {}
+ set {}
+ values {
+ position_manager: Efl.Ui.Position_Manager.Entity;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Position_Manager_Entity *efl_ui_collection_position_manager_get(const Eo *obj);
+void efl_ui_collection_position_manager_set(Eo *obj, Efl_Ui_Position_Manager_Entity *position_manager);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:collection:property:position_manager|Efl.Ui.Collection.position_manager]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection/property/select_mode.txt b/public_html/data/pages/develop/api/efl/ui/collection/property/select_mode.txt
new file mode 100644
index 00000000..2073cf72
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection/property/select_mode.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.Collection.select_mode~~
+====== Efl.Ui.Collection.select_mode ======
+
+===== Description =====
+
+%%The mode type for children selection.%%
+{{page>:develop:api-include:efl:ui:collection:property:select_mode:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **mode** - %%Type of selection of children%%
+
+//Overridden from [[:develop:api:efl:ui:multi_selectable:property:select_mode|Efl.Ui.Multi_Selectable.select_mode]] **(get, set)**.//===== Signature =====
+
+
+@property select_mode @pure_virtual {
+ get {}
+ set {}
+ values {
+ mode: Efl.Ui.Select_Mode;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Select_Mode efl_ui_selectable_select_mode_get(const Eo *obj);
+void efl_ui_selectable_select_mode_set(Eo *obj, Efl_Ui_Select_Mode mode);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:multi_selectable:property:select_mode|Efl.Ui.Multi_Selectable.select_mode]]
+ * [[:develop:api:efl:ui:collection:property:select_mode|Efl.Ui.Collection.select_mode]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection_view.txt b/public_html/data/pages/develop/api/efl/ui/collection_view.txt
new file mode 100644
index 00000000..6ee2bb20
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection_view.txt
@@ -0,0 +1,543 @@
+~~Title: Efl.Ui.Collection_View~~
+====== Efl.Ui.Collection_View (class) ======
+
+===== Description =====
+
+%%This widget displays a list of items in an arrangement controlled by an external %%[[:develop:api:efl:ui:collection_view:property:position_manager|Efl.Ui.Collection_View.position_manager]]%% object. By using different %%[[:develop:api:efl:ui:collection_view:property:position_manager|Efl.Ui.Collection_View.position_manager]]%% objects this widget can show unidimensional lists or two-dimensional grids of items, for example.%%
+
+%%This class is intended to act as a base for widgets like List_View or %%[[:develop:api:efl:ui:grid_view|Efl.Ui.Grid_View]]%%, which hide this complexity from the user.%%
+
+%%Items are generated by the %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% defined with .factory.set to match the content of the %%[[:develop:api:efl:model|Efl.Model]]%% defined with %%[[:develop:api:efl:ui:view:property:model|Efl.Ui.View.model.set]]%%. They are dynamically created/destroyed to only have the one that are necessary to display all the one that are to far out of the viewport will not be created to lighten the usage for very large list.%%
+
+%%The direction of the arrangement can be controlled through %%[[:develop:api:efl:ui:layout_orientable:property:orientation|Efl.Ui.Layout_Orientable.orientation]]%%.%%
+
+%%If all items do not fit in the current widget size scrolling facilities are provided.%%
+
+%%Items inside this widget can be selected according to the %%[[:develop:api:efl:ui:multi_selectable_async:property:select_mode|Efl.Ui.Multi_Selectable_Async.select_mode]]%% policy, and the selection can be retrieved with %%[[:develop:api:efl:ui:multi_selectable_async:method:selected_iterator_new|Efl.Ui.Multi_Selectable_Async.selected_iterator_new]]%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:collection_view:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)// => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)//
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] //(interface)//
+ * [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] //(interface)//
+ * [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] //(interface)//
+ * [[:develop:api:efl:layout:group|Efl.Layout.Group]] //(interface)//
+ * [[:develop:api:efl:ui:layout_orientable|Efl.Ui.Layout_Orientable]] //(interface)//
+ * [[:develop:api:efl:ui:focus:manager_sub|Efl.Ui.Focus.Manager_Sub]] //(mixin)//
+ * [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] //(interface)//
+ * [[:develop:api:efl:ui:widget_focus_manager|Efl.Ui.Widget_Focus_Manager]] //(mixin)//
+ * [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] //(interface)//
+ * [[:develop:api:efl:ui:item_clickable|Efl.Ui.Item_Clickable]] //(interface)//
+ * [[:develop:api:efl:ui:scrollable|Efl.Ui.Scrollable]] //(interface)//
+ * [[:develop:api:efl:ui:scrollbar|Efl.Ui.Scrollbar]] //(interface)//
+ * [[:develop:api:efl:ui:multi_selectable_async|Efl.Ui.Multi_Selectable_Async]] //(interface)//
+ * [[:develop:api:efl:ui:single_selectable|Efl.Ui.Single_Selectable]] //(interface)//
+ * [[:develop:api:efl:ui:single_selectable|Efl.Ui.Single_Selectable]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:collection_view:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:collection_view:property:factory|factory]]** //**(get, set)**//\\
+> %%Define the factory used to create all the items.%%
+
+Efl_Ui_Factory *efl_ui_collection_view_factory_get(const Eo *obj);
+void efl_ui_collection_view_factory_set(Eo *obj, Efl_Ui_Factory *factory);
+
+\\
+**[[:develop:api:efl:ui:collection_view:method:invalidate|invalidate]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to perform special actions when your object loses its parent, if you need to.%%
+
+void efl_invalidate(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:collection_view:property:match_content|match_content]]** //**(set)**//// [Overridden from [[:develop:api:efl:ui:scrollable|Efl.Ui.Scrollable]]]//\\
+>
+
+void efl_ui_scrollable_match_content_set(Eo *obj, Eina_Bool w, Eina_Bool h);
+
+\\
+**[[:develop:api:efl:ui:collection_view:method:move|move]]**// [Overridden from [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]]]//\\
+> %%Moves the focus in the given direction to the next regular widget.%%
+
+Efl_Ui_Focus_Object *efl_ui_focus_manager_move(Eo *obj, Efl_Ui_Focus_Direction direction);
+
+\\
+**[[:develop:api:efl:ui:collection_view:property:orientation|orientation]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:layout_orientable|Efl.Ui.Layout_Orientable]]]//\\
+> %%Control the direction of a given widget.%%
+
+Efl_Ui_Layout_Orientation efl_ui_layout_orientation_get(const Eo *obj);
+void efl_ui_layout_orientation_set(Eo *obj, Efl_Ui_Layout_Orientation dir);
+
+\\
+**[[:develop:api:efl:ui:collection_view:property:position_manager|position_manager]]** //**(get, set)**//\\
+> %%Position manager object that handles placement of items.%%
+
+Efl_Ui_Position_Manager_Entity *efl_ui_collection_view_position_manager_get(const Eo *obj);
+void efl_ui_collection_view_position_manager_set(Eo *obj, Efl_Ui_Position_Manager_Entity *position_manager);
+
+\\
+**[[:develop:api:efl:ui:collection_view:method:focus_manager_create|focus_manager_create]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget_focus_manager|Efl.Ui.Widget_Focus_Manager]]]//\\
+> %%If the widget needs a focus manager, this function will be called.%%
+
+Efl_Ui_Focus_Manager *efl_ui_widget_focus_manager_create(Eo *obj, Efl_Ui_Focus_Object *root);
+
+\\
+**[[:develop:api:efl:ui:collection_view:method:focus_state_apply|focus_state_apply]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Apply a new focus state on the widget.%%
+
+Eina_Bool efl_ui_widget_focus_state_apply(Eo *obj, Efl_Ui_Widget_Focus_State current_state, Efl_Ui_Widget_Focus_State configured_state, Efl_Ui_Widget *redirect);
+
+\\
+**[[:develop:api:efl:ui:collection_view:method:theme_apply|theme_apply]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Virtual function called when the widget needs to re-apply its theme.%%
+
+Eina_Error efl_ui_widget_theme_apply(Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] ^^^
+| | **[[:develop:api:efl:ui:focus:manager:property:border_elements|border_elements]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:focus:manager:method:dirty_logic_freeze|dirty_logic_freeze]]** | %%Disables the cache invalidation when an object is moved.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:dirty_logic_unfreeze|dirty_logic_unfreeze]]** | %%Enables the cache invalidation when an object is moved.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:fetch|fetch]]** | %%Fetches the data from a registered node.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:logical_end|logical_end]]** | %%Returns the last logical object.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:manager_focus|manager_focus]]** //**(get, set)**// | %%The element which is currently focused by this manager.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:pop_history_stack|pop_history_stack]]** | %%Removes the uppermost history element, and focuses the previous one.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:redirect|redirect]]** //**(get, set)**// | %%Add another manager to serve the move requests.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:request_move|request_move]]** | %%Returns the object in the %%''direction''%% from %%''child''%%.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:request_subchild|request_subchild]]** | %%Returns the widget in the direction next.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:reset_history|reset_history]]** | %%Resets the history stack of this manager object. This means the uppermost element will be unfocused, and all other elements will be removed from the remembered list.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:root|root]]** //**(get, set)**// | %%Root node for all logical sub-trees.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:setup_on_first_touch|setup_on_first_touch]]** | %%Called when this manager is set as redirect.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:viewport_elements|viewport_elements]]** //**(get)**// | |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:property:automatic_theme_rotation|automatic_theme_rotation]]** //**(get, set)**// | %%This flag tells if this object will automatically mirror the rotation changes of the window to this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**// | %%Whether this object updates its size hints automatically.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_freeze|calc_freeze]]** | %%Freezes the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_parts_extends|calc_parts_extends]]** | %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_size_min|calc_size_min]]** | %%Calculates the minimum required size for a given layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_thaw|calc_thaw]]** | %%Thaws the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:layout_base:method:factory_bind|factory_bind]]** | %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:finger_size_multiplier|finger_size_multiplier]]** //**(get, set)**// | %%Set a multiplier for applying finger size to the layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:group_calculate|group_calculate]]** | %%Triggers an immediate recalculation of this object's geometry.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:group_data|group_data]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_max|group_size_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_min|group_size_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:l10n_text|l10n_text]]** //**(get, set)**// | %%A unique string to be translated.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:message_send|message_send]]** | %%Sends an (Edje) message to a given Edje object%% |
+| | **[[:develop:api:efl:ui:layout_base:property:part_exist|part_exist]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_add|signal_callback_add]]** | %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_del|signal_callback_del]]** | %%Removes a signal-triggered callback from an object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_emit|signal_emit]]** | %%Sends/emits an Edje signal to this layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_process|signal_process]]** | %%Processes an object's messages and signals queue.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:theme|theme]]** //**(get, set)**// | %%The theme of this widget, defines which edje group will be used.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:theme_rotation_apply|theme_rotation_apply]]** | %%Apply a new rotation value to this object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:calc_force|calc_force]]** | %%Forces a Size/Geometry calculation.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:on_focus_update|on_focus_update]]** | %%Virtual function handling focus in/out events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:part_get|part_get]]** | %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+^ [[:develop:api:efl:ui:multi_selectable_async|Efl.Ui.Multi_Selectable_Async]] ^^^
+| | **[[:develop:api:efl:ui:multi_selectable_async:method:all_select|all_select]]** | %%Select all %%[[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]]%%%% |
+| | **[[:develop:api:efl:ui:multi_selectable_async:method:all_unselect|all_unselect]]** | %%Unselect all %%[[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]]%%%% |
+| | **[[:develop:api:efl:ui:multi_selectable_async:method:range_select|range_select]]** | %%Select a range of %%[[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]]%%.%% |
+| | **[[:develop:api:efl:ui:multi_selectable_async:method:range_unselect|range_unselect]]** | %%Unselect a range of %%[[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]]%%.%% |
+| | **[[:develop:api:efl:ui:multi_selectable_async:property:select_mode|select_mode]]** //**(get, set)**// | %%The mode type for children selection.%% |
+| | **[[:develop:api:efl:ui:multi_selectable_async:method:selected_iterator_new|selected_iterator_new]]** | %%Gets an iterator of all the selected child of this model.%% |
+| | **[[:develop:api:efl:ui:multi_selectable_async:method:unselected_iterator_new|unselected_iterator_new]]** | %%Gets an iterator of all the child of this model that are not selected.%% |
+^ [[:develop:api:efl:ui:scrollable|Efl.Ui.Scrollable]] ^^^
+| | **[[:develop:api:efl:ui:scrollable:property:bounce_enabled|bounce_enabled]]** //**(get, set)**// | %%When scrolling, the scroller may "bounce" when reaching the edge of the content object. This is a visual way to indicate the end has been reached. This is enabled by default for both axes. This property determines if bouncing is enabled in each axis. When bouncing is disabled, scrolling just stops upon reaching the end of the content.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:content_pos|content_pos]]** //**(get, set)**// | %%Position of the content inside the scroller.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:content_size|content_size]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:scrollable:property:gravity|gravity]]** //**(get, set)**// | %%Control scrolling gravity on the scrollable.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:looping|looping]]** //**(get, set)**// | %%Controls infinite looping for a scroller.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:movement_block|movement_block]]** //**(get, set)**// | %%Blocking of scrolling (per axis).%% |
+| | **[[:develop:api:efl:ui:scrollable:method:scroll|scroll]]** | %%Show a specific virtual region within the scroller content object.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:scroll_freeze|scroll_freeze]]** //**(get, set)**// | %%Freezes scrolling movement (by input of a user). Unlike %%[[:develop:api:efl:ui:scrollable:property:movement_block|Efl.Ui.Scrollable.movement_block]]%%, this property freezes bidirectionally. If you want to freeze in only one direction, see %%[[:develop:api:efl:ui:scrollable:property:movement_block|Efl.Ui.Scrollable.movement_block]]%%.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:scroll_hold|scroll_hold]]** //**(get, set)**// | %%When hold turns on, it only scrolls by holding action.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:step_size|step_size]]** //**(get, set)**// | %%Amount to scroll in response to cursor key presses.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:viewport_geometry|viewport_geometry]]** //**(get)**// | |
+^ [[:develop:api:efl:ui:scrollbar|Efl.Ui.Scrollbar]] ^^^
+| | **[[:develop:api:efl:ui:scrollbar:property:bar_mode|bar_mode]]** //**(get, set)**// | %%Scrollbar visibility mode, for each of the scrollbars.%% |
+| | **[[:develop:api:efl:ui:scrollbar:property:bar_position|bar_position]]** //**(get, set)**// | %%Position of the thumb (the draggable zone) inside the scrollbar. It is calculated based on current position of the viewport inside the total content.%% |
+| | **[[:develop:api:efl:ui:scrollbar:property:bar_size|bar_size]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:scrollbar:method:bar_visibility_update|bar_visibility_update]]** | %%Update bar visibility.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:single_selectable|Efl.Ui.Single_Selectable]] ^^^
+| | **[[:develop:api:efl:ui:single_selectable:property:fallback_selection|fallback_selection]]** //**(get, set)**// | %%A object that will be selected in case nothing is selected%% |
+| | **[[:develop:api:efl:ui:single_selectable:property:last_selected|last_selected]]** //**(get)**// | |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:ui:widget:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:property:position|position]]** //**(get, set)**// | %%The 2D position of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:size|size]]** //**(get, set)**// | %%The 2D size of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| | **[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_input_event_handler|widget_input_event_handler]]** | %%Virtual function handling input events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+
+===== Events =====
+
+**[[:develop:api:efl:ui:collection_view:event:item_realized|item,realized]]**\\
+> %%Event triggered when an %%[[:develop:api:efl:ui:item|Efl.Ui.Item]]%% has been provided by the %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% and is about to be used.%%
+
+EFL_UI_COLLECTION_VIEW_EVENT_ITEM_REALIZED(Efl_Ui_Item *)
+
+\\ **[[:develop:api:efl:ui:collection_view:event:item_unrealized|item,unrealized]]**\\
+> %%Event triggered when the %%[[:develop:api:efl:ui:collection_view|Efl.Ui.Collection_View]]%% is about to give an %%[[:develop:api:efl:ui:item|Efl.Ui.Item]]%% back to the %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%%.%%
+
+EFL_UI_COLLECTION_VIEW_EVENT_ITEM_UNREALIZED(Efl_Ui_Item *)
+
+\\ ==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] ^^^
+| | **[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]** | %%A circular dependency between parts of the object was found.%% |
+| | **[[:develop:api:efl:layout:calc:event:recalc|recalc]]** | %%The layout was recalculated.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] ^^^
+| | **[[:develop:api:efl:ui:focus:manager:event:coords_dirty|coords,dirty]]** | %%Cached relationship calculation results have been invalidated.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:dirty_logic_freeze_changed|dirty_logic_freeze,changed]]** | %%Called when this focus manager is frozen or thawed, even_info being %%''true''%% indicates that it is now frozen, %%''false''%% indicates that it is thawed.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:flush_pre|flush,pre]]** | %%After this event, the manager object will calculate relations in the graph. Can be used to add / remove children in a lazy fashion.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:manager_focus_changed|manager_focus,changed]]** | %%The manager_focus property has changed. The previously focused object is passed as an event argument.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:redirect_changed|redirect,changed]]** | %%Redirect object has changed, the old manager is passed as an event argument.%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:item_clickable|Efl.Ui.Item_Clickable]] ^^^
+| | **[[:develop:api:efl:ui:item_clickable:event:item_clicked|item,clicked]]** | %%A %%''clicked''%% event occurred over an item.%% |
+| | **[[:develop:api:efl:ui:item_clickable:event:item_clicked_any|item,clicked,any]]** | %%A %%''clicked,any''%% event occurred over an item.%% |
+| | **[[:develop:api:efl:ui:item_clickable:event:item_longpressed|item,longpressed]]** | %%A %%''longpressed''%% event occurred over an item.%% |
+| | **[[:develop:api:efl:ui:item_clickable:event:item_pressed|item,pressed]]** | %%A %%''pressed''%% event occurred over an item.%% |
+| | **[[:develop:api:efl:ui:item_clickable:event:item_unpressed|item,unpressed]]** | %%An %%''unpressed''%% event occurred over an item.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:event:theme_changed|theme,changed]]** | %%Called when theme changed%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:scrollable|Efl.Ui.Scrollable]] ^^^
+| | **[[:develop:api:efl:ui:scrollable:event:edge_down|edge,down]]** | %%Called when hitting the bottom edge.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:edge_left|edge,left]]** | %%Called when hitting the left edge.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:edge_right|edge,right]]** | %%Called when hitting the right edge.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:edge_up|edge,up]]** | %%Called when hitting the top edge.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_anim_finished|scroll,anim,finished]]** | %%Called when scroll animation finishes.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_anim_started|scroll,anim,started]]** | %%Called when scroll animation starts.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_changed|scroll,changed]]** | %%Called when scrolling.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_down|scroll,down]]** | %%Called when scrolling downwards.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_drag_finished|scroll,drag,finished]]** | %%Called when scroll drag finishes.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_drag_started|scroll,drag,started]]** | %%Called when scroll drag starts.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_finished|scroll,finished]]** | %%Called when scroll operation finishes.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_left|scroll,left]]** | %%Called when scrolling left.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_right|scroll,right]]** | %%Called when scrolling right.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_started|scroll,started]]** | %%Called when scroll operation starts.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_up|scroll,up]]** | %%Called when scrolling upwards.%% |
+^ [[:develop:api:efl:ui:scrollbar|Efl.Ui.Scrollbar]] ^^^
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_dragged|bar,dragged]]** | %%Emitted when thumb is dragged.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_hide|bar,hide]]** | %%Emitted when scrollbar is hidden.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_pos_changed|bar,pos,changed]]** | %%Emitted when thumb position has changed.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_pressed|bar,pressed]]** | %%Emitted when thumb is pressed.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_show|bar,show]]** | %%Emitted when scrollbar is shown.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_size_changed|bar,size,changed]]** | %%Emitted when thumb size has changed.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_unpressed|bar,unpressed]]** | %%Emitted when thumb is unpressed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:single_selectable|Efl.Ui.Single_Selectable]] ^^^
+| | **[[:develop:api:efl:ui:single_selectable:event:selection_changed|selection_changed]]** | %%Emitted when there is a change in the selection state. This event will collect all the item selection change events that are happening within one loop iteration. This means, you will only get this event once, even if a lot of items have changed. If you are interested in detailed changes, subscribe to the individual %%[[:develop:api:efl:ui:selectable:event:selected,changed|Efl.Ui.Selectable.selected,changed]]%% events of each item.%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/collection_view/event/item_realized.txt b/public_html/data/pages/develop/api/efl/ui/collection_view/event/item_realized.txt
new file mode 100644
index 00000000..dbda6b2b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection_view/event/item_realized.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Collection_View: item,realized~~
+
+===== Description =====
+
+%%Event triggered when an %%[[:develop:api:efl:ui:item|Efl.Ui.Item]]%% has been provided by the %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% and is about to be used.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:collection_view:event:item_realized:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+item,realized: Efl.Ui.Item;
+
+
+===== C information =====
+
+
+EFL_UI_COLLECTION_VIEW_EVENT_ITEM_REALIZED(Efl_Ui_Item *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_collection_view_event_item_realized(void *data, const Efl_Event *event)
+{
+ Efl_Ui_Item *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_COLLECTION_VIEW_EVENT_ITEM_REALIZED, on_efl_ui_collection_view_event_item_realized, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection_view/event/item_unrealized.txt b/public_html/data/pages/develop/api/efl/ui/collection_view/event/item_unrealized.txt
new file mode 100644
index 00000000..2722c42f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection_view/event/item_unrealized.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Collection_View: item,unrealized~~
+
+===== Description =====
+
+%%Event triggered when the %%[[:develop:api:efl:ui:collection_view|Efl.Ui.Collection_View]]%% is about to give an %%[[:develop:api:efl:ui:item|Efl.Ui.Item]]%% back to the %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:collection_view:event:item_unrealized:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+item,unrealized: Efl.Ui.Item;
+
+
+===== C information =====
+
+
+EFL_UI_COLLECTION_VIEW_EVENT_ITEM_UNREALIZED(Efl_Ui_Item *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_collection_view_event_item_unrealized(void *data, const Efl_Event *event)
+{
+ Efl_Ui_Item *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_COLLECTION_VIEW_EVENT_ITEM_UNREALIZED, on_efl_ui_collection_view_event_item_unrealized, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection_view/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/collection_view/method/constructor.txt
new file mode 100644
index 00000000..1593b2d4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection_view/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Collection_View.constructor~~
+====== Efl.Ui.Collection_View.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:collection_view:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection_view/method/focus_manager_create.txt b/public_html/data/pages/develop/api/efl/ui/collection_view/method/focus_manager_create.txt
new file mode 100644
index 00000000..bd4e60cc
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection_view/method/focus_manager_create.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Collection_View.focus_manager_create~~
+====== Efl.Ui.Collection_View.focus_manager_create ======
+
+===== Description =====
+
+%%If the widget needs a focus manager, this function will be called.%%
+
+%%It can be used and overridden to inject your own manager or set custom options on the focus manager.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:collection_view:method:focus_manager_create:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget_focus_manager:method:focus_manager_create|Efl.Ui.Widget_Focus_Manager.focus_manager_create]].//===== Signature =====
+
+
+focus_manager_create @protected @pure_virtual {
+ params {
+ @in root: Efl.Ui.Focus.Object;
+ }
+ return: Efl.Ui.Focus.Manager;
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Focus_Manager *efl_ui_widget_focus_manager_create(Eo *obj, Efl_Ui_Focus_Object *root);
+
+
+===== Parameters =====
+
+ * **root** //(in)// - %%The logical root object for focus.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget_focus_manager:method:focus_manager_create|Efl.Ui.Widget_Focus_Manager.focus_manager_create]]
+ * [[:develop:api:efl:ui:win:method:focus_manager_create|Efl.Ui.Win.focus_manager_create]]
+ * [[:develop:api:efl:ui:collection_view:method:focus_manager_create|Efl.Ui.Collection_View.focus_manager_create]]
+ * [[:develop:api:efl:ui:scroller:method:focus_manager_create|Efl.Ui.Scroller.focus_manager_create]]
+ * [[:develop:api:efl:ui:collection:method:focus_manager_create|Efl.Ui.Collection.focus_manager_create]]
+ * [[:develop:api:elm:interface_scrollable:method:focus_manager_create|Elm.Interface_Scrollable.focus_manager_create]]
+ * [[:develop:api:efl:ui:focus:layer:method:focus_manager_create|Efl.Ui.Focus.Layer.focus_manager_create]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection_view/method/focus_state_apply.txt b/public_html/data/pages/develop/api/efl/ui/collection_view/method/focus_state_apply.txt
new file mode 100644
index 00000000..680cedf6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection_view/method/focus_state_apply.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Collection_View.focus_state_apply~~
+====== Efl.Ui.Collection_View.focus_state_apply ======
+
+===== Description =====
+
+%%Apply a new focus state on the widget.%%
+
+%%This method is called internally by %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%%. Override it to change how a widget interacts with its focus manager. If a widget desires to change the applied configuration, it has to modify %%''configured_state''%% in addition to any internal changes.%%
+
+%%The default implementation (when this method is not overridden) applies %%''configured_state''%% using the %%''manager''%% contained inside.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:collection_view:method:focus_state_apply:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:focus_state_apply|Efl.Ui.Widget.focus_state_apply]].//===== Signature =====
+
+
+focus_state_apply @protected {
+ params {
+ @in current_state: Efl.Ui.Widget_Focus_State;
+ @inout configured_state: Efl.Ui.Widget_Focus_State;
+ @in redirect: Efl.Ui.Widget;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_focus_state_apply(Eo *obj, Efl_Ui_Widget_Focus_State current_state, Efl_Ui_Widget_Focus_State configured_state, Efl_Ui_Widget *redirect);
+
+
+===== Parameters =====
+
+ * **current_state** //(in)// - %%The current focus configuration of the widget.%%
+ * **configured_state** //(inout)// - %%The new configuration being set on the widget.%%
+ * **redirect** //(in)// - %%A redirect object if there is any%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:focus_state_apply|Efl.Ui.Widget.focus_state_apply]]
+ * [[:develop:api:efl:ui:collection_view:method:focus_state_apply|Efl.Ui.Collection_View.focus_state_apply]]
+ * [[:develop:api:efl:ui:scroller:method:focus_state_apply|Efl.Ui.Scroller.focus_state_apply]]
+ * [[:develop:api:efl:ui:collection:method:focus_state_apply|Efl.Ui.Collection.focus_state_apply]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection_view/method/invalidate.txt b/public_html/data/pages/develop/api/efl/ui/collection_view/method/invalidate.txt
new file mode 100644
index 00000000..4499352d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection_view/method/invalidate.txt
@@ -0,0 +1,74 @@
+~~Title: Efl.Ui.Collection_View.invalidate~~
+====== Efl.Ui.Collection_View.invalidate ======
+
+===== Description =====
+
+%%Implement this method to perform special actions when your object loses its parent, if you need to.%%
+
+%%It is called when the parent reference is lost or set to %%''NULL''%%. After this call returns, %%[[:develop:api:efl:object:property:invalidated|Efl.Object.invalidated]]%% is set to %%''true''%%. This allows a simpler tear down of complex hierarchies, by performing object destruction in two steps, first all object relationships are broken and then the isolated objects are destroyed. Performing everything in the %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%% can sometimes lead to deadlocks, but implementing this method is optional if this is not your case. When an object with a parent is destroyed, it first receives a call to %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% and then to %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:collection_view:method:invalidate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:invalidate|Efl.Object.invalidate]].//===== Signature =====
+
+
+invalidate {}
+
+
+===== C signature =====
+
+
+void efl_invalidate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]
+ * [[:develop:api:efl:canvas:vg:node:method:invalidate|Efl.Canvas.Vg.Node.invalidate]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:invalidate|Efl.Ui.Position_Manager.Grid.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:manager_scroll:method:invalidate|Efl.Ui.Spotlight.Manager_Scroll.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:manager_stack:method:invalidate|Efl.Ui.Spotlight.Manager_Stack.invalidate]]
+ * [[:develop:api:efl:net:server_udp_client:method:invalidate|Efl.Net.Server_Udp_Client.invalidate]]
+ * [[:develop:api:efl:net:server_windows:method:invalidate|Efl.Net.Server_Windows.invalidate]]
+ * [[:develop:api:efl:io:buffered_stream:method:invalidate|Efl.Io.Buffered_Stream.invalidate]]
+ * [[:develop:api:efl:net:dialer_simple:method:invalidate|Efl.Net.Dialer_Simple.invalidate]]
+ * [[:develop:api:efl:loop_fd:method:invalidate|Efl.Loop_Fd.invalidate]]
+ * [[:develop:api:efl:net:server_ssl:method:invalidate|Efl.Net.Server_Ssl.invalidate]]
+ * [[:develop:api:efl:net:socket_fd:method:invalidate|Efl.Net.Socket_Fd.invalidate]]
+ * [[:develop:api:efl:net:dialer_udp:method:invalidate|Efl.Net.Dialer_Udp.invalidate]]
+ * [[:develop:api:efl:net:dialer_unix:method:invalidate|Efl.Net.Dialer_Unix.invalidate]]
+ * [[:develop:api:efl:net:dialer_tcp:method:invalidate|Efl.Net.Dialer_Tcp.invalidate]]
+ * [[:develop:api:efl:net:socket_ssl:method:invalidate|Efl.Net.Socket_Ssl.invalidate]]
+ * [[:develop:api:efl:net:dialer_ssl:method:invalidate|Efl.Net.Dialer_Ssl.invalidate]]
+ * [[:develop:api:efl:canvas:object:method:invalidate|Efl.Canvas.Object.invalidate]]
+ * [[:develop:api:efl:canvas:layout:method:invalidate|Efl.Canvas.Layout.invalidate]]
+ * [[:develop:api:efl:ui:widget:method:invalidate|Efl.Ui.Widget.invalidate]]
+ * [[:develop:api:efl:ui:table:method:invalidate|Efl.Ui.Table.invalidate]]
+ * [[:develop:api:efl:ui:box:method:invalidate|Efl.Ui.Box.invalidate]]
+ * [[:develop:api:efl:ui:image:method:invalidate|Efl.Ui.Image.invalidate]]
+ * [[:develop:api:efl:ui:layout_base:method:invalidate|Efl.Ui.Layout_Base.invalidate]]
+ * [[:develop:api:efl:ui:collection_view:method:invalidate|Efl.Ui.Collection_View.invalidate]]
+ * [[:develop:api:efl:ui:group_item:method:invalidate|Efl.Ui.Group_Item.invalidate]]
+ * [[:develop:api:efl:ui:collection:method:invalidate|Efl.Ui.Collection.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:container:method:invalidate|Efl.Ui.Spotlight.Container.invalidate]]
+ * [[:develop:api:efl:ui:relative_layout:method:invalidate|Efl.Ui.Relative_Layout.invalidate]]
+ * [[:develop:api:efl:canvas:vg:object:method:invalidate|Efl.Canvas.Vg.Object.invalidate]]
+ * [[:develop:api:efl:loop_model:method:invalidate|Efl.Loop_Model.invalidate]]
+ * [[:develop:api:eldbus:model:method:invalidate|Eldbus.Model.invalidate]]
+ * [[:develop:api:eldbus:model:connection:method:invalidate|Eldbus.Model.Connection.invalidate]]
+ * [[:develop:api:eldbus:model:proxy:method:invalidate|Eldbus.Model.Proxy.invalidate]]
+ * [[:develop:api:eldbus:model:arguments:method:invalidate|Eldbus.Model.Arguments.invalidate]]
+ * [[:develop:api:eldbus:model:signal:method:invalidate|Eldbus.Model.Signal.invalidate]]
+ * [[:develop:api:eldbus:model:object:method:invalidate|Eldbus.Model.Object.invalidate]]
+ * [[:develop:api:efl:composite_model:method:invalidate|Efl.Composite_Model.invalidate]]
+ * [[:develop:api:efl:ui:select_model:method:invalidate|Efl.Ui.Select_Model.invalidate]]
+ * [[:develop:api:efl:io:model:method:invalidate|Efl.Io.Model.invalidate]]
+ * [[:develop:api:efl:net:dialer_websocket:method:invalidate|Efl.Net.Dialer_Websocket.invalidate]]
+ * [[:develop:api:efl:net:server_simple:method:invalidate|Efl.Net.Server_Simple.invalidate]]
+ * [[:develop:api:efl:ui:caching_factory:method:invalidate|Efl.Ui.Caching_Factory.invalidate]]
+ * [[:develop:api:efl:loop:method:invalidate|Efl.Loop.invalidate]]
+ * [[:develop:api:efl:net:dialer_http:method:invalidate|Efl.Net.Dialer_Http.invalidate]]
+ * [[:develop:api:efl:io:copier:method:invalidate|Efl.Io.Copier.invalidate]]
+ * [[:develop:api:efl:ui:position_manager:list:method:invalidate|Efl.Ui.Position_Manager.List.invalidate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection_view/method/move.txt b/public_html/data/pages/develop/api/efl/ui/collection_view/method/move.txt
new file mode 100644
index 00000000..1ae1197c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection_view/method/move.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Collection_View.move~~
+====== Efl.Ui.Collection_View.move ======
+
+===== Description =====
+
+%%Moves the focus in the given direction to the next regular widget.%%
+
+%%This call flushes all changes. This means all changes since last flush are computed.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:collection_view:method:move:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:focus:manager_sub:method:move|Efl.Ui.Focus.Manager.move]].//===== Signature =====
+
+
+move @pure_virtual {
+ params {
+ @in direction: Efl.Ui.Focus.Direction;
+ }
+ return: Efl.Ui.Focus.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Focus_Object *efl_ui_focus_manager_move(Eo *obj, Efl_Ui_Focus_Direction direction);
+
+
+===== Parameters =====
+
+ * **direction** //(in)// - %%The direction to move to.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:manager:method:move|Efl.Ui.Focus.Manager.move]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:move|Efl.Ui.Focus.Manager_Calc.move]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:move|Efl.Ui.Focus.Manager_Root_Focus.move]]
+ * [[:develop:api:efl:ui:focus:manager_sub:method:move|Efl.Ui.Focus.Manager_Sub.move]]
+ * [[:develop:api:efl:ui:collection_view:method:move|Efl.Ui.Collection_View.move]]
+ * [[:develop:api:efl:ui:collection:method:move|Efl.Ui.Collection.move]]
+ * [[:develop:api:efl:ui:focus:layer:method:move|Efl.Ui.Focus.Layer.move]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection_view/method/theme_apply.txt b/public_html/data/pages/develop/api/efl/ui/collection_view/method/theme_apply.txt
new file mode 100644
index 00000000..91543137
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection_view/method/theme_apply.txt
@@ -0,0 +1,55 @@
+~~Title: Efl.Ui.Collection_View.theme_apply~~
+====== Efl.Ui.Collection_View.theme_apply ======
+
+===== Description =====
+
+%%Virtual function called when the widget needs to re-apply its theme.%%
+
+%%This may be called when the object is first created, or whenever the widget is modified in any way that may require a reload of the theme. This may include but is not limited to scale, theme, or mirrored mode changes.%%
+
+
+theme_apply @protected {
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_widget_theme_apply(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:theme_apply|Efl.Ui.Widget.theme_apply]]
+ * [[:develop:api:efl:ui:win:method:theme_apply|Efl.Ui.Win.theme_apply]]
+ * [[:develop:api:efl:ui:flip:method:theme_apply|Efl.Ui.Flip.theme_apply]]
+ * [[:develop:api:efl:ui:image:method:theme_apply|Efl.Ui.Image.theme_apply]]
+ * [[:develop:api:efl:ui:image_zoomable:method:theme_apply|Efl.Ui.Image_Zoomable.theme_apply]]
+ * [[:develop:api:efl:ui:layout_base:method:theme_apply|Efl.Ui.Layout_Base.theme_apply]]
+ * [[:develop:api:efl:ui:slider:method:theme_apply|Efl.Ui.Slider.theme_apply]]
+ * [[:develop:api:efl:ui:check:method:theme_apply|Efl.Ui.Check.theme_apply]]
+ * [[:develop:api:efl:ui:radio:method:theme_apply|Efl.Ui.Radio.theme_apply]]
+ * [[:develop:api:efl:ui:clock:method:theme_apply|Efl.Ui.Clock.theme_apply]]
+ * [[:develop:api:efl:ui:text:method:theme_apply|Efl.Ui.Text.theme_apply]]
+ * [[:develop:api:efl:ui:spin_button:method:theme_apply|Efl.Ui.Spin_Button.theme_apply]]
+ * [[:develop:api:efl:ui:collection_view:method:theme_apply|Efl.Ui.Collection_View.theme_apply]]
+ * [[:develop:api:efl:ui:panel:method:theme_apply|Efl.Ui.Panel.theme_apply]]
+ * [[:develop:api:efl:ui:slider_interval:method:theme_apply|Efl.Ui.Slider_Interval.theme_apply]]
+ * [[:develop:api:elm:code_widget:method:theme_apply|Elm.Code_Widget.theme_apply]]
+ * [[:develop:api:efl:ui:textpath:method:theme_apply|Efl.Ui.Textpath.theme_apply]]
+ * [[:develop:api:efl:ui:scroller:method:theme_apply|Efl.Ui.Scroller.theme_apply]]
+ * [[:develop:api:efl:ui:collection:method:theme_apply|Efl.Ui.Collection.theme_apply]]
+ * [[:develop:api:efl:ui:panes:method:theme_apply|Efl.Ui.Panes.theme_apply]]
+ * [[:develop:api:efl:ui:calendar:method:theme_apply|Efl.Ui.Calendar.theme_apply]]
+ * [[:develop:api:efl:ui:progressbar:method:theme_apply|Efl.Ui.Progressbar.theme_apply]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection_view/property/factory.txt b/public_html/data/pages/develop/api/efl/ui/collection_view/property/factory.txt
new file mode 100644
index 00000000..a89e4d49
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection_view/property/factory.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Collection_View.factory~~
+====== Efl.Ui.Collection_View.factory ======
+
+===== Description =====
+
+%%Define the factory used to create all the items.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:collection_view:property:factory:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **factory** - %%The factory.%%
+
+===== Signature =====
+
+
+@property factory {
+ get {}
+ set {}
+ values {
+ factory: Efl.Ui.Factory;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Factory *efl_ui_collection_view_factory_get(const Eo *obj);
+void efl_ui_collection_view_factory_set(Eo *obj, Efl_Ui_Factory *factory);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:collection_view:property:factory|Efl.Ui.Collection_View.factory]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection_view/property/match_content.txt b/public_html/data/pages/develop/api/efl/ui/collection_view/property/match_content.txt
new file mode 100644
index 00000000..7ce65590
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection_view/property/match_content.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Ui.Collection_View.match_content~~
+====== Efl.Ui.Collection_View.match_content ======
+
+===== Values =====
+
+ * **w** - %%Whether to limit the minimum horizontal size.%%
+ * **h** - %%Whether to limit the minimum vertical size.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:collection_view:property:match_content:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:scrollable:property:match_content|Efl.Ui.Scrollable.match_content]] **(set)**.//===== Signature =====
+
+
+@property match_content @pure_virtual {
+ set {}
+}
+
+
+===== C signature =====
+
+
+void efl_ui_scrollable_match_content_set(Eo *obj, Eina_Bool w, Eina_Bool h);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:scrollable:property:match_content|Efl.Ui.Scrollable.match_content]]
+ * [[:develop:api:efl:ui:collection_view:property:match_content|Efl.Ui.Collection_View.match_content]]
+ * [[:develop:api:efl:ui:scroller:property:match_content|Efl.Ui.Scroller.match_content]]
+ * [[:develop:api:efl:ui:collection:property:match_content|Efl.Ui.Collection.match_content]]
+ * [[:develop:api:efl:ui:scroll:manager:property:match_content|Efl.Ui.Scroll.Manager.match_content]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection_view/property/orientation.txt b/public_html/data/pages/develop/api/efl/ui/collection_view/property/orientation.txt
new file mode 100644
index 00000000..e7b6146d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection_view/property/orientation.txt
@@ -0,0 +1,56 @@
+~~Title: Efl.Ui.Collection_View.orientation~~
+====== Efl.Ui.Collection_View.orientation ======
+
+===== Description =====
+
+%%Control the direction of a given widget.%%
+
+%%Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.%%
+
+%%Mirroring as defined in %%[[:develop:api:efl:ui:i18n|Efl.Ui.I18n]]%% can invert the %%''horizontal''%% direction: it is %%''ltr''%% by default, but becomes %%''rtl''%% if the object is mirrored.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:collection_view:property:orientation:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **dir** - %%Direction of the widget.%%
+
+//Overridden from [[:develop:api:efl:ui:layout_orientable:property:orientation|Efl.Ui.Layout_Orientable.orientation]] **(get, set)**.//===== Signature =====
+
+
+@property orientation @pure_virtual {
+ get {}
+ set {}
+ values {
+ dir: Efl.Ui.Layout_Orientation;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Layout_Orientation efl_ui_layout_orientation_get(const Eo *obj);
+void efl_ui_layout_orientation_set(Eo *obj, Efl_Ui_Layout_Orientation dir);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:layout_orientable:property:orientation|Efl.Ui.Layout_Orientable.orientation]]
+ * [[:develop:api:efl:ui:slider:property:orientation|Efl.Ui.Slider.orientation]]
+ * [[:develop:api:efl:ui:layout_orientable_readonly:property:orientation|Efl.Ui.Layout_Orientable_Readonly.orientation]]
+ * [[:develop:api:efl:canvas:layout_part_box:property:orientation|Efl.Canvas.Layout_Part_Box.orientation]]
+ * [[:develop:api:efl:ui:layout_part_box:property:orientation|Efl.Ui.Layout_Part_Box.orientation]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:orientation|Efl.Canvas.Layout_Part_Invalid.orientation]]
+ * [[:develop:api:efl:ui:collection_view:property:orientation|Efl.Ui.Collection_View.orientation]]
+ * [[:develop:api:efl:ui:table:property:orientation|Efl.Ui.Table.orientation]]
+ * [[:develop:api:efl:ui:box:property:orientation|Efl.Ui.Box.orientation]]
+ * [[:develop:api:efl:ui:slider_interval:property:orientation|Efl.Ui.Slider_Interval.orientation]]
+ * [[:develop:api:efl:ui:collection:property:orientation|Efl.Ui.Collection.orientation]]
+ * [[:develop:api:efl:ui:panes:property:orientation|Efl.Ui.Panes.orientation]]
+ * [[:develop:api:efl:ui:progressbar:property:orientation|Efl.Ui.Progressbar.orientation]]
+ * [[:develop:api:efl:ui:spin_button:property:orientation|Efl.Ui.Spin_Button.orientation]]
+ * [[:develop:api:efl:ui:position_manager:grid:property:orientation|Efl.Ui.Position_Manager.Grid.orientation]]
+ * [[:develop:api:efl:ui:position_manager:list:property:orientation|Efl.Ui.Position_Manager.List.orientation]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/collection_view/property/position_manager.txt b/public_html/data/pages/develop/api/efl/ui/collection_view/property/position_manager.txt
new file mode 100644
index 00000000..74bba2e9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/collection_view/property/position_manager.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Collection_View.position_manager~~
+====== Efl.Ui.Collection_View.position_manager ======
+
+===== Description =====
+
+%%Position manager object that handles placement of items.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:collection_view:property:position_manager:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **position_manager** - %%The objects ownership is passed to the item container.%%
+
+===== Signature =====
+
+
+@property position_manager @beta {
+ get {}
+ set {}
+ values {
+ position_manager: Efl.Ui.Position_Manager.Entity;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Position_Manager_Entity *efl_ui_collection_view_position_manager_get(const Eo *obj);
+void efl_ui_collection_view_position_manager_set(Eo *obj, Efl_Ui_Position_Manager_Entity *position_manager);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:collection_view:property:position_manager|Efl.Ui.Collection_View.position_manager]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/datepicker.txt b/public_html/data/pages/develop/api/efl/ui/datepicker.txt
new file mode 100644
index 00000000..927e741d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/datepicker.txt
@@ -0,0 +1,410 @@
+~~Title: Efl.Ui.Datepicker~~
+====== Efl.Ui.Datepicker (class) ======
+
+===== Description =====
+
+%%Datepicker widget%%
+
+%%This is a widget which allows the user to pick a date using internal spinner. User can use the internal spinner to select year, month, day or user can input value using internal entry.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:datepicker:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)// => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)//
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] //(interface)//
+ * [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] //(interface)//
+ * [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] //(interface)//
+ * [[:develop:api:efl:layout:group|Efl.Layout.Group]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:datepicker:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:datepicker:property:date|date]]** //**(get, set)**//\\
+> %%The current value of date.%%
+
+void efl_ui_datepicker_date_get(const Eo *obj, int *year, int *month, int *day);
+void efl_ui_datepicker_date_set(Eo *obj, int year, int month, int day);
+
+\\
+**[[:develop:api:efl:ui:datepicker:property:date_max|date_max]]** //**(get, set)**//\\
+> %%The upper boundary of date.%%
+
+void efl_ui_datepicker_date_max_get(const Eo *obj, int *year, int *month, int *day);
+void efl_ui_datepicker_date_max_set(Eo *obj, int year, int month, int day);
+
+\\
+**[[:develop:api:efl:ui:datepicker:property:date_min|date_min]]** //**(get, set)**//\\
+> %%The lower boundary of date.%%
+
+void efl_ui_datepicker_date_min_get(const Eo *obj, int *year, int *month, int *day);
+void efl_ui_datepicker_date_min_set(Eo *obj, int year, int month, int day);
+
+\\
+**[[:develop:api:efl:ui:datepicker:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:property:automatic_theme_rotation|automatic_theme_rotation]]** //**(get, set)**// | %%This flag tells if this object will automatically mirror the rotation changes of the window to this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**// | %%Whether this object updates its size hints automatically.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_freeze|calc_freeze]]** | %%Freezes the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_parts_extends|calc_parts_extends]]** | %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_size_min|calc_size_min]]** | %%Calculates the minimum required size for a given layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_thaw|calc_thaw]]** | %%Thaws the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:layout_base:method:factory_bind|factory_bind]]** | %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:finger_size_multiplier|finger_size_multiplier]]** //**(get, set)**// | %%Set a multiplier for applying finger size to the layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:group_calculate|group_calculate]]** | %%Triggers an immediate recalculation of this object's geometry.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:group_data|group_data]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_max|group_size_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_min|group_size_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:l10n_text|l10n_text]]** //**(get, set)**// | %%A unique string to be translated.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:message_send|message_send]]** | %%Sends an (Edje) message to a given Edje object%% |
+| | **[[:develop:api:efl:ui:layout_base:property:part_exist|part_exist]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_add|signal_callback_add]]** | %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_del|signal_callback_del]]** | %%Removes a signal-triggered callback from an object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_emit|signal_emit]]** | %%Sends/emits an Edje signal to this layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_process|signal_process]]** | %%Processes an object's messages and signals queue.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:theme|theme]]** //**(get, set)**// | %%The theme of this widget, defines which edje group will be used.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:theme_rotation_apply|theme_rotation_apply]]** | %%Apply a new rotation value to this object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:calc_force|calc_force]]** | %%Forces a Size/Geometry calculation.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:on_focus_update|on_focus_update]]** | %%Virtual function handling focus in/out events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:part_get|part_get]]** | %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:theme_apply|theme_apply]]** | %%Virtual function called when the widget needs to re-apply its theme.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:property:position|position]]** //**(get, set)**// | %%The 2D position of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:size|size]]** //**(get, set)**// | %%The 2D size of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| | **[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_input_event_handler|widget_input_event_handler]]** | %%Virtual function handling input events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+
+===== Events =====
+
+**[[:develop:api:efl:ui:datepicker:event:date_changed|date,changed]]**\\
+> %%Called when date value is changed%%
+
+EFL_UI_DATEPICKER_EVENT_DATE_CHANGED(void)
+
+\\ ==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] ^^^
+| | **[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]** | %%A circular dependency between parts of the object was found.%% |
+| | **[[:develop:api:efl:layout:calc:event:recalc|recalc]]** | %%The layout was recalculated.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:event:theme_changed|theme,changed]]** | %%Called when theme changed%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/datepicker/event/date_changed.txt b/public_html/data/pages/develop/api/efl/ui/datepicker/event/date_changed.txt
new file mode 100644
index 00000000..dd6ed994
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/datepicker/event/date_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Datepicker: date,changed~~
+
+===== Description =====
+
+%%Called when date value is changed%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:datepicker:event:date_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+date,changed;
+
+
+===== C information =====
+
+
+EFL_UI_DATEPICKER_EVENT_DATE_CHANGED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_datepicker_event_date_changed(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_DATEPICKER_EVENT_DATE_CHANGED, on_efl_ui_datepicker_event_date_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/datepicker/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/datepicker/method/constructor.txt
new file mode 100644
index 00000000..33aa7410
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/datepicker/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Datepicker.constructor~~
+====== Efl.Ui.Datepicker.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:datepicker:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/datepicker/method/destructor.txt b/public_html/data/pages/develop/api/efl/ui/datepicker/method/destructor.txt
new file mode 100644
index 00000000..470c46d6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/datepicker/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Ui.Datepicker.destructor~~
+====== Efl.Ui.Datepicker.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:datepicker:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/datepicker/property/date.txt b/public_html/data/pages/develop/api/efl/ui/datepicker/property/date.txt
new file mode 100644
index 00000000..58f42db3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/datepicker/property/date.txt
@@ -0,0 +1,47 @@
+~~Title: Efl.Ui.Datepicker.date~~
+====== Efl.Ui.Datepicker.date ======
+
+===== Description =====
+
+%%The current value of date.%%
+
+%%%%''year''%%: Year. The year range is from 1900 to 2137.%%
+
+%%%%''month''%%: Month. The month range is from 0 to 11.%%
+
+%%%%''day''%%: Day. The day range is from 1 to 31 according to %%''month''%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:datepicker:property:date:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **year** - %%The year value.%%
+ * **month** - %%The month value from 1 to 12.%%
+ * **day** - %%The day value from 1 to 31.%%
+
+===== Signature =====
+
+
+@property date {
+ get {}
+ set {}
+ values {
+ year: int;
+ month: int;
+ day: int;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_datepicker_date_get(const Eo *obj, int *year, int *month, int *day);
+void efl_ui_datepicker_date_set(Eo *obj, int year, int month, int day);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:datepicker:property:date|Efl.Ui.Datepicker.date]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/datepicker/property/date_max.txt b/public_html/data/pages/develop/api/efl/ui/datepicker/property/date_max.txt
new file mode 100644
index 00000000..b805f2cd
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/datepicker/property/date_max.txt
@@ -0,0 +1,47 @@
+~~Title: Efl.Ui.Datepicker.date_max~~
+====== Efl.Ui.Datepicker.date_max ======
+
+===== Description =====
+
+%%The upper boundary of date.%%
+
+%%%%''year''%%: Year. The year range is from 1900 to 2137.%%
+
+%%%%''month''%%: Month. The month range is from 1 to 12.%%
+
+%%%%''day''%%: Day. The day range is from 1 to 31 according to %%''month''%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:datepicker:property:date_max:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **year** - %%The year value.%%
+ * **month** - %%The month value from 1 to 12.%%
+ * **day** - %%The day value from 1 to 31.%%
+
+===== Signature =====
+
+
+@property date_max {
+ get {}
+ set {}
+ values {
+ year: int;
+ month: int;
+ day: int;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_datepicker_date_max_get(const Eo *obj, int *year, int *month, int *day);
+void efl_ui_datepicker_date_max_set(Eo *obj, int year, int month, int day);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:datepicker:property:date_max|Efl.Ui.Datepicker.date_max]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/datepicker/property/date_min.txt b/public_html/data/pages/develop/api/efl/ui/datepicker/property/date_min.txt
new file mode 100644
index 00000000..e4cf16fb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/datepicker/property/date_min.txt
@@ -0,0 +1,47 @@
+~~Title: Efl.Ui.Datepicker.date_min~~
+====== Efl.Ui.Datepicker.date_min ======
+
+===== Description =====
+
+%%The lower boundary of date.%%
+
+%%%%''year''%%: Year. The year range is from 1900 to 2137.%%
+
+%%%%''month''%%: Month. The month range is from 1 to 12.%%
+
+%%%%''day''%%: Day. The day range is from 1 to 31 according to %%''month''%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:datepicker:property:date_min:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **year** - %%The year value.%%
+ * **month** - %%The month value from 1 to 12.%%
+ * **day** - %%The day value from 1 to 31.%%
+
+===== Signature =====
+
+
+@property date_min {
+ get {}
+ set {}
+ values {
+ year: int;
+ month: int;
+ day: int;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_datepicker_date_min_get(const Eo *obj, int *year, int *month, int *day);
+void efl_ui_datepicker_date_min_set(Eo *obj, int year, int month, int day);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:datepicker:property:date_min|Efl.Ui.Datepicker.date_min]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/default_item.txt b/public_html/data/pages/develop/api/efl/ui/default_item.txt
new file mode 100644
index 00000000..644a8e27
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/default_item.txt
@@ -0,0 +1,441 @@
+~~Title: Efl.Ui.Default_Item~~
+====== Efl.Ui.Default_Item (class) ======
+
+===== Description =====
+
+%%Default Item Class.%%
+
+%%This class defines the standard parts for most %%[[:develop:api:efl:ui:item|Efl.Ui.Item]]%%: Text, Icon and Extra. Placement and layout details for these parts are left to the extending classes like %%[[:develop:api:efl:ui:list_default_item|Efl.Ui.List_Default_Item]]%% and %%[[:develop:api:efl:ui:grid_default_item|Efl.Ui.Grid_Default_Item]]%% which should normally be used. Text-related changes are mirrored to the %%''text''%% part for convenience. Content-related changes are mirrored to the %%''icon''%% part.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:default_item:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:item|Efl.Ui.Item]] //(class)// => [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)// => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:item|Efl.Ui.Item]] //(class)//
+ * [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)//
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] //(interface)//
+ * [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] //(interface)//
+ * [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] //(interface)//
+ * [[:develop:api:efl:layout:group|Efl.Layout.Group]] //(interface)//
+ * [[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]] //(interface)//
+ * [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] //(mixin)//
+ * [[:develop:api:efl:text|Efl.Text]] //(interface)//
+ * [[:develop:api:efl:text_markup|Efl.Text_Markup]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:content|Efl.Content]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:default_item:property:content|content]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:content|Efl.Content]]]//\\
+> %%Sub-object currently set as this object's single content.%%
+
+Efl_Gfx_Entity *efl_content_get(const Eo *obj);
+Eina_Bool efl_content_set(Eo *obj, Efl_Gfx_Entity *content);
+
+\\
+**[[:develop:api:efl:ui:default_item:method:content_unset|content_unset]]**// [Overridden from [[:develop:api:efl:content|Efl.Content]]]//\\
+> %%Remove the sub-object currently set as content of this object and return it. This object becomes empty.%%
+
+Efl_Gfx_Entity *efl_content_unset(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:default_item:property:l10n_text|l10n_text]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]]]//\\
+> %%A unique string to be translated.%%
+
+const char *efl_ui_l10n_text_get(const Eo *obj, const char **domain);
+void efl_ui_l10n_text_set(Eo *obj, const char *label, const char *domain);
+
+\\
+**[[:develop:api:efl:ui:default_item:property:markup|markup]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:text_markup|Efl.Text_Markup]]]//\\
+> %%Markup property%%
+
+const char *efl_text_markup_get(const Eo *obj);
+void efl_text_markup_set(Eo *obj, const char *markup);
+
+\\
+**[[:develop:api:efl:ui:default_item:property:text|text]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:text|Efl.Text]]]//\\
+> %%The text string to be displayed by the given text object.%%
+
+const char *efl_text_get(const Eo *obj);
+void efl_text_set(Eo *obj, const char *text);
+
+\\
+**[[:develop:api:efl:ui:default_item:method:part_get|part_get]]** ''protected''// [Overridden from [[:develop:api:efl:part|Efl.Part]]]//\\
+> %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%%
+
+Efl_Object *efl_part_get(const Eo *obj, const char *name);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] ^^^
+| | **[[:develop:api:efl:input:clickable:property:interaction|interaction]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:button_state_reset|button_state_reset]]** | %%This aborts the internal state after a press call.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:longpress_abort|longpress_abort]]** | %%This aborts ongoing longpress event.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:press|press]]** | %%Change internal states that a button got pressed.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:unpress|unpress]]** | %%Change internal states that a button got unpressed.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:item|Efl.Ui.Item]] ^^^
+| | **[[:develop:api:efl:ui:item:property:calc_locked|calc_locked]]** //**(get, set)**// | %%If the item has its calc locked it will not trigger %%[[:develop:api:efl:canvas:group:property:group_need_recalculate|Efl.Canvas.Group.group_need_recalculate.set]]%% done.%% |
+| | **[[:develop:api:efl:ui:item:method:constructor|constructor]]** | %%Implement this method to provide optional initialization code for your object.%% |
+| | **[[:develop:api:efl:ui:item:property:container|container]]** //**(get, set)**// | %%The container this object is part of.%% |
+| | **[[:develop:api:efl:ui:item:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| | **[[:develop:api:efl:ui:item:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:ui:item:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:ui:item:property:index|index]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:item:property:item_parent|item_parent]]** //**(get, set)**// | %%The parent of the item.%% |
+| | **[[:develop:api:efl:ui:item:property:selected|selected]]** //**(get, set)**// | %%The selected state of this object%% |
+| ''protected'' | **[[:develop:api:efl:ui:item:method:widget_input_event_handler|widget_input_event_handler]]** | %%Virtual function handling input events on the widget.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:property:automatic_theme_rotation|automatic_theme_rotation]]** //**(get, set)**// | %%This flag tells if this object will automatically mirror the rotation changes of the window to this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**// | %%Whether this object updates its size hints automatically.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_freeze|calc_freeze]]** | %%Freezes the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_parts_extends|calc_parts_extends]]** | %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_size_min|calc_size_min]]** | %%Calculates the minimum required size for a given layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_thaw|calc_thaw]]** | %%Thaws the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:layout_base:method:factory_bind|factory_bind]]** | %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:finger_size_multiplier|finger_size_multiplier]]** //**(get, set)**// | %%Set a multiplier for applying finger size to the layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:group_calculate|group_calculate]]** | %%Triggers an immediate recalculation of this object's geometry.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:group_data|group_data]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_max|group_size_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_min|group_size_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:message_send|message_send]]** | %%Sends an (Edje) message to a given Edje object%% |
+| | **[[:develop:api:efl:ui:layout_base:property:part_exist|part_exist]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_add|signal_callback_add]]** | %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_del|signal_callback_del]]** | %%Removes a signal-triggered callback from an object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_emit|signal_emit]]** | %%Sends/emits an Edje signal to this layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_process|signal_process]]** | %%Processes an object's messages and signals queue.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:theme|theme]]** //**(get, set)**// | %%The theme of this widget, defines which edje group will be used.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:theme_rotation_apply|theme_rotation_apply]]** | %%Apply a new rotation value to this object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:calc_force|calc_force]]** | %%Forces a Size/Geometry calculation.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:on_focus_update|on_focus_update]]** | %%Virtual function handling focus in/out events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:theme_apply|theme_apply]]** | %%Virtual function called when the widget needs to re-apply its theme.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:property:position|position]]** //**(get, set)**// | %%The 2D position of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:size|size]]** //**(get, set)**// | %%The 2D size of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| | **[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:content|Efl.Content]] ^^^
+| | **[[:develop:api:efl:content:event:content_changed|content,changed]]** | %%Sent after the content is set or unset using the current content object.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] ^^^
+| | **[[:develop:api:efl:input:clickable:event:clicked|clicked]]** | %%Called when object is in sequence pressed and unpressed by the primary button%% |
+| | **[[:develop:api:efl:input:clickable:event:clicked_any|clicked,any]]** | %%Called when object is in sequence pressed and unpressed by any button. The button that triggered the event can be found in the event information.%% |
+| | **[[:develop:api:efl:input:clickable:event:longpressed|longpressed]]** | %%Called when the object receives a long press, event_info is the button that got pressed%% |
+| | **[[:develop:api:efl:input:clickable:event:pressed|pressed]]** | %%Called when the object is pressed, event_info is the button that got pressed%% |
+| | **[[:develop:api:efl:input:clickable:event:unpressed|unpressed]]** | %%Called when the object is no longer pressed, event_info is the button that got pressed%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] ^^^
+| | **[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]** | %%A circular dependency between parts of the object was found.%% |
+| | **[[:develop:api:efl:layout:calc:event:recalc|recalc]]** | %%The layout was recalculated.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:event:theme_changed|theme,changed]]** | %%Called when theme changed%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]] ^^^
+| | **[[:develop:api:efl:ui:selectable:event:selected_changed|selected,changed]]** | %%Called when the selected state has changed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/default_item/method/content_unset.txt b/public_html/data/pages/develop/api/efl/ui/default_item/method/content_unset.txt
new file mode 100644
index 00000000..f5a3c1e9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/default_item/method/content_unset.txt
@@ -0,0 +1,62 @@
+~~Title: Efl.Ui.Default_Item.content_unset~~
+====== Efl.Ui.Default_Item.content_unset ======
+
+===== Description =====
+
+%%Remove the sub-object currently set as content of this object and return it. This object becomes empty.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:default_item:method:content_unset:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:content:method:content_unset|Efl.Content.content_unset]].//===== Signature =====
+
+
+content_unset @pure_virtual {
+ return: Efl.Gfx.Entity;
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_content_unset(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:content:method:content_unset|Efl.Content.content_unset]]
+ * [[:develop:api:efl:ui:check:method:content_unset|Efl.Ui.Check.content_unset]]
+ * [[:develop:api:efl:ui:win:method:content_unset|Efl.Ui.Win.content_unset]]
+ * [[:develop:api:efl:ui:default_item:method:content_unset|Efl.Ui.Default_Item.content_unset]]
+ * [[:develop:api:efl:ui:win_part:method:content_unset|Efl.Ui.Win_Part.content_unset]]
+ * [[:develop:api:efl:canvas:layout_part_external:method:content_unset|Efl.Canvas.Layout_Part_External.content_unset]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:method:content_unset|Efl.Ui.Navigation_Bar_Part_Back_Button.content_unset]]
+ * [[:develop:api:efl:ui:layout_part_legacy:method:content_unset|Efl.Ui.Layout_Part_Legacy.content_unset]]
+ * [[:develop:api:elm:dayselector:part:method:content_unset|Elm.Dayselector.Part.content_unset]]
+ * [[:develop:api:elm:entry:part:method:content_unset|Elm.Entry.Part.content_unset]]
+ * [[:develop:api:elm:naviframe:part:method:content_unset|Elm.Naviframe.Part.content_unset]]
+ * [[:develop:api:elm:ctxpopup:part:method:content_unset|Elm.Ctxpopup.Part.content_unset]]
+ * [[:develop:api:elm:fileselector:entry:part:method:content_unset|Elm.Fileselector.Entry.Part.content_unset]]
+ * [[:develop:api:elm:popup:part:method:content_unset|Elm.Popup.Part.content_unset]]
+ * [[:develop:api:elm:hover:part:method:content_unset|Elm.Hover.Part.content_unset]]
+ * [[:develop:api:elm:scroller:part:method:content_unset|Elm.Scroller.Part.content_unset]]
+ * [[:develop:api:elm:notify:part:method:content_unset|Elm.Notify.Part.content_unset]]
+ * [[:develop:api:efl:ui:panel:method:content_unset|Efl.Ui.Panel.content_unset]]
+ * [[:develop:api:elm:panel:part:method:content_unset|Elm.Panel.Part.content_unset]]
+ * [[:develop:api:efl:ui:tab_page:method:content_unset|Efl.Ui.Tab_Page.content_unset]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:content_unset|Efl.Ui.List_Placeholder_Item.content_unset]]
+ * [[:develop:api:elm:mapbuf:part:method:content_unset|Elm.Mapbuf.Part.content_unset]]
+ * [[:develop:api:efl:ui:scroller:method:content_unset|Efl.Ui.Scroller.content_unset]]
+ * [[:develop:api:efl:ui:flip_part:method:content_unset|Efl.Ui.Flip_Part.content_unset]]
+ * [[:develop:api:efl:canvas:layout_part_swallow:method:content_unset|Efl.Canvas.Layout_Part_Swallow.content_unset]]
+ * [[:develop:api:efl:ui:pan:method:content_unset|Efl.Ui.Pan.content_unset]]
+ * [[:develop:api:efl:ui:frame:method:content_unset|Efl.Ui.Frame.content_unset]]
+ * [[:develop:api:efl:ui:progressbar:method:content_unset|Efl.Ui.Progressbar.content_unset]]
+ * [[:develop:api:efl:ui:popup:method:content_unset|Efl.Ui.Popup.content_unset]]
+ * [[:develop:api:efl:ui:navigation_layout:method:content_unset|Efl.Ui.Navigation_Layout.content_unset]]
+ * [[:develop:api:elm:flip:part:method:content_unset|Elm.Flip.Part.content_unset]]
+ * [[:develop:api:efl:ui:button:method:content_unset|Efl.Ui.Button.content_unset]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:content_unset|Efl.Canvas.Layout_Part_Invalid.content_unset]]
+ * [[:develop:api:efl:ui:layout_part_content:method:content_unset|Efl.Ui.Layout_Part_Content.content_unset]]
+ * [[:develop:api:efl:ui:navigation_bar_part:method:content_unset|Efl.Ui.Navigation_Bar_Part.content_unset]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/default_item/method/part_get.txt b/public_html/data/pages/develop/api/efl/ui/default_item/method/part_get.txt
new file mode 100644
index 00000000..4eecc6c0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/default_item/method/part_get.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Default_Item.part_get~~
+====== Efl.Ui.Default_Item.part_get ======
+
+===== Description =====
+
+%%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:default_item:method:part_get:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:part_get|Efl.Part.part_get]].//===== Signature =====
+
+
+part_get @protected @const @pure_virtual {
+ params {
+ @in name: string;
+ }
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_part_get(const Eo *obj, const char *name);
+
+
+===== Parameters =====
+
+ * **name** //(in)// - %%The part name.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:part:method:part_get|Efl.Part.part_get]]
+ * [[:develop:api:efl:canvas:layout:method:part_get|Efl.Canvas.Layout.part_get]]
+ * [[:develop:api:efl:ui:widget:method:part_get|Efl.Ui.Widget.part_get]]
+ * [[:develop:api:efl:ui:win:method:part_get|Efl.Ui.Win.part_get]]
+ * [[:develop:api:efl:ui:flip:method:part_get|Efl.Ui.Flip.part_get]]
+ * [[:develop:api:efl:ui:layout_base:method:part_get|Efl.Ui.Layout_Base.part_get]]
+ * [[:develop:api:efl:ui:text:method:part_get|Efl.Ui.Text.part_get]]
+ * [[:develop:api:efl:ui:default_item:method:part_get|Efl.Ui.Default_Item.part_get]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:part_get|Efl.Ui.List_Placeholder_Item.part_get]]
+ * [[:develop:api:efl:ui:textpath:method:part_get|Efl.Ui.Textpath.part_get]]
+ * [[:develop:api:efl:ui:panes:method:part_get|Efl.Ui.Panes.part_get]]
+ * [[:develop:api:efl:ui:progressbar:method:part_get|Efl.Ui.Progressbar.part_get]]
+ * [[:develop:api:efl:ui:popup:method:part_get|Efl.Ui.Popup.part_get]]
+ * [[:develop:api:efl:ui:alert_popup:method:part_get|Efl.Ui.Alert_Popup.part_get]]
+ * [[:develop:api:efl:ui:navigation_bar:method:part_get|Efl.Ui.Navigation_Bar.part_get]]
+ * [[:develop:api:efl:ui:widget_factory:method:part_get|Efl.Ui.Widget_Factory.part_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/default_item/property/content.txt b/public_html/data/pages/develop/api/efl/ui/default_item/property/content.txt
new file mode 100644
index 00000000..c20fbd66
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/default_item/property/content.txt
@@ -0,0 +1,80 @@
+~~Title: Efl.Ui.Default_Item.content~~
+====== Efl.Ui.Default_Item.content ======
+
+===== Description =====
+
+%%Sub-object currently set as this object's single content.%%
+
+%%If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid %%''content''%% is set the object will become empty (it will have no sub-object).%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:default_item:property:content:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **content** - %%The sub-object.%%
+
+//Overridden from [[:develop:api:efl:content:property:content|Efl.Content.content]] **(get, set)**.//===== Signature =====
+
+
+@property content @pure_virtual {
+ get {}
+ set {
+ return: bool;
+ }
+ values {
+ content: Efl.Gfx.Entity;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_content_get(const Eo *obj);
+Eina_Bool efl_content_set(Eo *obj, Efl_Gfx_Entity *content);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:content:property:content|Efl.Content.content]]
+ * [[:develop:api:efl:ui:check:property:content|Efl.Ui.Check.content]]
+ * [[:develop:api:efl:ui:win:property:content|Efl.Ui.Win.content]]
+ * [[:develop:api:efl:ui:default_item:property:content|Efl.Ui.Default_Item.content]]
+ * [[:develop:api:efl:ui:win_part:property:content|Efl.Ui.Win_Part.content]]
+ * [[:develop:api:efl:canvas:layout_part_external:property:content|Efl.Canvas.Layout_Part_External.content]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:property:content|Efl.Ui.Navigation_Bar_Part_Back_Button.content]]
+ * [[:develop:api:efl:ui:layout_part_legacy:property:content|Efl.Ui.Layout_Part_Legacy.content]]
+ * [[:develop:api:elm:dayselector:part:property:content|Elm.Dayselector.Part.content]]
+ * [[:develop:api:elm:entry:part:property:content|Elm.Entry.Part.content]]
+ * [[:develop:api:elm:naviframe:part:property:content|Elm.Naviframe.Part.content]]
+ * [[:develop:api:elm:ctxpopup:part:property:content|Elm.Ctxpopup.Part.content]]
+ * [[:develop:api:elm:fileselector:entry:part:property:content|Elm.Fileselector.Entry.Part.content]]
+ * [[:develop:api:elm:popup:part:property:content|Elm.Popup.Part.content]]
+ * [[:develop:api:elm:hover:part:property:content|Elm.Hover.Part.content]]
+ * [[:develop:api:elm:scroller:part:property:content|Elm.Scroller.Part.content]]
+ * [[:develop:api:elm:player:part:property:content|Elm.Player.Part.content]]
+ * [[:develop:api:elm:notify:part:property:content|Elm.Notify.Part.content]]
+ * [[:develop:api:efl:ui:panel:property:content|Efl.Ui.Panel.content]]
+ * [[:develop:api:elm:panel:part:property:content|Elm.Panel.Part.content]]
+ * [[:develop:api:efl:ui:tab_page:property:content|Efl.Ui.Tab_Page.content]]
+ * [[:develop:api:efl:ui:list_placeholder_item:property:content|Efl.Ui.List_Placeholder_Item.content]]
+ * [[:develop:api:elm:mapbuf:part:property:content|Elm.Mapbuf.Part.content]]
+ * [[:develop:api:efl:ui:scroller:property:content|Efl.Ui.Scroller.content]]
+ * [[:develop:api:efl:ui:flip_part:property:content|Efl.Ui.Flip_Part.content]]
+ * [[:develop:api:efl:canvas:layout_part_swallow:property:content|Efl.Canvas.Layout_Part_Swallow.content]]
+ * [[:develop:api:efl:ui:pan:property:content|Efl.Ui.Pan.content]]
+ * [[:develop:api:efl:ui:frame:property:content|Efl.Ui.Frame.content]]
+ * [[:develop:api:efl:ui:progressbar:property:content|Efl.Ui.Progressbar.content]]
+ * [[:develop:api:efl:ui:popup:property:content|Efl.Ui.Popup.content]]
+ * [[:develop:api:efl:ui:navigation_layout:property:content|Efl.Ui.Navigation_Layout.content]]
+ * [[:develop:api:elm:flip:part:property:content|Elm.Flip.Part.content]]
+ * [[:develop:api:efl:ui:button:property:content|Efl.Ui.Button.content]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:content|Efl.Canvas.Layout_Part_Invalid.content]]
+ * [[:develop:api:efl:ui:layout_part_content:property:content|Efl.Ui.Layout_Part_Content.content]]
+ * [[:develop:api:efl:ui:progressbar_legacy_part:property:content|Efl.Ui.Progressbar_Legacy_Part.content]]
+ * [[:develop:api:efl:ui:check_legacy_part:property:content|Efl.Ui.Check_Legacy_Part.content]]
+ * [[:develop:api:efl:ui:button_legacy_part:property:content|Efl.Ui.Button_Legacy_Part.content]]
+ * [[:develop:api:efl:ui:navigation_bar_part:property:content|Efl.Ui.Navigation_Bar_Part.content]]
+ * [[:develop:api:efl:ui:radio_legacy_part:property:content|Efl.Ui.Radio_Legacy_Part.content]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/default_item/property/l10n_text.txt b/public_html/data/pages/develop/api/efl/ui/default_item/property/l10n_text.txt
new file mode 100644
index 00000000..1d1d76a9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/default_item/property/l10n_text.txt
@@ -0,0 +1,72 @@
+~~Title: Efl.Ui.Default_Item.l10n_text~~
+====== Efl.Ui.Default_Item.l10n_text ======
+
+===== Description =====
+
+%%A unique string to be translated.%%
+
+%%Often this will be a human-readable string (e.g. in English) but it can also be a unique string identifier that must then be translated to the current locale with %%''dgettext''%%() or any similar mechanism.%%
+
+%%Setting this property will enable translation for this object or part.%%
+
+
+{{page>:develop:api-include:efl:ui:default_item:property:l10n_text:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+==== Getter ====
+
+ * **domain** - %%A translation domain. If %%''null''%% this means the default domain is used.%%
+==== Setter ====
+
+ * **label** - %%A unique (untranslated) string.%%
+ * **domain** - %%A translation domain. If %%''null''%% this uses the default domain (eg. set by %%''textdomain''%%()).%%
+==== Setter ====
+
+%%Sets the new untranslated string and domain for this object.%%
+{{page>:develop:api-include:efl:ui:default_item:property:l10n_text:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:layout_base:property:l10n_text|Efl.Ui.L10n.l10n_text]] **(get, set)**.//===== Signature =====
+
+
+@property l10n_text @pure_virtual {
+ get {
+ values {
+ domain: string @optional;
+ }
+ return: string;
+ }
+ set {
+ values {
+ label: string;
+ domain: string @optional;
+ }
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_ui_l10n_text_get(const Eo *obj, const char **domain);
+void efl_ui_l10n_text_set(Eo *obj, const char *label, const char *domain);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:l10n:property:l10n_text|Efl.Ui.L10n.l10n_text]]
+ * [[:develop:api:efl:ui:default_item:property:l10n_text|Efl.Ui.Default_Item.l10n_text]]
+ * [[:develop:api:efl:ui:layout_part_legacy:property:l10n_text|Efl.Ui.Layout_Part_Legacy.l10n_text]]
+ * [[:develop:api:elm:notify:part:property:l10n_text|Elm.Notify.Part.l10n_text]]
+ * [[:develop:api:efl:ui:layout_part_text:property:l10n_text|Efl.Ui.Layout_Part_Text.l10n_text]]
+ * [[:develop:api:efl:ui:win:property:l10n_text|Efl.Ui.Win.l10n_text]]
+ * [[:develop:api:efl:ui:table:property:l10n_text|Efl.Ui.Table.l10n_text]]
+ * [[:develop:api:efl:ui:box:property:l10n_text|Efl.Ui.Box.l10n_text]]
+ * [[:develop:api:efl:ui:layout_base:property:l10n_text|Efl.Ui.Layout_Base.l10n_text]]
+ * [[:develop:api:efl:ui:check:property:l10n_text|Efl.Ui.Check.l10n_text]]
+ * [[:develop:api:efl:ui:frame:property:l10n_text|Efl.Ui.Frame.l10n_text]]
+ * [[:develop:api:efl:ui:progressbar:property:l10n_text|Efl.Ui.Progressbar.l10n_text]]
+ * [[:develop:api:efl:ui:button:property:l10n_text|Efl.Ui.Button.l10n_text]]
+ * [[:develop:api:efl:ui:navigation_bar:property:l10n_text|Efl.Ui.Navigation_Bar.l10n_text]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/default_item/property/markup.txt b/public_html/data/pages/develop/api/efl/ui/default_item/property/markup.txt
new file mode 100644
index 00000000..c0dc5efb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/default_item/property/markup.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Default_Item.markup~~
+====== Efl.Ui.Default_Item.markup ======
+
+===== Description =====
+
+%%Markup property%%
+{{page>:develop:api-include:efl:ui:default_item:property:markup:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **markup** - %%The markup-text representation set to this text.%%
+
+//Overridden from [[:develop:api:efl:text_markup:property:markup|Efl.Text_Markup.markup]] **(get, set)**.//===== Signature =====
+
+
+@property markup @pure_virtual {
+ get {}
+ set {}
+ values {
+ markup: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_text_markup_get(const Eo *obj);
+void efl_text_markup_set(Eo *obj, const char *markup);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:text_markup:property:markup|Efl.Text_Markup.markup]]
+ * [[:develop:api:efl:ui:default_item:property:markup|Efl.Ui.Default_Item.markup]]
+ * [[:develop:api:efl:ui:layout_part_legacy:property:markup|Efl.Ui.Layout_Part_Legacy.markup]]
+ * [[:develop:api:efl:canvas:text:property:markup|Efl.Canvas.Text.markup]]
+ * [[:develop:api:efl:ui:layout_part_text:property:markup|Efl.Ui.Layout_Part_Text.markup]]
+ * [[:develop:api:efl:ui:frame:property:markup|Efl.Ui.Frame.markup]]
+ * [[:develop:api:efl:ui:progressbar:property:markup|Efl.Ui.Progressbar.markup]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:markup|Efl.Canvas.Layout_Part_Invalid.markup]]
+ * [[:develop:api:efl:canvas:layout_part_text:property:markup|Efl.Canvas.Layout_Part_Text.markup]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/default_item/property/text.txt b/public_html/data/pages/develop/api/efl/ui/default_item/property/text.txt
new file mode 100644
index 00000000..b018eca7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/default_item/property/text.txt
@@ -0,0 +1,67 @@
+~~Title: Efl.Ui.Default_Item.text~~
+====== Efl.Ui.Default_Item.text ======
+
+===== Description =====
+
+%%The text string to be displayed by the given text object.%%
+
+%%Do not release (free) the returned value.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:default_item:property:text:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **text** - %%Text string to display.%%
+
+//Overridden from [[:develop:api:efl:text:property:text|Efl.Text.text]] **(get, set)**.//===== Signature =====
+
+
+@property text @pure_virtual {
+ get {}
+ set {}
+ values {
+ text: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_text_get(const Eo *obj);
+void efl_text_set(Eo *obj, const char *text);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:text:property:text|Efl.Text.text]]
+ * [[:develop:api:efl:ui:check:property:text|Efl.Ui.Check.text]]
+ * [[:develop:api:efl:ui:win:property:text|Efl.Ui.Win.text]]
+ * [[:develop:api:efl:ui:default_item:property:text|Efl.Ui.Default_Item.text]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:property:text|Efl.Ui.Navigation_Bar_Part_Back_Button.text]]
+ * [[:develop:api:efl:ui:layout_part_legacy:property:text|Efl.Ui.Layout_Part_Legacy.text]]
+ * [[:develop:api:elm_actionslider:part:property:text|Elm_Actionslider.Part.text]]
+ * [[:develop:api:elm:entry:part:property:text|Elm.Entry.Part.text]]
+ * [[:develop:api:elm_label:part:property:text|Elm_Label.Part.text]]
+ * [[:develop:api:elm:multibuttonentry_part:property:text|Elm.Multibuttonentry_Part.text]]
+ * [[:develop:api:elm:naviframe:part:property:text|Elm.Naviframe.Part.text]]
+ * [[:develop:api:elm_bubble:part:property:text|Elm_Bubble.Part.text]]
+ * [[:develop:api:elm:fileselector:entry:part:property:text|Elm.Fileselector.Entry.Part.text]]
+ * [[:develop:api:elm:fileselector:part:property:text|Elm.Fileselector.Part.text]]
+ * [[:develop:api:elm:popup:part:property:text|Elm.Popup.Part.text]]
+ * [[:develop:api:elm:notify:part:property:text|Elm.Notify.Part.text]]
+ * [[:develop:api:efl:canvas:text:property:text|Efl.Canvas.Text.text]]
+ * [[:develop:api:efl:ui:layout_part_text:property:text|Efl.Ui.Layout_Part_Text.text]]
+ * [[:develop:api:efl:ui:textpath_part:property:text|Efl.Ui.Textpath_Part.text]]
+ * [[:develop:api:efl:ui:alert_popup_part:property:text|Efl.Ui.Alert_Popup_Part.text]]
+ * [[:develop:api:efl:ui:text_part:property:text|Efl.Ui.Text_Part.text]]
+ * [[:develop:api:efl:ui:textpath:property:text|Efl.Ui.Textpath.text]]
+ * [[:develop:api:efl:ui:tags:property:text|Efl.Ui.Tags.text]]
+ * [[:develop:api:efl:ui:frame:property:text|Efl.Ui.Frame.text]]
+ * [[:develop:api:efl:ui:progressbar:property:text|Efl.Ui.Progressbar.text]]
+ * [[:develop:api:efl:ui:button:property:text|Efl.Ui.Button.text]]
+ * [[:develop:api:efl:ui:navigation_bar:property:text|Efl.Ui.Navigation_Bar.text]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:text|Efl.Canvas.Layout_Part_Invalid.text]]
+ * [[:develop:api:efl:canvas:layout_part_text:property:text|Efl.Canvas.Layout_Part_Text.text]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/factory.txt b/public_html/data/pages/develop/api/efl/ui/factory.txt
new file mode 100644
index 00000000..13061303
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/factory.txt
@@ -0,0 +1,74 @@
+~~Title: Efl.Ui.Factory~~
+====== Efl.Ui.Factory (interface) ======
+
+===== Description =====
+
+%%Interface for factory-pattern object creation.%%
+
+%%This object represents a Factory in the factory pattern. Objects should be created via the method %%[[:develop:api:efl:ui:view_factory:method:create_with_event|Efl.Ui.View_Factory.create_with_event]]%%, which will in turn call the necessary APIs from this interface. Objects created this way should be removed using %%[[:develop:api:efl:ui:factory:method:release|Efl.Ui.Factory.release]]%%.%%
+
+%%It is recommended to not create your own %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% and use event handler as much as possible.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:factory:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:factory:method:release|release]]**\\
+> %%Release a UI object and disconnect from models.%%
+
+void efl_ui_factory_release(Eo *obj, Eina_Iterator *ui_views);
+
+\\
+**[[:develop:api:efl:ui:factory:method:create|create]]** ''protected''\\
+> %%Create a UI object from the necessary properties in the specified model.%%
+
+Eina_Future *efl_ui_factory_create(Eo *obj, Eina_Iterator *models);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] ^^^
+| | **[[:develop:api:efl:ui:factory_bind:method:factory_bind|factory_bind]]** | %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+
+===== Events =====
+
+**[[:develop:api:efl:ui:factory:event:item_building|item,building]]**\\
+> %%Event emitted when an item has processed %%[[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]%%, but before all the factory are done building it. Note: If the %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% keeps a cache of objects, this will be called when objects are pulled from the cache.%%
+
+EFL_UI_FACTORY_EVENT_ITEM_BUILDING(Efl_Gfx_Entity *)
+
+\\ **[[:develop:api:efl:ui:factory:event:item_constructing|item,constructing]]**\\
+> %%Event emitted when an item is under construction (between the %%[[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]%% and %%[[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]%% call on the item). Note: If the %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% keeps a cache of objects, this won't be called when objects are pulled from the cache.%%
+
+EFL_UI_FACTORY_EVENT_ITEM_CONSTRUCTING(Efl_Gfx_Entity *)
+
+\\ **[[:develop:api:efl:ui:factory:event:item_created|item,created]]**\\
+> %%Event emitted when an item has been successfully created by the factory and is about to be used by an %%[[:develop:api:efl:ui:view|Efl.Ui.View]]%%.%%
+
+EFL_UI_FACTORY_EVENT_ITEM_CREATED(Efl_Gfx_Entity *)
+
+\\ **[[:develop:api:efl:ui:factory:event:item_releasing|item,releasing]]**\\
+> %%Event emitted when an item is being released by the %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%%. It must be assumed that after this call, the object can be recycles to another %%[[:develop:api:efl:ui:view|Efl.Ui.View]]%% and there can be more than one call for the same item.%%
+
+EFL_UI_FACTORY_EVENT_ITEM_RELEASING(Efl_Gfx_Entity *)
+
+\\ ==== Inherited ====
+
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/factory/event/item_building.txt b/public_html/data/pages/develop/api/efl/ui/factory/event/item_building.txt
new file mode 100644
index 00000000..a61f6e02
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/factory/event/item_building.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Factory: item,building~~
+
+===== Description =====
+
+%%Event emitted when an item has processed %%[[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]%%, but before all the factory are done building it. Note: If the %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% keeps a cache of objects, this will be called when objects are pulled from the cache.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:factory:event:item_building:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+item,building: Efl.Gfx.Entity;
+
+
+===== C information =====
+
+
+EFL_UI_FACTORY_EVENT_ITEM_BUILDING(Efl_Gfx_Entity *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_factory_event_item_building(void *data, const Efl_Event *event)
+{
+ Efl_Gfx_Entity *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_FACTORY_EVENT_ITEM_BUILDING, on_efl_ui_factory_event_item_building, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/factory/event/item_constructing.txt b/public_html/data/pages/develop/api/efl/ui/factory/event/item_constructing.txt
new file mode 100644
index 00000000..2966eca6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/factory/event/item_constructing.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Factory: item,constructing~~
+
+===== Description =====
+
+%%Event emitted when an item is under construction (between the %%[[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]%% and %%[[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]%% call on the item). Note: If the %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% keeps a cache of objects, this won't be called when objects are pulled from the cache.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:factory:event:item_constructing:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+item,constructing: Efl.Gfx.Entity;
+
+
+===== C information =====
+
+
+EFL_UI_FACTORY_EVENT_ITEM_CONSTRUCTING(Efl_Gfx_Entity *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_factory_event_item_constructing(void *data, const Efl_Event *event)
+{
+ Efl_Gfx_Entity *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_FACTORY_EVENT_ITEM_CONSTRUCTING, on_efl_ui_factory_event_item_constructing, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/factory/event/item_created.txt b/public_html/data/pages/develop/api/efl/ui/factory/event/item_created.txt
new file mode 100644
index 00000000..a710074b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/factory/event/item_created.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Factory: item,created~~
+
+===== Description =====
+
+%%Event emitted when an item has been successfully created by the factory and is about to be used by an %%[[:develop:api:efl:ui:view|Efl.Ui.View]]%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:factory:event:item_created:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+item,created: Efl.Gfx.Entity;
+
+
+===== C information =====
+
+
+EFL_UI_FACTORY_EVENT_ITEM_CREATED(Efl_Gfx_Entity *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_factory_event_item_created(void *data, const Efl_Event *event)
+{
+ Efl_Gfx_Entity *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_FACTORY_EVENT_ITEM_CREATED, on_efl_ui_factory_event_item_created, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/factory/event/item_releasing.txt b/public_html/data/pages/develop/api/efl/ui/factory/event/item_releasing.txt
new file mode 100644
index 00000000..a16a3b56
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/factory/event/item_releasing.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Factory: item,releasing~~
+
+===== Description =====
+
+%%Event emitted when an item is being released by the %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%%. It must be assumed that after this call, the object can be recycles to another %%[[:develop:api:efl:ui:view|Efl.Ui.View]]%% and there can be more than one call for the same item.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:factory:event:item_releasing:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+item,releasing: Efl.Gfx.Entity;
+
+
+===== C information =====
+
+
+EFL_UI_FACTORY_EVENT_ITEM_RELEASING(Efl_Gfx_Entity *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_factory_event_item_releasing(void *data, const Efl_Event *event)
+{
+ Efl_Gfx_Entity *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_FACTORY_EVENT_ITEM_RELEASING, on_efl_ui_factory_event_item_releasing, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/factory/method/create.txt b/public_html/data/pages/develop/api/efl/ui/factory/method/create.txt
new file mode 100644
index 00000000..a46be1ca
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/factory/method/create.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Factory.create~~
+====== Efl.Ui.Factory.create ======
+
+===== Description =====
+
+%%Create a UI object from the necessary properties in the specified model.%%
+
+
+create @protected @pure_virtual {
+ params {
+ @in models: iterator;
+ }
+ return: future @no_unused;
+}
+
+
+===== C signature =====
+
+
+Eina_Future *efl_ui_factory_create(Eo *obj, Eina_Iterator *models);
+
+
+===== Parameters =====
+
+ * **models** //(in)// - %%Efl iterator providing the model to be associated to the new item. It should remain valid until the end of the function call.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:factory:method:create|Efl.Ui.Factory.create]]
+ * [[:develop:api:efl:ui:widget_factory:method:create|Efl.Ui.Widget_Factory.create]]
+ * [[:develop:api:efl:ui:caching_factory:method:create|Efl.Ui.Caching_Factory.create]]
+ * [[:develop:api:efl:ui:image_factory:method:create|Efl.Ui.Image_Factory.create]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/factory/method/release.txt b/public_html/data/pages/develop/api/efl/ui/factory/method/release.txt
new file mode 100644
index 00000000..e68610c8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/factory/method/release.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.Factory.release~~
+====== Efl.Ui.Factory.release ======
+
+===== Description =====
+
+%%Release a UI object and disconnect from models.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:factory:method:release:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+release @pure_virtual {
+ params {
+ @in ui_views: iterator;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_factory_release(Eo *obj, Eina_Iterator *ui_views);
+
+
+===== Parameters =====
+
+ * **ui_views** //(in)// - %%Object to remove.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:factory:method:release|Efl.Ui.Factory.release]]
+ * [[:develop:api:efl:ui:widget_factory:method:release|Efl.Ui.Widget_Factory.release]]
+ * [[:develop:api:efl:ui:caching_factory:method:release|Efl.Ui.Caching_Factory.release]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/factory_bind.txt b/public_html/data/pages/develop/api/efl/ui/factory_bind.txt
new file mode 100644
index 00000000..4e573546
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/factory_bind.txt
@@ -0,0 +1,22 @@
+~~Title: Efl.Ui.Factory_Bind~~
+====== Efl.Ui.Factory_Bind (interface) ======
+
+===== Description =====
+
+%%Efl UI Property interface. view object can have %%[[:develop:api:efl:model|Efl.Model]]%% and need to set cotent with those model stored data. the interface can help binding the factory to create object with model property data. see %%[[:develop:api:efl:model|Efl.Model]]%% see %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%%%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:factory_bind:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:ui:factory_bind:method:factory_bind|factory_bind]]**\\
+> %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%%
+
+Eina_Error efl_ui_factory_bind(Eo *obj, const char *key, Efl_Ui_Factory *factory);
+
+\\
+
+===== Events =====
+
diff --git a/public_html/data/pages/develop/api/efl/ui/factory_bind/method/factory_bind.txt b/public_html/data/pages/develop/api/efl/ui/factory_bind/method/factory_bind.txt
new file mode 100644
index 00000000..3ac1ae7a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/factory_bind/method/factory_bind.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Factory_Bind.factory_bind~~
+====== Efl.Ui.Factory_Bind.factory_bind ======
+
+===== Description =====
+
+%%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:factory_bind:method:factory_bind:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+factory_bind @pure_virtual {
+ params {
+ @in key: string;
+ @in factory: Efl.Ui.Factory;
+ }
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_factory_bind(Eo *obj, const char *key, Efl_Ui_Factory *factory);
+
+
+===== Parameters =====
+
+ * **key** //(in)// - %%Key string for bind model property data%%
+ * **factory** //(in)// - %%%%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% for create and bind model property data%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:factory_bind:method:factory_bind|Efl.Ui.Factory_Bind.factory_bind]]
+ * [[:develop:api:efl:ui:widget_factory:method:factory_bind|Efl.Ui.Widget_Factory.factory_bind]]
+ * [[:develop:api:efl:ui:layout_factory:method:factory_bind|Efl.Ui.Layout_Factory.factory_bind]]
+ * [[:develop:api:efl:ui:layout_base:method:factory_bind|Efl.Ui.Layout_Base.factory_bind]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/factory_item_created_event.txt b/public_html/data/pages/develop/api/efl/ui/factory_item_created_event.txt
new file mode 100644
index 00000000..2987ff19
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/factory_item_created_event.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Ui.Factory_Item_Created_Event~~
+
+===== Description =====
+
+%%EFL UI Factory event structure provided when an item was just created.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:factory_item_created_event:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:ui:factory_item_created_event:fields&nouser&nolink&nodate}}
+
+ * **model** - %%The model already set on the new item.%%
+ * **item** - %%The item that was just created.%%
+
+===== Signature =====
+
+
+struct Efl.Ui.Factory_Item_Created_Event {
+ model: Efl.Model;
+ item: Efl.Gfx.Entity;
+}
+
+
+===== C signature =====
+
+
+typedef struct _Efl_Ui_Factory_Item_Created_Event {
+ Efl_Model *model;
+ Efl_Gfx_Entity *item;
+} Efl_Ui_Factory_Item_Created_Event;
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/direction.txt b/public_html/data/pages/develop/api/efl/ui/focus/direction.txt
new file mode 100644
index 00000000..367baa9a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/direction.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Ui.Focus.Direction~~
+
+===== Description =====
+
+%%Focus directions.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:focus:direction:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:ui:focus:direction:fields&nouser&nolink&nodate}}
+
+ * **previous** - %%previous direction%%
+ * **next** - %%next direction%%
+ * **up** - %%up direction%%
+ * **down** - %%down direction%%
+ * **right** - %%right direction%%
+ * **left** - %%left direction%%
+ * **last** - %%last direction%%
+
+===== Signature =====
+
+
+enum Efl.Ui.Focus.Direction {
+ previous: 0,
+ next: 1,
+ up: 2,
+ down: 3,
+ right: 4,
+ left: 5,
+ last: 6
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_UI_FOCUS_DIRECTION_PREVIOUS = 0,
+ EFL_UI_FOCUS_DIRECTION_NEXT = 1,
+ EFL_UI_FOCUS_DIRECTION_UP = 2,
+ EFL_UI_FOCUS_DIRECTION_DOWN = 3,
+ EFL_UI_FOCUS_DIRECTION_RIGHT = 4,
+ EFL_UI_FOCUS_DIRECTION_LEFT = 5,
+ EFL_UI_FOCUS_DIRECTION_LAST = 6
+} Efl_Ui_Focus_Direction;
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/manager.txt b/public_html/data/pages/develop/api/efl/ui/focus/manager.txt
new file mode 100644
index 00000000..e958b6ef
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/manager.txt
@@ -0,0 +1,137 @@
+~~Title: Efl.Ui.Focus.Manager~~
+====== Efl.Ui.Focus.Manager (interface) ======
+
+===== Description =====
+
+%%Interface for managing focus objects.%%
+
+%%This interface is built in order to support movement of the focus property in a set of widgets. The movement of the focus property can happen in a tree manner, or a graph manner. The movement is also keeping track of the history of focused elements. The tree interpretation differentiates between logical and regular widgets: Logical widgets (typically containers) cannot receive focus, whereas Regular ones (like buttons) can.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:focus:manager:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:ui:focus:manager:property:border_elements|border_elements]]** //**(get)**//\\
+>
+
+Eina_Iterator *efl_ui_focus_manager_border_elements_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:focus:manager:method:dirty_logic_freeze|dirty_logic_freeze]]**\\
+> %%Disables the cache invalidation when an object is moved.%%
+
+void efl_ui_focus_manager_dirty_logic_freeze(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:focus:manager:method:dirty_logic_unfreeze|dirty_logic_unfreeze]]**\\
+> %%Enables the cache invalidation when an object is moved.%%
+
+void efl_ui_focus_manager_dirty_logic_unfreeze(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:focus:manager:method:fetch|fetch]]**\\
+> %%Fetches the data from a registered node.%%
+
+Efl_Ui_Focus_Relations *efl_ui_focus_manager_fetch(Eo *obj, Efl_Ui_Focus_Object *child);
+
+\\
+**[[:develop:api:efl:ui:focus:manager:method:logical_end|logical_end]]**\\
+> %%Returns the last logical object.%%
+
+Efl_Ui_Focus_Manager_Logical_End_Detail efl_ui_focus_manager_logical_end(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:focus:manager:property:manager_focus|manager_focus]]** //**(get, set)**//\\
+> %%The element which is currently focused by this manager.%%
+
+Efl_Ui_Focus_Object *efl_ui_focus_manager_focus_get(const Eo *obj);
+void efl_ui_focus_manager_focus_set(Eo *obj, Efl_Ui_Focus_Object *focus);
+
+\\
+**[[:develop:api:efl:ui:focus:manager:method:move|move]]**\\
+> %%Moves the focus in the given direction to the next regular widget.%%
+
+Efl_Ui_Focus_Object *efl_ui_focus_manager_move(Eo *obj, Efl_Ui_Focus_Direction direction);
+
+\\
+**[[:develop:api:efl:ui:focus:manager:method:pop_history_stack|pop_history_stack]]**\\
+> %%Removes the uppermost history element, and focuses the previous one.%%
+
+void efl_ui_focus_manager_pop_history_stack(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:focus:manager:property:redirect|redirect]]** //**(get, set)**//\\
+> %%Add another manager to serve the move requests.%%
+
+Efl_Ui_Focus_Manager *efl_ui_focus_manager_redirect_get(const Eo *obj);
+void efl_ui_focus_manager_redirect_set(Eo *obj, Efl_Ui_Focus_Manager *redirect);
+
+\\
+**[[:develop:api:efl:ui:focus:manager:method:request_move|request_move]]**\\
+> %%Returns the object in the %%''direction''%% from %%''child''%%.%%
+
+Efl_Ui_Focus_Object *efl_ui_focus_manager_request_move(Eo *obj, Efl_Ui_Focus_Direction direction, Efl_Ui_Focus_Object *child, Eina_Bool logical);
+
+\\
+**[[:develop:api:efl:ui:focus:manager:method:request_subchild|request_subchild]]**\\
+> %%Returns the widget in the direction next.%%
+
+Efl_Ui_Focus_Object *efl_ui_focus_manager_request_subchild(Eo *obj, Efl_Ui_Focus_Object *root);
+
+\\
+**[[:develop:api:efl:ui:focus:manager:method:reset_history|reset_history]]**\\
+> %%Resets the history stack of this manager object. This means the uppermost element will be unfocused, and all other elements will be removed from the remembered list.%%
+
+void efl_ui_focus_manager_reset_history(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:focus:manager:property:root|root]]** //**(get, set)**//\\
+> %%Root node for all logical sub-trees.%%
+
+Efl_Ui_Focus_Object *efl_ui_focus_manager_root_get(const Eo *obj);
+Eina_Bool efl_ui_focus_manager_root_set(Eo *obj, Efl_Ui_Focus_Object *root);
+
+\\
+**[[:develop:api:efl:ui:focus:manager:method:setup_on_first_touch|setup_on_first_touch]]**\\
+> %%Called when this manager is set as redirect.%%
+
+void efl_ui_focus_manager_setup_on_first_touch(Eo *obj, Efl_Ui_Focus_Direction direction, Efl_Ui_Focus_Object *entry);
+
+\\
+**[[:develop:api:efl:ui:focus:manager:property:viewport_elements|viewport_elements]]** //**(get)**//\\
+>
+
+Eina_Iterator *efl_ui_focus_manager_viewport_elements_get(const Eo *obj, Eina_Rect viewport);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:ui:focus:manager:event:coords_dirty|coords,dirty]]**\\
+> %%Cached relationship calculation results have been invalidated.%%
+
+EFL_UI_FOCUS_MANAGER_EVENT_COORDS_DIRTY(void)
+
+\\ **[[:develop:api:efl:ui:focus:manager:event:dirty_logic_freeze_changed|dirty_logic_freeze,changed]]**\\
+> %%Called when this focus manager is frozen or thawed, even_info being %%''true''%% indicates that it is now frozen, %%''false''%% indicates that it is thawed.%%
+
+EFL_UI_FOCUS_MANAGER_EVENT_DIRTY_LOGIC_FREEZE_CHANGED(Eina_Bool)
+
+\\ **[[:develop:api:efl:ui:focus:manager:event:flush_pre|flush,pre]]**\\
+> %%After this event, the manager object will calculate relations in the graph. Can be used to add / remove children in a lazy fashion.%%
+
+EFL_UI_FOCUS_MANAGER_EVENT_FLUSH_PRE(void)
+
+\\ **[[:develop:api:efl:ui:focus:manager:event:manager_focus_changed|manager_focus,changed]]**\\
+> %%The manager_focus property has changed. The previously focused object is passed as an event argument.%%
+
+EFL_UI_FOCUS_MANAGER_EVENT_MANAGER_FOCUS_CHANGED(Efl_Ui_Focus_Object *)
+
+\\ **[[:develop:api:efl:ui:focus:manager:event:redirect_changed|redirect,changed]]**\\
+> %%Redirect object has changed, the old manager is passed as an event argument.%%
+
+EFL_UI_FOCUS_MANAGER_EVENT_REDIRECT_CHANGED(Efl_Ui_Focus_Manager *)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/manager/event/coords_dirty.txt b/public_html/data/pages/develop/api/efl/ui/focus/manager/event/coords_dirty.txt
new file mode 100644
index 00000000..d226afe9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/manager/event/coords_dirty.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Focus.Manager: coords,dirty~~
+
+===== Description =====
+
+%%Cached relationship calculation results have been invalidated.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:focus:manager:event:coords_dirty:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+coords,dirty;
+
+
+===== C information =====
+
+
+EFL_UI_FOCUS_MANAGER_EVENT_COORDS_DIRTY(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_focus_manager_event_coords_dirty(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_FOCUS_MANAGER_EVENT_COORDS_DIRTY, on_efl_ui_focus_manager_event_coords_dirty, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/manager/event/dirty_logic_freeze_changed.txt b/public_html/data/pages/develop/api/efl/ui/focus/manager/event/dirty_logic_freeze_changed.txt
new file mode 100644
index 00000000..451b477c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/manager/event/dirty_logic_freeze_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Focus.Manager: dirty_logic_freeze,changed~~
+
+===== Description =====
+
+%%Called when this focus manager is frozen or thawed, even_info being %%''true''%% indicates that it is now frozen, %%''false''%% indicates that it is thawed.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:focus:manager:event:dirty_logic_freeze_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+dirty_logic_freeze,changed: bool;
+
+
+===== C information =====
+
+
+EFL_UI_FOCUS_MANAGER_EVENT_DIRTY_LOGIC_FREEZE_CHANGED(Eina_Bool)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_focus_manager_event_dirty_logic_freeze_changed(void *data, const Efl_Event *event)
+{
+ Eina_Bool info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_FOCUS_MANAGER_EVENT_DIRTY_LOGIC_FREEZE_CHANGED, on_efl_ui_focus_manager_event_dirty_logic_freeze_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/manager/event/flush_pre.txt b/public_html/data/pages/develop/api/efl/ui/focus/manager/event/flush_pre.txt
new file mode 100644
index 00000000..aae1ed70
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/manager/event/flush_pre.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Focus.Manager: flush,pre~~
+
+===== Description =====
+
+%%After this event, the manager object will calculate relations in the graph. Can be used to add / remove children in a lazy fashion.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:focus:manager:event:flush_pre:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+flush,pre;
+
+
+===== C information =====
+
+
+EFL_UI_FOCUS_MANAGER_EVENT_FLUSH_PRE(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_focus_manager_event_flush_pre(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_FOCUS_MANAGER_EVENT_FLUSH_PRE, on_efl_ui_focus_manager_event_flush_pre, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/manager/event/manager_focus_changed.txt b/public_html/data/pages/develop/api/efl/ui/focus/manager/event/manager_focus_changed.txt
new file mode 100644
index 00000000..6670c24a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/manager/event/manager_focus_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Focus.Manager: manager_focus,changed~~
+
+===== Description =====
+
+%%The manager_focus property has changed. The previously focused object is passed as an event argument.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:focus:manager:event:manager_focus_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+manager_focus,changed: Efl.Ui.Focus.Object;
+
+
+===== C information =====
+
+
+EFL_UI_FOCUS_MANAGER_EVENT_MANAGER_FOCUS_CHANGED(Efl_Ui_Focus_Object *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_focus_manager_event_manager_focus_changed(void *data, const Efl_Event *event)
+{
+ Efl_Ui_Focus_Object *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_FOCUS_MANAGER_EVENT_MANAGER_FOCUS_CHANGED, on_efl_ui_focus_manager_event_manager_focus_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/manager/event/redirect_changed.txt b/public_html/data/pages/develop/api/efl/ui/focus/manager/event/redirect_changed.txt
new file mode 100644
index 00000000..545536d2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/manager/event/redirect_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Focus.Manager: redirect,changed~~
+
+===== Description =====
+
+%%Redirect object has changed, the old manager is passed as an event argument.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:focus:manager:event:redirect_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+redirect,changed: Efl.Ui.Focus.Manager;
+
+
+===== C information =====
+
+
+EFL_UI_FOCUS_MANAGER_EVENT_REDIRECT_CHANGED(Efl_Ui_Focus_Manager *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_focus_manager_event_redirect_changed(void *data, const Efl_Event *event)
+{
+ Efl_Ui_Focus_Manager *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_FOCUS_MANAGER_EVENT_REDIRECT_CHANGED, on_efl_ui_focus_manager_event_redirect_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/manager/method/dirty_logic_freeze.txt b/public_html/data/pages/develop/api/efl/ui/focus/manager/method/dirty_logic_freeze.txt
new file mode 100644
index 00000000..233d146f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/manager/method/dirty_logic_freeze.txt
@@ -0,0 +1,29 @@
+~~Title: Efl.Ui.Focus.Manager.dirty_logic_freeze~~
+====== Efl.Ui.Focus.Manager.dirty_logic_freeze ======
+
+===== Description =====
+
+%%Disables the cache invalidation when an object is moved.%%
+
+%%Even if an object is moved, the focus manager will not recalculate its relations. This can be used when you know that the set of widgets in the focus manager is moved the same way, so the relations between the widgets in the set do not change and complex calculations can be avoided. Use %%[[:develop:api:efl:ui:focus:manager:method:dirty_logic_unfreeze|Efl.Ui.Focus.Manager.dirty_logic_unfreeze]]%% to re-enable relationship calculation.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:focus:manager:method:dirty_logic_freeze:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+dirty_logic_freeze @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_ui_focus_manager_dirty_logic_freeze(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:manager:method:dirty_logic_freeze|Efl.Ui.Focus.Manager.dirty_logic_freeze]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:dirty_logic_freeze|Efl.Ui.Focus.Manager_Calc.dirty_logic_freeze]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/manager/method/dirty_logic_unfreeze.txt b/public_html/data/pages/develop/api/efl/ui/focus/manager/method/dirty_logic_unfreeze.txt
new file mode 100644
index 00000000..97352c7a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/manager/method/dirty_logic_unfreeze.txt
@@ -0,0 +1,29 @@
+~~Title: Efl.Ui.Focus.Manager.dirty_logic_unfreeze~~
+====== Efl.Ui.Focus.Manager.dirty_logic_unfreeze ======
+
+===== Description =====
+
+%%Enables the cache invalidation when an object is moved.%%
+
+%%This is the counterpart to %%[[:develop:api:efl:ui:focus:manager:method:dirty_logic_freeze|Efl.Ui.Focus.Manager.dirty_logic_freeze]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:focus:manager:method:dirty_logic_unfreeze:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+dirty_logic_unfreeze @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_ui_focus_manager_dirty_logic_unfreeze(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:manager:method:dirty_logic_unfreeze|Efl.Ui.Focus.Manager.dirty_logic_unfreeze]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:dirty_logic_unfreeze|Efl.Ui.Focus.Manager_Calc.dirty_logic_unfreeze]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/manager/method/fetch.txt b/public_html/data/pages/develop/api/efl/ui/focus/manager/method/fetch.txt
new file mode 100644
index 00000000..905d2074
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/manager/method/fetch.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Focus.Manager.fetch~~
+====== Efl.Ui.Focus.Manager.fetch ======
+
+===== Description =====
+
+%%Fetches the data from a registered node.%%
+
+
+fetch @beta @pure_virtual {
+ params {
+ @in child: Efl.Ui.Focus.Object;
+ }
+ return: ptr(Efl.Ui.Focus.Relations);
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Focus_Relations *efl_ui_focus_manager_fetch(Eo *obj, Efl_Ui_Focus_Object *child);
+
+
+===== Parameters =====
+
+ * **child** //(in)// - %%The child object to inspect.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:manager:method:fetch|Efl.Ui.Focus.Manager.fetch]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:fetch|Efl.Ui.Focus.Manager_Calc.fetch]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:fetch|Efl.Ui.Focus.Manager_Root_Focus.fetch]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/manager/method/logical_end.txt b/public_html/data/pages/develop/api/efl/ui/focus/manager/method/logical_end.txt
new file mode 100644
index 00000000..537f6af4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/manager/method/logical_end.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.Ui.Focus.Manager.logical_end~~
+====== Efl.Ui.Focus.Manager.logical_end ======
+
+===== Description =====
+
+%%Returns the last logical object.%%
+
+%%The returned object is the last object that would be returned if you start at the root and move in the "next" direction.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:focus:manager:method:logical_end:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+logical_end @pure_virtual {
+ return: Efl.Ui.Focus.Manager_Logical_End_Detail;
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Focus_Manager_Logical_End_Detail efl_ui_focus_manager_logical_end(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:manager:method:logical_end|Efl.Ui.Focus.Manager.logical_end]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:logical_end|Efl.Ui.Focus.Manager_Calc.logical_end]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:logical_end|Efl.Ui.Focus.Manager_Root_Focus.logical_end]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/manager/method/move.txt b/public_html/data/pages/develop/api/efl/ui/focus/manager/method/move.txt
new file mode 100644
index 00000000..39d22d51
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/manager/method/move.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Focus.Manager.move~~
+====== Efl.Ui.Focus.Manager.move ======
+
+===== Description =====
+
+%%Moves the focus in the given direction to the next regular widget.%%
+
+%%This call flushes all changes. This means all changes since last flush are computed.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:focus:manager:method:move:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+move @pure_virtual {
+ params {
+ @in direction: Efl.Ui.Focus.Direction;
+ }
+ return: Efl.Ui.Focus.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Focus_Object *efl_ui_focus_manager_move(Eo *obj, Efl_Ui_Focus_Direction direction);
+
+
+===== Parameters =====
+
+ * **direction** //(in)// - %%The direction to move to.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:manager:method:move|Efl.Ui.Focus.Manager.move]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:move|Efl.Ui.Focus.Manager_Calc.move]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:move|Efl.Ui.Focus.Manager_Root_Focus.move]]
+ * [[:develop:api:efl:ui:focus:manager_sub:method:move|Efl.Ui.Focus.Manager_Sub.move]]
+ * [[:develop:api:efl:ui:collection_view:method:move|Efl.Ui.Collection_View.move]]
+ * [[:develop:api:efl:ui:collection:method:move|Efl.Ui.Collection.move]]
+ * [[:develop:api:efl:ui:focus:layer:method:move|Efl.Ui.Focus.Layer.move]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/manager/method/pop_history_stack.txt b/public_html/data/pages/develop/api/efl/ui/focus/manager/method/pop_history_stack.txt
new file mode 100644
index 00000000..73f02885
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/manager/method/pop_history_stack.txt
@@ -0,0 +1,29 @@
+~~Title: Efl.Ui.Focus.Manager.pop_history_stack~~
+====== Efl.Ui.Focus.Manager.pop_history_stack ======
+
+===== Description =====
+
+%%Removes the uppermost history element, and focuses the previous one.%%
+
+%%If there is an element that was focused before, it will be used. Otherwise, the best fitting element from the registered elements will be focused.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:focus:manager:method:pop_history_stack:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+pop_history_stack @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_ui_focus_manager_pop_history_stack(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:manager:method:pop_history_stack|Efl.Ui.Focus.Manager.pop_history_stack]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:pop_history_stack|Efl.Ui.Focus.Manager_Calc.pop_history_stack]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/manager/method/request_move.txt b/public_html/data/pages/develop/api/efl/ui/focus/manager/method/request_move.txt
new file mode 100644
index 00000000..82c731d9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/manager/method/request_move.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Focus.Manager.request_move~~
+====== Efl.Ui.Focus.Manager.request_move ======
+
+===== Description =====
+
+%%Returns the object in the %%''direction''%% from %%''child''%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:focus:manager:method:request_move:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+request_move @pure_virtual {
+ params {
+ @in direction: Efl.Ui.Focus.Direction;
+ @in child: Efl.Ui.Focus.Object;
+ @in logical: bool;
+ }
+ return: Efl.Ui.Focus.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Focus_Object *efl_ui_focus_manager_request_move(Eo *obj, Efl_Ui_Focus_Direction direction, Efl_Ui_Focus_Object *child, Eina_Bool logical);
+
+
+===== Parameters =====
+
+ * **direction** //(in)// - %%Direction to move focus.%%
+ * **child** //(in)// - %%The child to move from. Pass %%''null''%% to indicate the currently focused child.%%
+ * **logical** //(in)// - %%Wether you want to have a logical node as result or a regular. Note that in a %%[[:develop:api:efl:ui:focus:manager:method:move|Efl.Ui.Focus.Manager.move]]%% call logical nodes will not get focus.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:manager:method:request_move|Efl.Ui.Focus.Manager.request_move]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:request_move|Efl.Ui.Focus.Manager_Calc.request_move]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:request_move|Efl.Ui.Focus.Manager_Root_Focus.request_move]]
+ * [[:develop:api:efl:ui:collection_focus_manager:method:request_move|Efl.Ui.Collection_Focus_Manager.request_move]]
+ * [[:develop:api:efl:ui:collection_view_focus_manager:method:request_move|Efl.Ui.Collection_View_Focus_Manager.request_move]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/manager/method/request_subchild.txt b/public_html/data/pages/develop/api/efl/ui/focus/manager/method/request_subchild.txt
new file mode 100644
index 00000000..d6406a6e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/manager/method/request_subchild.txt
@@ -0,0 +1,38 @@
+~~Title: Efl.Ui.Focus.Manager.request_subchild~~
+====== Efl.Ui.Focus.Manager.request_subchild ======
+
+===== Description =====
+
+%%Returns the widget in the direction next.%%
+
+%%The returned widget is a child of %%''root''%%. It's guaranteed that child will not be prepared again, so you can call this function inside a %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% call.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:focus:manager:method:request_subchild:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+request_subchild @pure_virtual {
+ params {
+ @in root: Efl.Ui.Focus.Object;
+ }
+ return: Efl.Ui.Focus.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Focus_Object *efl_ui_focus_manager_request_subchild(Eo *obj, Efl_Ui_Focus_Object *root);
+
+
+===== Parameters =====
+
+ * **root** //(in)// - %%Parent for returned child.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:manager:method:request_subchild|Efl.Ui.Focus.Manager.request_subchild]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:request_subchild|Efl.Ui.Focus.Manager_Calc.request_subchild]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/manager/method/reset_history.txt b/public_html/data/pages/develop/api/efl/ui/focus/manager/method/reset_history.txt
new file mode 100644
index 00000000..c539b985
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/manager/method/reset_history.txt
@@ -0,0 +1,29 @@
+~~Title: Efl.Ui.Focus.Manager.reset_history~~
+====== Efl.Ui.Focus.Manager.reset_history ======
+
+===== Description =====
+
+%%Resets the history stack of this manager object. This means the uppermost element will be unfocused, and all other elements will be removed from the remembered list.%%
+
+%%You should focus another element immediately after calling this, in order to always have a focused object.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:focus:manager:method:reset_history:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+reset_history @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_ui_focus_manager_reset_history(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:manager:method:reset_history|Efl.Ui.Focus.Manager.reset_history]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:reset_history|Efl.Ui.Focus.Manager_Calc.reset_history]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/manager/method/setup_on_first_touch.txt b/public_html/data/pages/develop/api/efl/ui/focus/manager/method/setup_on_first_touch.txt
new file mode 100644
index 00000000..7e648798
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/manager/method/setup_on_first_touch.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Focus.Manager.setup_on_first_touch~~
+====== Efl.Ui.Focus.Manager.setup_on_first_touch ======
+
+===== Description =====
+
+%%Called when this manager is set as redirect.%%
+
+%%In case that this is called as a result of a move call, %%''direction''%% and %%''entry''%% will be set to the direction of the move call, and the %%''entry''%% object will be set to the object that had this manager as redirect property.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:focus:manager:method:setup_on_first_touch:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+setup_on_first_touch @pure_virtual {
+ params {
+ @in direction: Efl.Ui.Focus.Direction;
+ @in entry: Efl.Ui.Focus.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_focus_manager_setup_on_first_touch(Eo *obj, Efl_Ui_Focus_Direction direction, Efl_Ui_Focus_Object *entry);
+
+
+===== Parameters =====
+
+ * **direction** //(in)// - %%The direction in which this should be setup.%%
+ * **entry** //(in)// - %%The object that caused this manager to be redirect.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:manager:method:setup_on_first_touch|Efl.Ui.Focus.Manager.setup_on_first_touch]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:setup_on_first_touch|Efl.Ui.Focus.Manager_Calc.setup_on_first_touch]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/manager/property/border_elements.txt b/public_html/data/pages/develop/api/efl/ui/focus/manager/property/border_elements.txt
new file mode 100644
index 00000000..e71966ad
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/manager/property/border_elements.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Ui.Focus.Manager.border_elements~~
+====== Efl.Ui.Focus.Manager.border_elements ======
+
+===== Values =====
+
+ * **border_elements** - %%An iterator over the border objects.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:focus:manager:property:border_elements:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property border_elements @pure_virtual {
+ get {}
+ values {
+ border_elements: iterator;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_ui_focus_manager_border_elements_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:manager:property:border_elements|Efl.Ui.Focus.Manager.border_elements]]
+ * [[:develop:api:efl:ui:focus:manager_calc:property:border_elements|Efl.Ui.Focus.Manager_Calc.border_elements]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:property:border_elements|Efl.Ui.Focus.Manager_Root_Focus.border_elements]]
+ * [[:develop:api:elm:interface_scrollable:property:border_elements|Elm.Interface_Scrollable.border_elements]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/manager/property/manager_focus.txt b/public_html/data/pages/develop/api/efl/ui/focus/manager/property/manager_focus.txt
new file mode 100644
index 00000000..5dd404c8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/manager/property/manager_focus.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Focus.Manager.manager_focus~~
+====== Efl.Ui.Focus.Manager.manager_focus ======
+
+===== Description =====
+
+%%The element which is currently focused by this manager.%%
+
+%%Use this property to retrieve the object currently being focused, or to set the focus to a new one. When %%''focus''%% is a logical child (which cannot receive focus), the next regular object is selected instead. If there is no such object, focus does not change.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:focus:manager:property:manager_focus:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **focus** - %%Currently focused element.%%
+
+===== Signature =====
+
+
+@property manager_focus @pure_virtual {
+ get {}
+ set {}
+ values {
+ focus: Efl.Ui.Focus.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Focus_Object *efl_ui_focus_manager_focus_get(const Eo *obj);
+void efl_ui_focus_manager_focus_set(Eo *obj, Efl_Ui_Focus_Object *focus);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:manager:property:manager_focus|Efl.Ui.Focus.Manager.manager_focus]]
+ * [[:develop:api:efl:ui:focus:manager_calc:property:manager_focus|Efl.Ui.Focus.Manager_Calc.manager_focus]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:property:manager_focus|Efl.Ui.Focus.Manager_Root_Focus.manager_focus]]
+ * [[:develop:api:efl:ui:collection_focus_manager:property:manager_focus|Efl.Ui.Collection_Focus_Manager.manager_focus]]
+ * [[:develop:api:efl:ui:collection_view_focus_manager:property:manager_focus|Efl.Ui.Collection_View_Focus_Manager.manager_focus]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/manager/property/redirect.txt b/public_html/data/pages/develop/api/efl/ui/focus/manager/property/redirect.txt
new file mode 100644
index 00000000..8f751feb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/manager/property/redirect.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Focus.Manager.redirect~~
+====== Efl.Ui.Focus.Manager.redirect ======
+
+===== Description =====
+
+%%Add another manager to serve the move requests.%%
+
+%%If this value is set, all move requests are redirected to this manager object. Set it to %%''null''%% once nothing should be redirected anymore.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:focus:manager:property:redirect:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **redirect** - %%The new focus manager.%%
+
+===== Signature =====
+
+
+@property redirect @pure_virtual {
+ get {}
+ set {}
+ values {
+ redirect: Efl.Ui.Focus.Manager;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Focus_Manager *efl_ui_focus_manager_redirect_get(const Eo *obj);
+void efl_ui_focus_manager_redirect_set(Eo *obj, Efl_Ui_Focus_Manager *redirect);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:manager:property:redirect|Efl.Ui.Focus.Manager.redirect]]
+ * [[:develop:api:efl:ui:focus:manager_calc:property:redirect|Efl.Ui.Focus.Manager_Calc.redirect]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/manager/property/root.txt b/public_html/data/pages/develop/api/efl/ui/focus/manager/property/root.txt
new file mode 100644
index 00000000..6a21c4b7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/manager/property/root.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Focus.Manager.root~~
+====== Efl.Ui.Focus.Manager.root ======
+
+===== Description =====
+
+%%Root node for all logical sub-trees.%%
+
+%%This property can only be set once.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:focus:manager:property:root:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **root** - %%Object to register as the root of this manager object.%%
+
+===== Signature =====
+
+
+@property root @pure_virtual {
+ get {}
+ set {
+ return: bool;
+ }
+ values {
+ root: Efl.Ui.Focus.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Focus_Object *efl_ui_focus_manager_root_get(const Eo *obj);
+Eina_Bool efl_ui_focus_manager_root_set(Eo *obj, Efl_Ui_Focus_Object *root);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:manager:property:root|Efl.Ui.Focus.Manager.root]]
+ * [[:develop:api:efl:ui:focus:manager_calc:property:root|Efl.Ui.Focus.Manager_Calc.root]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/manager/property/viewport_elements.txt b/public_html/data/pages/develop/api/efl/ui/focus/manager/property/viewport_elements.txt
new file mode 100644
index 00000000..689af16d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/manager/property/viewport_elements.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Focus.Manager.viewport_elements~~
+====== Efl.Ui.Focus.Manager.viewport_elements ======
+
+===== Keys =====
+
+ * **viewport** - %%The rectangle defining the viewport.%%
+===== Values =====
+
+ * **viewport_elements** - %%An iterator over the viewport border objects.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:focus:manager:property:viewport_elements:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property viewport_elements @pure_virtual {
+ get {
+ keys {
+ viewport: Eina.Rect;
+ }
+ }
+ values {
+ viewport_elements: iterator;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_ui_focus_manager_viewport_elements_get(const Eo *obj, Eina_Rect viewport);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:manager:property:viewport_elements|Efl.Ui.Focus.Manager.viewport_elements]]
+ * [[:develop:api:efl:ui:focus:manager_calc:property:viewport_elements|Efl.Ui.Focus.Manager_Calc.viewport_elements]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:property:viewport_elements|Efl.Ui.Focus.Manager_Root_Focus.viewport_elements]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/manager_logical_end_detail.txt b/public_html/data/pages/develop/api/efl/ui/focus/manager_logical_end_detail.txt
new file mode 100644
index 00000000..14e6b5bf
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/manager_logical_end_detail.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Ui.Focus.Manager_Logical_End_Detail~~
+
+===== Description =====
+
+%%Structure holding the focus object with extra information on logical end.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:focus:manager_logical_end_detail:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:ui:focus:manager_logical_end_detail:fields&nouser&nolink&nodate}}
+
+ * **is_regular_end** - %%%%''true''%% if element is registered as regular element in the %%[[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]]%% object.%%
+ * **element** - %%The last element of the logical chain in the %%[[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]]%%.%%
+
+===== Signature =====
+
+
+struct Efl.Ui.Focus.Manager_Logical_End_Detail {
+ is_regular_end: bool;
+ element: Efl.Ui.Focus.Object;
+}
+
+
+===== C signature =====
+
+
+typedef struct _Efl_Ui_Focus_Manager_Logical_End_Detail {
+ Eina_Bool is_regular_end;
+ Efl_Ui_Focus_Object *element;
+} Efl_Ui_Focus_Manager_Logical_End_Detail;
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/manager_window_root.txt b/public_html/data/pages/develop/api/efl/ui/focus/manager_window_root.txt
new file mode 100644
index 00000000..d18b6861
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/manager_window_root.txt
@@ -0,0 +1,17 @@
+~~Title: Efl.Ui.Focus.Manager_Window_Root~~
+====== Efl.Ui.Focus.Manager_Window_Root (interface) ======
+
+===== Description =====
+
+%%An interface to indicate the end of a focus chain.%%
+
+%%Focus managers are ensuring that if they give focus to something, that is registered in the upper focus manager. The uppermost focus manager does not need to do that, and can implement this interface to indicate so.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:focus:manager_window_root:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+===== Events =====
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/move_policy.txt b/public_html/data/pages/develop/api/efl/ui/focus/move_policy.txt
new file mode 100644
index 00000000..5caf12a3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/move_policy.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Focus.Move_Policy~~
+
+===== Description =====
+
+%%Focus Movement Policy.%%
+
+//Since 1.10//
+
+{{page>:develop:api-include:efl:ui:focus:move_policy:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:ui:focus:move_policy:fields&nouser&nolink&nodate}}
+
+ * **click** - %%Move focus by mouse click or touch. Elementary focus is set on mouse click and this is checked at mouse up time. (default)%%
+ * **move_in** - %%Move focus by mouse in. Elementary focus is set on mouse move when the mouse pointer is moved into an object.%%
+ * **key_only** - %%Move focus by key. Elementary focus is set on key input like Left, Right, Up, Down, Tab, or Shift+Tab.%%
+
+===== Signature =====
+
+
+enum Efl.Ui.Focus.Move_Policy {
+ click: 0,
+ move_in,
+ key_only
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_UI_FOCUS_MOVE_POLICY_CLICK = 0,
+ EFL_UI_FOCUS_MOVE_POLICY_MOVE_IN,
+ EFL_UI_FOCUS_MOVE_POLICY_KEY_ONLY
+} Efl_Ui_Focus_Move_Policy;
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/object.txt b/public_html/data/pages/develop/api/efl/ui/focus/object.txt
new file mode 100644
index 00000000..eb940232
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/object.txt
@@ -0,0 +1,92 @@
+~~Title: Efl.Ui.Focus.Object~~
+====== Efl.Ui.Focus.Object (mixin) ======
+
+===== Description =====
+
+%%Functions of focusable objects.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:focus:object:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:ui:focus:object:property:focus|focus]]** //**(get, set)**// ''protected set''\\
+> %%Whether the widget is currently focused or not.%%
+
+Eina_Bool efl_ui_focus_object_focus_get(const Eo *obj);
+void efl_ui_focus_object_focus_set(Eo *obj, Eina_Bool focus);
+
+\\
+**[[:develop:api:efl:ui:focus:object:property:focus_geometry|focus_geometry]]** //**(get)**//\\
+>
+
+Eina_Rect efl_ui_focus_object_focus_geometry_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:focus:object:property:focus_manager|focus_manager]]** //**(get)**//\\
+>
+
+Efl_Ui_Focus_Manager *efl_ui_focus_object_focus_manager_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:focus:object:property:focus_parent|focus_parent]]** //**(get)**//\\
+>
+
+Efl_Ui_Focus_Object *efl_ui_focus_object_focus_parent_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]**\\
+> %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%%
+
+void efl_ui_focus_object_setup_order(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// ''protected''\\
+> %%Indicates if a child of this object has focus set to true.%%
+
+Eina_Bool efl_ui_focus_object_child_focus_get(const Eo *obj);
+void efl_ui_focus_object_child_focus_set(Eo *obj, Eina_Bool child_focus);
+
+\\
+**[[:develop:api:efl:ui:focus:object:method:on_focus_update|on_focus_update]]** ''protected''\\
+> %%Virtual function handling focus in/out events on the widget.%%
+
+Eina_Bool efl_ui_focus_object_on_focus_update(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** ''protected''\\
+> %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%%
+
+void efl_ui_focus_object_setup_order_non_recursive(Eo *obj);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]**\\
+> %%Emitted if child_focus has changed.%%
+
+EFL_UI_FOCUS_OBJECT_EVENT_CHILD_FOCUS_CHANGED(Eina_Bool)
+
+\\ **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]**\\
+> %%Emitted if the focus state has changed.%%
+
+EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_CHANGED(Eina_Bool)
+
+\\ **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]**\\
+> %%Emitted if focus geometry of this object has changed.%%
+
+EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_GEOMETRY_CHANGED(Eina_Rect)
+
+\\ **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]**\\
+> %%Emitted when a new manager is the parent for this object.%%
+
+EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_MANAGER_CHANGED(Efl_Ui_Focus_Manager *)
+
+\\ **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]**\\
+> %%Emitted when a new logical parent should be used.%%
+
+EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_PARENT_CHANGED(Efl_Ui_Focus_Object *)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/object/event/child_focus_changed.txt b/public_html/data/pages/develop/api/efl/ui/focus/object/event/child_focus_changed.txt
new file mode 100644
index 00000000..3af9aa9a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/object/event/child_focus_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Focus.Object: child_focus,changed~~
+
+===== Description =====
+
+%%Emitted if child_focus has changed.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:focus:object:event:child_focus_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+child_focus,changed: bool;
+
+
+===== C information =====
+
+
+EFL_UI_FOCUS_OBJECT_EVENT_CHILD_FOCUS_CHANGED(Eina_Bool)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_focus_object_event_child_focus_changed(void *data, const Efl_Event *event)
+{
+ Eina_Bool info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_FOCUS_OBJECT_EVENT_CHILD_FOCUS_CHANGED, on_efl_ui_focus_object_event_child_focus_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/object/event/focus_changed.txt b/public_html/data/pages/develop/api/efl/ui/focus/object/event/focus_changed.txt
new file mode 100644
index 00000000..01513fab
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/object/event/focus_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Focus.Object: focus,changed~~
+
+===== Description =====
+
+%%Emitted if the focus state has changed.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:focus:object:event:focus_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+focus,changed: bool;
+
+
+===== C information =====
+
+
+EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_CHANGED(Eina_Bool)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_focus_object_event_focus_changed(void *data, const Efl_Event *event)
+{
+ Eina_Bool info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_CHANGED, on_efl_ui_focus_object_event_focus_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/object/event/focus_geometry_changed.txt b/public_html/data/pages/develop/api/efl/ui/focus/object/event/focus_geometry_changed.txt
new file mode 100644
index 00000000..ef80c130
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/object/event/focus_geometry_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Focus.Object: focus_geometry,changed~~
+
+===== Description =====
+
+%%Emitted if focus geometry of this object has changed.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:focus:object:event:focus_geometry_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+focus_geometry,changed: Eina.Rect;
+
+
+===== C information =====
+
+
+EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_GEOMETRY_CHANGED(Eina_Rect)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_focus_object_event_focus_geometry_changed(void *data, const Efl_Event *event)
+{
+ Eina_Rect info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_GEOMETRY_CHANGED, on_efl_ui_focus_object_event_focus_geometry_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/object/event/focus_manager_changed.txt b/public_html/data/pages/develop/api/efl/ui/focus/object/event/focus_manager_changed.txt
new file mode 100644
index 00000000..d75ec80f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/object/event/focus_manager_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Focus.Object: focus_manager,changed~~
+
+===== Description =====
+
+%%Emitted when a new manager is the parent for this object.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:focus:object:event:focus_manager_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+focus_manager,changed: Efl.Ui.Focus.Manager;
+
+
+===== C information =====
+
+
+EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_MANAGER_CHANGED(Efl_Ui_Focus_Manager *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_focus_object_event_focus_manager_changed(void *data, const Efl_Event *event)
+{
+ Efl_Ui_Focus_Manager *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_MANAGER_CHANGED, on_efl_ui_focus_object_event_focus_manager_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/object/event/focus_parent_changed.txt b/public_html/data/pages/develop/api/efl/ui/focus/object/event/focus_parent_changed.txt
new file mode 100644
index 00000000..13180d7b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/object/event/focus_parent_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Focus.Object: focus_parent,changed~~
+
+===== Description =====
+
+%%Emitted when a new logical parent should be used.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:focus:object:event:focus_parent_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+focus_parent,changed: Efl.Ui.Focus.Object;
+
+
+===== C information =====
+
+
+EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_PARENT_CHANGED(Efl_Ui_Focus_Object *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_focus_object_event_focus_parent_changed(void *data, const Efl_Event *event)
+{
+ Efl_Ui_Focus_Object *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_PARENT_CHANGED, on_efl_ui_focus_object_event_focus_parent_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/object/method/on_focus_update.txt b/public_html/data/pages/develop/api/efl/ui/focus/object/method/on_focus_update.txt
new file mode 100644
index 00000000..010fda42
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/object/method/on_focus_update.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.Focus.Object.on_focus_update~~
+====== Efl.Ui.Focus.Object.on_focus_update ======
+
+===== Description =====
+
+%%Virtual function handling focus in/out events on the widget.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:focus:object:method:on_focus_update:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+on_focus_update @protected {
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_focus_object_on_focus_update(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:object:method:on_focus_update|Efl.Ui.Focus.Object.on_focus_update]]
+ * [[:develop:api:efl:ui:widget:method:on_focus_update|Efl.Ui.Widget.on_focus_update]]
+ * [[:develop:api:efl:ui:win:method:on_focus_update|Efl.Ui.Win.on_focus_update]]
+ * [[:develop:api:efl:ui:image_zoomable:method:on_focus_update|Efl.Ui.Image_Zoomable.on_focus_update]]
+ * [[:develop:api:efl:ui:layout_base:method:on_focus_update|Efl.Ui.Layout_Base.on_focus_update]]
+ * [[:develop:api:efl:ui:slider:method:on_focus_update|Efl.Ui.Slider.on_focus_update]]
+ * [[:develop:api:efl:ui:text:method:on_focus_update|Efl.Ui.Text.on_focus_update]]
+ * [[:develop:api:efl:ui:spin_button:method:on_focus_update|Efl.Ui.Spin_Button.on_focus_update]]
+ * [[:develop:api:efl:ui:calendar:method:on_focus_update|Efl.Ui.Calendar.on_focus_update]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/object/method/setup_order.txt b/public_html/data/pages/develop/api/efl/ui/focus/object/method/setup_order.txt
new file mode 100644
index 00000000..fd9c44c3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/object/method/setup_order.txt
@@ -0,0 +1,26 @@
+~~Title: Efl.Ui.Focus.Object.setup_order~~
+====== Efl.Ui.Focus.Object.setup_order ======
+
+===== Description =====
+
+%%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:focus:object:method:setup_order:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+setup_order {}
+
+
+===== C signature =====
+
+
+void efl_ui_focus_object_setup_order(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/object/method/setup_order_non_recursive.txt b/public_html/data/pages/develop/api/efl/ui/focus/object/method/setup_order_non_recursive.txt
new file mode 100644
index 00000000..9349cf63
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/object/method/setup_order_non_recursive.txt
@@ -0,0 +1,26 @@
+~~Title: Efl.Ui.Focus.Object.setup_order_non_recursive~~
+====== Efl.Ui.Focus.Object.setup_order_non_recursive ======
+
+===== Description =====
+
+%%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:focus:object:method:setup_order_non_recursive:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+setup_order_non_recursive @protected {}
+
+
+===== C signature =====
+
+
+void efl_ui_focus_object_setup_order_non_recursive(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|Efl.Ui.Focus.Object.setup_order_non_recursive]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/object/property/child_focus.txt b/public_html/data/pages/develop/api/efl/ui/focus/object/property/child_focus.txt
new file mode 100644
index 00000000..1606aba4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/object/property/child_focus.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Focus.Object.child_focus~~
+====== Efl.Ui.Focus.Object.child_focus ======
+
+===== Description =====
+
+%%Indicates if a child of this object has focus set to true.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:focus:object:property:child_focus:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **child_focus** - %%%%''true''%% if a child has focus.%%
+
+===== Signature =====
+
+
+@property child_focus @protected {
+ get {}
+ set {}
+ values {
+ child_focus: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_focus_object_child_focus_get(const Eo *obj);
+void efl_ui_focus_object_child_focus_set(Eo *obj, Eina_Bool child_focus);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:object:property:child_focus|Efl.Ui.Focus.Object.child_focus]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/object/property/focus.txt b/public_html/data/pages/develop/api/efl/ui/focus/object/property/focus.txt
new file mode 100644
index 00000000..25ed4bae
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/object/property/focus.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Ui.Focus.Object.focus~~
+====== Efl.Ui.Focus.Object.focus ======
+
+===== Description =====
+
+%%Whether the widget is currently focused or not.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:focus:object:property:focus:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **focus** - %%The focused state of the object.%%
+==== Setter ====
+
+%%This is called by the manager and should never be called by anyone else.%%
+
+%%The function emits the focus state events, if focus is different to the previous state.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:focus:object:property:focus:getter_description&nouser&nolink&nodate}}
+
+
+===== Signature =====
+
+
+@property focus {
+ get {}
+ set @protected {}
+ values {
+ focus: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_focus_object_focus_get(const Eo *obj);
+void efl_ui_focus_object_focus_set(Eo *obj, Eina_Bool focus);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:object:property:focus|Efl.Ui.Focus.Object.focus]]
+ * [[:develop:api:efl:ui:widget:property:focus|Efl.Ui.Widget.focus]]
+ * [[:develop:api:efl:ui:win:property:focus|Efl.Ui.Win.focus]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:property:focus|Efl.Ui.Focus.Composition_Adapter.focus]]
+ * [[:develop:api:efl:ui:calendar_item:property:focus|Efl.Ui.Calendar_Item.focus]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/object/property/focus_geometry.txt b/public_html/data/pages/develop/api/efl/ui/focus/object/property/focus_geometry.txt
new file mode 100644
index 00000000..db801dbc
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/object/property/focus_geometry.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Ui.Focus.Object.focus_geometry~~
+====== Efl.Ui.Focus.Object.focus_geometry ======
+
+===== Values =====
+
+ * **rect** - %%The geometry to use.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:focus:object:property:focus_geometry:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property focus_geometry {
+ get {}
+ values {
+ rect: Eina.Rect;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Rect efl_ui_focus_object_focus_geometry_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:object:property:focus_geometry|Efl.Ui.Focus.Object.focus_geometry]]
+ * [[:develop:api:efl:ui:widget:property:focus_geometry|Efl.Ui.Widget.focus_geometry]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:property:focus_geometry|Efl.Ui.Focus.Composition_Adapter.focus_geometry]]
+ * [[:develop:api:efl:ui:calendar_item:property:focus_geometry|Efl.Ui.Calendar_Item.focus_geometry]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/object/property/focus_manager.txt b/public_html/data/pages/develop/api/efl/ui/focus/object/property/focus_manager.txt
new file mode 100644
index 00000000..f1a2e556
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/object/property/focus_manager.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Ui.Focus.Object.focus_manager~~
+====== Efl.Ui.Focus.Object.focus_manager ======
+
+===== Values =====
+
+ * **manager** - %%The manager object.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:focus:object:property:focus_manager:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property focus_manager {
+ get {}
+ values {
+ manager: Efl.Ui.Focus.Manager;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Focus_Manager *efl_ui_focus_object_focus_manager_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:object:property:focus_manager|Efl.Ui.Focus.Object.focus_manager]]
+ * [[:develop:api:efl:ui:widget:property:focus_manager|Efl.Ui.Widget.focus_manager]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:property:focus_manager|Efl.Ui.Focus.Composition_Adapter.focus_manager]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/focus/object/property/focus_parent.txt b/public_html/data/pages/develop/api/efl/ui/focus/object/property/focus_parent.txt
new file mode 100644
index 00000000..368435e5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/focus/object/property/focus_parent.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Ui.Focus.Object.focus_parent~~
+====== Efl.Ui.Focus.Object.focus_parent ======
+
+===== Values =====
+
+ * **logical_parent** - %%The focus parent.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:focus:object:property:focus_parent:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property focus_parent {
+ get {}
+ values {
+ logical_parent: Efl.Ui.Focus.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Focus_Object *efl_ui_focus_object_focus_parent_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:object:property:focus_parent|Efl.Ui.Focus.Object.focus_parent]]
+ * [[:develop:api:efl:ui:widget:property:focus_parent|Efl.Ui.Widget.focus_parent]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:property:focus_parent|Efl.Ui.Focus.Composition_Adapter.focus_parent]]
+ * [[:develop:api:efl:ui:calendar_item:property:focus_parent|Efl.Ui.Calendar_Item.focus_parent]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/format.txt b/public_html/data/pages/develop/api/efl/ui/format.txt
new file mode 100644
index 00000000..b79592c7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/format.txt
@@ -0,0 +1,67 @@
+~~Title: Efl.Ui.Format~~
+====== Efl.Ui.Format (mixin) ======
+
+===== Description =====
+
+%%Helper mixin that simplifies converting numerical values to text.%%
+
+%%A number of widgets represent a numerical value but display a text representation. For example, an %%[[:develop:api:efl:ui:progressbar|Efl.Ui.Progressbar]]%% can hold the number 0.75 but display the string "75%", or an %%[[:develop:api:efl:ui:spin|Efl.Ui.Spin]]%% can hold numbers 1 to 7, but display the strings "Monday" thru "Sunday".%%
+
+%%This conversion can be controlled through the %%[[:develop:api:efl:ui:format:property:format_func|Efl.Ui.Format.format_func]]%%, %%[[:develop:api:efl:ui:format:property:format_values|Efl.Ui.Format.format_values]]%% and %%[[:develop:api:efl:ui:format:property:format_string|Efl.Ui.Format.format_string]]%% properties. Only one of them needs to be set. When more than one is set %%[[:develop:api:efl:ui:format:property:format_values|Efl.Ui.Format.format_values]]%% has the highest priority, followed by %%[[:develop:api:efl:ui:format:property:format_func|Efl.Ui.Format.format_func]]%% and then %%[[:develop:api:efl:ui:format:property:format_string|Efl.Ui.Format.format_string]]%%. If one mechanism fails to produce a valid string the others will be tried (if provided) in descending order of priority. If no user-provided mechanism works, a fallback is used that just displays the value.%%
+
+%%Widgets including this mixin offer their users different properties to control how %%[[:develop:api:eina:value|Eina.Value]]%%'s are converted to text.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:format:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:ui:format:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+>
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:format:property:format_func|format_func]]** //**(get, set)**//\\
+> %%User-provided function which takes care of converting an %%[[:develop:api:eina:value|Eina.Value]]%% into a text string. The user is then completely in control of how the string is generated, but it is the most cumbersome method to use. If the conversion fails the other mechanisms will be tried, according to their priorities.%%
+
+Efl_Ui_Format_Func efl_ui_format_func_get(const Eo *obj);
+void efl_ui_format_func_set(Eo *obj, Efl_Ui_Format_Func func);
+
+\\
+**[[:develop:api:efl:ui:format:property:format_string|format_string]]** //**(get, set)**//\\
+> %%A user-provided, string used to format the numerical value.%%
+
+void efl_ui_format_string_get(const Eo *obj, const char **string, Efl_Ui_Format_String_Type *type);
+void efl_ui_format_string_set(Eo *obj, const char *string, Efl_Ui_Format_String_Type type);
+
+\\
+**[[:develop:api:efl:ui:format:property:format_values|format_values]]** //**(get, set)**//\\
+> %%User-provided list of values which are to be rendered using specific text strings. This is more convenient to use than %%[[:develop:api:efl:ui:format:property:format_func|Efl.Ui.Format.format_func]]%% and is perfectly suited for cases where the strings make more sense than the numerical values. For example, weekday names ("Monday", "Tuesday", ...) are friendlier than numbers 1 to 7. If a value is not found in the list, the other mechanisms will be tried according to their priorities. List members do not need to be in any particular order. They are sorted internally for performance reasons.%%
+
+Eina_Accessor *efl_ui_format_values_get(const Eo *obj);
+void efl_ui_format_values_set(Eo *obj, Eina_Accessor *values);
+
+\\
+**[[:develop:api:efl:ui:format:method:apply_formatted_value|apply_formatted_value]]** ''protected''\\
+> %%Internal method to be implemented by widgets including this mixin.%%
+
+void efl_ui_format_apply_formatted_value(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:format:method:decimal_places_get|decimal_places_get]]** ''protected''\\
+> %%Internal method to be used by widgets including this mixin. It can only be used when a %%[[:develop:api:efl:ui:format:property:format_string|Efl.Ui.Format.format_string]]%% has been supplied, and it returns the number of decimal places that the format string will produce for floating point values.%%
+
+int efl_ui_format_decimal_places_get(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:format:method:formatted_value_get|formatted_value_get]]** ''protected''\\
+> %%Internal method to be used by widgets including this mixin to perform the conversion from the internal numerical value into the text representation (Users of these widgets do not need to call this method).%%
+
+void efl_ui_format_formatted_value_get(Eo *obj, Eina_Strbuf *str, const Eina_Value value);
+
+\\
+
+===== Events =====
+
diff --git a/public_html/data/pages/develop/api/efl/ui/format/method/apply_formatted_value.txt b/public_html/data/pages/develop/api/efl/ui/format/method/apply_formatted_value.txt
new file mode 100644
index 00000000..519b6f39
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/format/method/apply_formatted_value.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Ui.Format.apply_formatted_value~~
+====== Efl.Ui.Format.apply_formatted_value ======
+
+===== Description =====
+
+%%Internal method to be implemented by widgets including this mixin.%%
+
+%%The mixin will call this method to signal the widget that the formatting has changed and therefore the current value should be converted and rendered again. Widgets must typically call %%[[:develop:api:efl:ui:format:method:formatted_value_get|Efl.Ui.Format.formatted_value_get]]%% and display the returned string. This is something they are already doing (whenever the value changes, for example) so there should be no extra code written to implement this method.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:format:method:apply_formatted_value:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+apply_formatted_value @protected @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_ui_format_apply_formatted_value(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:format:method:apply_formatted_value|Efl.Ui.Format.apply_formatted_value]]
+ * [[:develop:api:efl:ui:spin:method:apply_formatted_value|Efl.Ui.Spin.apply_formatted_value]]
+ * [[:develop:api:efl:ui:spin_button:method:apply_formatted_value|Efl.Ui.Spin_Button.apply_formatted_value]]
+ * [[:develop:api:efl:ui:tags:method:apply_formatted_value|Efl.Ui.Tags.apply_formatted_value]]
+ * [[:develop:api:efl:ui:calendar:method:apply_formatted_value|Efl.Ui.Calendar.apply_formatted_value]]
+ * [[:develop:api:efl:ui:progressbar:method:apply_formatted_value|Efl.Ui.Progressbar.apply_formatted_value]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/format/method/decimal_places_get.txt b/public_html/data/pages/develop/api/efl/ui/format/method/decimal_places_get.txt
new file mode 100644
index 00000000..297eaa7a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/format/method/decimal_places_get.txt
@@ -0,0 +1,30 @@
+~~Title: Efl.Ui.Format.decimal_places_get~~
+====== Efl.Ui.Format.decimal_places_get ======
+
+===== Description =====
+
+%%Internal method to be used by widgets including this mixin. It can only be used when a %%[[:develop:api:efl:ui:format:property:format_string|Efl.Ui.Format.format_string]]%% has been supplied, and it returns the number of decimal places that the format string will produce for floating point values.%%
+
+%%For example, "%.2f" returns 2, and "%d" returns 0;%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:format:method:decimal_places_get:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+decimal_places_get @protected {
+ return: int;
+}
+
+
+===== C signature =====
+
+
+int efl_ui_format_decimal_places_get(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:format:method:decimal_places_get|Efl.Ui.Format.decimal_places_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/format/method/destructor.txt b/public_html/data/pages/develop/api/efl/ui/format/method/destructor.txt
new file mode 100644
index 00000000..5735c298
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/format/method/destructor.txt
@@ -0,0 +1,179 @@
+~~Title: Efl.Ui.Format.destructor~~
+====== Efl.Ui.Format.destructor ======
+
+===== Description =====
+
+No description supplied.
+{{page>:develop:api-include:efl:ui:format:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:format:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/format/method/formatted_value_get.txt b/public_html/data/pages/develop/api/efl/ui/format/method/formatted_value_get.txt
new file mode 100644
index 00000000..0d7a802b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/format/method/formatted_value_get.txt
@@ -0,0 +1,38 @@
+~~Title: Efl.Ui.Format.formatted_value_get~~
+====== Efl.Ui.Format.formatted_value_get ======
+
+===== Description =====
+
+%%Internal method to be used by widgets including this mixin to perform the conversion from the internal numerical value into the text representation (Users of these widgets do not need to call this method).%%
+
+%%%%[[:develop:api:efl:ui:format:method:formatted_value_get|Efl.Ui.Format.formatted_value_get]]%% uses any user-provided mechanism to perform the conversion, according to their priorities, and implements a simple fallback if all mechanisms fail.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:format:method:formatted_value_get:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+formatted_value_get @protected {
+ params {
+ @in str: strbuf;
+ @in value: const(any_value);
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_format_formatted_value_get(Eo *obj, Eina_Strbuf *str, const Eina_Value value);
+
+
+===== Parameters =====
+
+ * **str** //(in)// - %%Output formatted string. Its contents will be overwritten by this method.%%
+ * **value** //(in)// - %%The %%[[:develop:api:eina:value|Eina.Value]]%% to convert to text.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:format:method:formatted_value_get|Efl.Ui.Format.formatted_value_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/format/property/format_func.txt b/public_html/data/pages/develop/api/efl/ui/format/property/format_func.txt
new file mode 100644
index 00000000..a701524d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/format/property/format_func.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Format.format_func~~
+====== Efl.Ui.Format.format_func ======
+
+===== Description =====
+
+%%User-provided function which takes care of converting an %%[[:develop:api:eina:value|Eina.Value]]%% into a text string. The user is then completely in control of how the string is generated, but it is the most cumbersome method to use. If the conversion fails the other mechanisms will be tried, according to their priorities.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:format:property:format_func:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **func** - %%User-provided formatting function.%%
+
+===== Signature =====
+
+
+@property format_func {
+ get {}
+ set {}
+ values {
+ func: Efl.Ui.Format_Func;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Format_Func efl_ui_format_func_get(const Eo *obj);
+void efl_ui_format_func_set(Eo *obj, Efl_Ui_Format_Func func);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:format:property:format_func|Efl.Ui.Format.format_func]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/format/property/format_string.txt b/public_html/data/pages/develop/api/efl/ui/format/property/format_string.txt
new file mode 100644
index 00000000..9ae85b67
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/format/property/format_string.txt
@@ -0,0 +1,47 @@
+~~Title: Efl.Ui.Format.format_string~~
+====== Efl.Ui.Format.format_string ======
+
+===== Description =====
+
+%%A user-provided, string used to format the numerical value.%%
+
+%%For example, "%1.2f meters", "%.0%%
+@property format_string {
+ get {}
+ set {}
+ values {
+ string: string;
+ type: Efl.Ui.Format_String_Type (Efl.Ui.Format_String_Type.simple);
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_format_string_get(const Eo *obj, const char **string, Efl_Ui_Format_String_Type *type);
+void efl_ui_format_string_set(Eo *obj, const char *string, Efl_Ui_Format_String_Type type);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:format:property:format_string|Efl.Ui.Format.format_string]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/format/property/format_values.txt b/public_html/data/pages/develop/api/efl/ui/format/property/format_values.txt
new file mode 100644
index 00000000..fc6ec197
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/format/property/format_values.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Format.format_values~~
+====== Efl.Ui.Format.format_values ======
+
+===== Description =====
+
+%%User-provided list of values which are to be rendered using specific text strings. This is more convenient to use than %%[[:develop:api:efl:ui:format:property:format_func|Efl.Ui.Format.format_func]]%% and is perfectly suited for cases where the strings make more sense than the numerical values. For example, weekday names ("Monday", "Tuesday", ...) are friendlier than numbers 1 to 7. If a value is not found in the list, the other mechanisms will be tried according to their priorities. List members do not need to be in any particular order. They are sorted internally for performance reasons.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:format:property:format_values:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **values** - %%Accessor over a list of value-text pairs. The method will dispose of the accessor, but not of its contents. For convenience, Eina offers a range of helper methods to obtain accessors from Eina.Array, Eina.List or even plain C arrays.%%
+
+===== Signature =====
+
+
+@property format_values {
+ get {}
+ set {}
+ values {
+ values: accessor;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Accessor *efl_ui_format_values_get(const Eo *obj);
+void efl_ui_format_values_set(Eo *obj, Eina_Accessor *values);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:format:property:format_values|Efl.Ui.Format.format_values]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/format_func.txt b/public_html/data/pages/develop/api/efl/ui/format_func.txt
new file mode 100644
index 00000000..a1bc57ec
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/format_func.txt
@@ -0,0 +1,21 @@
+~~Title: Efl.Ui.Format_Func~~
+
+===== Description =====
+
+%%A function taking an %%[[:develop:api:eina:value|Eina.Value]]%% and producing its textual representation. See %%[[:develop:api:efl:ui:format:property:format_func|Efl.Ui.Format.format_func]]%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:format_func:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+TODO
+
+
+===== C signature =====
+
+
+TODO
+
diff --git a/public_html/data/pages/develop/api/efl/ui/format_string_type.txt b/public_html/data/pages/develop/api/efl/ui/format_string_type.txt
new file mode 100644
index 00000000..7474e223
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/format_string_type.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Ui.Format_String_Type~~
+
+===== Description =====
+
+%%Type of formatting string.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:format_string_type:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:ui:format_string_type:fields&nouser&nolink&nodate}}
+
+ * **simple** - %%This is the simplest formatting mechanism, working pretty much like %%''printf''%%. Accepted formats are %%''s''%%, %%''f''%%, %%''F''%%, %%''d''%%, %%''u''%%, %%''i''%%, %%''o''%%, %%''x''%% and %%''X''%%. For example, "%1.2f meters", "%.0%%
+enum Efl.Ui.Format_String_Type {
+ simple: 0,
+ time
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_UI_FORMAT_STRING_TYPE_SIMPLE = 0,
+ EFL_UI_FORMAT_STRING_TYPE_TIME
+} Efl_Ui_Format_String_Type;
+
diff --git a/public_html/data/pages/develop/api/efl/ui/format_value.txt b/public_html/data/pages/develop/api/efl/ui/format_value.txt
new file mode 100644
index 00000000..18a0e37f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/format_value.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Ui.Format_Value~~
+
+===== Description =====
+
+%%A value which should always be displayed as a specific text string. See %%[[:develop:api:efl:ui:format:property:format_values|Efl.Ui.Format.format_values]]%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:format_value:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:ui:format_value:fields&nouser&nolink&nodate}}
+
+ * **value** - %%Input value.%%
+ * **text** - %%Text string to replace it.%%
+
+===== Signature =====
+
+
+struct Efl.Ui.Format_Value {
+ value: int;
+ text: string;
+}
+
+
+===== C signature =====
+
+
+typedef struct _Efl_Ui_Format_Value {
+ int value;
+ const char *text;
+} Efl_Ui_Format_Value;
+
diff --git a/public_html/data/pages/develop/api/efl/ui/grid.txt b/public_html/data/pages/develop/api/efl/ui/grid.txt
new file mode 100644
index 00000000..deb107cf
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/grid.txt
@@ -0,0 +1,497 @@
+~~Title: Efl.Ui.Grid~~
+====== Efl.Ui.Grid (class) ======
+
+===== Description =====
+
+%%A scrollable grid of %%[[:develop:api:efl:ui:item|Efl.Ui.Item]]%% objects, typically %%[[:develop:api:efl:ui:grid_default_item|Efl.Ui.Grid_Default_Item]]%% objects.%%
+
+%%Items are added using the %%[[:develop:api:efl:pack_linear|Efl.Pack_Linear]]%% interface.%%
+
+%%The orientation (vertical or horizontal) of the grid can be set with %%[[:develop:api:efl:ui:layout_orientable:property:orientation|Efl.Ui.Layout_Orientable.orientation]]%%.%%
+
+%%Items inside this widget can be selected according to the %%[[:develop:api:efl:ui:multi_selectable:property:select_mode|Efl.Ui.Multi_Selectable.select_mode]]%% policy, and the selection can be retrieved with %%[[:develop:api:efl:ui:multi_selectable:method:selected_iterator_new|Efl.Ui.Multi_Selectable.selected_iterator_new]]%%.%%
+
+%%%%[[:develop:api:efl:ui:grid|Efl.Ui.Grid]]%% supports grouping by using %%[[:develop:api:efl:ui:group_item|Efl.Ui.Group_Item]]%% objects. Group headers are displayed at the top of the viewport if items belonging to the group are visible in the viewport.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:grid:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:collection|Efl.Ui.Collection]] //(class)// => [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)// => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:collection|Efl.Ui.Collection]] //(class)//
+ * [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)//
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] //(interface)//
+ * [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] //(interface)//
+ * [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] //(interface)//
+ * [[:develop:api:efl:layout:group|Efl.Layout.Group]] //(interface)//
+ * [[:develop:api:efl:pack_linear|Efl.Pack_Linear]] //(interface)//
+ * [[:develop:api:efl:pack|Efl.Pack]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:layout_orientable|Efl.Ui.Layout_Orientable]] //(interface)//
+ * [[:develop:api:efl:ui:multi_selectable|Efl.Ui.Multi_Selectable]] //(interface)//
+ * [[:develop:api:efl:ui:single_selectable|Efl.Ui.Single_Selectable]] //(interface)//
+ * [[:develop:api:efl:ui:focus:manager_sub|Efl.Ui.Focus.Manager_Sub]] //(mixin)//
+ * [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] //(interface)//
+ * [[:develop:api:efl:ui:widget_focus_manager|Efl.Ui.Widget_Focus_Manager]] //(mixin)//
+ * [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] //(interface)//
+ * [[:develop:api:efl:ui:item_clickable|Efl.Ui.Item_Clickable]] //(interface)//
+ * [[:develop:api:efl:ui:scrollable|Efl.Ui.Scrollable]] //(interface)//
+ * [[:develop:api:efl:ui:scrollbar|Efl.Ui.Scrollbar]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:grid:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:collection|Efl.Ui.Collection]] ^^^
+| | **[[:develop:api:efl:ui:collection:method:all_select|all_select]]** | %%Select all %%[[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]]%%%% |
+| | **[[:develop:api:efl:ui:collection:method:all_unselect|all_unselect]]** | %%Unselect all %%[[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]]%%%% |
+| | **[[:develop:api:efl:ui:collection:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:ui:collection:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+| | **[[:develop:api:efl:ui:collection:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| | **[[:develop:api:efl:ui:collection:property:fallback_selection|fallback_selection]]** //**(get, set)**// | %%A object that will be selected in case nothing is selected%% |
+| | **[[:develop:api:efl:ui:collection:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:ui:collection:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:ui:collection:method:item_scroll|item_scroll]]** | %%Brings the passed item into the viewport.%% |
+| | **[[:develop:api:efl:ui:collection:method:item_scroll_align|item_scroll_align]]** | %%Brings the passed item into the viewport and align it.%% |
+| | **[[:develop:api:efl:ui:collection:property:last_selected|last_selected]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:collection:property:match_content|match_content]]** //**(set)**// | |
+| | **[[:develop:api:efl:ui:collection:method:move|move]]** | %%Moves the focus in the given direction to the next regular widget.%% |
+| | **[[:develop:api:efl:ui:collection:property:orientation|orientation]]** //**(get, set)**// | %%Control the direction of a given widget.%% |
+| | **[[:develop:api:efl:ui:collection:method:pack|pack]]** | %%Adds a sub-object to this container.%% |
+| | **[[:develop:api:efl:ui:collection:method:pack_after|pack_after]]** | %%Append an object after the %%''existing''%% sub-object.%% |
+| | **[[:develop:api:efl:ui:collection:method:pack_at|pack_at]]** | %%Inserts %%''subobj''%% BEFORE the sub-object at position %%''index''%%.%% |
+| | **[[:develop:api:efl:ui:collection:method:pack_before|pack_before]]** | %%Prepend an object before the %%''existing''%% sub-object.%% |
+| | **[[:develop:api:efl:ui:collection:method:pack_begin|pack_begin]]** | %%Prepend an object at the beginning of this container.%% |
+| | **[[:develop:api:efl:ui:collection:method:pack_clear|pack_clear]]** | %%Removes all packed sub-objects and unreferences them.%% |
+| | **[[:develop:api:efl:ui:collection:method:pack_content_get|pack_content_get]]** | %%Sub-object at a given %%''index''%% in this container.%% |
+| | **[[:develop:api:efl:ui:collection:method:pack_end|pack_end]]** | %%Append object at the end of this container.%% |
+| | **[[:develop:api:efl:ui:collection:method:pack_index_get|pack_index_get]]** | %%Get the index of a sub-object in this container.%% |
+| | **[[:develop:api:efl:ui:collection:method:pack_unpack_at|pack_unpack_at]]** | %%Pop out (remove) the sub-object at the specified %%''index''%%.%% |
+| | **[[:develop:api:efl:ui:collection:property:position_manager|position_manager]]** //**(get, set)**// | %%Position manager object that handles placement of items.%% |
+| | **[[:develop:api:efl:ui:collection:method:range_select|range_select]]** | %%Select a range of %%[[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]]%%.%% |
+| | **[[:develop:api:efl:ui:collection:method:range_unselect|range_unselect]]** | %%Unselect a range of %%[[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]]%%.%% |
+| | **[[:develop:api:efl:ui:collection:property:select_mode|select_mode]]** //**(get, set)**// | %%The mode type for children selection.%% |
+| | **[[:develop:api:efl:ui:collection:method:selected_iterator_new|selected_iterator_new]]** | %%Get the selected items in a iterator. The iterator sequence will be decided by selection.%% |
+| | **[[:develop:api:efl:ui:collection:method:unpack|unpack]]** | %%Removes an existing sub-object from the container without deleting it.%% |
+| | **[[:develop:api:efl:ui:collection:method:unpack_all|unpack_all]]** | %%Removes all packed sub-objects without unreferencing them.%% |
+| ''protected'' | **[[:develop:api:efl:ui:collection:method:focus_manager_create|focus_manager_create]]** | %%If the widget needs a focus manager, this function will be called.%% |
+| ''protected'' | **[[:develop:api:efl:ui:collection:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:collection:method:theme_apply|theme_apply]]** | %%Virtual function called when the widget needs to re-apply its theme.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] ^^^
+| | **[[:develop:api:efl:ui:focus:manager:property:border_elements|border_elements]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:focus:manager:method:dirty_logic_freeze|dirty_logic_freeze]]** | %%Disables the cache invalidation when an object is moved.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:dirty_logic_unfreeze|dirty_logic_unfreeze]]** | %%Enables the cache invalidation when an object is moved.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:fetch|fetch]]** | %%Fetches the data from a registered node.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:logical_end|logical_end]]** | %%Returns the last logical object.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:manager_focus|manager_focus]]** //**(get, set)**// | %%The element which is currently focused by this manager.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:pop_history_stack|pop_history_stack]]** | %%Removes the uppermost history element, and focuses the previous one.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:redirect|redirect]]** //**(get, set)**// | %%Add another manager to serve the move requests.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:request_move|request_move]]** | %%Returns the object in the %%''direction''%% from %%''child''%%.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:request_subchild|request_subchild]]** | %%Returns the widget in the direction next.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:reset_history|reset_history]]** | %%Resets the history stack of this manager object. This means the uppermost element will be unfocused, and all other elements will be removed from the remembered list.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:root|root]]** //**(get, set)**// | %%Root node for all logical sub-trees.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:setup_on_first_touch|setup_on_first_touch]]** | %%Called when this manager is set as redirect.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:viewport_elements|viewport_elements]]** //**(get)**// | |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:property:automatic_theme_rotation|automatic_theme_rotation]]** //**(get, set)**// | %%This flag tells if this object will automatically mirror the rotation changes of the window to this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**// | %%Whether this object updates its size hints automatically.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_freeze|calc_freeze]]** | %%Freezes the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_parts_extends|calc_parts_extends]]** | %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_size_min|calc_size_min]]** | %%Calculates the minimum required size for a given layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_thaw|calc_thaw]]** | %%Thaws the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:layout_base:method:factory_bind|factory_bind]]** | %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:finger_size_multiplier|finger_size_multiplier]]** //**(get, set)**// | %%Set a multiplier for applying finger size to the layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:group_calculate|group_calculate]]** | %%Triggers an immediate recalculation of this object's geometry.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:group_data|group_data]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_max|group_size_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_min|group_size_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:l10n_text|l10n_text]]** //**(get, set)**// | %%A unique string to be translated.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:message_send|message_send]]** | %%Sends an (Edje) message to a given Edje object%% |
+| | **[[:develop:api:efl:ui:layout_base:property:part_exist|part_exist]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_add|signal_callback_add]]** | %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_del|signal_callback_del]]** | %%Removes a signal-triggered callback from an object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_emit|signal_emit]]** | %%Sends/emits an Edje signal to this layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_process|signal_process]]** | %%Processes an object's messages and signals queue.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:theme|theme]]** //**(get, set)**// | %%The theme of this widget, defines which edje group will be used.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:theme_rotation_apply|theme_rotation_apply]]** | %%Apply a new rotation value to this object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:calc_force|calc_force]]** | %%Forces a Size/Geometry calculation.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:on_focus_update|on_focus_update]]** | %%Virtual function handling focus in/out events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:part_get|part_get]]** | %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+^ [[:develop:api:efl:ui:scrollable|Efl.Ui.Scrollable]] ^^^
+| | **[[:develop:api:efl:ui:scrollable:property:bounce_enabled|bounce_enabled]]** //**(get, set)**// | %%When scrolling, the scroller may "bounce" when reaching the edge of the content object. This is a visual way to indicate the end has been reached. This is enabled by default for both axes. This property determines if bouncing is enabled in each axis. When bouncing is disabled, scrolling just stops upon reaching the end of the content.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:content_pos|content_pos]]** //**(get, set)**// | %%Position of the content inside the scroller.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:content_size|content_size]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:scrollable:property:gravity|gravity]]** //**(get, set)**// | %%Control scrolling gravity on the scrollable.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:looping|looping]]** //**(get, set)**// | %%Controls infinite looping for a scroller.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:movement_block|movement_block]]** //**(get, set)**// | %%Blocking of scrolling (per axis).%% |
+| | **[[:develop:api:efl:ui:scrollable:method:scroll|scroll]]** | %%Show a specific virtual region within the scroller content object.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:scroll_freeze|scroll_freeze]]** //**(get, set)**// | %%Freezes scrolling movement (by input of a user). Unlike %%[[:develop:api:efl:ui:scrollable:property:movement_block|Efl.Ui.Scrollable.movement_block]]%%, this property freezes bidirectionally. If you want to freeze in only one direction, see %%[[:develop:api:efl:ui:scrollable:property:movement_block|Efl.Ui.Scrollable.movement_block]]%%.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:scroll_hold|scroll_hold]]** //**(get, set)**// | %%When hold turns on, it only scrolls by holding action.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:step_size|step_size]]** //**(get, set)**// | %%Amount to scroll in response to cursor key presses.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:viewport_geometry|viewport_geometry]]** //**(get)**// | |
+^ [[:develop:api:efl:ui:scrollbar|Efl.Ui.Scrollbar]] ^^^
+| | **[[:develop:api:efl:ui:scrollbar:property:bar_mode|bar_mode]]** //**(get, set)**// | %%Scrollbar visibility mode, for each of the scrollbars.%% |
+| | **[[:develop:api:efl:ui:scrollbar:property:bar_position|bar_position]]** //**(get, set)**// | %%Position of the thumb (the draggable zone) inside the scrollbar. It is calculated based on current position of the viewport inside the total content.%% |
+| | **[[:develop:api:efl:ui:scrollbar:property:bar_size|bar_size]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:scrollbar:method:bar_visibility_update|bar_visibility_update]]** | %%Update bar visibility.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:property:position|position]]** //**(get, set)**// | %%The 2D position of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:size|size]]** //**(get, set)**// | %%The 2D size of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| | **[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_input_event_handler|widget_input_event_handler]]** | %%Virtual function handling input events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] ^^^
+| | **[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]** | %%A circular dependency between parts of the object was found.%% |
+| | **[[:develop:api:efl:layout:calc:event:recalc|recalc]]** | %%The layout was recalculated.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] ^^^
+| | **[[:develop:api:efl:ui:focus:manager:event:coords_dirty|coords,dirty]]** | %%Cached relationship calculation results have been invalidated.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:dirty_logic_freeze_changed|dirty_logic_freeze,changed]]** | %%Called when this focus manager is frozen or thawed, even_info being %%''true''%% indicates that it is now frozen, %%''false''%% indicates that it is thawed.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:flush_pre|flush,pre]]** | %%After this event, the manager object will calculate relations in the graph. Can be used to add / remove children in a lazy fashion.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:manager_focus_changed|manager_focus,changed]]** | %%The manager_focus property has changed. The previously focused object is passed as an event argument.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:redirect_changed|redirect,changed]]** | %%Redirect object has changed, the old manager is passed as an event argument.%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:item_clickable|Efl.Ui.Item_Clickable]] ^^^
+| | **[[:develop:api:efl:ui:item_clickable:event:item_clicked|item,clicked]]** | %%A %%''clicked''%% event occurred over an item.%% |
+| | **[[:develop:api:efl:ui:item_clickable:event:item_clicked_any|item,clicked,any]]** | %%A %%''clicked,any''%% event occurred over an item.%% |
+| | **[[:develop:api:efl:ui:item_clickable:event:item_longpressed|item,longpressed]]** | %%A %%''longpressed''%% event occurred over an item.%% |
+| | **[[:develop:api:efl:ui:item_clickable:event:item_pressed|item,pressed]]** | %%A %%''pressed''%% event occurred over an item.%% |
+| | **[[:develop:api:efl:ui:item_clickable:event:item_unpressed|item,unpressed]]** | %%An %%''unpressed''%% event occurred over an item.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:event:theme_changed|theme,changed]]** | %%Called when theme changed%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:scrollable|Efl.Ui.Scrollable]] ^^^
+| | **[[:develop:api:efl:ui:scrollable:event:edge_down|edge,down]]** | %%Called when hitting the bottom edge.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:edge_left|edge,left]]** | %%Called when hitting the left edge.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:edge_right|edge,right]]** | %%Called when hitting the right edge.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:edge_up|edge,up]]** | %%Called when hitting the top edge.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_anim_finished|scroll,anim,finished]]** | %%Called when scroll animation finishes.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_anim_started|scroll,anim,started]]** | %%Called when scroll animation starts.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_changed|scroll,changed]]** | %%Called when scrolling.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_down|scroll,down]]** | %%Called when scrolling downwards.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_drag_finished|scroll,drag,finished]]** | %%Called when scroll drag finishes.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_drag_started|scroll,drag,started]]** | %%Called when scroll drag starts.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_finished|scroll,finished]]** | %%Called when scroll operation finishes.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_left|scroll,left]]** | %%Called when scrolling left.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_right|scroll,right]]** | %%Called when scrolling right.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_started|scroll,started]]** | %%Called when scroll operation starts.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_up|scroll,up]]** | %%Called when scrolling upwards.%% |
+^ [[:develop:api:efl:ui:scrollbar|Efl.Ui.Scrollbar]] ^^^
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_dragged|bar,dragged]]** | %%Emitted when thumb is dragged.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_hide|bar,hide]]** | %%Emitted when scrollbar is hidden.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_pos_changed|bar,pos,changed]]** | %%Emitted when thumb position has changed.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_pressed|bar,pressed]]** | %%Emitted when thumb is pressed.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_show|bar,show]]** | %%Emitted when scrollbar is shown.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_size_changed|bar,size,changed]]** | %%Emitted when thumb size has changed.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_unpressed|bar,unpressed]]** | %%Emitted when thumb is unpressed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:single_selectable|Efl.Ui.Single_Selectable]] ^^^
+| | **[[:develop:api:efl:ui:single_selectable:event:selection_changed|selection_changed]]** | %%Emitted when there is a change in the selection state. This event will collect all the item selection change events that are happening within one loop iteration. This means, you will only get this event once, even if a lot of items have changed. If you are interested in detailed changes, subscribe to the individual %%[[:develop:api:efl:ui:selectable:event:selected,changed|Efl.Ui.Selectable.selected,changed]]%% events of each item.%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/grid/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/grid/method/constructor.txt
new file mode 100644
index 00000000..267d1d0d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/grid/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Grid.constructor~~
+====== Efl.Ui.Grid.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:grid:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:collection:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/grid_default_item.txt b/public_html/data/pages/develop/api/efl/ui/grid_default_item.txt
new file mode 100644
index 00000000..cb9be547
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/grid_default_item.txt
@@ -0,0 +1,412 @@
+~~Title: Efl.Ui.Grid_Default_Item~~
+====== Efl.Ui.Grid_Default_Item (class) ======
+
+===== Description =====
+
+%%Default Item class to be used inside %%[[:develop:api:efl:ui:grid|Efl.Ui.Grid]]%% containers. The %%''icon''%% part is in the middle, the %%''extra''%% part overlaps it on its upper-right corner. The %%''text''%% part is centered below the %%''icon''%%. Theming can change this arrangement.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:grid_default_item:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:default_item|Efl.Ui.Default_Item]] //(class)// => [[:develop:api:efl:ui:item|Efl.Ui.Item]] //(class)// => [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)// => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:default_item|Efl.Ui.Default_Item]] //(class)//
+ * [[:develop:api:efl:ui:item|Efl.Ui.Item]] //(class)//
+ * [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)//
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] //(interface)//
+ * [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] //(interface)//
+ * [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] //(interface)//
+ * [[:develop:api:efl:layout:group|Efl.Layout.Group]] //(interface)//
+ * [[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]] //(interface)//
+ * [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] //(mixin)//
+ * [[:develop:api:efl:text|Efl.Text]] //(interface)//
+ * [[:develop:api:efl:text_markup|Efl.Text_Markup]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:content|Efl.Content]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:grid_default_item:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] ^^^
+| | **[[:develop:api:efl:input:clickable:property:interaction|interaction]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:button_state_reset|button_state_reset]]** | %%This aborts the internal state after a press call.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:longpress_abort|longpress_abort]]** | %%This aborts ongoing longpress event.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:press|press]]** | %%Change internal states that a button got pressed.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:unpress|unpress]]** | %%Change internal states that a button got unpressed.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:default_item|Efl.Ui.Default_Item]] ^^^
+| | **[[:develop:api:efl:ui:default_item:property:content|content]]** //**(get, set)**// | %%Sub-object currently set as this object's single content.%% |
+| | **[[:develop:api:efl:ui:default_item:method:content_unset|content_unset]]** | %%Remove the sub-object currently set as content of this object and return it. This object becomes empty.%% |
+| | **[[:develop:api:efl:ui:default_item:property:l10n_text|l10n_text]]** //**(get, set)**// | %%A unique string to be translated.%% |
+| | **[[:develop:api:efl:ui:default_item:property:markup|markup]]** //**(get, set)**// | %%Markup property%% |
+| | **[[:develop:api:efl:ui:default_item:property:text|text]]** //**(get, set)**// | %%The text string to be displayed by the given text object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:default_item:method:part_get|part_get]]** | %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:item|Efl.Ui.Item]] ^^^
+| | **[[:develop:api:efl:ui:item:property:calc_locked|calc_locked]]** //**(get, set)**// | %%If the item has its calc locked it will not trigger %%[[:develop:api:efl:canvas:group:property:group_need_recalculate|Efl.Canvas.Group.group_need_recalculate.set]]%% done.%% |
+| | **[[:develop:api:efl:ui:item:property:container|container]]** //**(get, set)**// | %%The container this object is part of.%% |
+| | **[[:develop:api:efl:ui:item:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| | **[[:develop:api:efl:ui:item:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:ui:item:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:ui:item:property:index|index]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:item:property:item_parent|item_parent]]** //**(get, set)**// | %%The parent of the item.%% |
+| | **[[:develop:api:efl:ui:item:property:selected|selected]]** //**(get, set)**// | %%The selected state of this object%% |
+| ''protected'' | **[[:develop:api:efl:ui:item:method:widget_input_event_handler|widget_input_event_handler]]** | %%Virtual function handling input events on the widget.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:property:automatic_theme_rotation|automatic_theme_rotation]]** //**(get, set)**// | %%This flag tells if this object will automatically mirror the rotation changes of the window to this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**// | %%Whether this object updates its size hints automatically.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_freeze|calc_freeze]]** | %%Freezes the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_parts_extends|calc_parts_extends]]** | %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_size_min|calc_size_min]]** | %%Calculates the minimum required size for a given layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_thaw|calc_thaw]]** | %%Thaws the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:layout_base:method:factory_bind|factory_bind]]** | %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:finger_size_multiplier|finger_size_multiplier]]** //**(get, set)**// | %%Set a multiplier for applying finger size to the layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:group_calculate|group_calculate]]** | %%Triggers an immediate recalculation of this object's geometry.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:group_data|group_data]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_max|group_size_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_min|group_size_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:message_send|message_send]]** | %%Sends an (Edje) message to a given Edje object%% |
+| | **[[:develop:api:efl:ui:layout_base:property:part_exist|part_exist]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_add|signal_callback_add]]** | %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_del|signal_callback_del]]** | %%Removes a signal-triggered callback from an object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_emit|signal_emit]]** | %%Sends/emits an Edje signal to this layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_process|signal_process]]** | %%Processes an object's messages and signals queue.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:theme|theme]]** //**(get, set)**// | %%The theme of this widget, defines which edje group will be used.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:theme_rotation_apply|theme_rotation_apply]]** | %%Apply a new rotation value to this object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:calc_force|calc_force]]** | %%Forces a Size/Geometry calculation.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:on_focus_update|on_focus_update]]** | %%Virtual function handling focus in/out events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:theme_apply|theme_apply]]** | %%Virtual function called when the widget needs to re-apply its theme.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:property:position|position]]** //**(get, set)**// | %%The 2D position of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:size|size]]** //**(get, set)**// | %%The 2D size of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| | **[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:content|Efl.Content]] ^^^
+| | **[[:develop:api:efl:content:event:content_changed|content,changed]]** | %%Sent after the content is set or unset using the current content object.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] ^^^
+| | **[[:develop:api:efl:input:clickable:event:clicked|clicked]]** | %%Called when object is in sequence pressed and unpressed by the primary button%% |
+| | **[[:develop:api:efl:input:clickable:event:clicked_any|clicked,any]]** | %%Called when object is in sequence pressed and unpressed by any button. The button that triggered the event can be found in the event information.%% |
+| | **[[:develop:api:efl:input:clickable:event:longpressed|longpressed]]** | %%Called when the object receives a long press, event_info is the button that got pressed%% |
+| | **[[:develop:api:efl:input:clickable:event:pressed|pressed]]** | %%Called when the object is pressed, event_info is the button that got pressed%% |
+| | **[[:develop:api:efl:input:clickable:event:unpressed|unpressed]]** | %%Called when the object is no longer pressed, event_info is the button that got pressed%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] ^^^
+| | **[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]** | %%A circular dependency between parts of the object was found.%% |
+| | **[[:develop:api:efl:layout:calc:event:recalc|recalc]]** | %%The layout was recalculated.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:event:theme_changed|theme,changed]]** | %%Called when theme changed%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]] ^^^
+| | **[[:develop:api:efl:ui:selectable:event:selected_changed|selected,changed]]** | %%Called when the selected state has changed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/grid_default_item/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/grid_default_item/method/constructor.txt
new file mode 100644
index 00000000..95197b18
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/grid_default_item/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Grid_Default_Item.constructor~~
+====== Efl.Ui.Grid_Default_Item.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:grid_default_item:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:item:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image.txt b/public_html/data/pages/develop/api/efl/ui/image.txt
new file mode 100644
index 00000000..9cb01490
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image.txt
@@ -0,0 +1,812 @@
+~~Title: Efl.Ui.Image~~
+====== Efl.Ui.Image (class) ======
+
+===== Description =====
+
+%%Efl UI image class%%
+
+%%When loading images from a file, the %%[[:develop:api:efl:file:property:key|Efl.File.key]]%% property can be used to access different streams. For example, when accessing Evas image caches.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:image:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] //(mixin)//
+ * [[:develop:api:efl:ui:draggable|Efl.Ui.Draggable]] //(interface)//
+ * [[:develop:api:efl:file|Efl.File]] //(mixin)//
+ * [[:develop:api:efl:gfx:image|Efl.Gfx.Image]] //(interface)//
+ * [[:develop:api:efl:gfx:image_load_controller|Efl.Gfx.Image_Load_Controller]] //(interface)//
+ * [[:develop:api:efl:player|Efl.Player]] //(interface)//
+ * [[:develop:api:efl:playable|Efl.Playable]] //(interface)//
+ * [[:develop:api:efl:gfx:view|Efl.Gfx.View]] //(interface)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]] //(mixin)//
+ * [[:develop:api:efl:access:action|Efl.Access.Action]] //(mixin)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:image_orientable|Efl.Gfx.Image_Orientable]] //(interface)//
+ * [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] //(interface)//
+ * [[:develop:api:efl:layout:group|Efl.Layout.Group]] //(interface)//
+ * [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] //(interface)//
+ * [[:develop:api:efl:gfx:arrangement|Efl.Gfx.Arrangement]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:image:property:border_insets|border_insets]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:image|Efl.Gfx.Image]]]//\\
+> %%Dimensions of this image's border, a region that does not scale with the center area.%%
+
+void efl_gfx_image_border_insets_get(const Eo *obj, int *l, int *r, int *t, int *b);
+void efl_gfx_image_border_insets_set(Eo *obj, int l, int r, int t, int b);
+
+\\
+**[[:develop:api:efl:ui:image:property:border_insets_scale|border_insets_scale]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:image|Efl.Gfx.Image]]]//\\
+> %%Scaling factor applied to the image borders.%%
+
+double efl_gfx_image_border_insets_scale_get(const Eo *obj);
+void efl_gfx_image_border_insets_scale_set(Eo *obj, double scale);
+
+\\
+**[[:develop:api:efl:ui:image:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:layout:calc|Efl.Layout.Calc]]]//\\
+> %%Whether this object updates its size hints automatically.%%
+
+Eina_Bool efl_layout_calc_auto_update_hints_get(const Eo *obj);
+void efl_layout_calc_auto_update_hints_set(Eo *obj, Eina_Bool update);
+
+\\
+**[[:develop:api:efl:ui:image:method:calc_freeze|calc_freeze]]**// [Overridden from [[:develop:api:efl:layout:calc|Efl.Layout.Calc]]]//\\
+> %%Freezes the layout object.%%
+
+int efl_layout_calc_freeze(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image:method:calc_parts_extends|calc_parts_extends]]**// [Overridden from [[:develop:api:efl:layout:calc|Efl.Layout.Calc]]]//\\
+> %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%%
+
+Eina_Rect efl_layout_calc_parts_extends(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image:method:calc_size_min|calc_size_min]]**// [Overridden from [[:develop:api:efl:layout:calc|Efl.Layout.Calc]]]//\\
+> %%Calculates the minimum required size for a given layout object.%%
+
+Eina_Size2D efl_layout_calc_size_min(Eo *obj, Eina_Size2D restricted);
+
+\\
+**[[:develop:api:efl:ui:image:method:calc_thaw|calc_thaw]]**// [Overridden from [[:develop:api:efl:layout:calc|Efl.Layout.Calc]]]//\\
+> %%Thaws the layout object.%%
+
+int efl_layout_calc_thaw(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image:property:can_downscale|can_downscale]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:image|Efl.Gfx.Image]]]//\\
+> %%If %%''true''%%, the image may be scaled to a smaller size. If %%''false''%%, the image will never be resized smaller than its native size.%%
+
+Eina_Bool efl_gfx_image_can_downscale_get(const Eo *obj);
+void efl_gfx_image_can_downscale_set(Eo *obj, Eina_Bool downscale);
+
+\\
+**[[:develop:api:efl:ui:image:property:can_upscale|can_upscale]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:image|Efl.Gfx.Image]]]//\\
+> %%If %%''true''%%, the image may be scaled to a larger size. If %%''false''%%, the image will never be resized larger than its native size.%%
+
+Eina_Bool efl_gfx_image_can_upscale_get(const Eo *obj);
+void efl_gfx_image_can_upscale_set(Eo *obj, Eina_Bool upscale);
+
+\\
+**[[:develop:api:efl:ui:image:property:center_fill_mode|center_fill_mode]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:image|Efl.Gfx.Image]]]//\\
+> %%Specifies how the center part of the object (not the borders) should be drawn when EFL is rendering it.%%
+
+Efl_Gfx_Center_Fill_Mode efl_gfx_image_center_fill_mode_get(const Eo *obj);
+void efl_gfx_image_center_fill_mode_set(Eo *obj, Efl_Gfx_Center_Fill_Mode fill);
+
+\\
+**[[:develop:api:efl:ui:image:property:clipper|clipper]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:canvas:object|Efl.Canvas.Object]]]//\\
+> %%Clip one object to another.%%
+
+Efl_Canvas_Object *efl_canvas_object_clipper_get(const Eo *obj);
+void efl_canvas_object_clipper_set(Eo *obj, Efl_Canvas_Object *clipper);
+
+\\
+**[[:develop:api:efl:ui:image:property:color|color]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:color|Efl.Gfx.Color]]]//\\
+> %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%%
+
+void efl_gfx_color_get(const Eo *obj, int *r, int *g, int *b, int *a);
+void efl_gfx_color_set(Eo *obj, int r, int g, int b, int a);
+
+\\
+**[[:develop:api:efl:ui:image:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image:property:content_align|content_align]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:arrangement|Efl.Gfx.Arrangement]]]//\\
+> %%This property determines how contents will be aligned within a container if there is unused space.%%
+
+void efl_gfx_arrangement_content_align_get(const Eo *obj, double *align_horiz, double *align_vert);
+void efl_gfx_arrangement_content_align_set(Eo *obj, double align_horiz, double align_vert);
+
+\\
+**[[:develop:api:efl:ui:image:property:content_hint|content_hint]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:image|Efl.Gfx.Image]]]//\\
+> %%Content hint setting for the image. These hints might be used by EFL to enable optimizations.%%
+
+Efl_Gfx_Image_Content_Hint efl_gfx_image_content_hint_get(const Eo *obj);
+void efl_gfx_image_content_hint_set(Eo *obj, Efl_Gfx_Image_Content_Hint hint);
+
+\\
+**[[:develop:api:efl:ui:image:property:content_region|content_region]]** //**(get)**//// [Overridden from [[:develop:api:efl:gfx:image|Efl.Gfx.Image]]]//\\
+>
+
+Eina_Rect efl_gfx_image_content_region_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image:property:drag_target|drag_target]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:draggable|Efl.Ui.Draggable]]]//\\
+> %%Control whether the object's content is changed by drag and drop.%%
+
+Eina_Bool efl_ui_draggable_drag_target_get(const Eo *obj);
+void efl_ui_draggable_drag_target_set(Eo *obj, Eina_Bool set);
+
+\\
+**[[:develop:api:efl:ui:image:property:group_data|group_data]]** //**(get)**//// [Overridden from [[:develop:api:efl:layout:group|Efl.Layout.Group]]]//\\
+>
+
+const char *efl_layout_group_data_get(const Eo *obj, const char *key);
+
+\\
+**[[:develop:api:efl:ui:image:method:group_member_add|group_member_add]]**// [Overridden from [[:develop:api:efl:canvas:group|Efl.Canvas.Group]]]//\\
+> %%Set a canvas object as a member of a given group (or smart object).%%
+
+void efl_canvas_group_member_add(Eo *obj, Efl_Canvas_Object *sub_obj);
+
+\\
+**[[:develop:api:efl:ui:image:property:group_size_max|group_size_max]]** //**(get)**//// [Overridden from [[:develop:api:efl:layout:group|Efl.Layout.Group]]]//\\
+>
+
+Eina_Size2D efl_layout_group_size_max_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image:property:group_size_min|group_size_min]]** //**(get)**//// [Overridden from [[:develop:api:efl:layout:group|Efl.Layout.Group]]]//\\
+>
+
+Eina_Size2D efl_layout_group_size_min_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image:property:icon|icon]]** //**(get, set)**//\\
+> %%The image name, using icon standards names.%%
+
+const char *efl_ui_image_icon_get(const Eo *obj);
+Eina_Bool efl_ui_image_icon_set(Eo *obj, const char *name);
+
+\\
+**[[:develop:api:efl:ui:image:property:image_load_error|image_load_error]]** //**(get)**//// [Overridden from [[:develop:api:efl:gfx:image|Efl.Gfx.Image]]]//\\
+>
+
+Eina_Error efl_gfx_image_load_error_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image:property:image_orientation|image_orientation]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:image_orientable|Efl.Gfx.Image_Orientable]]]//\\
+> %%Control the orientation (rotation and flipping) of a visual object.%%
+
+Efl_Gfx_Image_Orientation efl_gfx_image_orientation_get(const Eo *obj);
+void efl_gfx_image_orientation_set(Eo *obj, Efl_Gfx_Image_Orientation dir);
+
+\\
+**[[:develop:api:efl:ui:image:property:image_size|image_size]]** //**(get)**//// [Overridden from [[:develop:api:efl:gfx:image|Efl.Gfx.Image]]]//\\
+>
+
+Eina_Size2D efl_gfx_image_size_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image:method:invalidate|invalidate]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to perform special actions when your object loses its parent, if you need to.%%
+
+void efl_invalidate(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image:method:load|load]]**// [Overridden from [[:develop:api:efl:file|Efl.File]]]//\\
+> %%Perform all necessary operations to open and load file data into the object using the %%[[:develop:api:efl:file:property:file|Efl.File.file]]%% (or %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap]]%%) and %%[[:develop:api:efl:file:property:key|Efl.File.key]]%% properties.%%
+
+Eina_Error efl_file_load(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image:method:load_async_cancel|load_async_cancel]]**// [Overridden from [[:develop:api:efl:gfx:image_load_controller|Efl.Gfx.Image_Load_Controller]]]//\\
+> %%Cancel preloading an image object's image data in the background.%%
+
+void efl_gfx_image_load_controller_load_async_cancel(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image:method:load_async_start|load_async_start]]**// [Overridden from [[:develop:api:efl:gfx:image_load_controller|Efl.Gfx.Image_Load_Controller]]]//\\
+> %%Begin preloading an image object's image data in the background.%%
+
+void efl_gfx_image_load_controller_load_async_start(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image:property:load_dpi|load_dpi]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:image_load_controller|Efl.Gfx.Image_Load_Controller]]]//\\
+> %%The DPI resolution of an image object's source image.%%
+
+double efl_gfx_image_load_controller_load_dpi_get(const Eo *obj);
+void efl_gfx_image_load_controller_load_dpi_set(Eo *obj, double dpi);
+
+\\
+**[[:develop:api:efl:ui:image:property:load_orientation|load_orientation]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:image_load_controller|Efl.Gfx.Image_Load_Controller]]]//\\
+> %%Defines whether the orientation information in the image file should be honored.%%
+
+Eina_Bool efl_gfx_image_load_controller_load_orientation_get(const Eo *obj);
+void efl_gfx_image_load_controller_load_orientation_set(Eo *obj, Eina_Bool enable);
+
+\\
+**[[:develop:api:efl:ui:image:property:load_region|load_region]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:image_load_controller|Efl.Gfx.Image_Load_Controller]]]//\\
+> %%Inform a given image object to load a selective region of its source image.%%
+
+Eina_Rect efl_gfx_image_load_controller_load_region_get(const Eo *obj);
+void efl_gfx_image_load_controller_load_region_set(Eo *obj, Eina_Rect region);
+
+\\
+**[[:develop:api:efl:ui:image:property:load_region_support|load_region_support]]** //**(get)**//// [Overridden from [[:develop:api:efl:gfx:image_load_controller|Efl.Gfx.Image_Load_Controller]]]//\\
+>
+
+Eina_Bool efl_gfx_image_load_controller_load_region_support_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image:property:load_scale_down|load_scale_down]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:image_load_controller|Efl.Gfx.Image_Load_Controller]]]//\\
+> %%The scale down factor is a divider on the original image size.%%
+
+int efl_gfx_image_load_controller_load_scale_down_get(const Eo *obj);
+void efl_gfx_image_load_controller_load_scale_down_set(Eo *obj, int div);
+
+\\
+**[[:develop:api:efl:ui:image:property:load_size|load_size]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:image_load_controller|Efl.Gfx.Image_Load_Controller]]]//\\
+> %%The load size of an image.%%
+
+Eina_Size2D efl_gfx_image_load_controller_load_size_get(const Eo *obj);
+void efl_gfx_image_load_controller_load_size_set(Eo *obj, Eina_Size2D size);
+
+\\
+**[[:develop:api:efl:ui:image:property:load_skip_header|load_skip_header]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:image_load_controller|Efl.Gfx.Image_Load_Controller]]]//\\
+> %%Initial load should skip header check and leave it all to data load.%%
+
+Eina_Bool efl_gfx_image_load_controller_load_skip_header_get(const Eo *obj);
+void efl_gfx_image_load_controller_load_skip_header_set(Eo *obj, Eina_Bool skip);
+
+\\
+**[[:develop:api:efl:ui:image:method:message_send|message_send]]**// [Overridden from [[:develop:api:efl:layout:signal|Efl.Layout.Signal]]]//\\
+> %%Sends an (Edje) message to a given Edje object%%
+
+void efl_layout_signal_message_send(Eo *obj, int id, const Eina_Value msg);
+
+\\
+**[[:develop:api:efl:ui:image:property:part_exist|part_exist]]** //**(get)**//// [Overridden from [[:develop:api:efl:layout:group|Efl.Layout.Group]]]//\\
+>
+
+Eina_Bool efl_layout_group_part_exist_get(const Eo *obj, const char *part);
+
+\\
+**[[:develop:api:efl:ui:image:property:paused|paused]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:player|Efl.Player]]]//\\
+> %%Pause state of the media file.%%
+
+Eina_Bool efl_player_paused_get(const Eo *obj);
+Eina_Bool efl_player_paused_set(Eo *obj, Eina_Bool paused);
+
+\\
+**[[:develop:api:efl:ui:image:property:playable|playable]]** //**(get)**//// [Overridden from [[:develop:api:efl:playable|Efl.Playable]]]//\\
+>
+
+Eina_Bool efl_playable_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image:property:playback_position|playback_position]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:player|Efl.Player]]]//\\
+> %%Position in the media file.%%
+
+double efl_player_playback_position_get(const Eo *obj);
+void efl_player_playback_position_set(Eo *obj, double sec);
+
+\\
+**[[:develop:api:efl:ui:image:property:playback_progress|playback_progress]]** //**(get)**//// [Overridden from [[:develop:api:efl:player|Efl.Player]]]//\\
+>
+
+double efl_player_playback_progress_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image:property:playback_speed|playback_speed]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:player|Efl.Player]]]//\\
+> %%Control the playback speed of the media file.%%
+
+double efl_player_playback_speed_get(const Eo *obj);
+void efl_player_playback_speed_set(Eo *obj, double speed);
+
+\\
+**[[:develop:api:efl:ui:image:property:playing|playing]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:player|Efl.Player]]]//\\
+> %%Playback state of the media file.%%
+
+Eina_Bool efl_player_playing_get(const Eo *obj);
+Eina_Bool efl_player_playing_set(Eo *obj, Eina_Bool playing);
+
+\\
+**[[:develop:api:efl:ui:image:property:position|position]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The 2D position of a canvas object.%%
+
+Eina_Position2D efl_gfx_entity_position_get(const Eo *obj);
+void efl_gfx_entity_position_set(Eo *obj, Eina_Position2D pos);
+
+\\
+**[[:develop:api:efl:ui:image:method:property_bind|property_bind]]**// [Overridden from [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]]]//\\
+> %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%%
+
+Eina_Error efl_ui_property_bind(Eo *obj, const char *key, const char *property);
+
+\\
+**[[:develop:api:efl:ui:image:property:ratio|ratio]]** //**(get)**//// [Overridden from [[:develop:api:efl:gfx:image|Efl.Gfx.Image]]]//\\
+>
+
+double efl_gfx_image_ratio_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image:property:scale_hint|scale_hint]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:image|Efl.Gfx.Image]]]//\\
+> %%The scale hint of a given image of the canvas.%%
+
+Efl_Gfx_Image_Scale_Hint efl_gfx_image_scale_hint_get(const Eo *obj);
+void efl_gfx_image_scale_hint_set(Eo *obj, Efl_Gfx_Image_Scale_Hint hint);
+
+\\
+**[[:develop:api:efl:ui:image:property:scale_method|scale_method]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:image|Efl.Gfx.Image]]]//\\
+> %%Determine how the image is scaled at render time.%%
+
+Efl_Gfx_Image_Scale_Method efl_gfx_image_scale_method_get(const Eo *obj);
+void efl_gfx_image_scale_method_set(Eo *obj, Efl_Gfx_Image_Scale_Method scale_method);
+
+\\
+**[[:develop:api:efl:ui:image:method:signal_callback_add|signal_callback_add]]**// [Overridden from [[:develop:api:efl:layout:signal|Efl.Layout.Signal]]]//\\
+> %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%%
+
+Eina_Bool efl_layout_signal_callback_add(Eo *obj, const char *emission, const char *source, EflLayoutSignalCb func);
+
+\\
+**[[:develop:api:efl:ui:image:method:signal_callback_del|signal_callback_del]]**// [Overridden from [[:develop:api:efl:layout:signal|Efl.Layout.Signal]]]//\\
+> %%Removes a signal-triggered callback from an object.%%
+
+Eina_Bool efl_layout_signal_callback_del(Eo *obj, const char *emission, const char *source, EflLayoutSignalCb func);
+
+\\
+**[[:develop:api:efl:ui:image:method:signal_emit|signal_emit]]**// [Overridden from [[:develop:api:efl:layout:signal|Efl.Layout.Signal]]]//\\
+> %%Sends/emits an Edje signal to this layout.%%
+
+void efl_layout_signal_emit(Eo *obj, const char *emission, const char *source);
+
+\\
+**[[:develop:api:efl:ui:image:method:signal_process|signal_process]]**// [Overridden from [[:develop:api:efl:layout:signal|Efl.Layout.Signal]]]//\\
+> %%Processes an object's messages and signals queue.%%
+
+void efl_layout_signal_process(Eo *obj, Eina_Bool recurse);
+
+\\
+**[[:develop:api:efl:ui:image:property:size|size]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The 2D size of a canvas object.%%
+
+Eina_Size2D efl_gfx_entity_size_get(const Eo *obj);
+void efl_gfx_entity_size_set(Eo *obj, Eina_Size2D size);
+
+\\
+**[[:develop:api:efl:ui:image:property:smooth_scale|smooth_scale]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:image|Efl.Gfx.Image]]]//\\
+> %%Whether to use high-quality image scaling algorithm for this image.%%
+
+Eina_Bool efl_gfx_image_smooth_scale_get(const Eo *obj);
+void efl_gfx_image_smooth_scale_set(Eo *obj, Eina_Bool smooth_scale);
+
+\\
+**[[:develop:api:efl:ui:image:property:stretch_region|stretch_region]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:image|Efl.Gfx.Image]]]//\\
+> %%This property defines the stretchable pixels region of an image.%%
+
+void efl_gfx_image_stretch_region_get(const Eo *obj, Eina_Iterator **horizontal, Eina_Iterator **vertical);
+Eina_Error efl_gfx_image_stretch_region_set(Eo *obj, Eina_Iterator *horizontal, Eina_Iterator *vertical);
+
+\\
+**[[:develop:api:efl:ui:image:method:unload|unload]]**// [Overridden from [[:develop:api:efl:file|Efl.File]]]//\\
+> %%Perform all necessary operations to unload file data from the object.%%
+
+void efl_file_unload(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image:property:view_size|view_size]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:view|Efl.Gfx.View]]]//\\
+> %%The dimensions of this object's viewport.%%
+
+Eina_Size2D efl_gfx_view_size_get(const Eo *obj);
+void efl_gfx_view_size_set(Eo *obj, Eina_Size2D size);
+
+\\
+**[[:develop:api:efl:ui:image:property:visible|visible]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The visibility of a canvas object.%%
+
+Eina_Bool efl_gfx_entity_visible_get(const Eo *obj);
+void efl_gfx_entity_visible_set(Eo *obj, Eina_Bool v);
+
+\\
+**[[:develop:api:efl:ui:image:method:calc_force|calc_force]]** ''protected''// [Overridden from [[:develop:api:efl:layout:calc|Efl.Layout.Calc]]]//\\
+> %%Forces a Size/Geometry calculation.%%
+
+void efl_layout_calc_force(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image:property:elm_actions|elm_actions]]** //**(get)**// ''protected''// [Overridden from [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]]]//\\
+>
+
+const Efl_Access_Action_Data *efl_access_widget_action_elm_actions_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image:property:extents|extents]]** //**(get, set)**// ''protected''// [Overridden from [[:develop:api:efl:access:component|Efl.Access.Component]]]//\\
+> %%Geometry of accessible widget.%%
+
+Eina_Rect efl_access_component_extents_get(const Eo *obj, Eina_Bool screen_coords);
+Eina_Bool efl_access_component_extents_set(Eo *obj, Eina_Bool screen_coords, Eina_Rect rect);
+
+\\
+**[[:develop:api:efl:ui:image:method:theme_apply|theme_apply]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Virtual function called when the widget needs to re-apply its theme.%%
+
+Eina_Error efl_ui_widget_theme_apply(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image:method:widget_input_event_handler|widget_input_event_handler]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Virtual function handling input events on the widget.%%
+
+Eina_Bool efl_ui_widget_input_event_handler(Eo *obj, const Efl_Event *eo_event, Efl_Canvas_Object *source);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:action|Efl.Access.Action]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:action:property:action_localized_name|action_localized_name]]** //**(get)**// | |
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:action_description|action_description]]** //**(get, set)**// | %%Action description for given id%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:method:action_do|action_do]]** | %%Performs action on given widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:method:action_keybinding_get|action_keybinding_get]]** | %%Gets configured keybinding for specific action and widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:action_name|action_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:actions|actions]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:file|Efl.File]] ^^^
+| | **[[:develop:api:efl:file:property:file|file]]** //**(get, set)**// | %%The file path from where an object will fetch the data.%% |
+| | **[[:develop:api:efl:file:property:key|key]]** //**(get, set)**// | %%The key which corresponds to the target data within a file.%% |
+| | **[[:develop:api:efl:file:property:loaded|loaded]]** //**(get)**// | |
+| | **[[:develop:api:efl:file:property:mmap|mmap]]** //**(get, set)**// | %%The mmaped file from where an object will fetch the real data (it must be an %%[[:develop:api:eina:file|Eina.File]]%%).%% |
+^ [[:develop:api:efl:gfx:arrangement|Efl.Gfx.Arrangement]] ^^^
+| | **[[:develop:api:efl:gfx:arrangement:property:content_padding|content_padding]]** //**(get, set)**// | %%This property determines the space between a container's content items.%% |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] ^^^
+| | **[[:develop:api:efl:input:clickable:property:interaction|interaction]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:button_state_reset|button_state_reset]]** | %%This aborts the internal state after a press call.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:longpress_abort|longpress_abort]]** | %%This aborts ongoing longpress event.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:press|press]]** | %%Change internal states that a button got pressed.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:unpress|unpress]]** | %%Change internal states that a button got unpressed.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:playable|Efl.Playable]] ^^^
+| | **[[:develop:api:efl:playable:property:length|length]]** //**(get)**// | |
+| | **[[:develop:api:efl:playable:property:seekable|seekable]]** //**(get)**// | |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] ^^^
+| | **[[:develop:api:efl:ui:i18n:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+^ [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] ^^^
+| | **[[:develop:api:efl:ui:l10n:property:l10n_text|l10n_text]]** //**(get, set)**// | %%A unique string to be translated.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:ui:widget:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| | **[[:develop:api:efl:ui:widget:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:widget:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_calculate|group_calculate]]** | %%Triggers an immediate recalculation of this object's geometry.%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_focus_update|on_focus_update]]** | %%Virtual function handling focus in/out events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:part_get|part_get]]** | %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+
+===== Events =====
+
+**[[:develop:api:efl:ui:image:event:drop|drop]]**\\
+> %%Called when drop from drag and drop happened%%
+
+EFL_UI_IMAGE_EVENT_DROP(const char *, @beta)
+
+\\ ==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:image|Efl.Gfx.Image]] ^^^
+| | **[[:develop:api:efl:gfx:image:event:image_preload_state_changed|image,preload_state,changed]]** | %%If %%''true''%%, image data has been preloaded and can be displayed. If %%''false''%%, the image data has been unloaded and can no longer be displayed.%% |
+| | **[[:develop:api:efl:gfx:image:event:image_resized|image,resized]]** | %%Image was resized (its pixel data). The event data is the image's new size.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] ^^^
+| | **[[:develop:api:efl:input:clickable:event:clicked|clicked]]** | %%Called when object is in sequence pressed and unpressed by the primary button%% |
+| | **[[:develop:api:efl:input:clickable:event:clicked_any|clicked,any]]** | %%Called when object is in sequence pressed and unpressed by any button. The button that triggered the event can be found in the event information.%% |
+| | **[[:develop:api:efl:input:clickable:event:longpressed|longpressed]]** | %%Called when the object receives a long press, event_info is the button that got pressed%% |
+| | **[[:develop:api:efl:input:clickable:event:pressed|pressed]]** | %%Called when the object is pressed, event_info is the button that got pressed%% |
+| | **[[:develop:api:efl:input:clickable:event:unpressed|unpressed]]** | %%Called when the object is no longer pressed, event_info is the button that got pressed%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] ^^^
+| | **[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]** | %%A circular dependency between parts of the object was found.%% |
+| | **[[:develop:api:efl:layout:calc:event:recalc|recalc]]** | %%The layout was recalculated.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:draggable|Efl.Ui.Draggable]] ^^^
+| | **[[:develop:api:efl:ui:draggable:event:drag|drag]]** | %%Called when drag operation starts%% |
+| | **[[:develop:api:efl:ui:draggable:event:drag_end|drag,end]]** | %%Called when drag operation ends%% |
+| | **[[:develop:api:efl:ui:draggable:event:drag_start|drag,start]]** | %%Called when drag started%% |
+| | **[[:develop:api:efl:ui:draggable:event:drag_start_down|drag,start,down]]** | %%Called when drag starts into down direction%% |
+| | **[[:develop:api:efl:ui:draggable:event:drag_start_left|drag,start,left]]** | %%Called when drag starts into left direction%% |
+| | **[[:develop:api:efl:ui:draggable:event:drag_start_right|drag,start,right]]** | %%Called when drag starts into right direction%% |
+| | **[[:develop:api:efl:ui:draggable:event:drag_start_up|drag,start,up]]** | %%Called when drag starts into up direction%% |
+| | **[[:develop:api:efl:ui:draggable:event:drag_stop|drag,stop]]** | %%Called when drag stopped%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/image/event/drop.txt b/public_html/data/pages/develop/api/efl/ui/image/event/drop.txt
new file mode 100644
index 00000000..dd8540ae
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/event/drop.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Image: drop~~
+
+===== Description =====
+
+%%Called when drop from drag and drop happened%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:image:event:drop:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+drop @beta: string;
+
+
+===== C information =====
+
+
+EFL_UI_IMAGE_EVENT_DROP(const char *, @beta)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_image_event_drop(void *data, const Efl_Event *event)
+{
+ const char *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_IMAGE_EVENT_DROP, on_efl_ui_image_event_drop, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/method/calc_force.txt b/public_html/data/pages/develop/api/efl/ui/image/method/calc_force.txt
new file mode 100644
index 00000000..d9a0ae8d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/method/calc_force.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Ui.Image.calc_force~~
+====== Efl.Ui.Image.calc_force ======
+
+===== Description =====
+
+%%Forces a Size/Geometry calculation.%%
+
+%%Forces the object to recalculate its layout regardless of freeze/thaw. This API should be used carefully.%%
+
+%%See also %%[[:develop:api:efl:layout:calc:method:calc_freeze|Efl.Layout.Calc.calc_freeze]]%% and %%[[:develop:api:efl:layout:calc:method:calc_thaw|Efl.Layout.Calc.calc_thaw]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image:method:calc_force:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:layout:calc:method:calc_force|Efl.Layout.Calc.calc_force]].//===== Signature =====
+
+
+calc_force @protected @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_layout_calc_force(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:calc:method:calc_force|Efl.Layout.Calc.calc_force]]
+ * [[:develop:api:efl:canvas:layout:method:calc_force|Efl.Canvas.Layout.calc_force]]
+ * [[:develop:api:efl:ui:image:method:calc_force|Efl.Ui.Image.calc_force]]
+ * [[:develop:api:efl:ui:layout_base:method:calc_force|Efl.Ui.Layout_Base.calc_force]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/method/calc_freeze.txt b/public_html/data/pages/develop/api/efl/ui/image/method/calc_freeze.txt
new file mode 100644
index 00000000..f6bd0740
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/method/calc_freeze.txt
@@ -0,0 +1,35 @@
+~~Title: Efl.Ui.Image.calc_freeze~~
+====== Efl.Ui.Image.calc_freeze ======
+
+===== Description =====
+
+%%Freezes the layout object.%%
+
+%%This function puts all changes on hold. Successive freezes will nest, requiring an equal number of thaws.%%
+
+%%See also %%[[:develop:api:efl:layout:calc:method:calc_thaw|Efl.Layout.Calc.calc_thaw]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image:method:calc_freeze:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:layout:calc:method:calc_freeze|Efl.Layout.Calc.calc_freeze]].//===== Signature =====
+
+
+calc_freeze @pure_virtual {
+ return: int;
+}
+
+
+===== C signature =====
+
+
+int efl_layout_calc_freeze(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:calc:method:calc_freeze|Efl.Layout.Calc.calc_freeze]]
+ * [[:develop:api:efl:canvas:layout:method:calc_freeze|Efl.Canvas.Layout.calc_freeze]]
+ * [[:develop:api:efl:ui:image:method:calc_freeze|Efl.Ui.Image.calc_freeze]]
+ * [[:develop:api:efl:ui:layout_base:method:calc_freeze|Efl.Ui.Layout_Base.calc_freeze]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/method/calc_parts_extends.txt b/public_html/data/pages/develop/api/efl/ui/image/method/calc_parts_extends.txt
new file mode 100644
index 00000000..1223c38c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/method/calc_parts_extends.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Image.calc_parts_extends~~
+====== Efl.Ui.Image.calc_parts_extends ======
+
+===== Description =====
+
+%%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%%
+
+%%This function gets the geometry of the rectangle equal to the area required to group all parts in obj's group/collection. The x and y coordinates are relative to the top left corner of the whole obj object's area. Parts placed out of the group's boundaries will also be taken in account, so that x and y may be negative.%%
+
+
+calc_parts_extends @pure_virtual {
+ return: Eina.Rect;
+}
+
+
+===== C signature =====
+
+
+Eina_Rect efl_layout_calc_parts_extends(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:calc:method:calc_parts_extends|Efl.Layout.Calc.calc_parts_extends]]
+ * [[:develop:api:efl:canvas:layout:method:calc_parts_extends|Efl.Canvas.Layout.calc_parts_extends]]
+ * [[:develop:api:efl:ui:image:method:calc_parts_extends|Efl.Ui.Image.calc_parts_extends]]
+ * [[:develop:api:efl:ui:layout_base:method:calc_parts_extends|Efl.Ui.Layout_Base.calc_parts_extends]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/method/calc_size_min.txt b/public_html/data/pages/develop/api/efl/ui/image/method/calc_size_min.txt
new file mode 100644
index 00000000..76e10084
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/method/calc_size_min.txt
@@ -0,0 +1,48 @@
+~~Title: Efl.Ui.Image.calc_size_min~~
+====== Efl.Ui.Image.calc_size_min ======
+
+===== Description =====
+
+%%Calculates the minimum required size for a given layout object.%%
+
+%%This call will trigger an internal recalculation of all parts of the object, in order to return its minimum required dimensions for width and height. The user might choose to impose those minimum sizes, making the resulting calculation to get to values greater or equal than %%''restricted''%% in both directions.%%
+
+
+calc_size_min @pure_virtual {
+ params {
+ @in restricted: Eina.Size2D @optional;
+ }
+ return: Eina.Size2D;
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_layout_calc_size_min(Eo *obj, Eina_Size2D restricted);
+
+
+===== Parameters =====
+
+ * **restricted** //(in)// - %%The minimum size constraint as input, the returned size can not be lower than this (in both directions).%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:calc:method:calc_size_min|Efl.Layout.Calc.calc_size_min]]
+ * [[:develop:api:efl:canvas:layout:method:calc_size_min|Efl.Canvas.Layout.calc_size_min]]
+ * [[:develop:api:efl:ui:image:method:calc_size_min|Efl.Ui.Image.calc_size_min]]
+ * [[:develop:api:efl:ui:layout_base:method:calc_size_min|Efl.Ui.Layout_Base.calc_size_min]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/method/calc_thaw.txt b/public_html/data/pages/develop/api/efl/ui/image/method/calc_thaw.txt
new file mode 100644
index 00000000..367899e4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/method/calc_thaw.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Image.calc_thaw~~
+====== Efl.Ui.Image.calc_thaw ======
+
+===== Description =====
+
+%%Thaws the layout object.%%
+
+%%This function thaws (in other words "unfreezes") the given layout object.%%
+
+
+calc_thaw @pure_virtual {
+ return: int;
+}
+
+
+===== C signature =====
+
+
+int efl_layout_calc_thaw(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:calc:method:calc_thaw|Efl.Layout.Calc.calc_thaw]]
+ * [[:develop:api:efl:canvas:layout:method:calc_thaw|Efl.Canvas.Layout.calc_thaw]]
+ * [[:develop:api:efl:ui:image:method:calc_thaw|Efl.Ui.Image.calc_thaw]]
+ * [[:develop:api:efl:ui:layout_base:method:calc_thaw|Efl.Ui.Layout_Base.calc_thaw]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/image/method/constructor.txt
new file mode 100644
index 00000000..9794cda0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Image.constructor~~
+====== Efl.Ui.Image.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/method/group_member_add.txt b/public_html/data/pages/develop/api/efl/ui/image/method/group_member_add.txt
new file mode 100644
index 00000000..f91490d9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/method/group_member_add.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Image.group_member_add~~
+====== Efl.Ui.Image.group_member_add ======
+
+===== Description =====
+
+%%Set a canvas object as a member of a given group (or smart object).%%
+
+%%Members will automatically be stacked and layered together with the smart object. The various stacking functions will operate on members relative to the other members instead of the entire canvas, since they now live on an exclusive layer (see %%[[:develop:api:efl:gfx:stack:method:stack_above|Efl.Gfx.Stack.stack_above]]%%(), for more details).%%
+
+%%Subclasses inheriting from this one may override this function to ensure the proper stacking of special objects, such as clippers, event rectangles, etc...%%
+
+%%See also %%[[:develop:api:efl:canvas:group:method:group_member_remove|Efl.Canvas.Group.group_member_remove]]%%. See also %%[[:develop:api:efl:canvas:group:method:group_member_is|Efl.Canvas.Group.group_member_is]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image:method:group_member_add:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:group_member_add|Efl.Canvas.Group.group_member_add]].//===== Signature =====
+
+
+group_member_add {
+ params {
+ @in sub_obj: Efl.Canvas.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_canvas_group_member_add(Eo *obj, Efl_Canvas_Object *sub_obj);
+
+
+===== Parameters =====
+
+ * **sub_obj** //(in)// - %%The member object.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]
+ * [[:develop:api:efl:canvas:event_grabber:method:group_member_add|Efl.Canvas.Event_Grabber.group_member_add]]
+ * [[:develop:api:efl:ui:widget:method:group_member_add|Efl.Ui.Widget.group_member_add]]
+ * [[:develop:api:efl:ui:image:method:group_member_add|Efl.Ui.Image.group_member_add]]
+ * [[:develop:api:efl:ui:image_zoomable:method:group_member_add|Efl.Ui.Image_Zoomable.group_member_add]]
+ * [[:develop:api:efl:ui:text:method:group_member_add|Efl.Ui.Text.group_member_add]]
+ * [[:develop:api:efl:ui:panel:method:group_member_add|Efl.Ui.Panel.group_member_add]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/method/invalidate.txt b/public_html/data/pages/develop/api/efl/ui/image/method/invalidate.txt
new file mode 100644
index 00000000..748a816a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/method/invalidate.txt
@@ -0,0 +1,74 @@
+~~Title: Efl.Ui.Image.invalidate~~
+====== Efl.Ui.Image.invalidate ======
+
+===== Description =====
+
+%%Implement this method to perform special actions when your object loses its parent, if you need to.%%
+
+%%It is called when the parent reference is lost or set to %%''NULL''%%. After this call returns, %%[[:develop:api:efl:object:property:invalidated|Efl.Object.invalidated]]%% is set to %%''true''%%. This allows a simpler tear down of complex hierarchies, by performing object destruction in two steps, first all object relationships are broken and then the isolated objects are destroyed. Performing everything in the %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%% can sometimes lead to deadlocks, but implementing this method is optional if this is not your case. When an object with a parent is destroyed, it first receives a call to %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% and then to %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image:method:invalidate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:invalidate|Efl.Object.invalidate]].//===== Signature =====
+
+
+invalidate {}
+
+
+===== C signature =====
+
+
+void efl_invalidate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]
+ * [[:develop:api:efl:canvas:vg:node:method:invalidate|Efl.Canvas.Vg.Node.invalidate]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:invalidate|Efl.Ui.Position_Manager.Grid.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:manager_scroll:method:invalidate|Efl.Ui.Spotlight.Manager_Scroll.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:manager_stack:method:invalidate|Efl.Ui.Spotlight.Manager_Stack.invalidate]]
+ * [[:develop:api:efl:net:server_udp_client:method:invalidate|Efl.Net.Server_Udp_Client.invalidate]]
+ * [[:develop:api:efl:net:server_windows:method:invalidate|Efl.Net.Server_Windows.invalidate]]
+ * [[:develop:api:efl:io:buffered_stream:method:invalidate|Efl.Io.Buffered_Stream.invalidate]]
+ * [[:develop:api:efl:net:dialer_simple:method:invalidate|Efl.Net.Dialer_Simple.invalidate]]
+ * [[:develop:api:efl:loop_fd:method:invalidate|Efl.Loop_Fd.invalidate]]
+ * [[:develop:api:efl:net:server_ssl:method:invalidate|Efl.Net.Server_Ssl.invalidate]]
+ * [[:develop:api:efl:net:socket_fd:method:invalidate|Efl.Net.Socket_Fd.invalidate]]
+ * [[:develop:api:efl:net:dialer_udp:method:invalidate|Efl.Net.Dialer_Udp.invalidate]]
+ * [[:develop:api:efl:net:dialer_unix:method:invalidate|Efl.Net.Dialer_Unix.invalidate]]
+ * [[:develop:api:efl:net:dialer_tcp:method:invalidate|Efl.Net.Dialer_Tcp.invalidate]]
+ * [[:develop:api:efl:net:socket_ssl:method:invalidate|Efl.Net.Socket_Ssl.invalidate]]
+ * [[:develop:api:efl:net:dialer_ssl:method:invalidate|Efl.Net.Dialer_Ssl.invalidate]]
+ * [[:develop:api:efl:canvas:object:method:invalidate|Efl.Canvas.Object.invalidate]]
+ * [[:develop:api:efl:canvas:layout:method:invalidate|Efl.Canvas.Layout.invalidate]]
+ * [[:develop:api:efl:ui:widget:method:invalidate|Efl.Ui.Widget.invalidate]]
+ * [[:develop:api:efl:ui:table:method:invalidate|Efl.Ui.Table.invalidate]]
+ * [[:develop:api:efl:ui:box:method:invalidate|Efl.Ui.Box.invalidate]]
+ * [[:develop:api:efl:ui:image:method:invalidate|Efl.Ui.Image.invalidate]]
+ * [[:develop:api:efl:ui:layout_base:method:invalidate|Efl.Ui.Layout_Base.invalidate]]
+ * [[:develop:api:efl:ui:collection_view:method:invalidate|Efl.Ui.Collection_View.invalidate]]
+ * [[:develop:api:efl:ui:group_item:method:invalidate|Efl.Ui.Group_Item.invalidate]]
+ * [[:develop:api:efl:ui:collection:method:invalidate|Efl.Ui.Collection.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:container:method:invalidate|Efl.Ui.Spotlight.Container.invalidate]]
+ * [[:develop:api:efl:ui:relative_layout:method:invalidate|Efl.Ui.Relative_Layout.invalidate]]
+ * [[:develop:api:efl:canvas:vg:object:method:invalidate|Efl.Canvas.Vg.Object.invalidate]]
+ * [[:develop:api:efl:loop_model:method:invalidate|Efl.Loop_Model.invalidate]]
+ * [[:develop:api:eldbus:model:method:invalidate|Eldbus.Model.invalidate]]
+ * [[:develop:api:eldbus:model:connection:method:invalidate|Eldbus.Model.Connection.invalidate]]
+ * [[:develop:api:eldbus:model:proxy:method:invalidate|Eldbus.Model.Proxy.invalidate]]
+ * [[:develop:api:eldbus:model:arguments:method:invalidate|Eldbus.Model.Arguments.invalidate]]
+ * [[:develop:api:eldbus:model:signal:method:invalidate|Eldbus.Model.Signal.invalidate]]
+ * [[:develop:api:eldbus:model:object:method:invalidate|Eldbus.Model.Object.invalidate]]
+ * [[:develop:api:efl:composite_model:method:invalidate|Efl.Composite_Model.invalidate]]
+ * [[:develop:api:efl:ui:select_model:method:invalidate|Efl.Ui.Select_Model.invalidate]]
+ * [[:develop:api:efl:io:model:method:invalidate|Efl.Io.Model.invalidate]]
+ * [[:develop:api:efl:net:dialer_websocket:method:invalidate|Efl.Net.Dialer_Websocket.invalidate]]
+ * [[:develop:api:efl:net:server_simple:method:invalidate|Efl.Net.Server_Simple.invalidate]]
+ * [[:develop:api:efl:ui:caching_factory:method:invalidate|Efl.Ui.Caching_Factory.invalidate]]
+ * [[:develop:api:efl:loop:method:invalidate|Efl.Loop.invalidate]]
+ * [[:develop:api:efl:net:dialer_http:method:invalidate|Efl.Net.Dialer_Http.invalidate]]
+ * [[:develop:api:efl:io:copier:method:invalidate|Efl.Io.Copier.invalidate]]
+ * [[:develop:api:efl:ui:position_manager:list:method:invalidate|Efl.Ui.Position_Manager.List.invalidate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/method/load.txt b/public_html/data/pages/develop/api/efl/ui/image/method/load.txt
new file mode 100644
index 00000000..8b7d452b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/method/load.txt
@@ -0,0 +1,48 @@
+~~Title: Efl.Ui.Image.load~~
+====== Efl.Ui.Image.load ======
+
+===== Description =====
+
+%%Perform all necessary operations to open and load file data into the object using the %%[[:develop:api:efl:file:property:file|Efl.File.file]]%% (or %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap]]%%) and %%[[:develop:api:efl:file:property:key|Efl.File.key]]%% properties.%%
+
+%%In the case where %%[[:develop:api:efl:file:property:file|Efl.File.file.set]]%% has been called on an object, this will internally open the file and call %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap.set]]%% on the object using the opened file handle.%%
+
+%%Calling %%[[:develop:api:efl:file:method:load|Efl.File.load]]%% on an object which has already performed file operations based on the currently set properties will have no effect.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image:method:load:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:file:method:load|Efl.File.load]].//===== Signature =====
+
+
+load {
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_file_load(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:method:load|Efl.File.load]]
+ * [[:develop:api:evas:canvas3d:mesh:method:load|Evas.Canvas3D.Mesh.load]]
+ * [[:develop:api:efl:ui:win_part:method:load|Efl.Ui.Win_Part.load]]
+ * [[:develop:api:efl:canvas:video:method:load|Efl.Canvas.Video.load]]
+ * [[:develop:api:efl:ui:text:method:load|Efl.Ui.Text.load]]
+ * [[:develop:api:efl:canvas:image:method:load|Efl.Canvas.Image.load]]
+ * [[:develop:api:efl:canvas:layout:method:load|Efl.Canvas.Layout.load]]
+ * [[:develop:api:efl:ui:layout:method:load|Efl.Ui.Layout.load]]
+ * [[:develop:api:efl:ui:image:method:load|Efl.Ui.Image.load]]
+ * [[:develop:api:efl:ui:image_zoomable:method:load|Efl.Ui.Image_Zoomable.load]]
+ * [[:develop:api:efl:ui:animation_view:method:load|Efl.Ui.Animation_View.load]]
+ * [[:develop:api:evas:canvas3d:texture:method:load|Evas.Canvas3D.Texture.load]]
+ * [[:develop:api:efl:canvas:vg:object:method:load|Efl.Canvas.Vg.Object.load]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:load|Efl.Ui.Widget_Part_Bg.load]]
+ * [[:develop:api:efl:ui:video:method:load|Efl.Ui.Video.load]]
+ * [[:develop:api:efl:ui:popup_part_backwall:method:load|Efl.Ui.Popup_Part_Backwall.load]]
+ * [[:develop:api:efl:ui:bg:method:load|Efl.Ui.Bg.load]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/method/load_async_cancel.txt b/public_html/data/pages/develop/api/efl/ui/image/method/load_async_cancel.txt
new file mode 100644
index 00000000..fd189f8b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/method/load_async_cancel.txt
@@ -0,0 +1,30 @@
+~~Title: Efl.Ui.Image.load_async_cancel~~
+====== Efl.Ui.Image.load_async_cancel ======
+
+===== Description =====
+
+%%Cancel preloading an image object's image data in the background.%%
+
+%%The object should be left in a state where it has no image data. If cancel is called too late, the image will be kept in memory.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image:method:load_async_cancel:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:gfx:image_load_controller:method:load_async_cancel|Efl.Gfx.Image_Load_Controller.load_async_cancel]].//===== Signature =====
+
+
+load_async_cancel @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_gfx_image_load_controller_load_async_cancel(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image_load_controller:method:load_async_cancel|Efl.Gfx.Image_Load_Controller.load_async_cancel]]
+ * [[:develop:api:efl:canvas:image:method:load_async_cancel|Efl.Canvas.Image.load_async_cancel]]
+ * [[:develop:api:efl:ui:image:method:load_async_cancel|Efl.Ui.Image.load_async_cancel]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/method/load_async_start.txt b/public_html/data/pages/develop/api/efl/ui/image/method/load_async_start.txt
new file mode 100644
index 00000000..2d4d27b8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/method/load_async_start.txt
@@ -0,0 +1,30 @@
+~~Title: Efl.Ui.Image.load_async_start~~
+====== Efl.Ui.Image.load_async_start ======
+
+===== Description =====
+
+%%Begin preloading an image object's image data in the background.%%
+
+%%Once the background task is complete the event @[.load,done] will be emitted if loading succeeded, @[.load,error] otherwise.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image:method:load_async_start:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:gfx:image_load_controller:method:load_async_start|Efl.Gfx.Image_Load_Controller.load_async_start]].//===== Signature =====
+
+
+load_async_start @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_gfx_image_load_controller_load_async_start(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image_load_controller:method:load_async_start|Efl.Gfx.Image_Load_Controller.load_async_start]]
+ * [[:develop:api:efl:canvas:image:method:load_async_start|Efl.Canvas.Image.load_async_start]]
+ * [[:develop:api:efl:ui:image:method:load_async_start|Efl.Ui.Image.load_async_start]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/method/message_send.txt b/public_html/data/pages/develop/api/efl/ui/image/method/message_send.txt
new file mode 100644
index 00000000..a0418b19
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/method/message_send.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Ui.Image.message_send~~
+====== Efl.Ui.Image.message_send ======
+
+===== Description =====
+
+%%Sends an (Edje) message to a given Edje object%%
+
+%%This function sends an Edje message to obj and to all of its child objects, if it has any (swallowed objects are one kind of child object). Only a few types are supported: - int, - float/double, - string/stringshare, - arrays of int, float, double or strings.%%
+
+%%Messages can go both ways, from code to theme, or theme to code.%%
+
+%%The id argument as a form of code and theme defining a common interface on message communication. One should define the same IDs on both code and EDC declaration, to individualize messages (binding them to a given context).%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image:method:message_send:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:layout:signal:method:message_send|Efl.Layout.Signal.message_send]].//===== Signature =====
+
+
+message_send @pure_virtual {
+ params {
+ @in id: int;
+ @in msg: const(any_value);
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_layout_signal_message_send(Eo *obj, int id, const Eina_Value msg);
+
+
+===== Parameters =====
+
+ * **id** //(in)// - %%A identification number for the message to be sent%%
+ * **msg** //(in)// - %%The message's payload%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:signal:method:message_send|Efl.Layout.Signal.message_send]]
+ * [[:develop:api:efl:canvas:layout:method:message_send|Efl.Canvas.Layout.message_send]]
+ * [[:develop:api:efl:ui:image:method:message_send|Efl.Ui.Image.message_send]]
+ * [[:develop:api:efl:ui:layout_base:method:message_send|Efl.Ui.Layout_Base.message_send]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/method/property_bind.txt b/public_html/data/pages/develop/api/efl/ui/image/method/property_bind.txt
new file mode 100644
index 00000000..5f3346d0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/method/property_bind.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Image.property_bind~~
+====== Efl.Ui.Image.property_bind ======
+
+===== Description =====
+
+%%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image:method:property_bind:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:property_bind|Efl.Ui.Property_Bind.property_bind]].//===== Signature =====
+
+
+property_bind @pure_virtual {
+ params {
+ @in key: string;
+ @in property: string;
+ }
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_property_bind(Eo *obj, const char *key, const char *property);
+
+
+===== Parameters =====
+
+ * **key** //(in)// - %%key string for bind model property data%%
+ * **property** //(in)// - %%Model property name%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]
+ * [[:develop:api:efl:ui:widget_factory:method:property_bind|Efl.Ui.Widget_Factory.property_bind]]
+ * [[:develop:api:efl:ui:caching_factory:method:property_bind|Efl.Ui.Caching_Factory.property_bind]]
+ * [[:develop:api:efl:ui:image_factory:method:property_bind|Efl.Ui.Image_Factory.property_bind]]
+ * [[:develop:api:efl:ui:layout_factory:method:property_bind|Efl.Ui.Layout_Factory.property_bind]]
+ * [[:develop:api:efl:ui:widget_part:method:property_bind|Efl.Ui.Widget_Part.property_bind]]
+ * [[:develop:api:efl:ui:widget:method:property_bind|Efl.Ui.Widget.property_bind]]
+ * [[:develop:api:efl:ui:image:method:property_bind|Efl.Ui.Image.property_bind]]
+ * [[:develop:api:efl:ui:layout_base:method:property_bind|Efl.Ui.Layout_Base.property_bind]]
+ * [[:develop:api:efl:ui:property_bind_part:method:property_bind|Efl.Ui.Property_Bind_Part.property_bind]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/method/signal_callback_add.txt b/public_html/data/pages/develop/api/efl/ui/image/method/signal_callback_add.txt
new file mode 100644
index 00000000..9d816377
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/method/signal_callback_add.txt
@@ -0,0 +1,60 @@
+~~Title: Efl.Ui.Image.signal_callback_add~~
+====== Efl.Ui.Image.signal_callback_add ======
+
+===== Description =====
+
+%%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%%
+
+%%Edje signals are one of the communication interfaces between code and a given Edje object's theme. With signals, one can communicate two string values at a time, which are: - "emission" value: the name of the signal, in general - "source" value: a name for the signal's context, in general%%
+
+%%Signals can go both ways, from code to theme, or theme to code.%%
+
+%%Though there are those common uses for the two strings, one is free to use them however they like.%%
+
+%%Signal callback registration is powerful, in the way that blobs may be used to match multiple signals at once. All the "*?[" set of %%''fnmatch''%%() operators can be used, both for emission and source.%%
+
+%%Edje has internal signals it will emit, automatically, on various actions taking place on group parts. For example, the mouse cursor being moved, pressed, released, etc., over a given part's area, all generate individual signals.%%
+
+%%With something like emission = "mouse,down,*", source = "button.*" where "button.*" is the pattern for the names of parts implementing buttons on an interface, you'd be registering for notifications on events of mouse buttons being pressed down on either of those parts (those events all have the "mouse,down," common prefix on their names, with a suffix giving the button number). The actual emission and source strings of an event will be passed in as the emission and source parameters of the callback function (e.g. "mouse,down,2" and "button.close"), for each of those events.%%
+
+%%See also the Edje Data Collection Reference for EDC files.%%
+
+%%See %%[[:develop:api:efl:layout:signal:method:signal_emit|Efl.Layout.Signal.signal_emit]]%% on how to emit signals from code to a an object See %%[[:develop:api:efl:layout:signal:method:signal_callback_del|Efl.Layout.Signal.signal_callback_del]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image:method:signal_callback_add:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:layout:signal:method:signal_callback_add|Efl.Layout.Signal.signal_callback_add]].//===== Signature =====
+
+
+signal_callback_add @pure_virtual {
+ params {
+ @in emission: string;
+ @in source: string;
+ @in func: EflLayoutSignalCb;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_layout_signal_callback_add(Eo *obj, const char *emission, const char *source, EflLayoutSignalCb func);
+
+
+===== Parameters =====
+
+ * **emission** //(in)// - %%The signal's "emission" string%%
+ * **source** //(in)// - %%The signal's "source" string%%
+ * **func** //(in)// - %%The callback function to be executed when the signal is emitted.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:signal:method:signal_callback_add|Efl.Layout.Signal.signal_callback_add]]
+ * [[:develop:api:efl:canvas:layout:method:signal_callback_add|Efl.Canvas.Layout.signal_callback_add]]
+ * [[:develop:api:efl:ui:image:method:signal_callback_add|Efl.Ui.Image.signal_callback_add]]
+ * [[:develop:api:efl:ui:image_zoomable:method:signal_callback_add|Efl.Ui.Image_Zoomable.signal_callback_add]]
+ * [[:develop:api:efl:ui:layout_base:method:signal_callback_add|Efl.Ui.Layout_Base.signal_callback_add]]
+ * [[:develop:api:efl:ui:text:method:signal_callback_add|Efl.Ui.Text.signal_callback_add]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/method/signal_callback_del.txt b/public_html/data/pages/develop/api/efl/ui/image/method/signal_callback_del.txt
new file mode 100644
index 00000000..720f306e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/method/signal_callback_del.txt
@@ -0,0 +1,48 @@
+~~Title: Efl.Ui.Image.signal_callback_del~~
+====== Efl.Ui.Image.signal_callback_del ======
+
+===== Description =====
+
+%%Removes a signal-triggered callback from an object.%%
+
+%%This function removes a callback, previously attached to the emission of a signal, from the object obj. The parameters emission, source and func must match exactly those passed to a previous call to %%[[:develop:api:efl:layout:signal:method:signal_callback_add|Efl.Layout.Signal.signal_callback_add]]%%().%%
+
+%%See %%[[:develop:api:efl:layout:signal:method:signal_callback_add|Efl.Layout.Signal.signal_callback_add]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image:method:signal_callback_del:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:layout:signal:method:signal_callback_del|Efl.Layout.Signal.signal_callback_del]].//===== Signature =====
+
+
+signal_callback_del @pure_virtual {
+ params {
+ @in emission: string;
+ @in source: string;
+ @in func: EflLayoutSignalCb;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_layout_signal_callback_del(Eo *obj, const char *emission, const char *source, EflLayoutSignalCb func);
+
+
+===== Parameters =====
+
+ * **emission** //(in)// - %%The signal's "emission" string%%
+ * **source** //(in)// - %%The signal's "source" string%%
+ * **func** //(in)// - %%The callback function to be executed when the signal is emitted.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:signal:method:signal_callback_del|Efl.Layout.Signal.signal_callback_del]]
+ * [[:develop:api:efl:canvas:layout:method:signal_callback_del|Efl.Canvas.Layout.signal_callback_del]]
+ * [[:develop:api:efl:ui:image:method:signal_callback_del|Efl.Ui.Image.signal_callback_del]]
+ * [[:develop:api:efl:ui:image_zoomable:method:signal_callback_del|Efl.Ui.Image_Zoomable.signal_callback_del]]
+ * [[:develop:api:efl:ui:layout_base:method:signal_callback_del|Efl.Ui.Layout_Base.signal_callback_del]]
+ * [[:develop:api:efl:ui:text:method:signal_callback_del|Efl.Ui.Text.signal_callback_del]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/method/signal_emit.txt b/public_html/data/pages/develop/api/efl/ui/image/method/signal_emit.txt
new file mode 100644
index 00000000..e12ff53f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/method/signal_emit.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Image.signal_emit~~
+====== Efl.Ui.Image.signal_emit ======
+
+===== Description =====
+
+%%Sends/emits an Edje signal to this layout.%%
+
+%%This function sends a signal to the object. An Edje program, at the EDC specification level, can respond to a signal by having declared matching "signal" and "source" fields on its block.%%
+
+%%See also the Edje Data Collection Reference for EDC files.%%
+
+%%See %%[[:develop:api:efl:layout:signal:method:signal_callback_add|Efl.Layout.Signal.signal_callback_add]]%%() for more on Edje signals.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image:method:signal_emit:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:layout:signal:method:signal_emit|Efl.Layout.Signal.signal_emit]].//===== Signature =====
+
+
+signal_emit @pure_virtual {
+ params {
+ @in emission: string;
+ @in source: string;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_layout_signal_emit(Eo *obj, const char *emission, const char *source);
+
+
+===== Parameters =====
+
+ * **emission** //(in)// - %%The signal's "emission" string%%
+ * **source** //(in)// - %%The signal's "source" string%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:signal:method:signal_emit|Efl.Layout.Signal.signal_emit]]
+ * [[:develop:api:efl:canvas:layout:method:signal_emit|Efl.Canvas.Layout.signal_emit]]
+ * [[:develop:api:efl:ui:image:method:signal_emit|Efl.Ui.Image.signal_emit]]
+ * [[:develop:api:efl:ui:layout_base:method:signal_emit|Efl.Ui.Layout_Base.signal_emit]]
+ * [[:develop:api:efl:ui:text:method:signal_emit|Efl.Ui.Text.signal_emit]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/method/signal_process.txt b/public_html/data/pages/develop/api/efl/ui/image/method/signal_process.txt
new file mode 100644
index 00000000..9443aa77
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/method/signal_process.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Image.signal_process~~
+====== Efl.Ui.Image.signal_process ======
+
+===== Description =====
+
+%%Processes an object's messages and signals queue.%%
+
+%%This function goes through the object message queue processing the pending messages for this specific Edje object. Normally they'd be processed only at idle time.%%
+
+%%If %%''recurse''%% is %%''true''%%, this function will be called recursively on all subobjects.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image:method:signal_process:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:layout:signal:method:signal_process|Efl.Layout.Signal.signal_process]].//===== Signature =====
+
+
+signal_process @pure_virtual {
+ params {
+ @in recurse: bool @optional;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_layout_signal_process(Eo *obj, Eina_Bool recurse);
+
+
+===== Parameters =====
+
+ * **recurse** //(in)// - %%Whether to process messages on children objects.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:signal:method:signal_process|Efl.Layout.Signal.signal_process]]
+ * [[:develop:api:efl:canvas:layout:method:signal_process|Efl.Canvas.Layout.signal_process]]
+ * [[:develop:api:efl:ui:image:method:signal_process|Efl.Ui.Image.signal_process]]
+ * [[:develop:api:efl:ui:layout_base:method:signal_process|Efl.Ui.Layout_Base.signal_process]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/method/theme_apply.txt b/public_html/data/pages/develop/api/efl/ui/image/method/theme_apply.txt
new file mode 100644
index 00000000..fd7eb84b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/method/theme_apply.txt
@@ -0,0 +1,55 @@
+~~Title: Efl.Ui.Image.theme_apply~~
+====== Efl.Ui.Image.theme_apply ======
+
+===== Description =====
+
+%%Virtual function called when the widget needs to re-apply its theme.%%
+
+%%This may be called when the object is first created, or whenever the widget is modified in any way that may require a reload of the theme. This may include but is not limited to scale, theme, or mirrored mode changes.%%
+
+
+theme_apply @protected {
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_widget_theme_apply(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:theme_apply|Efl.Ui.Widget.theme_apply]]
+ * [[:develop:api:efl:ui:win:method:theme_apply|Efl.Ui.Win.theme_apply]]
+ * [[:develop:api:efl:ui:flip:method:theme_apply|Efl.Ui.Flip.theme_apply]]
+ * [[:develop:api:efl:ui:image:method:theme_apply|Efl.Ui.Image.theme_apply]]
+ * [[:develop:api:efl:ui:image_zoomable:method:theme_apply|Efl.Ui.Image_Zoomable.theme_apply]]
+ * [[:develop:api:efl:ui:layout_base:method:theme_apply|Efl.Ui.Layout_Base.theme_apply]]
+ * [[:develop:api:efl:ui:slider:method:theme_apply|Efl.Ui.Slider.theme_apply]]
+ * [[:develop:api:efl:ui:check:method:theme_apply|Efl.Ui.Check.theme_apply]]
+ * [[:develop:api:efl:ui:radio:method:theme_apply|Efl.Ui.Radio.theme_apply]]
+ * [[:develop:api:efl:ui:clock:method:theme_apply|Efl.Ui.Clock.theme_apply]]
+ * [[:develop:api:efl:ui:text:method:theme_apply|Efl.Ui.Text.theme_apply]]
+ * [[:develop:api:efl:ui:spin_button:method:theme_apply|Efl.Ui.Spin_Button.theme_apply]]
+ * [[:develop:api:efl:ui:collection_view:method:theme_apply|Efl.Ui.Collection_View.theme_apply]]
+ * [[:develop:api:efl:ui:panel:method:theme_apply|Efl.Ui.Panel.theme_apply]]
+ * [[:develop:api:efl:ui:slider_interval:method:theme_apply|Efl.Ui.Slider_Interval.theme_apply]]
+ * [[:develop:api:elm:code_widget:method:theme_apply|Elm.Code_Widget.theme_apply]]
+ * [[:develop:api:efl:ui:textpath:method:theme_apply|Efl.Ui.Textpath.theme_apply]]
+ * [[:develop:api:efl:ui:scroller:method:theme_apply|Efl.Ui.Scroller.theme_apply]]
+ * [[:develop:api:efl:ui:collection:method:theme_apply|Efl.Ui.Collection.theme_apply]]
+ * [[:develop:api:efl:ui:panes:method:theme_apply|Efl.Ui.Panes.theme_apply]]
+ * [[:develop:api:efl:ui:calendar:method:theme_apply|Efl.Ui.Calendar.theme_apply]]
+ * [[:develop:api:efl:ui:progressbar:method:theme_apply|Efl.Ui.Progressbar.theme_apply]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/method/unload.txt b/public_html/data/pages/develop/api/efl/ui/image/method/unload.txt
new file mode 100644
index 00000000..028d37c9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/method/unload.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Image.unload~~
+====== Efl.Ui.Image.unload ======
+
+===== Description =====
+
+%%Perform all necessary operations to unload file data from the object.%%
+
+%%In the case where %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap.set]]%% has been externally called on an object, the file handle stored in the object will be preserved.%%
+
+%%Calling %%[[:develop:api:efl:file:method:unload|Efl.File.unload]]%% on an object which is not currently loaded will have no effect.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image:method:unload:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:file:method:unload|Efl.File.unload]].//===== Signature =====
+
+
+unload {}
+
+
+===== C signature =====
+
+
+void efl_file_unload(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:method:unload|Efl.File.unload]]
+ * [[:develop:api:evas:canvas3d:mesh:method:unload|Evas.Canvas3D.Mesh.unload]]
+ * [[:develop:api:efl:ui:win_part:method:unload|Efl.Ui.Win_Part.unload]]
+ * [[:develop:api:efl:canvas:video:method:unload|Efl.Canvas.Video.unload]]
+ * [[:develop:api:efl:ui:text:method:unload|Efl.Ui.Text.unload]]
+ * [[:develop:api:efl:canvas:image:method:unload|Efl.Canvas.Image.unload]]
+ * [[:develop:api:efl:canvas:layout:method:unload|Efl.Canvas.Layout.unload]]
+ * [[:develop:api:efl:ui:layout:method:unload|Efl.Ui.Layout.unload]]
+ * [[:develop:api:efl:ui:image:method:unload|Efl.Ui.Image.unload]]
+ * [[:develop:api:efl:ui:image_zoomable:method:unload|Efl.Ui.Image_Zoomable.unload]]
+ * [[:develop:api:efl:ui:animation_view:method:unload|Efl.Ui.Animation_View.unload]]
+ * [[:develop:api:evas:canvas3d:texture:method:unload|Evas.Canvas3D.Texture.unload]]
+ * [[:develop:api:efl:canvas:vg:object:method:unload|Efl.Canvas.Vg.Object.unload]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:unload|Efl.Ui.Widget_Part_Bg.unload]]
+ * [[:develop:api:efl:ui:video:method:unload|Efl.Ui.Video.unload]]
+ * [[:develop:api:efl:ui:popup_part_backwall:method:unload|Efl.Ui.Popup_Part_Backwall.unload]]
+ * [[:develop:api:efl:ui:bg:method:unload|Efl.Ui.Bg.unload]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/method/widget_input_event_handler.txt b/public_html/data/pages/develop/api/efl/ui/image/method/widget_input_event_handler.txt
new file mode 100644
index 00000000..4d3aeb09
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/method/widget_input_event_handler.txt
@@ -0,0 +1,57 @@
+~~Title: Efl.Ui.Image.widget_input_event_handler~~
+====== Efl.Ui.Image.widget_input_event_handler ======
+
+===== Description =====
+
+%%Virtual function handling input events on the widget.%%
+
+%%This method should return %%''true''%% if the event has been processed. Only key down, key up and pointer wheel events will be propagated through this function.%%
+
+%%It is common for the event to be also marked as processed as in %%[[:develop:api:efl:input:event:property:processed|Efl.Input.Event.processed]]%%, if this operation was successful. This makes sure other widgets will not also process this input event.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image:method:widget_input_event_handler:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:widget_input_event_handler|Efl.Ui.Widget.widget_input_event_handler]].//===== Signature =====
+
+
+widget_input_event_handler @protected {
+ params {
+ @in eo_event: const(event);
+ @in source: Efl.Canvas.Object;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_input_event_handler(Eo *obj, const Efl_Event *eo_event, Efl_Canvas_Object *source);
+
+
+===== Parameters =====
+
+ * **eo_event** //(in)// - %%EO event struct with an Efl.Input.Event as info.%%
+ * **source** //(in)// - %%Source object where the event originated. Often same as this.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:widget_input_event_handler|Efl.Ui.Widget.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:win:method:widget_input_event_handler|Efl.Ui.Win.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:image:method:widget_input_event_handler|Efl.Ui.Image.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:image_zoomable:method:widget_input_event_handler|Efl.Ui.Image_Zoomable.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:slider:method:widget_input_event_handler|Efl.Ui.Slider.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:check:method:widget_input_event_handler|Efl.Ui.Check.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:radio:method:widget_input_event_handler|Efl.Ui.Radio.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:spin_button:method:widget_input_event_handler|Efl.Ui.Spin_Button.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:panel:method:widget_input_event_handler|Efl.Ui.Panel.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:item:method:widget_input_event_handler|Efl.Ui.Item.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:slider_interval:method:widget_input_event_handler|Efl.Ui.Slider_Interval.widget_input_event_handler]]
+ * [[:develop:api:elm:code_widget:method:widget_input_event_handler|Elm.Code_Widget.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:tags:method:widget_input_event_handler|Efl.Ui.Tags.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:scroller:method:widget_input_event_handler|Efl.Ui.Scroller.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:calendar:method:widget_input_event_handler|Efl.Ui.Calendar.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:video:method:widget_input_event_handler|Efl.Ui.Video.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:button:method:widget_input_event_handler|Efl.Ui.Button.widget_input_event_handler]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/border_insets.txt b/public_html/data/pages/develop/api/efl/ui/image/property/border_insets.txt
new file mode 100644
index 00000000..0823740f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/border_insets.txt
@@ -0,0 +1,61 @@
+~~Title: Efl.Ui.Image.border_insets~~
+====== Efl.Ui.Image.border_insets ======
+
+===== Description =====
+
+%%Dimensions of this image's border, a region that does not scale with the center area.%%
+
+%%When EFL renders an image, its source may be scaled to fit the size of the object. This function sets an area from the borders of the image inwards which is not to be scaled. This function is useful for making frames and for widget theming, where, for example, buttons may be of varying sizes, but their border size must remain constant.%%
+
+%%The units used for %%''l''%%, %%''r''%%, %%''t''%% and %%''b''%% are canvas units (pixels).%%
+
+
+@property border_insets @pure_virtual {
+ get {}
+ set {}
+ values {
+ l: int (0);
+ r: int (0);
+ t: int (0);
+ b: int (0);
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_image_border_insets_get(const Eo *obj, int *l, int *r, int *t, int *b);
+void efl_gfx_image_border_insets_set(Eo *obj, int l, int r, int t, int b);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:border_insets|Efl.Gfx.Image.border_insets]]
+ * [[:develop:api:efl:canvas:image_internal:property:border_insets|Efl.Canvas.Image_Internal.border_insets]]
+ * [[:develop:api:efl:ui:image:property:border_insets|Efl.Ui.Image.border_insets]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/border_insets_scale.txt b/public_html/data/pages/develop/api/efl/ui/image/property/border_insets_scale.txt
new file mode 100644
index 00000000..a0ebbdee
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/border_insets_scale.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Image.border_insets_scale~~
+====== Efl.Ui.Image.border_insets_scale ======
+
+===== Description =====
+
+%%Scaling factor applied to the image borders.%%
+
+%%This value multiplies the size of the %%[[:develop:api:efl:gfx:image:property:border_insets|Efl.Gfx.Image.border_insets]]%% when scaling an object.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image:property:border_insets_scale:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **scale** - %%The scale factor.%%
+
+//Overridden from [[:develop:api:efl:gfx:image:property:border_insets_scale|Efl.Gfx.Image.border_insets_scale]] **(get, set)**.//===== Signature =====
+
+
+@property border_insets_scale @pure_virtual {
+ get {}
+ set {}
+ values {
+ scale: double (1.000000);
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_gfx_image_border_insets_scale_get(const Eo *obj);
+void efl_gfx_image_border_insets_scale_set(Eo *obj, double scale);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:border_insets_scale|Efl.Gfx.Image.border_insets_scale]]
+ * [[:develop:api:efl:canvas:image_internal:property:border_insets_scale|Efl.Canvas.Image_Internal.border_insets_scale]]
+ * [[:develop:api:efl:ui:image:property:border_insets_scale|Efl.Ui.Image.border_insets_scale]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/calc_auto_update_hints.txt b/public_html/data/pages/develop/api/efl/ui/image/property/calc_auto_update_hints.txt
new file mode 100644
index 00000000..e57e4072
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/calc_auto_update_hints.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.Ui.Image.calc_auto_update_hints~~
+====== Efl.Ui.Image.calc_auto_update_hints ======
+
+===== Description =====
+
+%%Whether this object updates its size hints automatically.%%
+
+%%By default edje doesn't set size hints on itself. If this property is set to %%''true''%%, size hints will be updated after recalculation. Be careful, as recalculation may happen often, enabling this property may have a considerable performance impact as other widgets will be notified of the size hints changes.%%
+
+%%A layout recalculation can be triggered by %%[[:develop:api:efl:layout:calc:method:calc_size_min|Efl.Layout.Calc.calc_size_min]]%%(), %%[[:develop:api:efl:layout:calc:method:calc_size_min|Efl.Layout.Calc.calc_size_min]]%%(), %%[[:develop:api:efl:layout:calc:method:calc_parts_extends|Efl.Layout.Calc.calc_parts_extends]]%%() or even any other internal event.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image:property:calc_auto_update_hints:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **update** - %%Whether or not update the size hints.%%
+
+//Overridden from [[:develop:api:efl:layout:calc:property:calc_auto_update_hints|Efl.Layout.Calc.calc_auto_update_hints]] **(get, set)**.//===== Signature =====
+
+
+@property calc_auto_update_hints @pure_virtual {
+ get {}
+ set {}
+ values {
+ update: bool (false);
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_layout_calc_auto_update_hints_get(const Eo *obj);
+void efl_layout_calc_auto_update_hints_set(Eo *obj, Eina_Bool update);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:calc:property:calc_auto_update_hints|Efl.Layout.Calc.calc_auto_update_hints]]
+ * [[:develop:api:efl:canvas:layout:property:calc_auto_update_hints|Efl.Canvas.Layout.calc_auto_update_hints]]
+ * [[:develop:api:efl:ui:image:property:calc_auto_update_hints|Efl.Ui.Image.calc_auto_update_hints]]
+ * [[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|Efl.Ui.Layout_Base.calc_auto_update_hints]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/can_downscale.txt b/public_html/data/pages/develop/api/efl/ui/image/property/can_downscale.txt
new file mode 100644
index 00000000..4f141aab
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/can_downscale.txt
@@ -0,0 +1,38 @@
+~~Title: Efl.Ui.Image.can_downscale~~
+====== Efl.Ui.Image.can_downscale ======
+
+===== Description =====
+
+%%If %%''true''%%, the image may be scaled to a smaller size. If %%''false''%%, the image will never be resized smaller than its native size.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image:property:can_downscale:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **downscale** - %%Whether to allow image downscaling.%%
+
+//Overridden from [[:develop:api:efl:gfx:image:property:can_downscale|Efl.Gfx.Image.can_downscale]] **(get, set)**.//===== Signature =====
+
+
+@property can_downscale @pure_virtual {
+ get {}
+ set {}
+ values {
+ downscale: bool (true);
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_gfx_image_can_downscale_get(const Eo *obj);
+void efl_gfx_image_can_downscale_set(Eo *obj, Eina_Bool downscale);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:can_downscale|Efl.Gfx.Image.can_downscale]]
+ * [[:develop:api:efl:ui:image:property:can_downscale|Efl.Ui.Image.can_downscale]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/can_upscale.txt b/public_html/data/pages/develop/api/efl/ui/image/property/can_upscale.txt
new file mode 100644
index 00000000..8b27794f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/can_upscale.txt
@@ -0,0 +1,38 @@
+~~Title: Efl.Ui.Image.can_upscale~~
+====== Efl.Ui.Image.can_upscale ======
+
+===== Description =====
+
+%%If %%''true''%%, the image may be scaled to a larger size. If %%''false''%%, the image will never be resized larger than its native size.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image:property:can_upscale:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **upscale** - %%Whether to allow image upscaling.%%
+
+//Overridden from [[:develop:api:efl:gfx:image:property:can_upscale|Efl.Gfx.Image.can_upscale]] **(get, set)**.//===== Signature =====
+
+
+@property can_upscale @pure_virtual {
+ get {}
+ set {}
+ values {
+ upscale: bool (true);
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_gfx_image_can_upscale_get(const Eo *obj);
+void efl_gfx_image_can_upscale_set(Eo *obj, Eina_Bool upscale);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:can_upscale|Efl.Gfx.Image.can_upscale]]
+ * [[:develop:api:efl:ui:image:property:can_upscale|Efl.Ui.Image.can_upscale]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/center_fill_mode.txt b/public_html/data/pages/develop/api/efl/ui/image/property/center_fill_mode.txt
new file mode 100644
index 00000000..a83fa7a4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/center_fill_mode.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Image.center_fill_mode~~
+====== Efl.Ui.Image.center_fill_mode ======
+
+===== Description =====
+
+%%Specifies how the center part of the object (not the borders) should be drawn when EFL is rendering it.%%
+
+%%This function sets how the center part of the image object's source image is to be drawn, which must be one of the values in %%[[:develop:api:efl:gfx:center_fill_mode|Efl.Gfx.Center_Fill_Mode]]%%. By center we mean the complementary part of that defined by %%[[:develop:api:efl:gfx:image:property:border_insets|Efl.Gfx.Image.border_insets.set]]%%. This is very useful for making frames and decorations. You would most probably also be using a filled image (as in %%[[:develop:api:efl:gfx:fill:property:fill_auto|Efl.Gfx.Fill.fill_auto]]%%) to use as a frame.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image:property:center_fill_mode:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **fill** - %%Fill mode of the center region. The default behavior is to render and scale the center area, respecting its transparency.%%
+
+//Overridden from [[:develop:api:efl:gfx:image:property:center_fill_mode|Efl.Gfx.Image.center_fill_mode]] **(get, set)**.//===== Signature =====
+
+
+@property center_fill_mode @pure_virtual {
+ get {}
+ set {}
+ values {
+ fill: Efl.Gfx.Center_Fill_Mode (Efl.Gfx.Center_Fill_Mode.default);
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Center_Fill_Mode efl_gfx_image_center_fill_mode_get(const Eo *obj);
+void efl_gfx_image_center_fill_mode_set(Eo *obj, Efl_Gfx_Center_Fill_Mode fill);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:center_fill_mode|Efl.Gfx.Image.center_fill_mode]]
+ * [[:develop:api:efl:canvas:image_internal:property:center_fill_mode|Efl.Canvas.Image_Internal.center_fill_mode]]
+ * [[:develop:api:efl:ui:image:property:center_fill_mode|Efl.Ui.Image.center_fill_mode]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/clipper.txt b/public_html/data/pages/develop/api/efl/ui/image/property/clipper.txt
new file mode 100644
index 00000000..089c0c57
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/clipper.txt
@@ -0,0 +1,58 @@
+~~Title: Efl.Ui.Image.clipper~~
+====== Efl.Ui.Image.clipper ======
+
+===== Description =====
+
+%%Clip one object to another.%%
+
+%%This property will clip the object %%''obj''%% to the area occupied by the object %%''clip''%%. This means the object %%''obj''%% will only be visible within the area occupied by the clipping object (%%''clip''%%).%%
+
+%%The color of the object being clipped will be multiplied by the color of the clipping one, so the resulting color for the former will be "RESULT = (OBJ * CLIP) / (255 * 255)", per color element (red, green, blue and alpha).%%
+
+%%Clipping is recursive, so clipping objects may be clipped by others, and their color will in term be multiplied. You may not set up circular clipping lists (i.e. object 1 clips object 2, which clips object 1): the behavior of Evas is undefined in this case.%%
+
+%%Objects which do not clip others are visible in the canvas as normal; those that clip one or more objects become invisible themselves, only affecting what they clip. If an object ceases to have other objects being clipped by it, it will become visible again.%%
+
+%%The visibility of an object affects the objects that are clipped by it, so if the object clipping others is not shown (as in %%[[:develop:api:efl:gfx:entity:property:visible|Efl.Gfx.Entity.visible]]%%), the objects clipped by it will not be shown either.%%
+
+%%If %%''obj''%% was being clipped by another object when this function is called, it gets implicitly removed from the old clipper's domain and is made now to be clipped by its new clipper.%%
+
+%%If %%''clip''%% is %%''null''%%, this call will disable clipping for the object i.e. its visibility and color get detached from the previous clipper. If it wasn't, this has no effect.%%
+
+
+@property clipper {
+ get {}
+ set {}
+ values {
+ clipper: Efl.Canvas.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Canvas_Object *efl_canvas_object_clipper_get(const Eo *obj);
+void efl_canvas_object_clipper_set(Eo *obj, Efl_Canvas_Object *clipper);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:property:clipper|Efl.Canvas.Object.clipper]]
+ * [[:develop:api:efl:canvas:group:property:clipper|Efl.Canvas.Group.clipper]]
+ * [[:develop:api:efl:ui:widget:property:clipper|Efl.Ui.Widget.clipper]]
+ * [[:develop:api:efl:ui:image:property:clipper|Efl.Ui.Image.clipper]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/color.txt b/public_html/data/pages/develop/api/efl/ui/image/property/color.txt
new file mode 100644
index 00000000..48680a46
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/color.txt
@@ -0,0 +1,69 @@
+~~Title: Efl.Ui.Image.color~~
+====== Efl.Ui.Image.color ======
+
+===== Description =====
+
+%%The general/main color of the given Evas object.%%
+
+%%Represents the main color's RGB component (and alpha channel) values, which range from 0 to 255. For the alpha channel, which defines the object's transparency level, 0 means totally transparent, while 255 means opaque. These color values are premultiplied by the alpha value.%%
+
+%%Usually you'll use this attribute for text and rectangle objects, where the main color is the only color. If set for objects which themselves have colors, like the images one, those colors get modulated by this one.%%
+
+%%All newly created Evas rectangles get the default color values of 255 255 255 255 (opaque white).%%
+
+%%When reading this property, use %%''NULL''%% pointers on the components you're not interested in and they'll be ignored by the function.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:image:property:color:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **r** - No description supplied.
+ * **g** - No description supplied.
+ * **b** - No description supplied.
+ * **a** - No description supplied.
+==== Setter ====
+
+%%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image:property:color:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:widget:property:color|Efl.Gfx.Color.color]] **(set)**.//===== Signature =====
+
+
+@property color @pure_virtual {
+ get {}
+ set {}
+ values {
+ r: int;
+ g: int;
+ b: int;
+ a: int;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_color_get(const Eo *obj, int *r, int *g, int *b, int *a);
+void efl_gfx_color_set(Eo *obj, int r, int g, int b, int a);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:color:property:color|Efl.Gfx.Color.color]]
+ * [[:develop:api:efl:canvas:vg:node:property:color|Efl.Canvas.Vg.Node.color]]
+ * [[:develop:api:efl:ui:win_part:property:color|Efl.Ui.Win_Part.color]]
+ * [[:develop:api:efl:ui:widget_part_shadow:property:color|Efl.Ui.Widget_Part_Shadow.color]]
+ * [[:develop:api:efl:canvas:object:property:color|Efl.Canvas.Object.color]]
+ * [[:develop:api:efl:canvas:group:property:color|Efl.Canvas.Group.color]]
+ * [[:develop:api:efl:ui:widget:property:color|Efl.Ui.Widget.color]]
+ * [[:develop:api:efl:ui:image:property:color|Efl.Ui.Image.color]]
+ * [[:develop:api:efl:ui:bg:property:color|Efl.Ui.Bg.color]]
+ * [[:develop:api:efl:ui:widget_part_bg:property:color|Efl.Ui.Widget_Part_Bg.color]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/content_align.txt b/public_html/data/pages/develop/api/efl/ui/image/property/content_align.txt
new file mode 100644
index 00000000..04401351
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/content_align.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Image.content_align~~
+====== Efl.Ui.Image.content_align ======
+
+===== Description =====
+
+%%This property determines how contents will be aligned within a container if there is unused space.%%
+
+%%It is different than the %%[[:develop:api:efl:gfx:hint:property:hint_align|Efl.Gfx.Hint.hint_align]]%% property in that it affects the position of all the contents within the container. For example, if a box widget has extra space on the horizontal axis, this property can be used to align the box's contents to the left or the right side.%%
+
+%%See also %%[[:develop:api:efl:gfx:hint:property:hint_align|Efl.Gfx.Hint.hint_align]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image:property:content_align:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **align_horiz** - %%Double, ranging from 0.0 to 1.0, where 0.0 is at the start of the horizontal axis and 1.0 is at the end.%%
+ * **align_vert** - %%Double, ranging from 0.0 to 1.0, where 0.0 is at the start of the vertical axis and 1.0 is at the end.%%
+
+//Overridden from [[:develop:api:efl:gfx:arrangement:property:content_align|Efl.Gfx.Arrangement.content_align]] **(get, set)**.//===== Signature =====
+
+
+@property content_align @pure_virtual {
+ get {}
+ set {}
+ values {
+ align_horiz: double (0.500000);
+ align_vert: double (0.500000);
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_arrangement_content_align_get(const Eo *obj, double *align_horiz, double *align_vert);
+void efl_gfx_arrangement_content_align_set(Eo *obj, double align_horiz, double align_vert);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:arrangement:property:content_align|Efl.Gfx.Arrangement.content_align]]
+ * [[:develop:api:efl:ui:table:property:content_align|Efl.Ui.Table.content_align]]
+ * [[:develop:api:efl:ui:box:property:content_align|Efl.Ui.Box.content_align]]
+ * [[:develop:api:efl:ui:image:property:content_align|Efl.Ui.Image.content_align]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/content_hint.txt b/public_html/data/pages/develop/api/efl/ui/image/property/content_hint.txt
new file mode 100644
index 00000000..868fdfe7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/content_hint.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Image.content_hint~~
+====== Efl.Ui.Image.content_hint ======
+
+===== Description =====
+
+%%Content hint setting for the image. These hints might be used by EFL to enable optimizations.%%
+
+%%For example, if you're on the GL engine and your driver implementation supports it, setting this hint to %%[[:develop:api:efl:gfx:image_content_hint|Efl.Gfx.Image_Content_Hint.dynamic]]%% will make it need zero copies at texture upload time, which is an "expensive" operation.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image:property:content_hint:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **hint** - %%Dynamic or static content hint.%%
+
+//Overridden from [[:develop:api:efl:gfx:image:property:content_hint|Efl.Gfx.Image.content_hint]] **(get, set)**.//===== Signature =====
+
+
+@property content_hint @pure_virtual {
+ get {}
+ set {}
+ values {
+ hint: Efl.Gfx.Image_Content_Hint (Efl.Gfx.Image_Content_Hint.none);
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Image_Content_Hint efl_gfx_image_content_hint_get(const Eo *obj);
+void efl_gfx_image_content_hint_set(Eo *obj, Efl_Gfx_Image_Content_Hint hint);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:content_hint|Efl.Gfx.Image.content_hint]]
+ * [[:develop:api:efl:canvas:image_internal:property:content_hint|Efl.Canvas.Image_Internal.content_hint]]
+ * [[:develop:api:efl:ui:image:property:content_hint|Efl.Ui.Image.content_hint]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/content_region.txt b/public_html/data/pages/develop/api/efl/ui/image/property/content_region.txt
new file mode 100644
index 00000000..e60c1808
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/content_region.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Ui.Image.content_region~~
+====== Efl.Ui.Image.content_region ======
+
+===== Values =====
+
+ * **region** - %%A rectangle inside the object boundary where content is expected. The default value is the image object's geometry with the %%[[:develop:api:efl:gfx:image:property:border_insets|Efl.Gfx.Image.border_insets]]%% values subtracted.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:image:property:content_region:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:gfx:image:property:content_region|Efl.Gfx.Image.content_region]] **(get)**.//===== Signature =====
+
+
+@property content_region @pure_virtual {
+ get {}
+ values {
+ region: Eina.Rect;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Rect efl_gfx_image_content_region_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:content_region|Efl.Gfx.Image.content_region]]
+ * [[:develop:api:efl:canvas:image_internal:property:content_region|Efl.Canvas.Image_Internal.content_region]]
+ * [[:develop:api:efl:ui:image:property:content_region|Efl.Ui.Image.content_region]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/drag_target.txt b/public_html/data/pages/develop/api/efl/ui/image/property/drag_target.txt
new file mode 100644
index 00000000..4c1d27c7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/drag_target.txt
@@ -0,0 +1,38 @@
+~~Title: Efl.Ui.Image.drag_target~~
+====== Efl.Ui.Image.drag_target ======
+
+===== Description =====
+
+%%Control whether the object's content is changed by drag and drop.%%
+
+%%If %%''drag_target''%% is true the object can be the target of a dragging object. The content of this object can then be changed into dragging content. For example, if an object deals with image and %%''drag_target''%% is true, the user can drag the new image and drop it into said object. This object's image can then be changed into a new image.%%
+{{page>:develop:api-include:efl:ui:image:property:drag_target:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **set** - %%Turn on or off drop_target. Default is %%''false''%%.%%
+
+//Overridden from [[:develop:api:efl:ui:draggable:property:drag_target|Efl.Ui.Draggable.drag_target]] **(get, set)**.//===== Signature =====
+
+
+@property drag_target @pure_virtual {
+ get {}
+ set {}
+ values {
+ set: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_draggable_drag_target_get(const Eo *obj);
+void efl_ui_draggable_drag_target_set(Eo *obj, Eina_Bool set);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:draggable:property:drag_target|Efl.Ui.Draggable.drag_target]]
+ * [[:develop:api:efl:ui:image:property:drag_target|Efl.Ui.Image.drag_target]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/elm_actions.txt b/public_html/data/pages/develop/api/efl/ui/image/property/elm_actions.txt
new file mode 100644
index 00000000..ef587f62
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/elm_actions.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Image.elm_actions~~
+====== Efl.Ui.Image.elm_actions ======
+
+===== Values =====
+
+ * **actions** - %%NULL-terminated array of Efl.Access.Action_Data.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:image:property:elm_actions:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:access:widget:action:property:elm_actions|Efl.Access.Widget.Action.elm_actions]] **(get)**.//===== Signature =====
+
+
+@property elm_actions @beta @pure_virtual {
+ get @protected {}
+ values {
+ actions: ptr(const(Efl.Access.Action_Data));
+ }
+}
+
+
+===== C signature =====
+
+
+const Efl_Access_Action_Data *efl_access_widget_action_elm_actions_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:widget:action:property:elm_actions|Efl.Access.Widget.Action.elm_actions]]
+ * [[:develop:api:efl:ui:slider:property:elm_actions|Efl.Ui.Slider.elm_actions]]
+ * [[:develop:api:efl:ui:check:property:elm_actions|Efl.Ui.Check.elm_actions]]
+ * [[:develop:api:efl:ui:radio:property:elm_actions|Efl.Ui.Radio.elm_actions]]
+ * [[:develop:api:efl:ui:win:property:elm_actions|Efl.Ui.Win.elm_actions]]
+ * [[:develop:api:efl:ui:spin_button:property:elm_actions|Efl.Ui.Spin_Button.elm_actions]]
+ * [[:develop:api:efl:ui:panel:property:elm_actions|Efl.Ui.Panel.elm_actions]]
+ * [[:develop:api:efl:ui:slider_interval:property:elm_actions|Efl.Ui.Slider_Interval.elm_actions]]
+ * [[:develop:api:efl:ui:image:property:elm_actions|Efl.Ui.Image.elm_actions]]
+ * [[:develop:api:efl:ui:image_zoomable:property:elm_actions|Efl.Ui.Image_Zoomable.elm_actions]]
+ * [[:develop:api:efl:ui:calendar:property:elm_actions|Efl.Ui.Calendar.elm_actions]]
+ * [[:develop:api:efl:ui:video:property:elm_actions|Efl.Ui.Video.elm_actions]]
+ * [[:develop:api:efl:ui:button:property:elm_actions|Efl.Ui.Button.elm_actions]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/extents.txt b/public_html/data/pages/develop/api/efl/ui/image/property/extents.txt
new file mode 100644
index 00000000..5e7c870e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/extents.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Ui.Image.extents~~
+====== Efl.Ui.Image.extents ======
+
+===== Description =====
+
+%%Geometry of accessible widget.%%
+{{page>:develop:api-include:efl:ui:image:property:extents:description&nouser&nolink&nodate}}
+
+===== Keys =====
+
+ * **screen_coords** - %%If %%''true''%% x and y values will be relative to screen origin, otherwise relative to canvas%%
+===== Values =====
+
+ * **rect** - %%The geometry.%%
+
+//Overridden from [[:develop:api:efl:access:component:property:extents|Efl.Access.Component.extents]] **(get)**.//===== Signature =====
+
+
+@property extents @beta @protected {
+ get {}
+ set {
+ return: bool;
+ }
+ keys {
+ screen_coords: bool;
+ }
+ values {
+ rect: Eina.Rect;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Rect efl_access_component_extents_get(const Eo *obj, Eina_Bool screen_coords);
+Eina_Bool efl_access_component_extents_set(Eo *obj, Eina_Bool screen_coords, Eina_Rect rect);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:component:property:extents|Efl.Access.Component.extents]]
+ * [[:develop:api:efl:ui:win:property:extents|Efl.Ui.Win.extents]]
+ * [[:develop:api:efl:ui:image:property:extents|Efl.Ui.Image.extents]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/group_data.txt b/public_html/data/pages/develop/api/efl/ui/image/property/group_data.txt
new file mode 100644
index 00000000..3dada375
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/group_data.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Image.group_data~~
+====== Efl.Ui.Image.group_data ======
+
+===== Keys =====
+
+ * **key** - %%The data field's key string%%
+===== Values =====
+
+ * **val** - %%The data's value string.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:image:property:group_data:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:layout:group:property:group_data|Efl.Layout.Group.group_data]] **(get)**.//===== Signature =====
+
+
+@property group_data @pure_virtual {
+ get {
+ keys {
+ key: string;
+ }
+ }
+ values {
+ val: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_layout_group_data_get(const Eo *obj, const char *key);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:group:property:group_data|Efl.Layout.Group.group_data]]
+ * [[:develop:api:efl:canvas:layout:property:group_data|Efl.Canvas.Layout.group_data]]
+ * [[:develop:api:efl:ui:image:property:group_data|Efl.Ui.Image.group_data]]
+ * [[:develop:api:efl:ui:layout_base:property:group_data|Efl.Ui.Layout_Base.group_data]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/group_size_max.txt b/public_html/data/pages/develop/api/efl/ui/image/property/group_size_max.txt
new file mode 100644
index 00000000..ca067753
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/group_size_max.txt
@@ -0,0 +1,35 @@
+~~Title: Efl.Ui.Image.group_size_max~~
+====== Efl.Ui.Image.group_size_max ======
+
+===== Values =====
+
+ * **max** - %%The maximum size as set in EDC.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:image:property:group_size_max:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:layout:group:property:group_size_max|Efl.Layout.Group.group_size_max]] **(get)**.//===== Signature =====
+
+
+@property group_size_max @pure_virtual {
+ get {}
+ values {
+ max: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_layout_group_size_max_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:group:property:group_size_max|Efl.Layout.Group.group_size_max]]
+ * [[:develop:api:efl:canvas:layout:property:group_size_max|Efl.Canvas.Layout.group_size_max]]
+ * [[:develop:api:efl:ui:image:property:group_size_max|Efl.Ui.Image.group_size_max]]
+ * [[:develop:api:efl:ui:image_zoomable:property:group_size_max|Efl.Ui.Image_Zoomable.group_size_max]]
+ * [[:develop:api:efl:ui:layout_base:property:group_size_max|Efl.Ui.Layout_Base.group_size_max]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/group_size_min.txt b/public_html/data/pages/develop/api/efl/ui/image/property/group_size_min.txt
new file mode 100644
index 00000000..27049e1c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/group_size_min.txt
@@ -0,0 +1,35 @@
+~~Title: Efl.Ui.Image.group_size_min~~
+====== Efl.Ui.Image.group_size_min ======
+
+===== Values =====
+
+ * **min** - %%The minimum size as set in EDC.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:image:property:group_size_min:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:layout:group:property:group_size_min|Efl.Layout.Group.group_size_min]] **(get)**.//===== Signature =====
+
+
+@property group_size_min @pure_virtual {
+ get {}
+ values {
+ min: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_layout_group_size_min_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:group:property:group_size_min|Efl.Layout.Group.group_size_min]]
+ * [[:develop:api:efl:canvas:layout:property:group_size_min|Efl.Canvas.Layout.group_size_min]]
+ * [[:develop:api:efl:ui:image:property:group_size_min|Efl.Ui.Image.group_size_min]]
+ * [[:develop:api:efl:ui:image_zoomable:property:group_size_min|Efl.Ui.Image_Zoomable.group_size_min]]
+ * [[:develop:api:efl:ui:layout_base:property:group_size_min|Efl.Ui.Layout_Base.group_size_min]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/icon.txt b/public_html/data/pages/develop/api/efl/ui/image/property/icon.txt
new file mode 100644
index 00000000..040d7b24
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/icon.txt
@@ -0,0 +1,56 @@
+~~Title: Efl.Ui.Image.icon~~
+====== Efl.Ui.Image.icon ======
+
+===== Description =====
+
+%%The image name, using icon standards names.%%
+
+%%For example, freedesktop.org defines standard icon names such as "home" and "network". There can be different icon sets to match those icon keys. The "name" given as parameter is one of these "keys" and will be used to look in the freedesktop.org paths and elementary theme.%%
+
+%%If the name is not found in any of the expected locations and is the absolute path of an image file, this image will be used. Lookup order used by %%[[:develop:api:efl:ui:image:property:icon|Efl.Ui.Image.icon.set]]%% can be set using "icon_theme" in config.%%
+
+%%If the image was set using %%[[:develop:api:efl:file:property:file|Efl.File.file]]%% instead of %%[[:develop:api:efl:ui:image:property:icon|Efl.Ui.Image.icon.set]]%%, then reading this property will return null.%%
+
+
+@property icon {
+ get {}
+ set {
+ return: bool;
+ }
+ values {
+ name: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_ui_image_icon_get(const Eo *obj);
+Eina_Bool efl_ui_image_icon_set(Eo *obj, const char *name);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:image:property:icon|Efl.Ui.Image.icon]]
+ * [[:develop:api:efl:ui:image_zoomable:property:icon|Efl.Ui.Image_Zoomable.icon]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/image_load_error.txt b/public_html/data/pages/develop/api/efl/ui/image/property/image_load_error.txt
new file mode 100644
index 00000000..524c46da
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/image_load_error.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Ui.Image.image_load_error~~
+====== Efl.Ui.Image.image_load_error ======
+
+===== Values =====
+
+ * **error** - %%The load error code. A value of $0 indicates no error.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:image:property:image_load_error:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:gfx:image:property:image_load_error|Efl.Gfx.Image.image_load_error]] **(get)**.//===== Signature =====
+
+
+@property image_load_error @pure_virtual {
+ get {}
+ values {
+ error: Eina.Error;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_gfx_image_load_error_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:image_load_error|Efl.Gfx.Image.image_load_error]]
+ * [[:develop:api:efl:canvas:image_internal:property:image_load_error|Efl.Canvas.Image_Internal.image_load_error]]
+ * [[:develop:api:efl:ui:image:property:image_load_error|Efl.Ui.Image.image_load_error]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/image_orientation.txt b/public_html/data/pages/develop/api/efl/ui/image/property/image_orientation.txt
new file mode 100644
index 00000000..29d0fd29
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/image_orientation.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Image.image_orientation~~
+====== Efl.Ui.Image.image_orientation ======
+
+===== Description =====
+
+%%Control the orientation (rotation and flipping) of a visual object.%%
+
+%%This can be used to set the rotation on an image or a window, for instance.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image:property:image_orientation:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **dir** - %%The final orientation of the object.%%
+
+//Overridden from [[:develop:api:efl:gfx:image_orientable:property:image_orientation|Efl.Gfx.Image_Orientable.image_orientation]] **(get, set)**.//===== Signature =====
+
+
+@property image_orientation @pure_virtual {
+ get {}
+ set {}
+ values {
+ dir: Efl.Gfx.Image_Orientation (Efl.Gfx.Image_Orientation.none);
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Image_Orientation efl_gfx_image_orientation_get(const Eo *obj);
+void efl_gfx_image_orientation_set(Eo *obj, Efl_Gfx_Image_Orientation dir);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image_orientable:property:image_orientation|Efl.Gfx.Image_Orientable.image_orientation]]
+ * [[:develop:api:efl:canvas:image_internal:property:image_orientation|Efl.Canvas.Image_Internal.image_orientation]]
+ * [[:develop:api:efl:ui:image:property:image_orientation|Efl.Ui.Image.image_orientation]]
+ * [[:develop:api:efl:ui:image_zoomable:property:image_orientation|Efl.Ui.Image_Zoomable.image_orientation]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/image_size.txt b/public_html/data/pages/develop/api/efl/ui/image/property/image_size.txt
new file mode 100644
index 00000000..5a09d024
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/image_size.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Ui.Image.image_size~~
+====== Efl.Ui.Image.image_size ======
+
+===== Values =====
+
+ * **size** - %%The size in pixels. The default value is the size of the image's internal buffer.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:image:property:image_size:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:gfx:image:property:image_size|Efl.Gfx.Image.image_size]] **(get)**.//===== Signature =====
+
+
+@property image_size @pure_virtual {
+ get {}
+ values {
+ size: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_image_size_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:image_size|Efl.Gfx.Image.image_size]]
+ * [[:develop:api:efl:canvas:image_internal:property:image_size|Efl.Canvas.Image_Internal.image_size]]
+ * [[:develop:api:efl:ui:image:property:image_size|Efl.Ui.Image.image_size]]
+ * [[:develop:api:efl:ui:image_zoomable:property:image_size|Efl.Ui.Image_Zoomable.image_size]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/load_dpi.txt b/public_html/data/pages/develop/api/efl/ui/image/property/load_dpi.txt
new file mode 100644
index 00000000..e8d183ca
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/load_dpi.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Image.load_dpi~~
+====== Efl.Ui.Image.load_dpi ======
+
+===== Description =====
+
+%%The DPI resolution of an image object's source image.%%
+
+%%Most useful for the SVG image loader.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image:property:load_dpi:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **dpi** - %%The DPI resolution.%%
+
+//Overridden from [[:develop:api:efl:gfx:image_load_controller:property:load_dpi|Efl.Gfx.Image_Load_Controller.load_dpi]] **(get, set)**.//===== Signature =====
+
+
+@property load_dpi @pure_virtual {
+ get {}
+ set {}
+ values {
+ dpi: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_gfx_image_load_controller_load_dpi_get(const Eo *obj);
+void efl_gfx_image_load_controller_load_dpi_set(Eo *obj, double dpi);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image_load_controller:property:load_dpi|Efl.Gfx.Image_Load_Controller.load_dpi]]
+ * [[:develop:api:efl:canvas:image:property:load_dpi|Efl.Canvas.Image.load_dpi]]
+ * [[:develop:api:efl:ui:image:property:load_dpi|Efl.Ui.Image.load_dpi]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/load_orientation.txt b/public_html/data/pages/develop/api/efl/ui/image/property/load_orientation.txt
new file mode 100644
index 00000000..588bb41c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/load_orientation.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Image.load_orientation~~
+====== Efl.Ui.Image.load_orientation ======
+
+===== Description =====
+
+%%Defines whether the orientation information in the image file should be honored.%%
+
+%%The orientation can for instance be set in the EXIF tags of a JPEG image. If this flag is %%''false''%%, then the orientation will be ignored at load time, otherwise the image will be loaded with the proper orientation.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image:property:load_orientation:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **enable** - %%%%''true''%% means that it should honor the orientation information.%%
+
+//Overridden from [[:develop:api:efl:gfx:image_load_controller:property:load_orientation|Efl.Gfx.Image_Load_Controller.load_orientation]] **(get, set)**.//===== Signature =====
+
+
+@property load_orientation @pure_virtual {
+ get {}
+ set {}
+ values {
+ enable: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_gfx_image_load_controller_load_orientation_get(const Eo *obj);
+void efl_gfx_image_load_controller_load_orientation_set(Eo *obj, Eina_Bool enable);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image_load_controller:property:load_orientation|Efl.Gfx.Image_Load_Controller.load_orientation]]
+ * [[:develop:api:efl:canvas:image:property:load_orientation|Efl.Canvas.Image.load_orientation]]
+ * [[:develop:api:efl:ui:image:property:load_orientation|Efl.Ui.Image.load_orientation]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/load_region.txt b/public_html/data/pages/develop/api/efl/ui/image/property/load_region.txt
new file mode 100644
index 00000000..e19d411e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/load_region.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Ui.Image.load_region~~
+====== Efl.Ui.Image.load_region ======
+
+===== Description =====
+
+%%Inform a given image object to load a selective region of its source image.%%
+
+%%This property is useful when one is not showing all of an image's area on its image object.%%
+
+
+@property load_region @pure_virtual {
+ get {}
+ set {}
+ values {
+ region: Eina.Rect;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Rect efl_gfx_image_load_controller_load_region_get(const Eo *obj);
+void efl_gfx_image_load_controller_load_region_set(Eo *obj, Eina_Rect region);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image_load_controller:property:load_region|Efl.Gfx.Image_Load_Controller.load_region]]
+ * [[:develop:api:efl:canvas:image:property:load_region|Efl.Canvas.Image.load_region]]
+ * [[:develop:api:efl:ui:image:property:load_region|Efl.Ui.Image.load_region]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/load_region_support.txt b/public_html/data/pages/develop/api/efl/ui/image/property/load_region_support.txt
new file mode 100644
index 00000000..b5f62f40
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/load_region_support.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Ui.Image.load_region_support~~
+====== Efl.Ui.Image.load_region_support ======
+
+===== Values =====
+
+ * **support** - %%%%''true''%% if region load of the image is supported, %%''false''%% otherwise.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:image:property:load_region_support:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:gfx:image_load_controller:property:load_region_support|Efl.Gfx.Image_Load_Controller.load_region_support]] **(get)**.//===== Signature =====
+
+
+@property load_region_support @pure_virtual {
+ get {}
+ values {
+ support: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_gfx_image_load_controller_load_region_support_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image_load_controller:property:load_region_support|Efl.Gfx.Image_Load_Controller.load_region_support]]
+ * [[:develop:api:efl:canvas:image:property:load_region_support|Efl.Canvas.Image.load_region_support]]
+ * [[:develop:api:efl:ui:image:property:load_region_support|Efl.Ui.Image.load_region_support]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/load_scale_down.txt b/public_html/data/pages/develop/api/efl/ui/image/property/load_scale_down.txt
new file mode 100644
index 00000000..a567c843
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/load_scale_down.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Ui.Image.load_scale_down~~
+====== Efl.Ui.Image.load_scale_down ======
+
+===== Description =====
+
+%%The scale down factor is a divider on the original image size.%%
+
+%%Setting the scale down factor can reduce load time and memory usage at the cost of having a scaled down image in memory.%%
+
+%%This function sets the scale down factor of a given canvas image. Most useful for the SVG image loader but also applies to JPEG, PNG and BMP.%%
+
+%%Powers of two (2, 4, 8, ...) are best supported (especially with JPEG).%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image:property:load_scale_down:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **div** - %%The scale down dividing factor.%%
+
+//Overridden from [[:develop:api:efl:gfx:image_load_controller:property:load_scale_down|Efl.Gfx.Image_Load_Controller.load_scale_down]] **(get, set)**.//===== Signature =====
+
+
+@property load_scale_down @pure_virtual {
+ get {}
+ set {}
+ values {
+ div: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_gfx_image_load_controller_load_scale_down_get(const Eo *obj);
+void efl_gfx_image_load_controller_load_scale_down_set(Eo *obj, int div);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image_load_controller:property:load_scale_down|Efl.Gfx.Image_Load_Controller.load_scale_down]]
+ * [[:develop:api:efl:canvas:image:property:load_scale_down|Efl.Canvas.Image.load_scale_down]]
+ * [[:develop:api:efl:ui:image:property:load_scale_down|Efl.Ui.Image.load_scale_down]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/load_size.txt b/public_html/data/pages/develop/api/efl/ui/image/property/load_size.txt
new file mode 100644
index 00000000..1da1a20e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/load_size.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Image.load_size~~
+====== Efl.Ui.Image.load_size ======
+
+===== Description =====
+
+%%The load size of an image.%%
+
+%%The image will be loaded into memory as if it was the specified size instead of its original size. This can save a lot of memory and is important for scalable types like SVG.%%
+
+%%EFL will try to load an image of the requested size but does not guarantee an exact match between the request and the loaded image dimensions.%%
+
+%%By default, the load size is not specified, so it is %%''0x0''%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image:property:load_size:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **size** - %%The image load size.%%
+
+//Overridden from [[:develop:api:efl:gfx:image_load_controller:property:load_size|Efl.Gfx.Image_Load_Controller.load_size]] **(get, set)**.//===== Signature =====
+
+
+@property load_size @pure_virtual {
+ get {}
+ set {}
+ values {
+ size: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_image_load_controller_load_size_get(const Eo *obj);
+void efl_gfx_image_load_controller_load_size_set(Eo *obj, Eina_Size2D size);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image_load_controller:property:load_size|Efl.Gfx.Image_Load_Controller.load_size]]
+ * [[:develop:api:efl:canvas:video:property:load_size|Efl.Canvas.Video.load_size]]
+ * [[:develop:api:efl:canvas:image:property:load_size|Efl.Canvas.Image.load_size]]
+ * [[:develop:api:efl:ui:image:property:load_size|Efl.Ui.Image.load_size]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/load_skip_header.txt b/public_html/data/pages/develop/api/efl/ui/image/property/load_skip_header.txt
new file mode 100644
index 00000000..d0611c5e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/load_skip_header.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Image.load_skip_header~~
+====== Efl.Ui.Image.load_skip_header ======
+
+===== Description =====
+
+%%Initial load should skip header check and leave it all to data load.%%
+
+%%If this is %%''true''%%, then future loads of images will defer header loading to a preload stage and/or data load later on rather than at the start when the load begins (e.g. when file is set).%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image:property:load_skip_header:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **skip** - %%%%''true''%% if header is to be skipped.%%
+
+//Overridden from [[:develop:api:efl:gfx:image_load_controller:property:load_skip_header|Efl.Gfx.Image_Load_Controller.load_skip_header]] **(get, set)**.//===== Signature =====
+
+
+@property load_skip_header @pure_virtual {
+ get {}
+ set {}
+ values {
+ skip: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_gfx_image_load_controller_load_skip_header_get(const Eo *obj);
+void efl_gfx_image_load_controller_load_skip_header_set(Eo *obj, Eina_Bool skip);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image_load_controller:property:load_skip_header|Efl.Gfx.Image_Load_Controller.load_skip_header]]
+ * [[:develop:api:efl:canvas:image:property:load_skip_header|Efl.Canvas.Image.load_skip_header]]
+ * [[:develop:api:efl:ui:image:property:load_skip_header|Efl.Ui.Image.load_skip_header]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/part_exist.txt b/public_html/data/pages/develop/api/efl/ui/image/property/part_exist.txt
new file mode 100644
index 00000000..64a8f7ff
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/part_exist.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Image.part_exist~~
+====== Efl.Ui.Image.part_exist ======
+
+===== Keys =====
+
+ * **part** - %%The part name to check.%%
+===== Values =====
+
+ * **exists** - %%%%''true''%% if the part exists, %%''false''%% otherwise.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:image:property:part_exist:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:layout:group:property:part_exist|Efl.Layout.Group.part_exist]] **(get)**.//===== Signature =====
+
+
+@property part_exist @pure_virtual {
+ get {
+ keys {
+ part: string;
+ }
+ }
+ values {
+ exists: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_layout_group_part_exist_get(const Eo *obj, const char *part);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:group:property:part_exist|Efl.Layout.Group.part_exist]]
+ * [[:develop:api:efl:canvas:layout:property:part_exist|Efl.Canvas.Layout.part_exist]]
+ * [[:develop:api:efl:ui:image:property:part_exist|Efl.Ui.Image.part_exist]]
+ * [[:develop:api:efl:ui:layout_base:property:part_exist|Efl.Ui.Layout_Base.part_exist]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/paused.txt b/public_html/data/pages/develop/api/efl/ui/image/property/paused.txt
new file mode 100644
index 00000000..99a16470
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/paused.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Ui.Image.paused~~
+====== Efl.Ui.Image.paused ======
+
+===== Description =====
+
+%%Pause state of the media file.%%
+
+%%This property sets the pause state of the media. Re-setting the current pause state has no effect.%%
+
+%%If %%[[:develop:api:efl:player:property:playing|Efl.Player.playing]]%% is set to %%''true''%%, this property can be used to pause and resume playback of the media without changing its %%[[:develop:api:efl:player:property:playback_progress|Efl.Player.playback_progress]]%% property. This property cannot be changed if %%[[:develop:api:efl:player:property:playing|Efl.Player.playing]]%% is %%''false''%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image:property:paused:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **paused** - %%%%''true''%% if paused, %%''false''%% otherwise.%%
+
+//Overridden from [[:develop:api:efl:player:property:paused|Efl.Player.paused]] **(get, set)**.//===== Signature =====
+
+
+@property paused @pure_virtual {
+ get {}
+ set {
+ return: bool (false);
+ }
+ values {
+ paused: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_player_paused_get(const Eo *obj);
+Eina_Bool efl_player_paused_set(Eo *obj, Eina_Bool paused);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:player:property:paused|Efl.Player.paused]]
+ * [[:develop:api:efl:canvas:video:property:paused|Efl.Canvas.Video.paused]]
+ * [[:develop:api:efl:canvas:animation_player:property:paused|Efl.Canvas.Animation_Player.paused]]
+ * [[:develop:api:efl:canvas:layout:property:paused|Efl.Canvas.Layout.paused]]
+ * [[:develop:api:efl:ui:image:property:paused|Efl.Ui.Image.paused]]
+ * [[:develop:api:efl:ui:image_zoomable:property:paused|Efl.Ui.Image_Zoomable.paused]]
+ * [[:develop:api:efl:ui:video:property:paused|Efl.Ui.Video.paused]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/playable.txt b/public_html/data/pages/develop/api/efl/ui/image/property/playable.txt
new file mode 100644
index 00000000..8271c3a3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/playable.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.Image.playable~~
+====== Efl.Ui.Image.playable ======
+
+===== Values =====
+
+ * **playable** - No description supplied.
+
+
+\\ {{page>:develop:api-include:efl:ui:image:property:playable:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:playable:property:playable|Efl.Playable.playable]] **(get)**.//===== Signature =====
+
+
+@property playable @pure_virtual {
+ get {}
+ values {
+ playable: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_playable_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:playable:property:playable|Efl.Playable.playable]]
+ * [[:develop:api:efl:canvas:animation_player:property:playable|Efl.Canvas.Animation_Player.playable]]
+ * [[:develop:api:efl:canvas:layout:property:playable|Efl.Canvas.Layout.playable]]
+ * [[:develop:api:efl:ui:image:property:playable|Efl.Ui.Image.playable]]
+ * [[:develop:api:efl:ui:image_zoomable:property:playable|Efl.Ui.Image_Zoomable.playable]]
+ * [[:develop:api:efl:canvas:animation:property:playable|Efl.Canvas.Animation.playable]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/playback_position.txt b/public_html/data/pages/develop/api/efl/ui/image/property/playback_position.txt
new file mode 100644
index 00000000..e88dcd65
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/playback_position.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Image.playback_position~~
+====== Efl.Ui.Image.playback_position ======
+
+===== Description =====
+
+%%Position in the media file.%%
+
+%%This property sets the current position of the media file to %%''sec''%% seconds since the beginning of the media file. This only works on seekable streams. Setting the position doesn't change the %%[[:develop:api:efl:player:property:playing|Efl.Player.playing]]%% or %%[[:develop:api:efl:player:property:paused|Efl.Player.paused]]%% states of the media file.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image:property:playback_position:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **sec** - %%The position (in seconds).%%
+
+//Overridden from [[:develop:api:efl:player:property:playback_position|Efl.Player.playback_position]] **(get, set)**.//===== Signature =====
+
+
+@property playback_position @pure_virtual {
+ get {}
+ set {}
+ values {
+ sec: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_player_playback_position_get(const Eo *obj);
+void efl_player_playback_position_set(Eo *obj, double sec);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:player:property:playback_position|Efl.Player.playback_position]]
+ * [[:develop:api:efl:canvas:video:property:playback_position|Efl.Canvas.Video.playback_position]]
+ * [[:develop:api:efl:canvas:animation_player:property:playback_position|Efl.Canvas.Animation_Player.playback_position]]
+ * [[:develop:api:efl:ui:image:property:playback_position|Efl.Ui.Image.playback_position]]
+ * [[:develop:api:efl:ui:image_zoomable:property:playback_position|Efl.Ui.Image_Zoomable.playback_position]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/playback_progress.txt b/public_html/data/pages/develop/api/efl/ui/image/property/playback_progress.txt
new file mode 100644
index 00000000..60b3f137
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/playback_progress.txt
@@ -0,0 +1,35 @@
+~~Title: Efl.Ui.Image.playback_progress~~
+====== Efl.Ui.Image.playback_progress ======
+
+===== Values =====
+
+ * **progress** - %%The progress within the [0, 1] range.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:image:property:playback_progress:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:player:property:playback_progress|Efl.Player.playback_progress]] **(get)**.//===== Signature =====
+
+
+@property playback_progress @pure_virtual {
+ get {}
+ values {
+ progress: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_player_playback_progress_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:player:property:playback_progress|Efl.Player.playback_progress]]
+ * [[:develop:api:efl:canvas:video:property:playback_progress|Efl.Canvas.Video.playback_progress]]
+ * [[:develop:api:efl:canvas:animation_player:property:playback_progress|Efl.Canvas.Animation_Player.playback_progress]]
+ * [[:develop:api:efl:ui:image:property:playback_progress|Efl.Ui.Image.playback_progress]]
+ * [[:develop:api:efl:ui:image_zoomable:property:playback_progress|Efl.Ui.Image_Zoomable.playback_progress]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/playback_speed.txt b/public_html/data/pages/develop/api/efl/ui/image/property/playback_speed.txt
new file mode 100644
index 00000000..bb0d2564
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/playback_speed.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Image.playback_speed~~
+====== Efl.Ui.Image.playback_speed ======
+
+===== Description =====
+
+%%Control the playback speed of the media file.%%
+
+%%This function control the speed with which the media file will be played. 1.0 represents the normal speed, 2 double speed, 0.5 half speed and so on.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image:property:playback_speed:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **speed** - %%The play speed in the [0, infinity) range.%%
+
+//Overridden from [[:develop:api:efl:player:property:playback_speed|Efl.Player.playback_speed]] **(get, set)**.//===== Signature =====
+
+
+@property playback_speed @pure_virtual {
+ get {}
+ set {}
+ values {
+ speed: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_player_playback_speed_get(const Eo *obj);
+void efl_player_playback_speed_set(Eo *obj, double speed);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:player:property:playback_speed|Efl.Player.playback_speed]]
+ * [[:develop:api:efl:canvas:animation_player:property:playback_speed|Efl.Canvas.Animation_Player.playback_speed]]
+ * [[:develop:api:efl:canvas:layout:property:playback_speed|Efl.Canvas.Layout.playback_speed]]
+ * [[:develop:api:efl:ui:image:property:playback_speed|Efl.Ui.Image.playback_speed]]
+ * [[:develop:api:efl:ui:image_zoomable:property:playback_speed|Efl.Ui.Image_Zoomable.playback_speed]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/playing.txt b/public_html/data/pages/develop/api/efl/ui/image/property/playing.txt
new file mode 100644
index 00000000..1921636f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/playing.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Image.playing~~
+====== Efl.Ui.Image.playing ======
+
+===== Description =====
+
+%%Playback state of the media file.%%
+
+%%This property sets the playback state of the object. Re-setting the current playback state has no effect.%%
+
+%%If set to %%''false''%%, the object's %%[[:develop:api:efl:player:property:playback_progress|Efl.Player.playback_progress]]%% property is, by default, reset to %%''0.0''%%. A class may alter this behavior, and it will be stated in the documentation for a class if such behavior changes should be expected.%%
+
+%%Applying the %%''false''%% playing state also has the same effect as the player object reaching the end of its playback, which may invoke additional behavior based on a class's implementation.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image:property:playing:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **playing** - %%%%''true''%% if playing, %%''false''%% otherwise.%%
+
+//Overridden from [[:develop:api:efl:player:property:playing|Efl.Player.playing]] **(get, set)**.//===== Signature =====
+
+
+@property playing @pure_virtual {
+ get {}
+ set {
+ return: bool (false);
+ }
+ values {
+ playing: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_player_playing_get(const Eo *obj);
+Eina_Bool efl_player_playing_set(Eo *obj, Eina_Bool playing);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:player:property:playing|Efl.Player.playing]]
+ * [[:develop:api:efl:canvas:video:property:playing|Efl.Canvas.Video.playing]]
+ * [[:develop:api:efl:canvas:animation_player:property:playing|Efl.Canvas.Animation_Player.playing]]
+ * [[:develop:api:efl:ui:image:property:playing|Efl.Ui.Image.playing]]
+ * [[:develop:api:efl:ui:image_zoomable:property:playing|Efl.Ui.Image_Zoomable.playing]]
+ * [[:develop:api:efl:ui:video:property:playing|Efl.Ui.Video.playing]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/position.txt b/public_html/data/pages/develop/api/efl/ui/image/property/position.txt
new file mode 100644
index 00000000..4b78f59b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/position.txt
@@ -0,0 +1,76 @@
+~~Title: Efl.Ui.Image.position~~
+====== Efl.Ui.Image.position ======
+
+===== Description =====
+
+%%The 2D position of a canvas object.%%
+
+%%The position is absolute, in pixels, relative to the top-left corner of the window, within its border decorations (application space).%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:image:property:position:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **pos** - %%A 2D coordinate in pixel units.%%
+==== Getter ====
+
+%%Retrieves the position of the given canvas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:image:property:position:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Moves the given canvas object to the given location inside its canvas' viewport. If unchanged this call may be entirely skipped, but if changed this will trigger move events, as well as potential pointer,in or pointer,out events.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image:property:position:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:widget:property:position|Efl.Gfx.Entity.position]] **(set)**.//===== Signature =====
+
+
+@property position @pure_virtual {
+ get {}
+ set {}
+ values {
+ pos: Eina.Position2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Position2D efl_gfx_entity_position_get(const Eo *obj);
+void efl_gfx_entity_position_set(Eo *obj, Eina_Position2D pos);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:position|Efl.Gfx.Entity.position]]
+ * [[:develop:api:efl:canvas:vg:node:property:position|Efl.Canvas.Vg.Node.position]]
+ * [[:develop:api:efl:ui:win:property:position|Efl.Ui.Win.position]]
+ * [[:develop:api:efl:ui:image:property:position|Efl.Ui.Image.position]]
+ * [[:develop:api:efl:ui:image_zoomable:property:position|Efl.Ui.Image_Zoomable.position]]
+ * [[:develop:api:efl:ui:widget:property:position|Efl.Ui.Widget.position]]
+ * [[:develop:api:efl:ui:table:property:position|Efl.Ui.Table.position]]
+ * [[:develop:api:efl:ui:box:property:position|Efl.Ui.Box.position]]
+ * [[:develop:api:efl:ui:animation_view:property:position|Efl.Ui.Animation_View.position]]
+ * [[:develop:api:efl:ui:text:property:position|Efl.Ui.Text.position]]
+ * [[:develop:api:efl:ui:textpath:property:position|Efl.Ui.Textpath.position]]
+ * [[:develop:api:efl:ui:popup:property:position|Efl.Ui.Popup.position]]
+ * [[:develop:api:efl:ui:relative_layout:property:position|Efl.Ui.Relative_Layout.position]]
+ * [[:develop:api:efl:canvas:object:property:position|Efl.Canvas.Object.position]]
+ * [[:develop:api:efl:canvas:group:property:position|Efl.Canvas.Group.position]]
+ * [[:develop:api:efl:canvas:video:property:position|Efl.Canvas.Video.position]]
+ * [[:develop:api:efl:canvas:event_grabber:property:position|Efl.Canvas.Event_Grabber.position]]
+ * [[:develop:api:efl:canvas:layout:property:position|Efl.Canvas.Layout.position]]
+ * [[:develop:api:efl:ui:pan:property:position|Efl.Ui.Pan.position]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:property:position|Efl.Ui.Image_Zoomable_Pan.position]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/ratio.txt b/public_html/data/pages/develop/api/efl/ui/image/property/ratio.txt
new file mode 100644
index 00000000..765d05f0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/ratio.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Ui.Image.ratio~~
+====== Efl.Ui.Image.ratio ======
+
+===== Values =====
+
+ * **ratio** - %%The image's ratio.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:image:property:ratio:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:gfx:image:property:ratio|Efl.Gfx.Image.ratio]] **(get)**.//===== Signature =====
+
+
+@property ratio @pure_virtual {
+ get {}
+ values {
+ ratio: double (1.000000);
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_gfx_image_ratio_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:ratio|Efl.Gfx.Image.ratio]]
+ * [[:develop:api:efl:canvas:image_internal:property:ratio|Efl.Canvas.Image_Internal.ratio]]
+ * [[:develop:api:efl:canvas:video:property:ratio|Efl.Canvas.Video.ratio]]
+ * [[:develop:api:efl:ui:image:property:ratio|Efl.Ui.Image.ratio]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/scale_hint.txt b/public_html/data/pages/develop/api/efl/ui/image/property/scale_hint.txt
new file mode 100644
index 00000000..92a2948f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/scale_hint.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Image.scale_hint~~
+====== Efl.Ui.Image.scale_hint ======
+
+===== Description =====
+
+%%The scale hint of a given image of the canvas.%%
+
+%%The scale hint affects how EFL is to cache scaled versions of its original source image.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image:property:scale_hint:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **hint** - %%Scalable or static size hint.%%
+
+//Overridden from [[:develop:api:efl:gfx:image:property:scale_hint|Efl.Gfx.Image.scale_hint]] **(get, set)**.//===== Signature =====
+
+
+@property scale_hint @pure_virtual {
+ get {}
+ set {}
+ values {
+ hint: Efl.Gfx.Image_Scale_Hint (Efl.Gfx.Image_Scale_Hint.none);
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Image_Scale_Hint efl_gfx_image_scale_hint_get(const Eo *obj);
+void efl_gfx_image_scale_hint_set(Eo *obj, Efl_Gfx_Image_Scale_Hint hint);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:scale_hint|Efl.Gfx.Image.scale_hint]]
+ * [[:develop:api:efl:canvas:image_internal:property:scale_hint|Efl.Canvas.Image_Internal.scale_hint]]
+ * [[:develop:api:efl:ui:image:property:scale_hint|Efl.Ui.Image.scale_hint]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/scale_method.txt b/public_html/data/pages/develop/api/efl/ui/image/property/scale_method.txt
new file mode 100644
index 00000000..2a57e65c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/scale_method.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Image.scale_method~~
+====== Efl.Ui.Image.scale_method ======
+
+===== Description =====
+
+%%Determine how the image is scaled at render time.%%
+
+%%This allows more granular controls for how an image object should display its internal buffer. The underlying image data will not be modified.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image:property:scale_method:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **scale_method** - %%Image scale type to use.%%
+
+//Overridden from [[:develop:api:efl:gfx:image:property:scale_method|Efl.Gfx.Image.scale_method]] **(get, set)**.//===== Signature =====
+
+
+@property scale_method @pure_virtual {
+ get {}
+ set {}
+ values {
+ scale_method: Efl.Gfx.Image_Scale_Method (Efl.Gfx.Image_Scale_Method.none);
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Image_Scale_Method efl_gfx_image_scale_method_get(const Eo *obj);
+void efl_gfx_image_scale_method_set(Eo *obj, Efl_Gfx_Image_Scale_Method scale_method);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:scale_method|Efl.Gfx.Image.scale_method]]
+ * [[:develop:api:efl:ui:image:property:scale_method|Efl.Ui.Image.scale_method]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/size.txt b/public_html/data/pages/develop/api/efl/ui/image/property/size.txt
new file mode 100644
index 00000000..2e26f145
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/size.txt
@@ -0,0 +1,76 @@
+~~Title: Efl.Ui.Image.size~~
+====== Efl.Ui.Image.size ======
+
+===== Description =====
+
+%%The 2D size of a canvas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:image:property:size:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **size** - %%A 2D size in pixel units.%%
+==== Getter ====
+
+%%Retrieves the (rectangular) size of the given Evas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:image:property:size:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Changes the size of the given object.%%
+
+%%Note that setting the actual size of an object might be the job of its container, so this function might have no effect. Look at %%[[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]%% instead, when manipulating widgets.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image:property:size:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:widget:property:size|Efl.Gfx.Entity.size]] **(set)**.//===== Signature =====
+
+
+@property size @pure_virtual {
+ get {}
+ set {}
+ values {
+ size: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_entity_size_get(const Eo *obj);
+void efl_gfx_entity_size_set(Eo *obj, Eina_Size2D size);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:size|Efl.Gfx.Entity.size]]
+ * [[:develop:api:efl:canvas:vg:node:property:size|Efl.Canvas.Vg.Node.size]]
+ * [[:develop:api:efl:ui:win:property:size|Efl.Ui.Win.size]]
+ * [[:develop:api:efl:ui:image:property:size|Efl.Ui.Image.size]]
+ * [[:develop:api:efl:ui:image_zoomable:property:size|Efl.Ui.Image_Zoomable.size]]
+ * [[:develop:api:efl:ui:widget:property:size|Efl.Ui.Widget.size]]
+ * [[:develop:api:efl:ui:table:property:size|Efl.Ui.Table.size]]
+ * [[:develop:api:efl:ui:box:property:size|Efl.Ui.Box.size]]
+ * [[:develop:api:efl:ui:animation_view:property:size|Efl.Ui.Animation_View.size]]
+ * [[:develop:api:efl:ui:text:property:size|Efl.Ui.Text.size]]
+ * [[:develop:api:efl:ui:panel:property:size|Efl.Ui.Panel.size]]
+ * [[:develop:api:efl:ui:textpath:property:size|Efl.Ui.Textpath.size]]
+ * [[:develop:api:efl:ui:popup:property:size|Efl.Ui.Popup.size]]
+ * [[:develop:api:efl:ui:relative_layout:property:size|Efl.Ui.Relative_Layout.size]]
+ * [[:develop:api:efl:canvas:object:property:size|Efl.Canvas.Object.size]]
+ * [[:develop:api:efl:canvas:video:property:size|Efl.Canvas.Video.size]]
+ * [[:develop:api:efl:canvas:event_grabber:property:size|Efl.Canvas.Event_Grabber.size]]
+ * [[:develop:api:efl:canvas:layout:property:size|Efl.Canvas.Layout.size]]
+ * [[:develop:api:efl:ui:pan:property:size|Efl.Ui.Pan.size]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:property:size|Efl.Ui.Image_Zoomable_Pan.size]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/smooth_scale.txt b/public_html/data/pages/develop/api/efl/ui/image/property/smooth_scale.txt
new file mode 100644
index 00000000..67cebef0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/smooth_scale.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Image.smooth_scale~~
+====== Efl.Ui.Image.smooth_scale ======
+
+===== Description =====
+
+%%Whether to use high-quality image scaling algorithm for this image.%%
+
+%%When enabled, a higher quality image scaling algorithm is used when scaling images to sizes other than the source image's original one. This gives better results but is more computationally expensive.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image:property:smooth_scale:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **smooth_scale** - %%Whether to use smooth scale or not.%%
+
+//Overridden from [[:develop:api:efl:gfx:image:property:smooth_scale|Efl.Gfx.Image.smooth_scale]] **(get, set)**.//===== Signature =====
+
+
+@property smooth_scale @pure_virtual {
+ get {}
+ set {}
+ values {
+ smooth_scale: bool (true);
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_gfx_image_smooth_scale_get(const Eo *obj);
+void efl_gfx_image_smooth_scale_set(Eo *obj, Eina_Bool smooth_scale);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:smooth_scale|Efl.Gfx.Image.smooth_scale]]
+ * [[:develop:api:efl:canvas:image_internal:property:smooth_scale|Efl.Canvas.Image_Internal.smooth_scale]]
+ * [[:develop:api:efl:canvas:video:property:smooth_scale|Efl.Canvas.Video.smooth_scale]]
+ * [[:develop:api:efl:ui:image:property:smooth_scale|Efl.Ui.Image.smooth_scale]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/stretch_region.txt b/public_html/data/pages/develop/api/efl/ui/image/property/stretch_region.txt
new file mode 100644
index 00000000..3231369d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/stretch_region.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Ui.Image.stretch_region~~
+====== Efl.Ui.Image.stretch_region ======
+
+===== Description =====
+
+%%This property defines the stretchable pixels region of an image.%%
+
+%%When the regions are set by the user, the method will walk the iterators once and then destroy them. When the regions are retrieved by the user, it is his responsibility to destroy the iterators.. It will remember the information for the lifetime of the object. It will ignore all value of %%[[:develop:api:efl:gfx:image:property:border_insets|Efl.Gfx.Image.border_insets]]%%, %%[[:develop:api:efl:gfx:image:property:border_insets_scale|Efl.Gfx.Image.border_insets_scale]]%% and %%[[:develop:api:efl:gfx:image:property:center_fill_mode|Efl.Gfx.Image.center_fill_mode]]%% . To reset the object you can just pass %%''null''%% to both horizontal and vertical at the same time.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image:property:stretch_region:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **horizontal** - %%Representation of areas that are stretchable in the image horizontal space.%%
+ * **vertical** - %%Representation of areas that are stretchable in the image vertical space.%%
+
+//Overridden from [[:develop:api:efl:gfx:image:property:stretch_region|Efl.Gfx.Image.stretch_region]] **(get, set)**.//===== Signature =====
+
+
+@property stretch_region @pure_virtual {
+ get {}
+ set {
+ return: Eina.Error;
+ }
+ values {
+ horizontal: iterator (null);
+ vertical: iterator (null);
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_image_stretch_region_get(const Eo *obj, Eina_Iterator **horizontal, Eina_Iterator **vertical);
+Eina_Error efl_gfx_image_stretch_region_set(Eo *obj, Eina_Iterator *horizontal, Eina_Iterator *vertical);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:stretch_region|Efl.Gfx.Image.stretch_region]]
+ * [[:develop:api:efl:canvas:image_internal:property:stretch_region|Efl.Canvas.Image_Internal.stretch_region]]
+ * [[:develop:api:efl:ui:image:property:stretch_region|Efl.Ui.Image.stretch_region]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/view_size.txt b/public_html/data/pages/develop/api/efl/ui/image/property/view_size.txt
new file mode 100644
index 00000000..c5039685
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/view_size.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Ui.Image.view_size~~
+====== Efl.Ui.Image.view_size ======
+
+===== Description =====
+
+%%The dimensions of this object's viewport.%%
+
+%%This property represents the size of an image (file on disk, vector graphics, GL or 3D scene, ...) view: this is the logical size of a view, not the number of pixels in the buffer, nor its visible size on the window.%%
+
+%%For scalable scenes (vector graphics, 3D or GL), this means scaling the contents of the scene and drawing more pixels as a result; For pixmaps this means zooming and stretching up or down the backing buffer to fit this view.%%
+
+%%In most cases the view should have the same dimensions as the object on the canvas, for best quality.%%
+
+%%%%[[:develop:api:efl:gfx:view:property:view_size|Efl.Gfx.View.view_size.set]]%% may not be implemented. If it is, it might trigger a complete recalculation of the scene, or reload of the pixel data.%%
+
+%%Refer to each implementing class specific documentation for more details.%%
+{{page>:develop:api-include:efl:ui:image:property:view_size:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **size** - %%Size of the view.%%
+
+//Overridden from [[:develop:api:efl:gfx:view:property:view_size|Efl.Gfx.View.view_size]] **(get)**.//===== Signature =====
+
+
+@property view_size @pure_virtual {
+ get {}
+ set {}
+ values {
+ size: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_view_size_get(const Eo *obj);
+void efl_gfx_view_size_set(Eo *obj, Eina_Size2D size);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:view:property:view_size|Efl.Gfx.View.view_size]]
+ * [[:develop:api:efl:canvas:image_internal:property:view_size|Efl.Canvas.Image_Internal.view_size]]
+ * [[:develop:api:efl:ui:image:property:view_size|Efl.Ui.Image.view_size]]
+ * [[:develop:api:efl:ui:image_zoomable:property:view_size|Efl.Ui.Image_Zoomable.view_size]]
+ * [[:develop:api:efl:ui:animation_view:property:view_size|Efl.Ui.Animation_View.view_size]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image/property/visible.txt b/public_html/data/pages/develop/api/efl/ui/image/property/visible.txt
new file mode 100644
index 00000000..8b4c8c81
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image/property/visible.txt
@@ -0,0 +1,72 @@
+~~Title: Efl.Ui.Image.visible~~
+====== Efl.Ui.Image.visible ======
+
+===== Description =====
+
+%%The visibility of a canvas object.%%
+
+%%All canvas objects will become visible by default just before render. This means that it is not required to call %%[[:develop:api:efl:gfx:entity:property:visible|Efl.Gfx.Entity.visible.set]]%% after creating an object unless you want to create it without showing it. Note that this behavior is new since 1.21, and only applies to canvas objects created with the EO API (i.e. not the legacy C-only API). Other types of Gfx objects may or may not be visible by default.%%
+
+%%Note that many other parameters can prevent a visible object from actually being "visible" on screen. For instance if its color is fully transparent, or its parent is hidden, or it is clipped out, etc...%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:image:property:visible:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **v** - %%%%''true''%% if to make the object visible, %%''false''%% otherwise%%
+==== Getter ====
+
+%%Retrieves whether or not the given canvas object is visible.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:image:property:visible:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Shows or hides this object.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image:property:visible:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:widget:property:visible|Efl.Gfx.Entity.visible]] **(set)**.//===== Signature =====
+
+
+@property visible @pure_virtual {
+ get {}
+ set {}
+ values {
+ v: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_gfx_entity_visible_get(const Eo *obj);
+void efl_gfx_entity_visible_set(Eo *obj, Eina_Bool v);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:visible|Efl.Gfx.Entity.visible]]
+ * [[:develop:api:efl:canvas:vg:node:property:visible|Efl.Canvas.Vg.Node.visible]]
+ * [[:develop:api:efl:ui:win:property:visible|Efl.Ui.Win.visible]]
+ * [[:develop:api:efl:ui:image:property:visible|Efl.Ui.Image.visible]]
+ * [[:develop:api:efl:ui:widget:property:visible|Efl.Ui.Widget.visible]]
+ * [[:develop:api:efl:ui:animation_view:property:visible|Efl.Ui.Animation_View.visible]]
+ * [[:develop:api:efl:ui:text:property:visible|Efl.Ui.Text.visible]]
+ * [[:develop:api:efl:ui:popup:property:visible|Efl.Ui.Popup.visible]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:property:visible|Efl.Ui.Navigation_Bar_Part_Back_Button.visible]]
+ * [[:develop:api:efl:canvas:object:property:visible|Efl.Canvas.Object.visible]]
+ * [[:develop:api:efl:canvas:group:property:visible|Efl.Canvas.Group.visible]]
+ * [[:develop:api:efl:canvas:event_grabber:property:visible|Efl.Canvas.Event_Grabber.visible]]
+ * [[:develop:api:efl:canvas:layout:property:visible|Efl.Canvas.Layout.visible]]
+ * [[:develop:api:efl:ui:pan:property:visible|Efl.Ui.Pan.visible]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable.txt
new file mode 100644
index 00000000..4f95ba36
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable.txt
@@ -0,0 +1,726 @@
+~~Title: Efl.Ui.Image_Zoomable~~
+====== Efl.Ui.Image_Zoomable (class) ======
+
+===== Description =====
+
+%%Elementary Image Zoomable class%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:image_zoomable:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:image|Efl.Ui.Image]] //(class)// => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:image|Efl.Ui.Image]] //(class)//
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] //(mixin)//
+ * [[:develop:api:efl:ui:draggable|Efl.Ui.Draggable]] //(interface)//
+ * [[:develop:api:efl:file|Efl.File]] //(mixin)//
+ * [[:develop:api:efl:gfx:image|Efl.Gfx.Image]] //(interface)//
+ * [[:develop:api:efl:gfx:image_load_controller|Efl.Gfx.Image_Load_Controller]] //(interface)//
+ * [[:develop:api:efl:player|Efl.Player]] //(interface)//
+ * [[:develop:api:efl:playable|Efl.Playable]] //(interface)//
+ * [[:develop:api:efl:gfx:view|Efl.Gfx.View]] //(interface)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]] //(mixin)//
+ * [[:develop:api:efl:access:action|Efl.Access.Action]] //(mixin)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:image_orientable|Efl.Gfx.Image_Orientable]] //(interface)//
+ * [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] //(interface)//
+ * [[:develop:api:efl:layout:group|Efl.Layout.Group]] //(interface)//
+ * [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] //(interface)//
+ * [[:develop:api:efl:gfx:arrangement|Efl.Gfx.Arrangement]] //(interface)//
+ * [[:develop:api:efl:ui:zoom|Efl.Ui.Zoom]] //(interface)//
+ * [[:develop:api:efl:ui:scrollable|Efl.Ui.Scrollable]] //(interface)//
+ * [[:develop:api:efl:ui:scrollbar|Efl.Ui.Scrollbar]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:image_zoomable:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:property:file|file]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:file|Efl.File]]]//\\
+> %%The file path from where an object will fetch the data.%%
+
+const char *efl_file_get(const Eo *obj);
+Eina_Error efl_file_set(Eo *obj, const char *file);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:property:gesture_enabled|gesture_enabled]]** //**(get, set)**//\\
+> %%The gesture state for photocam.%%
+
+Eina_Bool efl_ui_image_zoomable_gesture_enabled_get(const Eo *obj);
+void efl_ui_image_zoomable_gesture_enabled_set(Eo *obj, Eina_Bool gesture);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:method:group_member_add|group_member_add]]**// [Overridden from [[:develop:api:efl:canvas:group|Efl.Canvas.Group]]]//\\
+> %%Set a canvas object as a member of a given group (or smart object).%%
+
+void efl_canvas_group_member_add(Eo *obj, Efl_Canvas_Object *sub_obj);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:property:group_size_max|group_size_max]]** //**(get)**//// [Overridden from [[:develop:api:efl:layout:group|Efl.Layout.Group]]]//\\
+>
+
+Eina_Size2D efl_layout_group_size_max_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:property:group_size_min|group_size_min]]** //**(get)**//// [Overridden from [[:develop:api:efl:layout:group|Efl.Layout.Group]]]//\\
+>
+
+Eina_Size2D efl_layout_group_size_min_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:property:icon|icon]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:image|Efl.Ui.Image]]]//\\
+> %%The image name, using icon standards names.%%
+
+const char *efl_ui_image_icon_get(const Eo *obj);
+Eina_Bool efl_ui_image_icon_set(Eo *obj, const char *name);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:property:image_orientation|image_orientation]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:image_orientable|Efl.Gfx.Image_Orientable]]]//\\
+> %%Control the orientation (rotation and flipping) of a visual object.%%
+
+Efl_Gfx_Image_Orientation efl_gfx_image_orientation_get(const Eo *obj);
+void efl_gfx_image_orientation_set(Eo *obj, Efl_Gfx_Image_Orientation dir);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:property:image_region|image_region]]** //**(get, set)**//\\
+> %%The region of the image that is currently shown%%
+
+Eina_Rect efl_ui_image_zoomable_image_region_get(const Eo *obj);
+void efl_ui_image_zoomable_image_region_set(Eo *obj, Eina_Rect region);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:property:image_size|image_size]]** //**(get)**//// [Overridden from [[:develop:api:efl:gfx:image|Efl.Gfx.Image]]]//\\
+>
+
+Eina_Size2D efl_gfx_image_size_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:method:load|load]]**// [Overridden from [[:develop:api:efl:file|Efl.File]]]//\\
+> %%Perform all necessary operations to open and load file data into the object using the %%[[:develop:api:efl:file:property:file|Efl.File.file]]%% (or %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap]]%%) and %%[[:develop:api:efl:file:property:key|Efl.File.key]]%% properties.%%
+
+Eina_Error efl_file_load(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:property:paused|paused]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:player|Efl.Player]]]//\\
+> %%Pause state of the media file.%%
+
+Eina_Bool efl_player_paused_get(const Eo *obj);
+Eina_Bool efl_player_paused_set(Eo *obj, Eina_Bool paused);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:property:playable|playable]]** //**(get)**//// [Overridden from [[:develop:api:efl:playable|Efl.Playable]]]//\\
+>
+
+Eina_Bool efl_playable_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:property:playback_position|playback_position]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:player|Efl.Player]]]//\\
+> %%Position in the media file.%%
+
+double efl_player_playback_position_get(const Eo *obj);
+void efl_player_playback_position_set(Eo *obj, double sec);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:property:playback_progress|playback_progress]]** //**(get)**//// [Overridden from [[:develop:api:efl:player|Efl.Player]]]//\\
+>
+
+double efl_player_playback_progress_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:property:playback_speed|playback_speed]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:player|Efl.Player]]]//\\
+> %%Control the playback speed of the media file.%%
+
+double efl_player_playback_speed_get(const Eo *obj);
+void efl_player_playback_speed_set(Eo *obj, double speed);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:property:playing|playing]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:player|Efl.Player]]]//\\
+> %%Playback state of the media file.%%
+
+Eina_Bool efl_player_playing_get(const Eo *obj);
+Eina_Bool efl_player_playing_set(Eo *obj, Eina_Bool playing);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:property:position|position]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The 2D position of a canvas object.%%
+
+Eina_Position2D efl_gfx_entity_position_get(const Eo *obj);
+void efl_gfx_entity_position_set(Eo *obj, Eina_Position2D pos);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:method:scroll|scroll]]**// [Overridden from [[:develop:api:efl:ui:scrollable|Efl.Ui.Scrollable]]]//\\
+> %%Show a specific virtual region within the scroller content object.%%
+
+void efl_ui_scrollable_scroll(Eo *obj, Eina_Rect rect, Eina_Bool animation);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:method:signal_callback_add|signal_callback_add]]**// [Overridden from [[:develop:api:efl:layout:signal|Efl.Layout.Signal]]]//\\
+> %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%%
+
+Eina_Bool efl_layout_signal_callback_add(Eo *obj, const char *emission, const char *source, EflLayoutSignalCb func);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:method:signal_callback_del|signal_callback_del]]**// [Overridden from [[:develop:api:efl:layout:signal|Efl.Layout.Signal]]]//\\
+> %%Removes a signal-triggered callback from an object.%%
+
+Eina_Bool efl_layout_signal_callback_del(Eo *obj, const char *emission, const char *source, EflLayoutSignalCb func);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:property:size|size]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The 2D size of a canvas object.%%
+
+Eina_Size2D efl_gfx_entity_size_get(const Eo *obj);
+void efl_gfx_entity_size_set(Eo *obj, Eina_Size2D size);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:method:unload|unload]]**// [Overridden from [[:develop:api:efl:file|Efl.File]]]//\\
+> %%Perform all necessary operations to unload file data from the object.%%
+
+void efl_file_unload(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:property:view_size|view_size]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:view|Efl.Gfx.View]]]//\\
+> %%The dimensions of this object's viewport.%%
+
+Eina_Size2D efl_gfx_view_size_get(const Eo *obj);
+void efl_gfx_view_size_set(Eo *obj, Eina_Size2D size);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:property:zoom_animation|zoom_animation]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:zoom|Efl.Ui.Zoom]]]//\\
+> %%This sets the zoom animation state to on or off for zoomable. The default is off. When %%''paused''%% is %%''true''%%, it will stop zooming using animation on zoom level changes and change instantly, stopping any existing animations that are running.%%
+
+Eina_Bool efl_ui_zoom_animation_get(const Eo *obj);
+void efl_ui_zoom_animation_set(Eo *obj, Eina_Bool paused);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:property:zoom_level|zoom_level]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:zoom|Efl.Ui.Zoom]]]//\\
+> %%Zoom level of the image.%%
+
+double efl_ui_zoom_level_get(const Eo *obj);
+void efl_ui_zoom_level_set(Eo *obj, double zoom);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:property:zoom_mode|zoom_mode]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:zoom|Efl.Ui.Zoom]]]//\\
+> %%Zoom mode.%%
+
+Efl_Ui_Zoom_Mode efl_ui_zoom_mode_get(const Eo *obj);
+void efl_ui_zoom_mode_set(Eo *obj, Efl_Ui_Zoom_Mode mode);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:property:elm_actions|elm_actions]]** //**(get)**// ''protected''// [Overridden from [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]]]//\\
+>
+
+const Efl_Access_Action_Data *efl_access_widget_action_elm_actions_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:method:on_focus_update|on_focus_update]]** ''protected''// [Overridden from [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]]]//\\
+> %%Virtual function handling focus in/out events on the widget.%%
+
+Eina_Bool efl_ui_focus_object_on_focus_update(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:method:theme_apply|theme_apply]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Virtual function called when the widget needs to re-apply its theme.%%
+
+Eina_Error efl_ui_widget_theme_apply(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:image_zoomable:method:widget_input_event_handler|widget_input_event_handler]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Virtual function handling input events on the widget.%%
+
+Eina_Bool efl_ui_widget_input_event_handler(Eo *obj, const Efl_Event *eo_event, Efl_Canvas_Object *source);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:action|Efl.Access.Action]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:action:property:action_localized_name|action_localized_name]]** //**(get)**// | |
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:action_description|action_description]]** //**(get, set)**// | %%Action description for given id%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:method:action_do|action_do]]** | %%Performs action on given widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:method:action_keybinding_get|action_keybinding_get]]** | %%Gets configured keybinding for specific action and widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:action_name|action_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:actions|actions]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:file|Efl.File]] ^^^
+| | **[[:develop:api:efl:file:property:key|key]]** //**(get, set)**// | %%The key which corresponds to the target data within a file.%% |
+| | **[[:develop:api:efl:file:property:loaded|loaded]]** //**(get)**// | |
+| | **[[:develop:api:efl:file:property:mmap|mmap]]** //**(get, set)**// | %%The mmaped file from where an object will fetch the real data (it must be an %%[[:develop:api:eina:file|Eina.File]]%%).%% |
+^ [[:develop:api:efl:gfx:arrangement|Efl.Gfx.Arrangement]] ^^^
+| | **[[:develop:api:efl:gfx:arrangement:property:content_padding|content_padding]]** //**(get, set)**// | %%This property determines the space between a container's content items.%% |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] ^^^
+| | **[[:develop:api:efl:input:clickable:property:interaction|interaction]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:button_state_reset|button_state_reset]]** | %%This aborts the internal state after a press call.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:longpress_abort|longpress_abort]]** | %%This aborts ongoing longpress event.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:press|press]]** | %%Change internal states that a button got pressed.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:unpress|unpress]]** | %%Change internal states that a button got unpressed.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:playable|Efl.Playable]] ^^^
+| | **[[:develop:api:efl:playable:property:length|length]]** //**(get)**// | |
+| | **[[:develop:api:efl:playable:property:seekable|seekable]]** //**(get)**// | |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] ^^^
+| | **[[:develop:api:efl:ui:i18n:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+^ [[:develop:api:efl:ui:image|Efl.Ui.Image]] ^^^
+| | **[[:develop:api:efl:ui:image:property:border_insets|border_insets]]** //**(get, set)**// | %%Dimensions of this image's border, a region that does not scale with the center area.%% |
+| | **[[:develop:api:efl:ui:image:property:border_insets_scale|border_insets_scale]]** //**(get, set)**// | %%Scaling factor applied to the image borders.%% |
+| | **[[:develop:api:efl:ui:image:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**// | %%Whether this object updates its size hints automatically.%% |
+| | **[[:develop:api:efl:ui:image:method:calc_freeze|calc_freeze]]** | %%Freezes the layout object.%% |
+| | **[[:develop:api:efl:ui:image:method:calc_parts_extends|calc_parts_extends]]** | %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%% |
+| | **[[:develop:api:efl:ui:image:method:calc_size_min|calc_size_min]]** | %%Calculates the minimum required size for a given layout object.%% |
+| | **[[:develop:api:efl:ui:image:method:calc_thaw|calc_thaw]]** | %%Thaws the layout object.%% |
+| | **[[:develop:api:efl:ui:image:property:can_downscale|can_downscale]]** //**(get, set)**// | %%If %%''true''%%, the image may be scaled to a smaller size. If %%''false''%%, the image will never be resized smaller than its native size.%% |
+| | **[[:develop:api:efl:ui:image:property:can_upscale|can_upscale]]** //**(get, set)**// | %%If %%''true''%%, the image may be scaled to a larger size. If %%''false''%%, the image will never be resized larger than its native size.%% |
+| | **[[:develop:api:efl:ui:image:property:center_fill_mode|center_fill_mode]]** //**(get, set)**// | %%Specifies how the center part of the object (not the borders) should be drawn when EFL is rendering it.%% |
+| | **[[:develop:api:efl:ui:image:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:image:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:image:property:content_align|content_align]]** //**(get, set)**// | %%This property determines how contents will be aligned within a container if there is unused space.%% |
+| | **[[:develop:api:efl:ui:image:property:content_hint|content_hint]]** //**(get, set)**// | %%Content hint setting for the image. These hints might be used by EFL to enable optimizations.%% |
+| | **[[:develop:api:efl:ui:image:property:content_region|content_region]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:image:property:drag_target|drag_target]]** //**(get, set)**// | %%Control whether the object's content is changed by drag and drop.%% |
+| | **[[:develop:api:efl:ui:image:property:group_data|group_data]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:image:property:image_load_error|image_load_error]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:image:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:ui:image:method:load_async_cancel|load_async_cancel]]** | %%Cancel preloading an image object's image data in the background.%% |
+| | **[[:develop:api:efl:ui:image:method:load_async_start|load_async_start]]** | %%Begin preloading an image object's image data in the background.%% |
+| | **[[:develop:api:efl:ui:image:property:load_dpi|load_dpi]]** //**(get, set)**// | %%The DPI resolution of an image object's source image.%% |
+| | **[[:develop:api:efl:ui:image:property:load_orientation|load_orientation]]** //**(get, set)**// | %%Defines whether the orientation information in the image file should be honored.%% |
+| | **[[:develop:api:efl:ui:image:property:load_region|load_region]]** //**(get, set)**// | %%Inform a given image object to load a selective region of its source image.%% |
+| | **[[:develop:api:efl:ui:image:property:load_region_support|load_region_support]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:image:property:load_scale_down|load_scale_down]]** //**(get, set)**// | %%The scale down factor is a divider on the original image size.%% |
+| | **[[:develop:api:efl:ui:image:property:load_size|load_size]]** //**(get, set)**// | %%The load size of an image.%% |
+| | **[[:develop:api:efl:ui:image:property:load_skip_header|load_skip_header]]** //**(get, set)**// | %%Initial load should skip header check and leave it all to data load.%% |
+| | **[[:develop:api:efl:ui:image:method:message_send|message_send]]** | %%Sends an (Edje) message to a given Edje object%% |
+| | **[[:develop:api:efl:ui:image:property:part_exist|part_exist]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:image:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:image:property:ratio|ratio]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:image:property:scale_hint|scale_hint]]** //**(get, set)**// | %%The scale hint of a given image of the canvas.%% |
+| | **[[:develop:api:efl:ui:image:property:scale_method|scale_method]]** //**(get, set)**// | %%Determine how the image is scaled at render time.%% |
+| | **[[:develop:api:efl:ui:image:method:signal_emit|signal_emit]]** | %%Sends/emits an Edje signal to this layout.%% |
+| | **[[:develop:api:efl:ui:image:method:signal_process|signal_process]]** | %%Processes an object's messages and signals queue.%% |
+| | **[[:develop:api:efl:ui:image:property:smooth_scale|smooth_scale]]** //**(get, set)**// | %%Whether to use high-quality image scaling algorithm for this image.%% |
+| | **[[:develop:api:efl:ui:image:property:stretch_region|stretch_region]]** //**(get, set)**// | %%This property defines the stretchable pixels region of an image.%% |
+| | **[[:develop:api:efl:ui:image:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:image:method:calc_force|calc_force]]** | %%Forces a Size/Geometry calculation.%% |
+| ''protected'' | **[[:develop:api:efl:ui:image:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+^ [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] ^^^
+| | **[[:develop:api:efl:ui:l10n:property:l10n_text|l10n_text]]** //**(get, set)**// | %%A unique string to be translated.%% |
+^ [[:develop:api:efl:ui:scrollable|Efl.Ui.Scrollable]] ^^^
+| | **[[:develop:api:efl:ui:scrollable:property:bounce_enabled|bounce_enabled]]** //**(get, set)**// | %%When scrolling, the scroller may "bounce" when reaching the edge of the content object. This is a visual way to indicate the end has been reached. This is enabled by default for both axes. This property determines if bouncing is enabled in each axis. When bouncing is disabled, scrolling just stops upon reaching the end of the content.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:content_pos|content_pos]]** //**(get, set)**// | %%Position of the content inside the scroller.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:content_size|content_size]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:scrollable:property:gravity|gravity]]** //**(get, set)**// | %%Control scrolling gravity on the scrollable.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:looping|looping]]** //**(get, set)**// | %%Controls infinite looping for a scroller.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:match_content|match_content]]** //**(set)**// | |
+| | **[[:develop:api:efl:ui:scrollable:property:movement_block|movement_block]]** //**(get, set)**// | %%Blocking of scrolling (per axis).%% |
+| | **[[:develop:api:efl:ui:scrollable:property:scroll_freeze|scroll_freeze]]** //**(get, set)**// | %%Freezes scrolling movement (by input of a user). Unlike %%[[:develop:api:efl:ui:scrollable:property:movement_block|Efl.Ui.Scrollable.movement_block]]%%, this property freezes bidirectionally. If you want to freeze in only one direction, see %%[[:develop:api:efl:ui:scrollable:property:movement_block|Efl.Ui.Scrollable.movement_block]]%%.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:scroll_hold|scroll_hold]]** //**(get, set)**// | %%When hold turns on, it only scrolls by holding action.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:step_size|step_size]]** //**(get, set)**// | %%Amount to scroll in response to cursor key presses.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:viewport_geometry|viewport_geometry]]** //**(get)**// | |
+^ [[:develop:api:efl:ui:scrollbar|Efl.Ui.Scrollbar]] ^^^
+| | **[[:develop:api:efl:ui:scrollbar:property:bar_mode|bar_mode]]** //**(get, set)**// | %%Scrollbar visibility mode, for each of the scrollbars.%% |
+| | **[[:develop:api:efl:ui:scrollbar:property:bar_position|bar_position]]** //**(get, set)**// | %%Position of the thumb (the draggable zone) inside the scrollbar. It is calculated based on current position of the viewport inside the total content.%% |
+| | **[[:develop:api:efl:ui:scrollbar:property:bar_size|bar_size]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:scrollbar:method:bar_visibility_update|bar_visibility_update]]** | %%Update bar visibility.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:ui:widget:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| | **[[:develop:api:efl:ui:widget:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:widget:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_calculate|group_calculate]]** | %%Triggers an immediate recalculation of this object's geometry.%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:part_get|part_get]]** | %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+
+===== Events =====
+
+**[[:develop:api:efl:ui:image_zoomable:event:download_done|download,done]]**\\
+> %%Called when photocam download finished%%
+
+EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_DONE(void)
+
+\\ **[[:develop:api:efl:ui:image_zoomable:event:download_error|download,error]]**\\
+> %%Called when photocam download failed%%
+
+EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_ERROR(Elm_Photocam_Error)
+
+\\ **[[:develop:api:efl:ui:image_zoomable:event:download_progress|download,progress]]**\\
+> %%Called when photocam download progress updated%%
+
+EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_PROGRESS(Elm_Photocam_Progress)
+
+\\ **[[:develop:api:efl:ui:image_zoomable:event:download_start|download,start]]**\\
+> %%Called when photocam download started%%
+
+EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_START(void)
+
+\\ **[[:develop:api:efl:ui:image_zoomable:event:load|load]]**\\
+> %%Called when photocam loading started%%
+
+EFL_UI_IMAGE_ZOOMABLE_EVENT_LOAD(void)
+
+\\ **[[:develop:api:efl:ui:image_zoomable:event:load_detail|load,detail]]**\\
+> %%Called when photocal detail loading started%%
+
+EFL_UI_IMAGE_ZOOMABLE_EVENT_LOAD_DETAIL(void)
+
+\\ **[[:develop:api:efl:ui:image_zoomable:event:loaded|loaded]]**\\
+> %%Called when photocam loading finished%%
+
+EFL_UI_IMAGE_ZOOMABLE_EVENT_LOADED(void)
+
+\\ **[[:develop:api:efl:ui:image_zoomable:event:loaded_detail|loaded,detail]]**\\
+> %%Called when photocam detail loading finished%%
+
+EFL_UI_IMAGE_ZOOMABLE_EVENT_LOADED_DETAIL(void)
+
+\\ **[[:develop:api:efl:ui:image_zoomable:event:press|press]]**\\
+> %%Called when photocam got pressed%%
+
+EFL_UI_IMAGE_ZOOMABLE_EVENT_PRESS(void)
+
+\\ ==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:image|Efl.Gfx.Image]] ^^^
+| | **[[:develop:api:efl:gfx:image:event:image_preload_state_changed|image,preload_state,changed]]** | %%If %%''true''%%, image data has been preloaded and can be displayed. If %%''false''%%, the image data has been unloaded and can no longer be displayed.%% |
+| | **[[:develop:api:efl:gfx:image:event:image_resized|image,resized]]** | %%Image was resized (its pixel data). The event data is the image's new size.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] ^^^
+| | **[[:develop:api:efl:input:clickable:event:clicked|clicked]]** | %%Called when object is in sequence pressed and unpressed by the primary button%% |
+| | **[[:develop:api:efl:input:clickable:event:clicked_any|clicked,any]]** | %%Called when object is in sequence pressed and unpressed by any button. The button that triggered the event can be found in the event information.%% |
+| | **[[:develop:api:efl:input:clickable:event:longpressed|longpressed]]** | %%Called when the object receives a long press, event_info is the button that got pressed%% |
+| | **[[:develop:api:efl:input:clickable:event:pressed|pressed]]** | %%Called when the object is pressed, event_info is the button that got pressed%% |
+| | **[[:develop:api:efl:input:clickable:event:unpressed|unpressed]]** | %%Called when the object is no longer pressed, event_info is the button that got pressed%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] ^^^
+| | **[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]** | %%A circular dependency between parts of the object was found.%% |
+| | **[[:develop:api:efl:layout:calc:event:recalc|recalc]]** | %%The layout was recalculated.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:draggable|Efl.Ui.Draggable]] ^^^
+| | **[[:develop:api:efl:ui:draggable:event:drag|drag]]** | %%Called when drag operation starts%% |
+| | **[[:develop:api:efl:ui:draggable:event:drag_end|drag,end]]** | %%Called when drag operation ends%% |
+| | **[[:develop:api:efl:ui:draggable:event:drag_start|drag,start]]** | %%Called when drag started%% |
+| | **[[:develop:api:efl:ui:draggable:event:drag_start_down|drag,start,down]]** | %%Called when drag starts into down direction%% |
+| | **[[:develop:api:efl:ui:draggable:event:drag_start_left|drag,start,left]]** | %%Called when drag starts into left direction%% |
+| | **[[:develop:api:efl:ui:draggable:event:drag_start_right|drag,start,right]]** | %%Called when drag starts into right direction%% |
+| | **[[:develop:api:efl:ui:draggable:event:drag_start_up|drag,start,up]]** | %%Called when drag starts into up direction%% |
+| | **[[:develop:api:efl:ui:draggable:event:drag_stop|drag,stop]]** | %%Called when drag stopped%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:image|Efl.Ui.Image]] ^^^
+| | **[[:develop:api:efl:ui:image:event:drop|drop]]** | %%Called when drop from drag and drop happened%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:scrollable|Efl.Ui.Scrollable]] ^^^
+| | **[[:develop:api:efl:ui:scrollable:event:edge_down|edge,down]]** | %%Called when hitting the bottom edge.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:edge_left|edge,left]]** | %%Called when hitting the left edge.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:edge_right|edge,right]]** | %%Called when hitting the right edge.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:edge_up|edge,up]]** | %%Called when hitting the top edge.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_anim_finished|scroll,anim,finished]]** | %%Called when scroll animation finishes.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_anim_started|scroll,anim,started]]** | %%Called when scroll animation starts.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_changed|scroll,changed]]** | %%Called when scrolling.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_down|scroll,down]]** | %%Called when scrolling downwards.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_drag_finished|scroll,drag,finished]]** | %%Called when scroll drag finishes.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_drag_started|scroll,drag,started]]** | %%Called when scroll drag starts.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_finished|scroll,finished]]** | %%Called when scroll operation finishes.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_left|scroll,left]]** | %%Called when scrolling left.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_right|scroll,right]]** | %%Called when scrolling right.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_started|scroll,started]]** | %%Called when scroll operation starts.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_up|scroll,up]]** | %%Called when scrolling upwards.%% |
+^ [[:develop:api:efl:ui:scrollbar|Efl.Ui.Scrollbar]] ^^^
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_dragged|bar,dragged]]** | %%Emitted when thumb is dragged.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_hide|bar,hide]]** | %%Emitted when scrollbar is hidden.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_pos_changed|bar,pos,changed]]** | %%Emitted when thumb position has changed.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_pressed|bar,pressed]]** | %%Emitted when thumb is pressed.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_show|bar,show]]** | %%Emitted when scrollbar is shown.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_size_changed|bar,size,changed]]** | %%Emitted when thumb size has changed.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_unpressed|bar,unpressed]]** | %%Emitted when thumb is unpressed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
+^ [[:develop:api:efl:ui:zoom|Efl.Ui.Zoom]] ^^^
+| | **[[:develop:api:efl:ui:zoom:event:zoom_change|zoom,change]]** | %%Called when zooming changed%% |
+| | **[[:develop:api:efl:ui:zoom:event:zoom_start|zoom,start]]** | %%Called when zooming started%% |
+| | **[[:develop:api:efl:ui:zoom:event:zoom_stop|zoom,stop]]** | %%Called when zooming stopped%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/download_done.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/download_done.txt
new file mode 100644
index 00000000..184f1628
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/download_done.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Image_Zoomable: download,done~~
+
+===== Description =====
+
+%%Called when photocam download finished%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:image_zoomable:event:download_done:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+download,done;
+
+
+===== C information =====
+
+
+EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_DONE(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_image_zoomable_event_download_done(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_DONE, on_efl_ui_image_zoomable_event_download_done, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/download_error.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/download_error.txt
new file mode 100644
index 00000000..438cd1e8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/download_error.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Image_Zoomable: download,error~~
+
+===== Description =====
+
+%%Called when photocam download failed%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:image_zoomable:event:download_error:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+download,error: Elm.Photocam.Error;
+
+
+===== C information =====
+
+
+EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_ERROR(Elm_Photocam_Error)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_image_zoomable_event_download_error(void *data, const Efl_Event *event)
+{
+ Elm_Photocam_Error info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_ERROR, on_efl_ui_image_zoomable_event_download_error, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/download_progress.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/download_progress.txt
new file mode 100644
index 00000000..026c783a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/download_progress.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Image_Zoomable: download,progress~~
+
+===== Description =====
+
+%%Called when photocam download progress updated%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:image_zoomable:event:download_progress:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+download,progress: Elm.Photocam.Progress;
+
+
+===== C information =====
+
+
+EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_PROGRESS(Elm_Photocam_Progress)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_image_zoomable_event_download_progress(void *data, const Efl_Event *event)
+{
+ Elm_Photocam_Progress info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_PROGRESS, on_efl_ui_image_zoomable_event_download_progress, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/download_start.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/download_start.txt
new file mode 100644
index 00000000..625463a6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/download_start.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Image_Zoomable: download,start~~
+
+===== Description =====
+
+%%Called when photocam download started%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:image_zoomable:event:download_start:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+download,start;
+
+
+===== C information =====
+
+
+EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_START(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_image_zoomable_event_download_start(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_START, on_efl_ui_image_zoomable_event_download_start, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/load.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/load.txt
new file mode 100644
index 00000000..e2964661
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/load.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Image_Zoomable: load~~
+
+===== Description =====
+
+%%Called when photocam loading started%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:image_zoomable:event:load:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+load;
+
+
+===== C information =====
+
+
+EFL_UI_IMAGE_ZOOMABLE_EVENT_LOAD(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_image_zoomable_event_load(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_IMAGE_ZOOMABLE_EVENT_LOAD, on_efl_ui_image_zoomable_event_load, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/load_detail.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/load_detail.txt
new file mode 100644
index 00000000..ba43c9db
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/load_detail.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Image_Zoomable: load,detail~~
+
+===== Description =====
+
+%%Called when photocal detail loading started%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:image_zoomable:event:load_detail:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+load,detail;
+
+
+===== C information =====
+
+
+EFL_UI_IMAGE_ZOOMABLE_EVENT_LOAD_DETAIL(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_image_zoomable_event_load_detail(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_IMAGE_ZOOMABLE_EVENT_LOAD_DETAIL, on_efl_ui_image_zoomable_event_load_detail, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/loaded.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/loaded.txt
new file mode 100644
index 00000000..a72eb6fe
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/loaded.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Image_Zoomable: loaded~~
+
+===== Description =====
+
+%%Called when photocam loading finished%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:image_zoomable:event:loaded:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+loaded;
+
+
+===== C information =====
+
+
+EFL_UI_IMAGE_ZOOMABLE_EVENT_LOADED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_image_zoomable_event_loaded(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_IMAGE_ZOOMABLE_EVENT_LOADED, on_efl_ui_image_zoomable_event_loaded, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/loaded_detail.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/loaded_detail.txt
new file mode 100644
index 00000000..e300c559
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/loaded_detail.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Image_Zoomable: loaded,detail~~
+
+===== Description =====
+
+%%Called when photocam detail loading finished%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:image_zoomable:event:loaded_detail:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+loaded,detail;
+
+
+===== C information =====
+
+
+EFL_UI_IMAGE_ZOOMABLE_EVENT_LOADED_DETAIL(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_image_zoomable_event_loaded_detail(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_IMAGE_ZOOMABLE_EVENT_LOADED_DETAIL, on_efl_ui_image_zoomable_event_loaded_detail, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/press.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/press.txt
new file mode 100644
index 00000000..cf0906c2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/event/press.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Image_Zoomable: press~~
+
+===== Description =====
+
+%%Called when photocam got pressed%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:image_zoomable:event:press:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+press;
+
+
+===== C information =====
+
+
+EFL_UI_IMAGE_ZOOMABLE_EVENT_PRESS(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_image_zoomable_event_press(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_IMAGE_ZOOMABLE_EVENT_PRESS, on_efl_ui_image_zoomable_event_press, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/constructor.txt
new file mode 100644
index 00000000..60cd8317
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Image_Zoomable.constructor~~
+====== Efl.Ui.Image_Zoomable.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image_zoomable:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:image:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/group_member_add.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/group_member_add.txt
new file mode 100644
index 00000000..f07362f7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/group_member_add.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Image_Zoomable.group_member_add~~
+====== Efl.Ui.Image_Zoomable.group_member_add ======
+
+===== Description =====
+
+%%Set a canvas object as a member of a given group (or smart object).%%
+
+%%Members will automatically be stacked and layered together with the smart object. The various stacking functions will operate on members relative to the other members instead of the entire canvas, since they now live on an exclusive layer (see %%[[:develop:api:efl:gfx:stack:method:stack_above|Efl.Gfx.Stack.stack_above]]%%(), for more details).%%
+
+%%Subclasses inheriting from this one may override this function to ensure the proper stacking of special objects, such as clippers, event rectangles, etc...%%
+
+%%See also %%[[:develop:api:efl:canvas:group:method:group_member_remove|Efl.Canvas.Group.group_member_remove]]%%. See also %%[[:develop:api:efl:canvas:group:method:group_member_is|Efl.Canvas.Group.group_member_is]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image_zoomable:method:group_member_add:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:image:method:group_member_add|Efl.Canvas.Group.group_member_add]].//===== Signature =====
+
+
+group_member_add {
+ params {
+ @in sub_obj: Efl.Canvas.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_canvas_group_member_add(Eo *obj, Efl_Canvas_Object *sub_obj);
+
+
+===== Parameters =====
+
+ * **sub_obj** //(in)// - %%The member object.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]
+ * [[:develop:api:efl:canvas:event_grabber:method:group_member_add|Efl.Canvas.Event_Grabber.group_member_add]]
+ * [[:develop:api:efl:ui:widget:method:group_member_add|Efl.Ui.Widget.group_member_add]]
+ * [[:develop:api:efl:ui:image:method:group_member_add|Efl.Ui.Image.group_member_add]]
+ * [[:develop:api:efl:ui:image_zoomable:method:group_member_add|Efl.Ui.Image_Zoomable.group_member_add]]
+ * [[:develop:api:efl:ui:text:method:group_member_add|Efl.Ui.Text.group_member_add]]
+ * [[:develop:api:efl:ui:panel:method:group_member_add|Efl.Ui.Panel.group_member_add]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/load.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/load.txt
new file mode 100644
index 00000000..cd0f8e4a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/load.txt
@@ -0,0 +1,48 @@
+~~Title: Efl.Ui.Image_Zoomable.load~~
+====== Efl.Ui.Image_Zoomable.load ======
+
+===== Description =====
+
+%%Perform all necessary operations to open and load file data into the object using the %%[[:develop:api:efl:file:property:file|Efl.File.file]]%% (or %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap]]%%) and %%[[:develop:api:efl:file:property:key|Efl.File.key]]%% properties.%%
+
+%%In the case where %%[[:develop:api:efl:file:property:file|Efl.File.file.set]]%% has been called on an object, this will internally open the file and call %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap.set]]%% on the object using the opened file handle.%%
+
+%%Calling %%[[:develop:api:efl:file:method:load|Efl.File.load]]%% on an object which has already performed file operations based on the currently set properties will have no effect.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image_zoomable:method:load:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:image:method:load|Efl.File.load]].//===== Signature =====
+
+
+load {
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_file_load(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:method:load|Efl.File.load]]
+ * [[:develop:api:evas:canvas3d:mesh:method:load|Evas.Canvas3D.Mesh.load]]
+ * [[:develop:api:efl:ui:win_part:method:load|Efl.Ui.Win_Part.load]]
+ * [[:develop:api:efl:canvas:video:method:load|Efl.Canvas.Video.load]]
+ * [[:develop:api:efl:ui:text:method:load|Efl.Ui.Text.load]]
+ * [[:develop:api:efl:canvas:image:method:load|Efl.Canvas.Image.load]]
+ * [[:develop:api:efl:canvas:layout:method:load|Efl.Canvas.Layout.load]]
+ * [[:develop:api:efl:ui:layout:method:load|Efl.Ui.Layout.load]]
+ * [[:develop:api:efl:ui:image:method:load|Efl.Ui.Image.load]]
+ * [[:develop:api:efl:ui:image_zoomable:method:load|Efl.Ui.Image_Zoomable.load]]
+ * [[:develop:api:efl:ui:animation_view:method:load|Efl.Ui.Animation_View.load]]
+ * [[:develop:api:evas:canvas3d:texture:method:load|Evas.Canvas3D.Texture.load]]
+ * [[:develop:api:efl:canvas:vg:object:method:load|Efl.Canvas.Vg.Object.load]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:load|Efl.Ui.Widget_Part_Bg.load]]
+ * [[:develop:api:efl:ui:video:method:load|Efl.Ui.Video.load]]
+ * [[:develop:api:efl:ui:popup_part_backwall:method:load|Efl.Ui.Popup_Part_Backwall.load]]
+ * [[:develop:api:efl:ui:bg:method:load|Efl.Ui.Bg.load]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/on_focus_update.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/on_focus_update.txt
new file mode 100644
index 00000000..9138256d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/on_focus_update.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.Image_Zoomable.on_focus_update~~
+====== Efl.Ui.Image_Zoomable.on_focus_update ======
+
+===== Description =====
+
+%%Virtual function handling focus in/out events on the widget.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image_zoomable:method:on_focus_update:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:on_focus_update|Efl.Ui.Focus.Object.on_focus_update]].//===== Signature =====
+
+
+on_focus_update @protected {
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_focus_object_on_focus_update(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:object:method:on_focus_update|Efl.Ui.Focus.Object.on_focus_update]]
+ * [[:develop:api:efl:ui:widget:method:on_focus_update|Efl.Ui.Widget.on_focus_update]]
+ * [[:develop:api:efl:ui:win:method:on_focus_update|Efl.Ui.Win.on_focus_update]]
+ * [[:develop:api:efl:ui:image_zoomable:method:on_focus_update|Efl.Ui.Image_Zoomable.on_focus_update]]
+ * [[:develop:api:efl:ui:layout_base:method:on_focus_update|Efl.Ui.Layout_Base.on_focus_update]]
+ * [[:develop:api:efl:ui:slider:method:on_focus_update|Efl.Ui.Slider.on_focus_update]]
+ * [[:develop:api:efl:ui:text:method:on_focus_update|Efl.Ui.Text.on_focus_update]]
+ * [[:develop:api:efl:ui:spin_button:method:on_focus_update|Efl.Ui.Spin_Button.on_focus_update]]
+ * [[:develop:api:efl:ui:calendar:method:on_focus_update|Efl.Ui.Calendar.on_focus_update]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/scroll.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/scroll.txt
new file mode 100644
index 00000000..0b0c342b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/scroll.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Image_Zoomable.scroll~~
+====== Efl.Ui.Image_Zoomable.scroll ======
+
+===== Description =====
+
+%%Show a specific virtual region within the scroller content object.%%
+
+%%This will ensure all (or part if it does not fit) of the designated region in the virtual content object (%%''0,0''%% starting at the top-left of the virtual content object) is shown within the scroller. This allows the scroller to "smoothly slide" to this location (if configuration in general calls for transitions). It may not jump immediately to the new location and make take a while and show other content along the way.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image_zoomable:method:scroll:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:scrollable:method:scroll|Efl.Ui.Scrollable.scroll]].//===== Signature =====
+
+
+scroll @pure_virtual {
+ params {
+ @in rect: Eina.Rect;
+ @in animation: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_scrollable_scroll(Eo *obj, Eina_Rect rect, Eina_Bool animation);
+
+
+===== Parameters =====
+
+ * **rect** //(in)// - %%The position where to scroll and the size user want to see.%%
+ * **animation** //(in)// - %%Whether to scroll with animation or not.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:scrollable:method:scroll|Efl.Ui.Scrollable.scroll]]
+ * [[:develop:api:efl:ui:image_zoomable:method:scroll|Efl.Ui.Image_Zoomable.scroll]]
+ * [[:develop:api:efl:ui:scroll:manager:method:scroll|Efl.Ui.Scroll.Manager.scroll]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/signal_callback_add.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/signal_callback_add.txt
new file mode 100644
index 00000000..563334f8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/signal_callback_add.txt
@@ -0,0 +1,60 @@
+~~Title: Efl.Ui.Image_Zoomable.signal_callback_add~~
+====== Efl.Ui.Image_Zoomable.signal_callback_add ======
+
+===== Description =====
+
+%%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%%
+
+%%Edje signals are one of the communication interfaces between code and a given Edje object's theme. With signals, one can communicate two string values at a time, which are: - "emission" value: the name of the signal, in general - "source" value: a name for the signal's context, in general%%
+
+%%Signals can go both ways, from code to theme, or theme to code.%%
+
+%%Though there are those common uses for the two strings, one is free to use them however they like.%%
+
+%%Signal callback registration is powerful, in the way that blobs may be used to match multiple signals at once. All the "*?[" set of %%''fnmatch''%%() operators can be used, both for emission and source.%%
+
+%%Edje has internal signals it will emit, automatically, on various actions taking place on group parts. For example, the mouse cursor being moved, pressed, released, etc., over a given part's area, all generate individual signals.%%
+
+%%With something like emission = "mouse,down,*", source = "button.*" where "button.*" is the pattern for the names of parts implementing buttons on an interface, you'd be registering for notifications on events of mouse buttons being pressed down on either of those parts (those events all have the "mouse,down," common prefix on their names, with a suffix giving the button number). The actual emission and source strings of an event will be passed in as the emission and source parameters of the callback function (e.g. "mouse,down,2" and "button.close"), for each of those events.%%
+
+%%See also the Edje Data Collection Reference for EDC files.%%
+
+%%See %%[[:develop:api:efl:layout:signal:method:signal_emit|Efl.Layout.Signal.signal_emit]]%% on how to emit signals from code to a an object See %%[[:develop:api:efl:layout:signal:method:signal_callback_del|Efl.Layout.Signal.signal_callback_del]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image_zoomable:method:signal_callback_add:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:image:method:signal_callback_add|Efl.Layout.Signal.signal_callback_add]].//===== Signature =====
+
+
+signal_callback_add @pure_virtual {
+ params {
+ @in emission: string;
+ @in source: string;
+ @in func: EflLayoutSignalCb;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_layout_signal_callback_add(Eo *obj, const char *emission, const char *source, EflLayoutSignalCb func);
+
+
+===== Parameters =====
+
+ * **emission** //(in)// - %%The signal's "emission" string%%
+ * **source** //(in)// - %%The signal's "source" string%%
+ * **func** //(in)// - %%The callback function to be executed when the signal is emitted.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:signal:method:signal_callback_add|Efl.Layout.Signal.signal_callback_add]]
+ * [[:develop:api:efl:canvas:layout:method:signal_callback_add|Efl.Canvas.Layout.signal_callback_add]]
+ * [[:develop:api:efl:ui:image:method:signal_callback_add|Efl.Ui.Image.signal_callback_add]]
+ * [[:develop:api:efl:ui:image_zoomable:method:signal_callback_add|Efl.Ui.Image_Zoomable.signal_callback_add]]
+ * [[:develop:api:efl:ui:layout_base:method:signal_callback_add|Efl.Ui.Layout_Base.signal_callback_add]]
+ * [[:develop:api:efl:ui:text:method:signal_callback_add|Efl.Ui.Text.signal_callback_add]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/signal_callback_del.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/signal_callback_del.txt
new file mode 100644
index 00000000..a835a2c2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/signal_callback_del.txt
@@ -0,0 +1,48 @@
+~~Title: Efl.Ui.Image_Zoomable.signal_callback_del~~
+====== Efl.Ui.Image_Zoomable.signal_callback_del ======
+
+===== Description =====
+
+%%Removes a signal-triggered callback from an object.%%
+
+%%This function removes a callback, previously attached to the emission of a signal, from the object obj. The parameters emission, source and func must match exactly those passed to a previous call to %%[[:develop:api:efl:layout:signal:method:signal_callback_add|Efl.Layout.Signal.signal_callback_add]]%%().%%
+
+%%See %%[[:develop:api:efl:layout:signal:method:signal_callback_add|Efl.Layout.Signal.signal_callback_add]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image_zoomable:method:signal_callback_del:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:image:method:signal_callback_del|Efl.Layout.Signal.signal_callback_del]].//===== Signature =====
+
+
+signal_callback_del @pure_virtual {
+ params {
+ @in emission: string;
+ @in source: string;
+ @in func: EflLayoutSignalCb;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_layout_signal_callback_del(Eo *obj, const char *emission, const char *source, EflLayoutSignalCb func);
+
+
+===== Parameters =====
+
+ * **emission** //(in)// - %%The signal's "emission" string%%
+ * **source** //(in)// - %%The signal's "source" string%%
+ * **func** //(in)// - %%The callback function to be executed when the signal is emitted.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:signal:method:signal_callback_del|Efl.Layout.Signal.signal_callback_del]]
+ * [[:develop:api:efl:canvas:layout:method:signal_callback_del|Efl.Canvas.Layout.signal_callback_del]]
+ * [[:develop:api:efl:ui:image:method:signal_callback_del|Efl.Ui.Image.signal_callback_del]]
+ * [[:develop:api:efl:ui:image_zoomable:method:signal_callback_del|Efl.Ui.Image_Zoomable.signal_callback_del]]
+ * [[:develop:api:efl:ui:layout_base:method:signal_callback_del|Efl.Ui.Layout_Base.signal_callback_del]]
+ * [[:develop:api:efl:ui:text:method:signal_callback_del|Efl.Ui.Text.signal_callback_del]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/theme_apply.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/theme_apply.txt
new file mode 100644
index 00000000..c97c89c3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/theme_apply.txt
@@ -0,0 +1,55 @@
+~~Title: Efl.Ui.Image_Zoomable.theme_apply~~
+====== Efl.Ui.Image_Zoomable.theme_apply ======
+
+===== Description =====
+
+%%Virtual function called when the widget needs to re-apply its theme.%%
+
+%%This may be called when the object is first created, or whenever the widget is modified in any way that may require a reload of the theme. This may include but is not limited to scale, theme, or mirrored mode changes.%%
+
+
+theme_apply @protected {
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_widget_theme_apply(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:theme_apply|Efl.Ui.Widget.theme_apply]]
+ * [[:develop:api:efl:ui:win:method:theme_apply|Efl.Ui.Win.theme_apply]]
+ * [[:develop:api:efl:ui:flip:method:theme_apply|Efl.Ui.Flip.theme_apply]]
+ * [[:develop:api:efl:ui:image:method:theme_apply|Efl.Ui.Image.theme_apply]]
+ * [[:develop:api:efl:ui:image_zoomable:method:theme_apply|Efl.Ui.Image_Zoomable.theme_apply]]
+ * [[:develop:api:efl:ui:layout_base:method:theme_apply|Efl.Ui.Layout_Base.theme_apply]]
+ * [[:develop:api:efl:ui:slider:method:theme_apply|Efl.Ui.Slider.theme_apply]]
+ * [[:develop:api:efl:ui:check:method:theme_apply|Efl.Ui.Check.theme_apply]]
+ * [[:develop:api:efl:ui:radio:method:theme_apply|Efl.Ui.Radio.theme_apply]]
+ * [[:develop:api:efl:ui:clock:method:theme_apply|Efl.Ui.Clock.theme_apply]]
+ * [[:develop:api:efl:ui:text:method:theme_apply|Efl.Ui.Text.theme_apply]]
+ * [[:develop:api:efl:ui:spin_button:method:theme_apply|Efl.Ui.Spin_Button.theme_apply]]
+ * [[:develop:api:efl:ui:collection_view:method:theme_apply|Efl.Ui.Collection_View.theme_apply]]
+ * [[:develop:api:efl:ui:panel:method:theme_apply|Efl.Ui.Panel.theme_apply]]
+ * [[:develop:api:efl:ui:slider_interval:method:theme_apply|Efl.Ui.Slider_Interval.theme_apply]]
+ * [[:develop:api:elm:code_widget:method:theme_apply|Elm.Code_Widget.theme_apply]]
+ * [[:develop:api:efl:ui:textpath:method:theme_apply|Efl.Ui.Textpath.theme_apply]]
+ * [[:develop:api:efl:ui:scroller:method:theme_apply|Efl.Ui.Scroller.theme_apply]]
+ * [[:develop:api:efl:ui:collection:method:theme_apply|Efl.Ui.Collection.theme_apply]]
+ * [[:develop:api:efl:ui:panes:method:theme_apply|Efl.Ui.Panes.theme_apply]]
+ * [[:develop:api:efl:ui:calendar:method:theme_apply|Efl.Ui.Calendar.theme_apply]]
+ * [[:develop:api:efl:ui:progressbar:method:theme_apply|Efl.Ui.Progressbar.theme_apply]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/unload.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/unload.txt
new file mode 100644
index 00000000..96f6b14c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/unload.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Image_Zoomable.unload~~
+====== Efl.Ui.Image_Zoomable.unload ======
+
+===== Description =====
+
+%%Perform all necessary operations to unload file data from the object.%%
+
+%%In the case where %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap.set]]%% has been externally called on an object, the file handle stored in the object will be preserved.%%
+
+%%Calling %%[[:develop:api:efl:file:method:unload|Efl.File.unload]]%% on an object which is not currently loaded will have no effect.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image_zoomable:method:unload:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:image:method:unload|Efl.File.unload]].//===== Signature =====
+
+
+unload {}
+
+
+===== C signature =====
+
+
+void efl_file_unload(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:method:unload|Efl.File.unload]]
+ * [[:develop:api:evas:canvas3d:mesh:method:unload|Evas.Canvas3D.Mesh.unload]]
+ * [[:develop:api:efl:ui:win_part:method:unload|Efl.Ui.Win_Part.unload]]
+ * [[:develop:api:efl:canvas:video:method:unload|Efl.Canvas.Video.unload]]
+ * [[:develop:api:efl:ui:text:method:unload|Efl.Ui.Text.unload]]
+ * [[:develop:api:efl:canvas:image:method:unload|Efl.Canvas.Image.unload]]
+ * [[:develop:api:efl:canvas:layout:method:unload|Efl.Canvas.Layout.unload]]
+ * [[:develop:api:efl:ui:layout:method:unload|Efl.Ui.Layout.unload]]
+ * [[:develop:api:efl:ui:image:method:unload|Efl.Ui.Image.unload]]
+ * [[:develop:api:efl:ui:image_zoomable:method:unload|Efl.Ui.Image_Zoomable.unload]]
+ * [[:develop:api:efl:ui:animation_view:method:unload|Efl.Ui.Animation_View.unload]]
+ * [[:develop:api:evas:canvas3d:texture:method:unload|Evas.Canvas3D.Texture.unload]]
+ * [[:develop:api:efl:canvas:vg:object:method:unload|Efl.Canvas.Vg.Object.unload]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:unload|Efl.Ui.Widget_Part_Bg.unload]]
+ * [[:develop:api:efl:ui:video:method:unload|Efl.Ui.Video.unload]]
+ * [[:develop:api:efl:ui:popup_part_backwall:method:unload|Efl.Ui.Popup_Part_Backwall.unload]]
+ * [[:develop:api:efl:ui:bg:method:unload|Efl.Ui.Bg.unload]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/widget_input_event_handler.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/widget_input_event_handler.txt
new file mode 100644
index 00000000..bb2a83d0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/method/widget_input_event_handler.txt
@@ -0,0 +1,57 @@
+~~Title: Efl.Ui.Image_Zoomable.widget_input_event_handler~~
+====== Efl.Ui.Image_Zoomable.widget_input_event_handler ======
+
+===== Description =====
+
+%%Virtual function handling input events on the widget.%%
+
+%%This method should return %%''true''%% if the event has been processed. Only key down, key up and pointer wheel events will be propagated through this function.%%
+
+%%It is common for the event to be also marked as processed as in %%[[:develop:api:efl:input:event:property:processed|Efl.Input.Event.processed]]%%, if this operation was successful. This makes sure other widgets will not also process this input event.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image_zoomable:method:widget_input_event_handler:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:image:method:widget_input_event_handler|Efl.Ui.Widget.widget_input_event_handler]].//===== Signature =====
+
+
+widget_input_event_handler @protected {
+ params {
+ @in eo_event: const(event);
+ @in source: Efl.Canvas.Object;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_input_event_handler(Eo *obj, const Efl_Event *eo_event, Efl_Canvas_Object *source);
+
+
+===== Parameters =====
+
+ * **eo_event** //(in)// - %%EO event struct with an Efl.Input.Event as info.%%
+ * **source** //(in)// - %%Source object where the event originated. Often same as this.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:widget_input_event_handler|Efl.Ui.Widget.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:win:method:widget_input_event_handler|Efl.Ui.Win.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:image:method:widget_input_event_handler|Efl.Ui.Image.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:image_zoomable:method:widget_input_event_handler|Efl.Ui.Image_Zoomable.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:slider:method:widget_input_event_handler|Efl.Ui.Slider.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:check:method:widget_input_event_handler|Efl.Ui.Check.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:radio:method:widget_input_event_handler|Efl.Ui.Radio.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:spin_button:method:widget_input_event_handler|Efl.Ui.Spin_Button.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:panel:method:widget_input_event_handler|Efl.Ui.Panel.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:item:method:widget_input_event_handler|Efl.Ui.Item.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:slider_interval:method:widget_input_event_handler|Efl.Ui.Slider_Interval.widget_input_event_handler]]
+ * [[:develop:api:elm:code_widget:method:widget_input_event_handler|Elm.Code_Widget.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:tags:method:widget_input_event_handler|Efl.Ui.Tags.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:scroller:method:widget_input_event_handler|Efl.Ui.Scroller.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:calendar:method:widget_input_event_handler|Efl.Ui.Calendar.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:video:method:widget_input_event_handler|Efl.Ui.Video.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:button:method:widget_input_event_handler|Efl.Ui.Button.widget_input_event_handler]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/elm_actions.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/elm_actions.txt
new file mode 100644
index 00000000..76d49319
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/elm_actions.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Image_Zoomable.elm_actions~~
+====== Efl.Ui.Image_Zoomable.elm_actions ======
+
+===== Values =====
+
+ * **actions** - %%NULL-terminated array of Efl.Access.Action_Data.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:image_zoomable:property:elm_actions:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:image:property:elm_actions|Efl.Access.Widget.Action.elm_actions]] **(get)**.//===== Signature =====
+
+
+@property elm_actions @beta @pure_virtual {
+ get @protected {}
+ values {
+ actions: ptr(const(Efl.Access.Action_Data));
+ }
+}
+
+
+===== C signature =====
+
+
+const Efl_Access_Action_Data *efl_access_widget_action_elm_actions_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:widget:action:property:elm_actions|Efl.Access.Widget.Action.elm_actions]]
+ * [[:develop:api:efl:ui:slider:property:elm_actions|Efl.Ui.Slider.elm_actions]]
+ * [[:develop:api:efl:ui:check:property:elm_actions|Efl.Ui.Check.elm_actions]]
+ * [[:develop:api:efl:ui:radio:property:elm_actions|Efl.Ui.Radio.elm_actions]]
+ * [[:develop:api:efl:ui:win:property:elm_actions|Efl.Ui.Win.elm_actions]]
+ * [[:develop:api:efl:ui:spin_button:property:elm_actions|Efl.Ui.Spin_Button.elm_actions]]
+ * [[:develop:api:efl:ui:panel:property:elm_actions|Efl.Ui.Panel.elm_actions]]
+ * [[:develop:api:efl:ui:slider_interval:property:elm_actions|Efl.Ui.Slider_Interval.elm_actions]]
+ * [[:develop:api:efl:ui:image:property:elm_actions|Efl.Ui.Image.elm_actions]]
+ * [[:develop:api:efl:ui:image_zoomable:property:elm_actions|Efl.Ui.Image_Zoomable.elm_actions]]
+ * [[:develop:api:efl:ui:calendar:property:elm_actions|Efl.Ui.Calendar.elm_actions]]
+ * [[:develop:api:efl:ui:video:property:elm_actions|Efl.Ui.Video.elm_actions]]
+ * [[:develop:api:efl:ui:button:property:elm_actions|Efl.Ui.Button.elm_actions]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/file.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/file.txt
new file mode 100644
index 00000000..e51e97de
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/file.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Ui.Image_Zoomable.file~~
+====== Efl.Ui.Image_Zoomable.file ======
+
+===== Description =====
+
+%%The file path from where an object will fetch the data.%%
+
+%%If file is set during object construction, the object will automatically call %%[[:develop:api:efl:file:method:load|Efl.File.load]]%% during the finalize phase of construction.%%
+
+%%You must not modify the strings on the returned pointers.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image_zoomable:property:file:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **file** - %%The file path.%%
+
+//Overridden from [[:develop:api:efl:file:property:file|Efl.File.file]] **(get, set)**.//===== Signature =====
+
+
+@property file {
+ get {}
+ set {
+ return: Eina.Error;
+ }
+ values {
+ file: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_file_get(const Eo *obj);
+Eina_Error efl_file_set(Eo *obj, const char *file);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:property:file|Efl.File.file]]
+ * [[:develop:api:efl:ui:win_part:property:file|Efl.Ui.Win_Part.file]]
+ * [[:develop:api:efl:canvas:video:property:file|Efl.Canvas.Video.file]]
+ * [[:develop:api:efl:ui:text:property:file|Efl.Ui.Text.file]]
+ * [[:develop:api:efl:ui:layout:property:file|Efl.Ui.Layout.file]]
+ * [[:develop:api:efl:ui:image_zoomable:property:file|Efl.Ui.Image_Zoomable.file]]
+ * [[:develop:api:efl:canvas:vg:object:property:file|Efl.Canvas.Vg.Object.file]]
+ * [[:develop:api:efl:ui:widget_part_bg:property:file|Efl.Ui.Widget_Part_Bg.file]]
+ * [[:develop:api:efl:ui:popup_part_backwall:property:file|Efl.Ui.Popup_Part_Backwall.file]]
+ * [[:develop:api:efl:ui:bg:property:file|Efl.Ui.Bg.file]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/gesture_enabled.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/gesture_enabled.txt
new file mode 100644
index 00000000..481e2006
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/gesture_enabled.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Image_Zoomable.gesture_enabled~~
+====== Efl.Ui.Image_Zoomable.gesture_enabled ======
+
+===== Description =====
+
+%%The gesture state for photocam.%%
+
+%%This sets the gesture state to on or off for photocam. The default is off. This will start multi touch zooming.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image_zoomable:property:gesture_enabled:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **gesture** - %%The gesture state.%%
+
+===== Signature =====
+
+
+@property gesture_enabled {
+ get {}
+ set {}
+ values {
+ gesture: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_image_zoomable_gesture_enabled_get(const Eo *obj);
+void efl_ui_image_zoomable_gesture_enabled_set(Eo *obj, Eina_Bool gesture);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:image_zoomable:property:gesture_enabled|Efl.Ui.Image_Zoomable.gesture_enabled]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/group_size_max.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/group_size_max.txt
new file mode 100644
index 00000000..33186b8b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/group_size_max.txt
@@ -0,0 +1,35 @@
+~~Title: Efl.Ui.Image_Zoomable.group_size_max~~
+====== Efl.Ui.Image_Zoomable.group_size_max ======
+
+===== Values =====
+
+ * **max** - %%The maximum size as set in EDC.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:image_zoomable:property:group_size_max:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:image:property:group_size_max|Efl.Layout.Group.group_size_max]] **(get)**.//===== Signature =====
+
+
+@property group_size_max @pure_virtual {
+ get {}
+ values {
+ max: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_layout_group_size_max_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:group:property:group_size_max|Efl.Layout.Group.group_size_max]]
+ * [[:develop:api:efl:canvas:layout:property:group_size_max|Efl.Canvas.Layout.group_size_max]]
+ * [[:develop:api:efl:ui:image:property:group_size_max|Efl.Ui.Image.group_size_max]]
+ * [[:develop:api:efl:ui:image_zoomable:property:group_size_max|Efl.Ui.Image_Zoomable.group_size_max]]
+ * [[:develop:api:efl:ui:layout_base:property:group_size_max|Efl.Ui.Layout_Base.group_size_max]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/group_size_min.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/group_size_min.txt
new file mode 100644
index 00000000..2d1fbf64
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/group_size_min.txt
@@ -0,0 +1,35 @@
+~~Title: Efl.Ui.Image_Zoomable.group_size_min~~
+====== Efl.Ui.Image_Zoomable.group_size_min ======
+
+===== Values =====
+
+ * **min** - %%The minimum size as set in EDC.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:image_zoomable:property:group_size_min:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:image:property:group_size_min|Efl.Layout.Group.group_size_min]] **(get)**.//===== Signature =====
+
+
+@property group_size_min @pure_virtual {
+ get {}
+ values {
+ min: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_layout_group_size_min_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:group:property:group_size_min|Efl.Layout.Group.group_size_min]]
+ * [[:develop:api:efl:canvas:layout:property:group_size_min|Efl.Canvas.Layout.group_size_min]]
+ * [[:develop:api:efl:ui:image:property:group_size_min|Efl.Ui.Image.group_size_min]]
+ * [[:develop:api:efl:ui:image_zoomable:property:group_size_min|Efl.Ui.Image_Zoomable.group_size_min]]
+ * [[:develop:api:efl:ui:layout_base:property:group_size_min|Efl.Ui.Layout_Base.group_size_min]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/icon.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/icon.txt
new file mode 100644
index 00000000..bdc85941
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/icon.txt
@@ -0,0 +1,56 @@
+~~Title: Efl.Ui.Image_Zoomable.icon~~
+====== Efl.Ui.Image_Zoomable.icon ======
+
+===== Description =====
+
+%%The image name, using icon standards names.%%
+
+%%For example, freedesktop.org defines standard icon names such as "home" and "network". There can be different icon sets to match those icon keys. The "name" given as parameter is one of these "keys" and will be used to look in the freedesktop.org paths and elementary theme.%%
+
+%%If the name is not found in any of the expected locations and is the absolute path of an image file, this image will be used. Lookup order used by %%[[:develop:api:efl:ui:image:property:icon|Efl.Ui.Image.icon.set]]%% can be set using "icon_theme" in config.%%
+
+%%If the image was set using %%[[:develop:api:efl:file:property:file|Efl.File.file]]%% instead of %%[[:develop:api:efl:ui:image:property:icon|Efl.Ui.Image.icon.set]]%%, then reading this property will return null.%%
+
+
+@property icon {
+ get {}
+ set {
+ return: bool;
+ }
+ values {
+ name: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_ui_image_icon_get(const Eo *obj);
+Eina_Bool efl_ui_image_icon_set(Eo *obj, const char *name);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:image:property:icon|Efl.Ui.Image.icon]]
+ * [[:develop:api:efl:ui:image_zoomable:property:icon|Efl.Ui.Image_Zoomable.icon]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/image_orientation.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/image_orientation.txt
new file mode 100644
index 00000000..7a087344
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/image_orientation.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Image_Zoomable.image_orientation~~
+====== Efl.Ui.Image_Zoomable.image_orientation ======
+
+===== Description =====
+
+%%Control the orientation (rotation and flipping) of a visual object.%%
+
+%%This can be used to set the rotation on an image or a window, for instance.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image_zoomable:property:image_orientation:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **dir** - %%The final orientation of the object.%%
+
+//Overridden from [[:develop:api:efl:ui:image:property:image_orientation|Efl.Gfx.Image_Orientable.image_orientation]] **(get, set)**.//===== Signature =====
+
+
+@property image_orientation @pure_virtual {
+ get {}
+ set {}
+ values {
+ dir: Efl.Gfx.Image_Orientation (Efl.Gfx.Image_Orientation.none);
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Image_Orientation efl_gfx_image_orientation_get(const Eo *obj);
+void efl_gfx_image_orientation_set(Eo *obj, Efl_Gfx_Image_Orientation dir);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image_orientable:property:image_orientation|Efl.Gfx.Image_Orientable.image_orientation]]
+ * [[:develop:api:efl:canvas:image_internal:property:image_orientation|Efl.Canvas.Image_Internal.image_orientation]]
+ * [[:develop:api:efl:ui:image:property:image_orientation|Efl.Ui.Image.image_orientation]]
+ * [[:develop:api:efl:ui:image_zoomable:property:image_orientation|Efl.Ui.Image_Zoomable.image_orientation]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/image_region.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/image_region.txt
new file mode 100644
index 00000000..b068f237
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/image_region.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Image_Zoomable.image_region~~
+====== Efl.Ui.Image_Zoomable.image_region ======
+
+===== Description =====
+
+%%The region of the image that is currently shown%%
+
+%%Setting it shows the region of the image without using animation.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image_zoomable:property:image_region:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **region** - %%The region in the original image pixels.%%
+
+===== Signature =====
+
+
+@property image_region {
+ get {}
+ set {}
+ values {
+ region: Eina.Rect;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Rect efl_ui_image_zoomable_image_region_get(const Eo *obj);
+void efl_ui_image_zoomable_image_region_set(Eo *obj, Eina_Rect region);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:image_zoomable:property:image_region|Efl.Ui.Image_Zoomable.image_region]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/image_size.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/image_size.txt
new file mode 100644
index 00000000..0acc647c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/image_size.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Ui.Image_Zoomable.image_size~~
+====== Efl.Ui.Image_Zoomable.image_size ======
+
+===== Values =====
+
+ * **size** - %%The size in pixels. The default value is the size of the image's internal buffer.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:image_zoomable:property:image_size:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:image:property:image_size|Efl.Gfx.Image.image_size]] **(get)**.//===== Signature =====
+
+
+@property image_size @pure_virtual {
+ get {}
+ values {
+ size: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_image_size_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:image:property:image_size|Efl.Gfx.Image.image_size]]
+ * [[:develop:api:efl:canvas:image_internal:property:image_size|Efl.Canvas.Image_Internal.image_size]]
+ * [[:develop:api:efl:ui:image:property:image_size|Efl.Ui.Image.image_size]]
+ * [[:develop:api:efl:ui:image_zoomable:property:image_size|Efl.Ui.Image_Zoomable.image_size]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/paused.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/paused.txt
new file mode 100644
index 00000000..1a0d88c3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/paused.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Ui.Image_Zoomable.paused~~
+====== Efl.Ui.Image_Zoomable.paused ======
+
+===== Description =====
+
+%%Pause state of the media file.%%
+
+%%This property sets the pause state of the media. Re-setting the current pause state has no effect.%%
+
+%%If %%[[:develop:api:efl:player:property:playing|Efl.Player.playing]]%% is set to %%''true''%%, this property can be used to pause and resume playback of the media without changing its %%[[:develop:api:efl:player:property:playback_progress|Efl.Player.playback_progress]]%% property. This property cannot be changed if %%[[:develop:api:efl:player:property:playing|Efl.Player.playing]]%% is %%''false''%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image_zoomable:property:paused:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **paused** - %%%%''true''%% if paused, %%''false''%% otherwise.%%
+
+//Overridden from [[:develop:api:efl:ui:image:property:paused|Efl.Player.paused]] **(get, set)**.//===== Signature =====
+
+
+@property paused @pure_virtual {
+ get {}
+ set {
+ return: bool (false);
+ }
+ values {
+ paused: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_player_paused_get(const Eo *obj);
+Eina_Bool efl_player_paused_set(Eo *obj, Eina_Bool paused);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:player:property:paused|Efl.Player.paused]]
+ * [[:develop:api:efl:canvas:video:property:paused|Efl.Canvas.Video.paused]]
+ * [[:develop:api:efl:canvas:animation_player:property:paused|Efl.Canvas.Animation_Player.paused]]
+ * [[:develop:api:efl:canvas:layout:property:paused|Efl.Canvas.Layout.paused]]
+ * [[:develop:api:efl:ui:image:property:paused|Efl.Ui.Image.paused]]
+ * [[:develop:api:efl:ui:image_zoomable:property:paused|Efl.Ui.Image_Zoomable.paused]]
+ * [[:develop:api:efl:ui:video:property:paused|Efl.Ui.Video.paused]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/playable.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/playable.txt
new file mode 100644
index 00000000..25717dbd
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/playable.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.Image_Zoomable.playable~~
+====== Efl.Ui.Image_Zoomable.playable ======
+
+===== Values =====
+
+ * **playable** - No description supplied.
+
+
+\\ {{page>:develop:api-include:efl:ui:image_zoomable:property:playable:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:image:property:playable|Efl.Playable.playable]] **(get)**.//===== Signature =====
+
+
+@property playable @pure_virtual {
+ get {}
+ values {
+ playable: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_playable_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:playable:property:playable|Efl.Playable.playable]]
+ * [[:develop:api:efl:canvas:animation_player:property:playable|Efl.Canvas.Animation_Player.playable]]
+ * [[:develop:api:efl:canvas:layout:property:playable|Efl.Canvas.Layout.playable]]
+ * [[:develop:api:efl:ui:image:property:playable|Efl.Ui.Image.playable]]
+ * [[:develop:api:efl:ui:image_zoomable:property:playable|Efl.Ui.Image_Zoomable.playable]]
+ * [[:develop:api:efl:canvas:animation:property:playable|Efl.Canvas.Animation.playable]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/playback_position.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/playback_position.txt
new file mode 100644
index 00000000..53d179a3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/playback_position.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Image_Zoomable.playback_position~~
+====== Efl.Ui.Image_Zoomable.playback_position ======
+
+===== Description =====
+
+%%Position in the media file.%%
+
+%%This property sets the current position of the media file to %%''sec''%% seconds since the beginning of the media file. This only works on seekable streams. Setting the position doesn't change the %%[[:develop:api:efl:player:property:playing|Efl.Player.playing]]%% or %%[[:develop:api:efl:player:property:paused|Efl.Player.paused]]%% states of the media file.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image_zoomable:property:playback_position:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **sec** - %%The position (in seconds).%%
+
+//Overridden from [[:develop:api:efl:ui:image:property:playback_position|Efl.Player.playback_position]] **(get, set)**.//===== Signature =====
+
+
+@property playback_position @pure_virtual {
+ get {}
+ set {}
+ values {
+ sec: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_player_playback_position_get(const Eo *obj);
+void efl_player_playback_position_set(Eo *obj, double sec);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:player:property:playback_position|Efl.Player.playback_position]]
+ * [[:develop:api:efl:canvas:video:property:playback_position|Efl.Canvas.Video.playback_position]]
+ * [[:develop:api:efl:canvas:animation_player:property:playback_position|Efl.Canvas.Animation_Player.playback_position]]
+ * [[:develop:api:efl:ui:image:property:playback_position|Efl.Ui.Image.playback_position]]
+ * [[:develop:api:efl:ui:image_zoomable:property:playback_position|Efl.Ui.Image_Zoomable.playback_position]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/playback_progress.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/playback_progress.txt
new file mode 100644
index 00000000..f42de68f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/playback_progress.txt
@@ -0,0 +1,35 @@
+~~Title: Efl.Ui.Image_Zoomable.playback_progress~~
+====== Efl.Ui.Image_Zoomable.playback_progress ======
+
+===== Values =====
+
+ * **progress** - %%The progress within the [0, 1] range.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:image_zoomable:property:playback_progress:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:image:property:playback_progress|Efl.Player.playback_progress]] **(get)**.//===== Signature =====
+
+
+@property playback_progress @pure_virtual {
+ get {}
+ values {
+ progress: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_player_playback_progress_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:player:property:playback_progress|Efl.Player.playback_progress]]
+ * [[:develop:api:efl:canvas:video:property:playback_progress|Efl.Canvas.Video.playback_progress]]
+ * [[:develop:api:efl:canvas:animation_player:property:playback_progress|Efl.Canvas.Animation_Player.playback_progress]]
+ * [[:develop:api:efl:ui:image:property:playback_progress|Efl.Ui.Image.playback_progress]]
+ * [[:develop:api:efl:ui:image_zoomable:property:playback_progress|Efl.Ui.Image_Zoomable.playback_progress]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/playback_speed.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/playback_speed.txt
new file mode 100644
index 00000000..82303389
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/playback_speed.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Image_Zoomable.playback_speed~~
+====== Efl.Ui.Image_Zoomable.playback_speed ======
+
+===== Description =====
+
+%%Control the playback speed of the media file.%%
+
+%%This function control the speed with which the media file will be played. 1.0 represents the normal speed, 2 double speed, 0.5 half speed and so on.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image_zoomable:property:playback_speed:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **speed** - %%The play speed in the [0, infinity) range.%%
+
+//Overridden from [[:develop:api:efl:ui:image:property:playback_speed|Efl.Player.playback_speed]] **(get, set)**.//===== Signature =====
+
+
+@property playback_speed @pure_virtual {
+ get {}
+ set {}
+ values {
+ speed: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_player_playback_speed_get(const Eo *obj);
+void efl_player_playback_speed_set(Eo *obj, double speed);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:player:property:playback_speed|Efl.Player.playback_speed]]
+ * [[:develop:api:efl:canvas:animation_player:property:playback_speed|Efl.Canvas.Animation_Player.playback_speed]]
+ * [[:develop:api:efl:canvas:layout:property:playback_speed|Efl.Canvas.Layout.playback_speed]]
+ * [[:develop:api:efl:ui:image:property:playback_speed|Efl.Ui.Image.playback_speed]]
+ * [[:develop:api:efl:ui:image_zoomable:property:playback_speed|Efl.Ui.Image_Zoomable.playback_speed]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/playing.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/playing.txt
new file mode 100644
index 00000000..86e72861
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/playing.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Image_Zoomable.playing~~
+====== Efl.Ui.Image_Zoomable.playing ======
+
+===== Description =====
+
+%%Playback state of the media file.%%
+
+%%This property sets the playback state of the object. Re-setting the current playback state has no effect.%%
+
+%%If set to %%''false''%%, the object's %%[[:develop:api:efl:player:property:playback_progress|Efl.Player.playback_progress]]%% property is, by default, reset to %%''0.0''%%. A class may alter this behavior, and it will be stated in the documentation for a class if such behavior changes should be expected.%%
+
+%%Applying the %%''false''%% playing state also has the same effect as the player object reaching the end of its playback, which may invoke additional behavior based on a class's implementation.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:image_zoomable:property:playing:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **playing** - %%%%''true''%% if playing, %%''false''%% otherwise.%%
+
+//Overridden from [[:develop:api:efl:ui:image:property:playing|Efl.Player.playing]] **(get, set)**.//===== Signature =====
+
+
+@property playing @pure_virtual {
+ get {}
+ set {
+ return: bool (false);
+ }
+ values {
+ playing: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_player_playing_get(const Eo *obj);
+Eina_Bool efl_player_playing_set(Eo *obj, Eina_Bool playing);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:player:property:playing|Efl.Player.playing]]
+ * [[:develop:api:efl:canvas:video:property:playing|Efl.Canvas.Video.playing]]
+ * [[:develop:api:efl:canvas:animation_player:property:playing|Efl.Canvas.Animation_Player.playing]]
+ * [[:develop:api:efl:ui:image:property:playing|Efl.Ui.Image.playing]]
+ * [[:develop:api:efl:ui:image_zoomable:property:playing|Efl.Ui.Image_Zoomable.playing]]
+ * [[:develop:api:efl:ui:video:property:playing|Efl.Ui.Video.playing]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/position.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/position.txt
new file mode 100644
index 00000000..76942fc3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/position.txt
@@ -0,0 +1,76 @@
+~~Title: Efl.Ui.Image_Zoomable.position~~
+====== Efl.Ui.Image_Zoomable.position ======
+
+===== Description =====
+
+%%The 2D position of a canvas object.%%
+
+%%The position is absolute, in pixels, relative to the top-left corner of the window, within its border decorations (application space).%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:image_zoomable:property:position:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **pos** - %%A 2D coordinate in pixel units.%%
+==== Getter ====
+
+%%Retrieves the position of the given canvas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:image_zoomable:property:position:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Moves the given canvas object to the given location inside its canvas' viewport. If unchanged this call may be entirely skipped, but if changed this will trigger move events, as well as potential pointer,in or pointer,out events.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image_zoomable:property:position:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:image:property:position|Efl.Gfx.Entity.position]] **(set)**.//===== Signature =====
+
+
+@property position @pure_virtual {
+ get {}
+ set {}
+ values {
+ pos: Eina.Position2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Position2D efl_gfx_entity_position_get(const Eo *obj);
+void efl_gfx_entity_position_set(Eo *obj, Eina_Position2D pos);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:position|Efl.Gfx.Entity.position]]
+ * [[:develop:api:efl:canvas:vg:node:property:position|Efl.Canvas.Vg.Node.position]]
+ * [[:develop:api:efl:ui:win:property:position|Efl.Ui.Win.position]]
+ * [[:develop:api:efl:ui:image:property:position|Efl.Ui.Image.position]]
+ * [[:develop:api:efl:ui:image_zoomable:property:position|Efl.Ui.Image_Zoomable.position]]
+ * [[:develop:api:efl:ui:widget:property:position|Efl.Ui.Widget.position]]
+ * [[:develop:api:efl:ui:table:property:position|Efl.Ui.Table.position]]
+ * [[:develop:api:efl:ui:box:property:position|Efl.Ui.Box.position]]
+ * [[:develop:api:efl:ui:animation_view:property:position|Efl.Ui.Animation_View.position]]
+ * [[:develop:api:efl:ui:text:property:position|Efl.Ui.Text.position]]
+ * [[:develop:api:efl:ui:textpath:property:position|Efl.Ui.Textpath.position]]
+ * [[:develop:api:efl:ui:popup:property:position|Efl.Ui.Popup.position]]
+ * [[:develop:api:efl:ui:relative_layout:property:position|Efl.Ui.Relative_Layout.position]]
+ * [[:develop:api:efl:canvas:object:property:position|Efl.Canvas.Object.position]]
+ * [[:develop:api:efl:canvas:group:property:position|Efl.Canvas.Group.position]]
+ * [[:develop:api:efl:canvas:video:property:position|Efl.Canvas.Video.position]]
+ * [[:develop:api:efl:canvas:event_grabber:property:position|Efl.Canvas.Event_Grabber.position]]
+ * [[:develop:api:efl:canvas:layout:property:position|Efl.Canvas.Layout.position]]
+ * [[:develop:api:efl:ui:pan:property:position|Efl.Ui.Pan.position]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:property:position|Efl.Ui.Image_Zoomable_Pan.position]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/size.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/size.txt
new file mode 100644
index 00000000..8a8f691e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/size.txt
@@ -0,0 +1,76 @@
+~~Title: Efl.Ui.Image_Zoomable.size~~
+====== Efl.Ui.Image_Zoomable.size ======
+
+===== Description =====
+
+%%The 2D size of a canvas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:image_zoomable:property:size:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **size** - %%A 2D size in pixel units.%%
+==== Getter ====
+
+%%Retrieves the (rectangular) size of the given Evas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:image_zoomable:property:size:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Changes the size of the given object.%%
+
+%%Note that setting the actual size of an object might be the job of its container, so this function might have no effect. Look at %%[[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]%% instead, when manipulating widgets.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:image_zoomable:property:size:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:image:property:size|Efl.Gfx.Entity.size]] **(set)**.//===== Signature =====
+
+
+@property size @pure_virtual {
+ get {}
+ set {}
+ values {
+ size: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_entity_size_get(const Eo *obj);
+void efl_gfx_entity_size_set(Eo *obj, Eina_Size2D size);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:size|Efl.Gfx.Entity.size]]
+ * [[:develop:api:efl:canvas:vg:node:property:size|Efl.Canvas.Vg.Node.size]]
+ * [[:develop:api:efl:ui:win:property:size|Efl.Ui.Win.size]]
+ * [[:develop:api:efl:ui:image:property:size|Efl.Ui.Image.size]]
+ * [[:develop:api:efl:ui:image_zoomable:property:size|Efl.Ui.Image_Zoomable.size]]
+ * [[:develop:api:efl:ui:widget:property:size|Efl.Ui.Widget.size]]
+ * [[:develop:api:efl:ui:table:property:size|Efl.Ui.Table.size]]
+ * [[:develop:api:efl:ui:box:property:size|Efl.Ui.Box.size]]
+ * [[:develop:api:efl:ui:animation_view:property:size|Efl.Ui.Animation_View.size]]
+ * [[:develop:api:efl:ui:text:property:size|Efl.Ui.Text.size]]
+ * [[:develop:api:efl:ui:panel:property:size|Efl.Ui.Panel.size]]
+ * [[:develop:api:efl:ui:textpath:property:size|Efl.Ui.Textpath.size]]
+ * [[:develop:api:efl:ui:popup:property:size|Efl.Ui.Popup.size]]
+ * [[:develop:api:efl:ui:relative_layout:property:size|Efl.Ui.Relative_Layout.size]]
+ * [[:develop:api:efl:canvas:object:property:size|Efl.Canvas.Object.size]]
+ * [[:develop:api:efl:canvas:video:property:size|Efl.Canvas.Video.size]]
+ * [[:develop:api:efl:canvas:event_grabber:property:size|Efl.Canvas.Event_Grabber.size]]
+ * [[:develop:api:efl:canvas:layout:property:size|Efl.Canvas.Layout.size]]
+ * [[:develop:api:efl:ui:pan:property:size|Efl.Ui.Pan.size]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:property:size|Efl.Ui.Image_Zoomable_Pan.size]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/view_size.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/view_size.txt
new file mode 100644
index 00000000..15dc8894
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/view_size.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Ui.Image_Zoomable.view_size~~
+====== Efl.Ui.Image_Zoomable.view_size ======
+
+===== Description =====
+
+%%The dimensions of this object's viewport.%%
+
+%%This property represents the size of an image (file on disk, vector graphics, GL or 3D scene, ...) view: this is the logical size of a view, not the number of pixels in the buffer, nor its visible size on the window.%%
+
+%%For scalable scenes (vector graphics, 3D or GL), this means scaling the contents of the scene and drawing more pixels as a result; For pixmaps this means zooming and stretching up or down the backing buffer to fit this view.%%
+
+%%In most cases the view should have the same dimensions as the object on the canvas, for best quality.%%
+
+%%%%[[:develop:api:efl:gfx:view:property:view_size|Efl.Gfx.View.view_size.set]]%% may not be implemented. If it is, it might trigger a complete recalculation of the scene, or reload of the pixel data.%%
+
+%%Refer to each implementing class specific documentation for more details.%%
+{{page>:develop:api-include:efl:ui:image_zoomable:property:view_size:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **size** - %%Size of the view.%%
+
+//Overridden from [[:develop:api:efl:ui:image:property:view_size|Efl.Gfx.View.view_size]] **(get)**.//===== Signature =====
+
+
+@property view_size @pure_virtual {
+ get {}
+ set {}
+ values {
+ size: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_view_size_get(const Eo *obj);
+void efl_gfx_view_size_set(Eo *obj, Eina_Size2D size);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:view:property:view_size|Efl.Gfx.View.view_size]]
+ * [[:develop:api:efl:canvas:image_internal:property:view_size|Efl.Canvas.Image_Internal.view_size]]
+ * [[:develop:api:efl:ui:image:property:view_size|Efl.Ui.Image.view_size]]
+ * [[:develop:api:efl:ui:image_zoomable:property:view_size|Efl.Ui.Image_Zoomable.view_size]]
+ * [[:develop:api:efl:ui:animation_view:property:view_size|Efl.Ui.Animation_View.view_size]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/zoom_animation.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/zoom_animation.txt
new file mode 100644
index 00000000..2ed0c70c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/zoom_animation.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.Image_Zoomable.zoom_animation~~
+====== Efl.Ui.Image_Zoomable.zoom_animation ======
+
+===== Description =====
+
+%%This sets the zoom animation state to on or off for zoomable. The default is off. When %%''paused''%% is %%''true''%%, it will stop zooming using animation on zoom level changes and change instantly, stopping any existing animations that are running.%%
+{{page>:develop:api-include:efl:ui:image_zoomable:property:zoom_animation:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **paused** - %%The paused state.%%
+
+//Overridden from [[:develop:api:efl:ui:zoom:property:zoom_animation|Efl.Ui.Zoom.zoom_animation]] **(get, set)**.//===== Signature =====
+
+
+@property zoom_animation @pure_virtual {
+ get {}
+ set {}
+ values {
+ paused: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_zoom_animation_get(const Eo *obj);
+void efl_ui_zoom_animation_set(Eo *obj, Eina_Bool paused);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:zoom:property:zoom_animation|Efl.Ui.Zoom.zoom_animation]]
+ * [[:develop:api:efl:ui:image_zoomable:property:zoom_animation|Efl.Ui.Image_Zoomable.zoom_animation]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/zoom_level.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/zoom_level.txt
new file mode 100644
index 00000000..6b65864d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/zoom_level.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Image_Zoomable.zoom_level~~
+====== Efl.Ui.Image_Zoomable.zoom_level ======
+
+===== Description =====
+
+%%Zoom level of the image.%%
+
+%%This selects the zoom level. If %%''zoom''%% is 1, it means no zoom. If it's smaller than 1, it means zoom in. If it's bigger than 1, it means zoom out. For example, %%''zoom''%% 1 will be 1:1 pixel for pixel. %%''zoom''%% 2 will be 2:1 (that is 2x2 photo pixels will display as 1 on-screen pixel) which is a zoom out. 4:1 will be 4x4 photo pixels as 1 screen pixel, and so on. The %%''zoom''%% parameter must be greater than 0. It is suggested to stick to powers of 2. (1, 2, 4, 8, 16, 32, etc.).%%
+
+%%Note that if you set %%[[:develop:api:efl:ui:zoom:property:zoom_mode|Efl.Ui.Zoom.zoom_mode]]%% to anything other than %%[[:develop:api:efl:ui:zoom_mode|Efl.Ui.Zoom_Mode.manual]]%% (which is the default value) the %%[[:develop:api:efl:ui:zoom:property:zoom_level|Efl.Ui.Zoom.zoom_level]]%% might be changed at any time by the zoomable object itself to account for image and viewport size changes.%%
+{{page>:develop:api-include:efl:ui:image_zoomable:property:zoom_level:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **zoom** - %%The image's current zoom level.%%
+
+//Overridden from [[:develop:api:efl:ui:zoom:property:zoom_level|Efl.Ui.Zoom.zoom_level]] **(get, set)**.//===== Signature =====
+
+
+@property zoom_level @pure_virtual {
+ get {}
+ set {}
+ values {
+ zoom: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_ui_zoom_level_get(const Eo *obj);
+void efl_ui_zoom_level_set(Eo *obj, double zoom);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:zoom:property:zoom_level|Efl.Ui.Zoom.zoom_level]]
+ * [[:develop:api:efl:ui:image_zoomable:property:zoom_level|Efl.Ui.Image_Zoomable.zoom_level]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/zoom_mode.txt b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/zoom_mode.txt
new file mode 100644
index 00000000..a9770657
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/image_zoomable/property/zoom_mode.txt
@@ -0,0 +1,38 @@
+~~Title: Efl.Ui.Image_Zoomable.zoom_mode~~
+====== Efl.Ui.Image_Zoomable.zoom_mode ======
+
+===== Description =====
+
+%%Zoom mode.%%
+
+%%This sets the zoom mode to manual or one of several automatic levels. %%[[:develop:api:efl:ui:zoom_mode|Efl.Ui.Zoom_Mode.manual]]%% means that zoom is controlled manually by %%[[:develop:api:efl:ui:zoom:property:zoom_level|Efl.Ui.Zoom.zoom_level]]%% and will stay at that level until changed by code or until %%[[:develop:api:efl:ui:zoom:property:zoom_mode|Efl.Ui.Zoom.zoom_mode]]%% is changed. This is the default mode. The Automatic modes will allow the zoomable object to automatically adjust zoom mode based on image and viewport size changes.%%
+{{page>:develop:api-include:efl:ui:image_zoomable:property:zoom_mode:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **mode** - %%The zoom mode.%%
+
+//Overridden from [[:develop:api:efl:ui:zoom:property:zoom_mode|Efl.Ui.Zoom.zoom_mode]] **(get, set)**.//===== Signature =====
+
+
+@property zoom_mode @pure_virtual {
+ get {}
+ set {}
+ values {
+ mode: Efl.Ui.Zoom_Mode (Efl.Ui.Zoom_Mode.manual);
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Zoom_Mode efl_ui_zoom_mode_get(const Eo *obj);
+void efl_ui_zoom_mode_set(Eo *obj, Efl_Ui_Zoom_Mode mode);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:zoom:property:zoom_mode|Efl.Ui.Zoom.zoom_mode]]
+ * [[:develop:api:efl:ui:image_zoomable:property:zoom_mode|Efl.Ui.Image_Zoomable.zoom_mode]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/item.txt b/public_html/data/pages/develop/api/efl/ui/item.txt
new file mode 100644
index 00000000..0f838d00
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/item.txt
@@ -0,0 +1,458 @@
+~~Title: Efl.Ui.Item~~
+====== Efl.Ui.Item (class) ======
+
+===== Description =====
+
+%%Selectable Item abstraction.%%
+
+%%This class serves as the basis to create widgets acting as selectable items inside containers like %%[[:develop:api:efl:ui:list|Efl.Ui.List]]%% or %%[[:develop:api:efl:ui:grid|Efl.Ui.Grid]]%%, for example.%%
+
+%%%%[[:develop:api:efl:ui:item|Efl.Ui.Item]]%% provides user interaction through the %%[[:develop:api:efl:input:clickable|Efl.Input.Clickable]]%% mixin. Items can be pressed, long-pressed, etc, and appropriate events are generated. %%[[:develop:api:efl:ui:item|Efl.Ui.Item]]%% also implements the %%[[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]]%% interface, meaning that "selected" and "unselected" events are automatically generated.%%
+
+%%Classes inheriting from this one only need to deal with the visual representation of the widget. See for example %%[[:develop:api:efl:ui:grid_default_item|Efl.Ui.Grid_Default_Item]]%% and %%[[:develop:api:efl:ui:list_default_item|Efl.Ui.List_Default_Item]]%%.%%
+
+%%Some events are converted to edje signals so the theme can react to them: %%[[:develop:api:efl:input:clickable:event:pressed|Efl.Input.Clickable.pressed]]%% -> "efl,state,pressed", %%[[:develop:api:efl:input:clickable:event:unpressed|Efl.Input.Clickable.unpressed]]%% -> "efl,state,unpressed", %%[[:develop:api:efl:ui:selectable:event:selected,changed|Efl.Ui.Selectable.selected,changed]]%% (true) -> "efl,state,selected", %%[[:develop:api:efl:ui:selectable:event:selected,changed|Efl.Ui.Selectable.selected,changed]]%% (false) -> "efl,state,unselected".%%
+
+%%Item grouping inside containers is handled through the %%[[:develop:api:efl:ui:group_item|Efl.Ui.Group_Item]]%% class.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:item:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)// => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)//
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] //(interface)//
+ * [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] //(interface)//
+ * [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] //(interface)//
+ * [[:develop:api:efl:layout:group|Efl.Layout.Group]] //(interface)//
+ * [[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]] //(interface)//
+ * [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] //(mixin)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:item:property:calc_locked|calc_locked]]** //**(get, set)**//\\
+> %%If the item has its calc locked it will not trigger %%[[:develop:api:efl:canvas:group:property:group_need_recalculate|Efl.Canvas.Group.group_need_recalculate.set]]%% done.%%
+
+Eina_Bool efl_ui_item_calc_locked_get(const Eo *obj);
+void efl_ui_item_calc_locked_set(Eo *obj, Eina_Bool locked);
+
+\\
+**[[:develop:api:efl:ui:item:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:item:property:container|container]]** //**(get, set)**//\\
+> %%The container this object is part of.%%
+
+Efl_Ui_Widget *efl_ui_item_container_get(const Eo *obj);
+void efl_ui_item_container_set(Eo *obj, Efl_Ui_Widget *container);
+
+\\
+**[[:develop:api:efl:ui:item:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:item:method:finalize|finalize]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+Efl_Object *efl_finalize(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:item:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:canvas:group|Efl.Canvas.Group]]]//\\
+> %%Indicates that the group's layout needs to be recalculated.%%
+
+Eina_Bool efl_canvas_group_need_recalculate_get(const Eo *obj);
+void efl_canvas_group_need_recalculate_set(Eo *obj, Eina_Bool value);
+
+\\
+**[[:develop:api:efl:ui:item:property:index|index]]** //**(get)**//\\
+>
+
+int efl_ui_item_index_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:item:property:item_parent|item_parent]]** //**(get, set)**//\\
+> %%The parent of the item.%%
+
+Efl_Ui_Item *efl_ui_item_parent_get(const Eo *obj);
+void efl_ui_item_parent_set(Eo *obj, Efl_Ui_Item *parent);
+
+\\
+**[[:develop:api:efl:ui:item:property:selected|selected]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]]]//\\
+> %%The selected state of this object%%
+
+Eina_Bool efl_ui_selectable_selected_get(const Eo *obj);
+void efl_ui_selectable_selected_set(Eo *obj, Eina_Bool selected);
+
+\\
+**[[:develop:api:efl:ui:item:method:widget_input_event_handler|widget_input_event_handler]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Virtual function handling input events on the widget.%%
+
+Eina_Bool efl_ui_widget_input_event_handler(Eo *obj, const Efl_Event *eo_event, Efl_Canvas_Object *source);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] ^^^
+| | **[[:develop:api:efl:input:clickable:property:interaction|interaction]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:button_state_reset|button_state_reset]]** | %%This aborts the internal state after a press call.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:longpress_abort|longpress_abort]]** | %%This aborts ongoing longpress event.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:press|press]]** | %%Change internal states that a button got pressed.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:unpress|unpress]]** | %%Change internal states that a button got unpressed.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:property:automatic_theme_rotation|automatic_theme_rotation]]** //**(get, set)**// | %%This flag tells if this object will automatically mirror the rotation changes of the window to this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**// | %%Whether this object updates its size hints automatically.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_freeze|calc_freeze]]** | %%Freezes the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_parts_extends|calc_parts_extends]]** | %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_size_min|calc_size_min]]** | %%Calculates the minimum required size for a given layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_thaw|calc_thaw]]** | %%Thaws the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:layout_base:method:factory_bind|factory_bind]]** | %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:finger_size_multiplier|finger_size_multiplier]]** //**(get, set)**// | %%Set a multiplier for applying finger size to the layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:group_calculate|group_calculate]]** | %%Triggers an immediate recalculation of this object's geometry.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:group_data|group_data]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_max|group_size_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_min|group_size_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:l10n_text|l10n_text]]** //**(get, set)**// | %%A unique string to be translated.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:message_send|message_send]]** | %%Sends an (Edje) message to a given Edje object%% |
+| | **[[:develop:api:efl:ui:layout_base:property:part_exist|part_exist]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_add|signal_callback_add]]** | %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_del|signal_callback_del]]** | %%Removes a signal-triggered callback from an object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_emit|signal_emit]]** | %%Sends/emits an Edje signal to this layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_process|signal_process]]** | %%Processes an object's messages and signals queue.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:theme|theme]]** //**(get, set)**// | %%The theme of this widget, defines which edje group will be used.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:theme_rotation_apply|theme_rotation_apply]]** | %%Apply a new rotation value to this object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:calc_force|calc_force]]** | %%Forces a Size/Geometry calculation.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:on_focus_update|on_focus_update]]** | %%Virtual function handling focus in/out events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:part_get|part_get]]** | %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:theme_apply|theme_apply]]** | %%Virtual function called when the widget needs to re-apply its theme.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:property:position|position]]** //**(get, set)**// | %%The 2D position of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:size|size]]** //**(get, set)**// | %%The 2D size of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| | **[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] ^^^
+| | **[[:develop:api:efl:input:clickable:event:clicked|clicked]]** | %%Called when object is in sequence pressed and unpressed by the primary button%% |
+| | **[[:develop:api:efl:input:clickable:event:clicked_any|clicked,any]]** | %%Called when object is in sequence pressed and unpressed by any button. The button that triggered the event can be found in the event information.%% |
+| | **[[:develop:api:efl:input:clickable:event:longpressed|longpressed]]** | %%Called when the object receives a long press, event_info is the button that got pressed%% |
+| | **[[:develop:api:efl:input:clickable:event:pressed|pressed]]** | %%Called when the object is pressed, event_info is the button that got pressed%% |
+| | **[[:develop:api:efl:input:clickable:event:unpressed|unpressed]]** | %%Called when the object is no longer pressed, event_info is the button that got pressed%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] ^^^
+| | **[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]** | %%A circular dependency between parts of the object was found.%% |
+| | **[[:develop:api:efl:layout:calc:event:recalc|recalc]]** | %%The layout was recalculated.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:event:theme_changed|theme,changed]]** | %%Called when theme changed%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]] ^^^
+| | **[[:develop:api:efl:ui:selectable:event:selected_changed|selected,changed]]** | %%Called when the selected state has changed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/item/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/item/method/constructor.txt
new file mode 100644
index 00000000..fe639547
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/item/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Item.constructor~~
+====== Efl.Ui.Item.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:item:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/item/method/destructor.txt b/public_html/data/pages/develop/api/efl/ui/item/method/destructor.txt
new file mode 100644
index 00000000..64af384b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/item/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Ui.Item.destructor~~
+====== Efl.Ui.Item.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:item:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/item/method/finalize.txt b/public_html/data/pages/develop/api/efl/ui/item/method/finalize.txt
new file mode 100644
index 00000000..81fb93fe
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/item/method/finalize.txt
@@ -0,0 +1,91 @@
+~~Title: Efl.Ui.Item.finalize~~
+====== Efl.Ui.Item.finalize ======
+
+===== Description =====
+
+%%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+%%Use this method to delay expensive operations until user configuration has finished, to avoid building the object in a "default" state in the constructor, just to have to throw it all away because a user configuration (a property being set, for example) requires a different state. This is the last call inside efl_add() and will set %%[[:develop:api:efl:object:property:finalized|Efl.Object.finalized]]%% to %%''true''%% once it returns. This is an optimization and implementing this method is optional if you already perform all your initialization in the %%[[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]%% method. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:item:method:finalize:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:finalize|Efl.Object.finalize]].//===== Signature =====
+
+
+finalize {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_finalize(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]
+ * [[:develop:api:efl:loop_handler:method:finalize|Efl.Loop_Handler.finalize]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:finalize|Efl.Ui.Position_Manager.Grid.finalize]]
+ * [[:develop:api:efl:canvas:layout_part:method:finalize|Efl.Canvas.Layout_Part.finalize]]
+ * [[:develop:api:efl:net:server_udp_client:method:finalize|Efl.Net.Server_Udp_Client.finalize]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:finalize|Efl.Ui.Widget_Part_Bg.finalize]]
+ * [[:develop:api:efl:ui:layout_part_bg:method:finalize|Efl.Ui.Layout_Part_Bg.finalize]]
+ * [[:develop:api:efl:io:buffered_stream:method:finalize|Efl.Io.Buffered_Stream.finalize]]
+ * [[:develop:api:efl:net:dialer_simple:method:finalize|Efl.Net.Dialer_Simple.finalize]]
+ * [[:develop:api:efl:io:file:method:finalize|Efl.Io.File.finalize]]
+ * [[:develop:api:efl:net:server_fd:method:finalize|Efl.Net.Server_Fd.finalize]]
+ * [[:develop:api:efl:io:stderr:method:finalize|Efl.Io.Stderr.finalize]]
+ * [[:develop:api:efl:io:stdin:method:finalize|Efl.Io.Stdin.finalize]]
+ * [[:develop:api:efl:io:stdout:method:finalize|Efl.Io.Stdout.finalize]]
+ * [[:develop:api:efl:net:socket_fd:method:finalize|Efl.Net.Socket_Fd.finalize]]
+ * [[:develop:api:efl:net:socket_ssl:method:finalize|Efl.Net.Socket_Ssl.finalize]]
+ * [[:develop:api:efl:net:dialer_ssl:method:finalize|Efl.Net.Dialer_Ssl.finalize]]
+ * [[:develop:api:efl:canvas:object:method:finalize|Efl.Canvas.Object.finalize]]
+ * [[:develop:api:efl:canvas:image_internal:method:finalize|Efl.Canvas.Image_Internal.finalize]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:finalize|Efl.Ui.Internal.Text.Interactive.finalize]]
+ * [[:develop:api:efl:ui:widget:method:finalize|Efl.Ui.Widget.finalize]]
+ * [[:develop:api:efl:ui:win:method:finalize|Efl.Ui.Win.finalize]]
+ * [[:develop:api:efl:ui:win_socket:method:finalize|Efl.Ui.Win_Socket.finalize]]
+ * [[:develop:api:efl:ui:win_inlined:method:finalize|Efl.Ui.Win_Inlined.finalize]]
+ * [[:develop:api:efl:ui:layout_base:method:finalize|Efl.Ui.Layout_Base.finalize]]
+ * [[:develop:api:efl:ui:text:method:finalize|Efl.Ui.Text.finalize]]
+ * [[:develop:api:efl:ui:tab_bar:method:finalize|Efl.Ui.Tab_Bar.finalize]]
+ * [[:develop:api:efl:ui:item:method:finalize|Efl.Ui.Item.finalize]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:finalize|Efl.Ui.List_Placeholder_Item.finalize]]
+ * [[:develop:api:elm:code_widget:method:finalize|Elm.Code_Widget.finalize]]
+ * [[:develop:api:efl:ui:scroller:method:finalize|Efl.Ui.Scroller.finalize]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:finalize|Efl.Ui.Internal_Text_Scroller.finalize]]
+ * [[:develop:api:efl:ui:collection:method:finalize|Efl.Ui.Collection.finalize]]
+ * [[:develop:api:efl:ui:spotlight:container:method:finalize|Efl.Ui.Spotlight.Container.finalize]]
+ * [[:develop:api:efl:ui:tab_pager:method:finalize|Efl.Ui.Tab_Pager.finalize]]
+ * [[:develop:api:efl:ui:bg:method:finalize|Efl.Ui.Bg.finalize]]
+ * [[:develop:api:efl:canvas:vg:object:method:finalize|Efl.Canvas.Vg.Object.finalize]]
+ * [[:develop:api:efl:loop_timer:method:finalize|Efl.Loop_Timer.finalize]]
+ * [[:develop:api:eldbus:model:method:finalize|Eldbus.Model.finalize]]
+ * [[:develop:api:eldbus:model:proxy:method:finalize|Eldbus.Model.Proxy.finalize]]
+ * [[:develop:api:eldbus:model:arguments:method:finalize|Eldbus.Model.Arguments.finalize]]
+ * [[:develop:api:eldbus:model:method:method:finalize|Eldbus.Model.Method.finalize]]
+ * [[:develop:api:eldbus:model:object:method:finalize|Eldbus.Model.Object.finalize]]
+ * [[:develop:api:efl:composite_model:method:finalize|Efl.Composite_Model.finalize]]
+ * [[:develop:api:efl:container_model:method:finalize|Efl.Container_Model.finalize]]
+ * [[:develop:api:efl:ui:view_model:method:finalize|Efl.Ui.View_Model.finalize]]
+ * [[:develop:api:efl:io:model:method:finalize|Efl.Io.Model.finalize]]
+ * [[:develop:api:efl:net:server_simple:method:finalize|Efl.Net.Server_Simple.finalize]]
+ * [[:develop:api:efl:net:control:manager:method:finalize|Efl.Net.Control.Manager.finalize]]
+ * [[:develop:api:efl:ui:widget_factory:method:finalize|Efl.Ui.Widget_Factory.finalize]]
+ * [[:develop:api:efl:ui:caching_factory:method:finalize|Efl.Ui.Caching_Factory.finalize]]
+ * [[:develop:api:efl:thread:method:finalize|Efl.Thread.finalize]]
+ * [[:develop:api:efl:net:session:method:finalize|Efl.Net.Session.finalize]]
+ * [[:develop:api:efl:io:copier:method:finalize|Efl.Io.Copier.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:finalize|Efl.Ui.Focus.Manager_Calc.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:finalize|Efl.Ui.Focus.Manager_Root_Focus.finalize]]
+ * [[:develop:api:evas:canvas3d:node:method:finalize|Evas.Canvas3D.Node.finalize]]
+ * [[:develop:api:efl:net:ssl:context:method:finalize|Efl.Net.Ssl.Context.finalize]]
+ * [[:develop:api:efl:io:buffer:method:finalize|Efl.Io.Buffer.finalize]]
+ * [[:develop:api:efl:net:ip_address:method:finalize|Efl.Net.Ip_Address.finalize]]
+ * [[:develop:api:efl:io:queue:method:finalize|Efl.Io.Queue.finalize]]
+ * [[:develop:api:ector:renderer:method:finalize|Ector.Renderer.finalize]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/item/method/widget_input_event_handler.txt b/public_html/data/pages/develop/api/efl/ui/item/method/widget_input_event_handler.txt
new file mode 100644
index 00000000..56a0b7a4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/item/method/widget_input_event_handler.txt
@@ -0,0 +1,57 @@
+~~Title: Efl.Ui.Item.widget_input_event_handler~~
+====== Efl.Ui.Item.widget_input_event_handler ======
+
+===== Description =====
+
+%%Virtual function handling input events on the widget.%%
+
+%%This method should return %%''true''%% if the event has been processed. Only key down, key up and pointer wheel events will be propagated through this function.%%
+
+%%It is common for the event to be also marked as processed as in %%[[:develop:api:efl:input:event:property:processed|Efl.Input.Event.processed]]%%, if this operation was successful. This makes sure other widgets will not also process this input event.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:item:method:widget_input_event_handler:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:widget_input_event_handler|Efl.Ui.Widget.widget_input_event_handler]].//===== Signature =====
+
+
+widget_input_event_handler @protected {
+ params {
+ @in eo_event: const(event);
+ @in source: Efl.Canvas.Object;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_input_event_handler(Eo *obj, const Efl_Event *eo_event, Efl_Canvas_Object *source);
+
+
+===== Parameters =====
+
+ * **eo_event** //(in)// - %%EO event struct with an Efl.Input.Event as info.%%
+ * **source** //(in)// - %%Source object where the event originated. Often same as this.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:widget_input_event_handler|Efl.Ui.Widget.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:win:method:widget_input_event_handler|Efl.Ui.Win.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:image:method:widget_input_event_handler|Efl.Ui.Image.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:image_zoomable:method:widget_input_event_handler|Efl.Ui.Image_Zoomable.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:slider:method:widget_input_event_handler|Efl.Ui.Slider.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:check:method:widget_input_event_handler|Efl.Ui.Check.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:radio:method:widget_input_event_handler|Efl.Ui.Radio.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:spin_button:method:widget_input_event_handler|Efl.Ui.Spin_Button.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:panel:method:widget_input_event_handler|Efl.Ui.Panel.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:item:method:widget_input_event_handler|Efl.Ui.Item.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:slider_interval:method:widget_input_event_handler|Efl.Ui.Slider_Interval.widget_input_event_handler]]
+ * [[:develop:api:elm:code_widget:method:widget_input_event_handler|Elm.Code_Widget.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:tags:method:widget_input_event_handler|Efl.Ui.Tags.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:scroller:method:widget_input_event_handler|Efl.Ui.Scroller.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:calendar:method:widget_input_event_handler|Efl.Ui.Calendar.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:video:method:widget_input_event_handler|Efl.Ui.Video.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:button:method:widget_input_event_handler|Efl.Ui.Button.widget_input_event_handler]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/item/property/calc_locked.txt b/public_html/data/pages/develop/api/efl/ui/item/property/calc_locked.txt
new file mode 100644
index 00000000..67c9d1dd
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/item/property/calc_locked.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Item.calc_locked~~
+====== Efl.Ui.Item.calc_locked ======
+
+===== Description =====
+
+%%If the item has its calc locked it will not trigger %%[[:develop:api:efl:canvas:group:property:group_need_recalculate|Efl.Canvas.Group.group_need_recalculate.set]]%% done.%%
+
+%%This is done automatically by %%[[:develop:api:efl:ui:widget_factory|Efl.Ui.Widget_Factory]]%%, but you can use this information to meaningfully set the hint when items are not %%[[:develop:api:efl:ui:item:property:calc_locked|Efl.Ui.Item.calc_locked]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:item:property:calc_locked:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **locked** - %%If set to %%''true''%%, no more %%[[:develop:api:efl:canvas:group:property:group_need_recalculate|Efl.Canvas.Group.group_need_recalculate.set]]%%%%
+
+===== Signature =====
+
+
+@property calc_locked {
+ get {}
+ set {}
+ values {
+ locked: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_item_calc_locked_get(const Eo *obj);
+void efl_ui_item_calc_locked_set(Eo *obj, Eina_Bool locked);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:item:property:calc_locked|Efl.Ui.Item.calc_locked]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/item/property/container.txt b/public_html/data/pages/develop/api/efl/ui/item/property/container.txt
new file mode 100644
index 00000000..0a495ec5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/item/property/container.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Item.container~~
+====== Efl.Ui.Item.container ======
+
+===== Description =====
+
+%%The container this object is part of.%%
+
+%%You should never use this property directly, the container will set it when the item is added. Unsetting this while the item is packed inside a container does not remove the item from the container.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:item:property:container:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **container** - %%The container this item is in.%%
+
+===== Signature =====
+
+
+@property container {
+ get {}
+ set {}
+ values {
+ container: Efl.Ui.Widget;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Widget *efl_ui_item_container_get(const Eo *obj);
+void efl_ui_item_container_set(Eo *obj, Efl_Ui_Widget *container);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:item:property:container|Efl.Ui.Item.container]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/item/property/group_need_recalculate.txt b/public_html/data/pages/develop/api/efl/ui/item/property/group_need_recalculate.txt
new file mode 100644
index 00000000..5927f88a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/item/property/group_need_recalculate.txt
@@ -0,0 +1,47 @@
+~~Title: Efl.Ui.Item.group_need_recalculate~~
+====== Efl.Ui.Item.group_need_recalculate ======
+
+===== Description =====
+
+%%Indicates that the group's layout needs to be recalculated.%%
+
+%%If this flag is set, then the %%[[:develop:api:efl:canvas:group:method:group_calculate|Efl.Canvas.Group.group_calculate]]%% function will be called, during rendering phase of the canvas. After that, this flag will be automatically unset.%%
+
+
+@property group_need_recalculate {
+ get {}
+ set {}
+ values {
+ value: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_group_need_recalculate_get(const Eo *obj);
+void efl_canvas_group_need_recalculate_set(Eo *obj, Eina_Bool value);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:group:property:group_need_recalculate|Efl.Canvas.Group.group_need_recalculate]]
+ * [[:develop:api:efl:canvas:event_grabber:property:group_need_recalculate|Efl.Canvas.Event_Grabber.group_need_recalculate]]
+ * [[:develop:api:efl:ui:item:property:group_need_recalculate|Efl.Ui.Item.group_need_recalculate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/item/property/index.txt b/public_html/data/pages/develop/api/efl/ui/item/property/index.txt
new file mode 100644
index 00000000..79b7cca3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/item/property/index.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Ui.Item.index~~
+====== Efl.Ui.Item.index ======
+
+===== Values =====
+
+ * **index** - %%The index where to find this item in its %%[[:develop:api:efl:ui:item:property:container|Efl.Ui.Item.container]]%%.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:item:property:index:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property index {
+ get {}
+ values {
+ index: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_ui_item_index_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:item:property:index|Efl.Ui.Item.index]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/item/property/item_parent.txt b/public_html/data/pages/develop/api/efl/ui/item/property/item_parent.txt
new file mode 100644
index 00000000..99b2f590
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/item/property/item_parent.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Item.item_parent~~
+====== Efl.Ui.Item.item_parent ======
+
+===== Description =====
+
+%%The parent of the item.%%
+
+%%This property expresses a tree structure of items. If the parent is %%''NULL''%% the item is added to the root level of the content. The item parent can only be set once. When the object is invalidated, the item parent is set to %%''NULL''%% and still cannot be reset.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:item:property:item_parent:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **parent** - No description supplied.
+
+===== Signature =====
+
+
+@property item_parent {
+ get {}
+ set {}
+ values {
+ parent: Efl.Ui.Item;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Item *efl_ui_item_parent_get(const Eo *obj);
+void efl_ui_item_parent_set(Eo *obj, Efl_Ui_Item *parent);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:item:property:item_parent|Efl.Ui.Item.item_parent]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/item/property/selected.txt b/public_html/data/pages/develop/api/efl/ui/item/property/selected.txt
new file mode 100644
index 00000000..c3b4b2fc
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/item/property/selected.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Item.selected~~
+====== Efl.Ui.Item.selected ======
+
+===== Description =====
+
+%%The selected state of this object%%
+
+%%A change to this property emits the changed event.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:item:property:selected:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **selected** - %%The selected state of this object.%%
+
+//Overridden from [[:develop:api:efl:ui:selectable:property:selected|Efl.Ui.Selectable.selected]] **(get, set)**.//===== Signature =====
+
+
+@property selected @pure_virtual {
+ get {}
+ set {}
+ values {
+ selected: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_selectable_selected_get(const Eo *obj);
+void efl_ui_selectable_selected_set(Eo *obj, Eina_Bool selected);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:selectable:property:selected|Efl.Ui.Selectable.selected]]
+ * [[:develop:api:efl:ui:check:property:selected|Efl.Ui.Check.selected]]
+ * [[:develop:api:efl:ui:radio:property:selected|Efl.Ui.Radio.selected]]
+ * [[:develop:api:efl:ui:select_model:property:selected|Efl.Ui.Select_Model.selected]]
+ * [[:develop:api:efl:ui:item:property:selected|Efl.Ui.Item.selected]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout.txt b/public_html/data/pages/develop/api/efl/ui/layout.txt
new file mode 100644
index 00000000..fbced5dd
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout.txt
@@ -0,0 +1,422 @@
+~~Title: Efl.Ui.Layout~~
+====== Efl.Ui.Layout (class) ======
+
+===== Description =====
+
+%%EFL layout widget class.%%
+
+%%When loading layouts from a file, use the %%[[:develop:api:efl:file:property:key|Efl.File.key]]%% property to specify the group that the data belongs to, in case it's an EET file (including Edje files).%%
+
+%%By default, layouts do not apply the finger_size global configuration value when calculating their geometries.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:layout:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)// => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)//
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] //(interface)//
+ * [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] //(interface)//
+ * [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] //(interface)//
+ * [[:develop:api:efl:layout:group|Efl.Layout.Group]] //(interface)//
+ * [[:develop:api:efl:file|Efl.File]] //(mixin)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:layout:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout:property:file|file]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:file|Efl.File]]]//\\
+> %%The file path from where an object will fetch the data.%%
+
+const char *efl_file_get(const Eo *obj);
+Eina_Error efl_file_set(Eo *obj, const char *file);
+
+\\
+**[[:develop:api:efl:ui:layout:method:group_calculate|group_calculate]]**// [Overridden from [[:develop:api:efl:canvas:group|Efl.Canvas.Group]]]//\\
+> %%Triggers an immediate recalculation of this object's geometry.%%
+
+void efl_canvas_group_calculate(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout:property:key|key]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:file|Efl.File]]]//\\
+> %%The key which corresponds to the target data within a file.%%
+
+const char *efl_file_key_get(const Eo *obj);
+void efl_file_key_set(Eo *obj, const char *key);
+
+\\
+**[[:develop:api:efl:ui:layout:method:load|load]]**// [Overridden from [[:develop:api:efl:file|Efl.File]]]//\\
+> %%Perform all necessary operations to open and load file data into the object using the %%[[:develop:api:efl:file:property:file|Efl.File.file]]%% (or %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap]]%%) and %%[[:develop:api:efl:file:property:key|Efl.File.key]]%% properties.%%
+
+Eina_Error efl_file_load(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout:property:mmap|mmap]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:file|Efl.File]]]//\\
+> %%The mmaped file from where an object will fetch the real data (it must be an %%[[:develop:api:eina:file|Eina.File]]%%).%%
+
+const Eina_File efl_file_mmap_get(const Eo *obj);
+Eina_Error efl_file_mmap_set(Eo *obj, const Eina_File f);
+
+\\
+**[[:develop:api:efl:ui:layout:method:unload|unload]]**// [Overridden from [[:develop:api:efl:file|Efl.File]]]//\\
+> %%Perform all necessary operations to unload file data from the object.%%
+
+void efl_file_unload(Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:file|Efl.File]] ^^^
+| | **[[:develop:api:efl:file:property:loaded|loaded]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:property:automatic_theme_rotation|automatic_theme_rotation]]** //**(get, set)**// | %%This flag tells if this object will automatically mirror the rotation changes of the window to this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**// | %%Whether this object updates its size hints automatically.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_freeze|calc_freeze]]** | %%Freezes the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_parts_extends|calc_parts_extends]]** | %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_size_min|calc_size_min]]** | %%Calculates the minimum required size for a given layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_thaw|calc_thaw]]** | %%Thaws the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:layout_base:method:factory_bind|factory_bind]]** | %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:finger_size_multiplier|finger_size_multiplier]]** //**(get, set)**// | %%Set a multiplier for applying finger size to the layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:group_data|group_data]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_max|group_size_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_min|group_size_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:l10n_text|l10n_text]]** //**(get, set)**// | %%A unique string to be translated.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:message_send|message_send]]** | %%Sends an (Edje) message to a given Edje object%% |
+| | **[[:develop:api:efl:ui:layout_base:property:part_exist|part_exist]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_add|signal_callback_add]]** | %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_del|signal_callback_del]]** | %%Removes a signal-triggered callback from an object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_emit|signal_emit]]** | %%Sends/emits an Edje signal to this layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_process|signal_process]]** | %%Processes an object's messages and signals queue.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:theme|theme]]** //**(get, set)**// | %%The theme of this widget, defines which edje group will be used.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:theme_rotation_apply|theme_rotation_apply]]** | %%Apply a new rotation value to this object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:calc_force|calc_force]]** | %%Forces a Size/Geometry calculation.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:on_focus_update|on_focus_update]]** | %%Virtual function handling focus in/out events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:part_get|part_get]]** | %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:theme_apply|theme_apply]]** | %%Virtual function called when the widget needs to re-apply its theme.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:ui:widget:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:property:position|position]]** //**(get, set)**// | %%The 2D position of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:size|size]]** //**(get, set)**// | %%The 2D size of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| | **[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_input_event_handler|widget_input_event_handler]]** | %%Virtual function handling input events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] ^^^
+| | **[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]** | %%A circular dependency between parts of the object was found.%% |
+| | **[[:develop:api:efl:layout:calc:event:recalc|recalc]]** | %%The layout was recalculated.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:event:theme_changed|theme,changed]]** | %%Called when theme changed%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/layout/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/layout/method/constructor.txt
new file mode 100644
index 00000000..7466e7f7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Layout.constructor~~
+====== Efl.Ui.Layout.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout/method/group_calculate.txt b/public_html/data/pages/develop/api/efl/ui/layout/method/group_calculate.txt
new file mode 100644
index 00000000..03808d2f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout/method/group_calculate.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Ui.Layout.group_calculate~~
+====== Efl.Ui.Layout.group_calculate ======
+
+===== Description =====
+
+%%Triggers an immediate recalculation of this object's geometry.%%
+
+%%This will also reset the flag %%[[:develop:api:efl:canvas:group:property:group_need_recalculate|Efl.Canvas.Group.group_need_recalculate]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout:method:group_calculate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:group_calculate|Efl.Canvas.Group.group_calculate]].//===== Signature =====
+
+
+group_calculate {}
+
+
+===== C signature =====
+
+
+void efl_canvas_group_calculate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:group:method:group_calculate|Efl.Canvas.Group.group_calculate]]
+ * [[:develop:api:efl:canvas:event_grabber:method:group_calculate|Efl.Canvas.Event_Grabber.group_calculate]]
+ * [[:develop:api:efl:canvas:layout:method:group_calculate|Efl.Canvas.Layout.group_calculate]]
+ * [[:develop:api:efl:ui:widget:method:group_calculate|Efl.Ui.Widget.group_calculate]]
+ * [[:develop:api:efl:ui:table:method:group_calculate|Efl.Ui.Table.group_calculate]]
+ * [[:develop:api:efl:ui:box:method:group_calculate|Efl.Ui.Box.group_calculate]]
+ * [[:develop:api:efl:ui:layout_base:method:group_calculate|Efl.Ui.Layout_Base.group_calculate]]
+ * [[:develop:api:efl:ui:clock:method:group_calculate|Efl.Ui.Clock.group_calculate]]
+ * [[:develop:api:efl:ui:text:method:group_calculate|Efl.Ui.Text.group_calculate]]
+ * [[:develop:api:efl:ui:panel:method:group_calculate|Efl.Ui.Panel.group_calculate]]
+ * [[:develop:api:efl:ui:layout:method:group_calculate|Efl.Ui.Layout.group_calculate]]
+ * [[:develop:api:efl:ui:textpath:method:group_calculate|Efl.Ui.Textpath.group_calculate]]
+ * [[:develop:api:efl:ui:scroller:method:group_calculate|Efl.Ui.Scroller.group_calculate]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:group_calculate|Efl.Ui.Internal_Text_Scroller.group_calculate]]
+ * [[:develop:api:efl:ui:panes:method:group_calculate|Efl.Ui.Panes.group_calculate]]
+ * [[:develop:api:efl:ui:calendar:method:group_calculate|Efl.Ui.Calendar.group_calculate]]
+ * [[:develop:api:efl:ui:frame:method:group_calculate|Efl.Ui.Frame.group_calculate]]
+ * [[:develop:api:efl:ui:popup:method:group_calculate|Efl.Ui.Popup.group_calculate]]
+ * [[:develop:api:efl:ui:video:method:group_calculate|Efl.Ui.Video.group_calculate]]
+ * [[:develop:api:efl:ui:relative_layout:method:group_calculate|Efl.Ui.Relative_Layout.group_calculate]]
+ * [[:develop:api:efl:ui:pan:method:group_calculate|Efl.Ui.Pan.group_calculate]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:group_calculate|Efl.Ui.Image_Zoomable_Pan.group_calculate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout/method/load.txt b/public_html/data/pages/develop/api/efl/ui/layout/method/load.txt
new file mode 100644
index 00000000..093aaa2b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout/method/load.txt
@@ -0,0 +1,48 @@
+~~Title: Efl.Ui.Layout.load~~
+====== Efl.Ui.Layout.load ======
+
+===== Description =====
+
+%%Perform all necessary operations to open and load file data into the object using the %%[[:develop:api:efl:file:property:file|Efl.File.file]]%% (or %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap]]%%) and %%[[:develop:api:efl:file:property:key|Efl.File.key]]%% properties.%%
+
+%%In the case where %%[[:develop:api:efl:file:property:file|Efl.File.file.set]]%% has been called on an object, this will internally open the file and call %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap.set]]%% on the object using the opened file handle.%%
+
+%%Calling %%[[:develop:api:efl:file:method:load|Efl.File.load]]%% on an object which has already performed file operations based on the currently set properties will have no effect.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout:method:load:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:file:method:load|Efl.File.load]].//===== Signature =====
+
+
+load {
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_file_load(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:method:load|Efl.File.load]]
+ * [[:develop:api:evas:canvas3d:mesh:method:load|Evas.Canvas3D.Mesh.load]]
+ * [[:develop:api:efl:ui:win_part:method:load|Efl.Ui.Win_Part.load]]
+ * [[:develop:api:efl:canvas:video:method:load|Efl.Canvas.Video.load]]
+ * [[:develop:api:efl:ui:text:method:load|Efl.Ui.Text.load]]
+ * [[:develop:api:efl:canvas:image:method:load|Efl.Canvas.Image.load]]
+ * [[:develop:api:efl:canvas:layout:method:load|Efl.Canvas.Layout.load]]
+ * [[:develop:api:efl:ui:layout:method:load|Efl.Ui.Layout.load]]
+ * [[:develop:api:efl:ui:image:method:load|Efl.Ui.Image.load]]
+ * [[:develop:api:efl:ui:image_zoomable:method:load|Efl.Ui.Image_Zoomable.load]]
+ * [[:develop:api:efl:ui:animation_view:method:load|Efl.Ui.Animation_View.load]]
+ * [[:develop:api:evas:canvas3d:texture:method:load|Evas.Canvas3D.Texture.load]]
+ * [[:develop:api:efl:canvas:vg:object:method:load|Efl.Canvas.Vg.Object.load]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:load|Efl.Ui.Widget_Part_Bg.load]]
+ * [[:develop:api:efl:ui:video:method:load|Efl.Ui.Video.load]]
+ * [[:develop:api:efl:ui:popup_part_backwall:method:load|Efl.Ui.Popup_Part_Backwall.load]]
+ * [[:develop:api:efl:ui:bg:method:load|Efl.Ui.Bg.load]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout/method/unload.txt b/public_html/data/pages/develop/api/efl/ui/layout/method/unload.txt
new file mode 100644
index 00000000..223cdc9e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout/method/unload.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Layout.unload~~
+====== Efl.Ui.Layout.unload ======
+
+===== Description =====
+
+%%Perform all necessary operations to unload file data from the object.%%
+
+%%In the case where %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap.set]]%% has been externally called on an object, the file handle stored in the object will be preserved.%%
+
+%%Calling %%[[:develop:api:efl:file:method:unload|Efl.File.unload]]%% on an object which is not currently loaded will have no effect.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout:method:unload:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:file:method:unload|Efl.File.unload]].//===== Signature =====
+
+
+unload {}
+
+
+===== C signature =====
+
+
+void efl_file_unload(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:method:unload|Efl.File.unload]]
+ * [[:develop:api:evas:canvas3d:mesh:method:unload|Evas.Canvas3D.Mesh.unload]]
+ * [[:develop:api:efl:ui:win_part:method:unload|Efl.Ui.Win_Part.unload]]
+ * [[:develop:api:efl:canvas:video:method:unload|Efl.Canvas.Video.unload]]
+ * [[:develop:api:efl:ui:text:method:unload|Efl.Ui.Text.unload]]
+ * [[:develop:api:efl:canvas:image:method:unload|Efl.Canvas.Image.unload]]
+ * [[:develop:api:efl:canvas:layout:method:unload|Efl.Canvas.Layout.unload]]
+ * [[:develop:api:efl:ui:layout:method:unload|Efl.Ui.Layout.unload]]
+ * [[:develop:api:efl:ui:image:method:unload|Efl.Ui.Image.unload]]
+ * [[:develop:api:efl:ui:image_zoomable:method:unload|Efl.Ui.Image_Zoomable.unload]]
+ * [[:develop:api:efl:ui:animation_view:method:unload|Efl.Ui.Animation_View.unload]]
+ * [[:develop:api:evas:canvas3d:texture:method:unload|Evas.Canvas3D.Texture.unload]]
+ * [[:develop:api:efl:canvas:vg:object:method:unload|Efl.Canvas.Vg.Object.unload]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:unload|Efl.Ui.Widget_Part_Bg.unload]]
+ * [[:develop:api:efl:ui:video:method:unload|Efl.Ui.Video.unload]]
+ * [[:develop:api:efl:ui:popup_part_backwall:method:unload|Efl.Ui.Popup_Part_Backwall.unload]]
+ * [[:develop:api:efl:ui:bg:method:unload|Efl.Ui.Bg.unload]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout/property/file.txt b/public_html/data/pages/develop/api/efl/ui/layout/property/file.txt
new file mode 100644
index 00000000..6706bd98
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout/property/file.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Ui.Layout.file~~
+====== Efl.Ui.Layout.file ======
+
+===== Description =====
+
+%%The file path from where an object will fetch the data.%%
+
+%%If file is set during object construction, the object will automatically call %%[[:develop:api:efl:file:method:load|Efl.File.load]]%% during the finalize phase of construction.%%
+
+%%You must not modify the strings on the returned pointers.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout:property:file:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **file** - %%The file path.%%
+
+//Overridden from [[:develop:api:efl:file:property:file|Efl.File.file]] **(get, set)**.//===== Signature =====
+
+
+@property file {
+ get {}
+ set {
+ return: Eina.Error;
+ }
+ values {
+ file: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_file_get(const Eo *obj);
+Eina_Error efl_file_set(Eo *obj, const char *file);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:property:file|Efl.File.file]]
+ * [[:develop:api:efl:ui:win_part:property:file|Efl.Ui.Win_Part.file]]
+ * [[:develop:api:efl:canvas:video:property:file|Efl.Canvas.Video.file]]
+ * [[:develop:api:efl:ui:text:property:file|Efl.Ui.Text.file]]
+ * [[:develop:api:efl:ui:layout:property:file|Efl.Ui.Layout.file]]
+ * [[:develop:api:efl:ui:image_zoomable:property:file|Efl.Ui.Image_Zoomable.file]]
+ * [[:develop:api:efl:canvas:vg:object:property:file|Efl.Canvas.Vg.Object.file]]
+ * [[:develop:api:efl:ui:widget_part_bg:property:file|Efl.Ui.Widget_Part_Bg.file]]
+ * [[:develop:api:efl:ui:popup_part_backwall:property:file|Efl.Ui.Popup_Part_Backwall.file]]
+ * [[:develop:api:efl:ui:bg:property:file|Efl.Ui.Bg.file]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout/property/key.txt b/public_html/data/pages/develop/api/efl/ui/layout/property/key.txt
new file mode 100644
index 00000000..437c7871
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout/property/key.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Layout.key~~
+====== Efl.Ui.Layout.key ======
+
+===== Description =====
+
+%%The key which corresponds to the target data within a file.%%
+
+%%Some file types can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example %%[[:develop:api:efl:ui:image|Efl.Ui.Image]]%% or %%[[:develop:api:efl:ui:layout|Efl.Ui.Layout]]%%).%%
+
+%%You must not modify the strings on the returned pointers.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout:property:key:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **key** - %%The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.%%
+
+//Overridden from [[:develop:api:efl:file:property:key|Efl.File.key]] **(get, set)**.//===== Signature =====
+
+
+@property key {
+ get {}
+ set {}
+ values {
+ key: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_file_key_get(const Eo *obj);
+void efl_file_key_set(Eo *obj, const char *key);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:property:key|Efl.File.key]]
+ * [[:develop:api:efl:ui:win_part:property:key|Efl.Ui.Win_Part.key]]
+ * [[:develop:api:efl:ui:layout:property:key|Efl.Ui.Layout.key]]
+ * [[:develop:api:efl:ui:widget_part_bg:property:key|Efl.Ui.Widget_Part_Bg.key]]
+ * [[:develop:api:efl:ui:popup_part_backwall:property:key|Efl.Ui.Popup_Part_Backwall.key]]
+ * [[:develop:api:efl:ui:bg:property:key|Efl.Ui.Bg.key]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout/property/mmap.txt b/public_html/data/pages/develop/api/efl/ui/layout/property/mmap.txt
new file mode 100644
index 00000000..c7d05eed
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout/property/mmap.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.Ui.Layout.mmap~~
+====== Efl.Ui.Layout.mmap ======
+
+===== Description =====
+
+%%The mmaped file from where an object will fetch the real data (it must be an %%[[:develop:api:eina:file|Eina.File]]%%).%%
+
+%%If mmap is set during object construction, the object will automatically call %%[[:develop:api:efl:file:method:load|Efl.File.load]]%% during the finalize phase of construction.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout:property:mmap:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **f** - %%The handle to the %%[[:develop:api:eina:file|Eina.File]]%% that will be used%%
+
+//Overridden from [[:develop:api:efl:file:property:mmap|Efl.File.mmap]] **(get, set)**.//===== Signature =====
+
+
+@property mmap {
+ get {}
+ set {
+ return: Eina.Error;
+ }
+ values {
+ f: const(Eina.File);
+ }
+}
+
+
+===== C signature =====
+
+
+const Eina_File efl_file_mmap_get(const Eo *obj);
+Eina_Error efl_file_mmap_set(Eo *obj, const Eina_File f);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:property:mmap|Efl.File.mmap]]
+ * [[:develop:api:efl:ui:layout:property:mmap|Efl.Ui.Layout.mmap]]
+ * [[:develop:api:efl:ui:widget_part_bg:property:mmap|Efl.Ui.Widget_Part_Bg.mmap]]
+ * [[:develop:api:efl:ui:bg:property:mmap|Efl.Ui.Bg.mmap]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base.txt b/public_html/data/pages/develop/api/efl/ui/layout_base.txt
new file mode 100644
index 00000000..ecbf2bc2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base.txt
@@ -0,0 +1,559 @@
+~~Title: Efl.Ui.Layout_Base~~
+====== Efl.Ui.Layout_Base (class) ======
+
+===== Description =====
+
+%%EFL layout widget abstract.%%
+
+%%A "layout" in the context of EFL is an object which interfaces with the internal layout engine. Layouts are created using the EDC language, and any widget which implements this abstract must have a corresponding theme group to load in order to graphically display anything.%%
+
+%%Theme groups for EFL widgets must be versioned. This means having a "version" %%''data.item''%% key in the theme group for the widget. If the loaded theme group for a widget has version info which is lower than the currently-running EFL version, a warning will be printed to notify the user that new features may be available. If the loaded theme group for a widget has no version info, an error will be generated. If the loaded theme group for a widget has a version that is newer than the currently-running EFL version, a critical error will be printed to notify the user that the theme may not be compatible.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:layout_base:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] //(interface)//
+ * [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] //(interface)//
+ * [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] //(interface)//
+ * [[:develop:api:efl:layout:group|Efl.Layout.Group]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:layout_base:property:automatic_theme_rotation|automatic_theme_rotation]]** //**(get, set)**//\\
+> %%This flag tells if this object will automatically mirror the rotation changes of the window to this object.%%
+
+Eina_Bool efl_ui_layout_automatic_theme_rotation_get(const Eo *obj);
+void efl_ui_layout_automatic_theme_rotation_set(Eo *obj, Eina_Bool automatic);
+
+\\
+**[[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:layout:calc|Efl.Layout.Calc]]]//\\
+> %%Whether this object updates its size hints automatically.%%
+
+Eina_Bool efl_layout_calc_auto_update_hints_get(const Eo *obj);
+void efl_layout_calc_auto_update_hints_set(Eo *obj, Eina_Bool update);
+
+\\
+**[[:develop:api:efl:ui:layout_base:method:calc_freeze|calc_freeze]]**// [Overridden from [[:develop:api:efl:layout:calc|Efl.Layout.Calc]]]//\\
+> %%Freezes the layout object.%%
+
+int efl_layout_calc_freeze(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout_base:method:calc_parts_extends|calc_parts_extends]]**// [Overridden from [[:develop:api:efl:layout:calc|Efl.Layout.Calc]]]//\\
+> %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%%
+
+Eina_Rect efl_layout_calc_parts_extends(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout_base:method:calc_size_min|calc_size_min]]**// [Overridden from [[:develop:api:efl:layout:calc|Efl.Layout.Calc]]]//\\
+> %%Calculates the minimum required size for a given layout object.%%
+
+Eina_Size2D efl_layout_calc_size_min(Eo *obj, Eina_Size2D restricted);
+
+\\
+**[[:develop:api:efl:ui:layout_base:method:calc_thaw|calc_thaw]]**// [Overridden from [[:develop:api:efl:layout:calc|Efl.Layout.Calc]]]//\\
+> %%Thaws the layout object.%%
+
+int efl_layout_calc_thaw(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout_base:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout_base:method:content_count|content_count]]**// [Overridden from [[:develop:api:efl:container|Efl.Container]]]//\\
+> %%Returns the number of contained sub-objects.%%
+
+int efl_content_count(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout_base:method:content_iterate|content_iterate]]**// [Overridden from [[:develop:api:efl:container|Efl.Container]]]//\\
+> %%Begin iterating over this object's contents.%%
+
+Eina_Iterator *efl_content_iterate(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout_base:property:disabled|disabled]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Whether the widget is enabled (accepts and reacts to user inputs).%%
+
+Eina_Bool efl_ui_widget_disabled_get(const Eo *obj);
+void efl_ui_widget_disabled_set(Eo *obj, Eina_Bool disabled);
+
+\\
+**[[:develop:api:efl:ui:layout_base:method:factory_bind|factory_bind]]**// [Overridden from [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]]]//\\
+> %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%%
+
+Eina_Error efl_ui_factory_bind(Eo *obj, const char *key, Efl_Ui_Factory *factory);
+
+\\
+**[[:develop:api:efl:ui:layout_base:method:finalize|finalize]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+Efl_Object *efl_finalize(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout_base:property:finger_size_multiplier|finger_size_multiplier]]** //**(get, set)**//\\
+> %%Set a multiplier for applying finger size to the layout.%%
+
+void efl_ui_layout_finger_size_multiplier_get(const Eo *obj, unsigned int *multiplier_x, unsigned int *multiplier_y);
+void efl_ui_layout_finger_size_multiplier_set(Eo *obj, unsigned int multiplier_x, unsigned int multiplier_y);
+
+\\
+**[[:develop:api:efl:ui:layout_base:method:group_calculate|group_calculate]]**// [Overridden from [[:develop:api:efl:canvas:group|Efl.Canvas.Group]]]//\\
+> %%Triggers an immediate recalculation of this object's geometry.%%
+
+void efl_canvas_group_calculate(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout_base:property:group_data|group_data]]** //**(get)**//// [Overridden from [[:develop:api:efl:layout:group|Efl.Layout.Group]]]//\\
+>
+
+const char *efl_layout_group_data_get(const Eo *obj, const char *key);
+
+\\
+**[[:develop:api:efl:ui:layout_base:property:group_size_max|group_size_max]]** //**(get)**//// [Overridden from [[:develop:api:efl:layout:group|Efl.Layout.Group]]]//\\
+>
+
+Eina_Size2D efl_layout_group_size_max_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout_base:property:group_size_min|group_size_min]]** //**(get)**//// [Overridden from [[:develop:api:efl:layout:group|Efl.Layout.Group]]]//\\
+>
+
+Eina_Size2D efl_layout_group_size_min_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout_base:method:invalidate|invalidate]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to perform special actions when your object loses its parent, if you need to.%%
+
+void efl_invalidate(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout_base:property:l10n_text|l10n_text]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]]]//\\
+> %%A unique string to be translated.%%
+
+const char *efl_ui_l10n_text_get(const Eo *obj, const char **domain);
+void efl_ui_l10n_text_set(Eo *obj, const char *label, const char *domain);
+
+\\
+**[[:develop:api:efl:ui:layout_base:property:language|language]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]]]//\\
+> %%The (human) language for this object.%%
+
+const char *efl_ui_language_get(const Eo *obj);
+void efl_ui_language_set(Eo *obj, const char *language);
+
+\\
+**[[:develop:api:efl:ui:layout_base:method:message_send|message_send]]**// [Overridden from [[:develop:api:efl:layout:signal|Efl.Layout.Signal]]]//\\
+> %%Sends an (Edje) message to a given Edje object%%
+
+void efl_layout_signal_message_send(Eo *obj, int id, const Eina_Value msg);
+
+\\
+**[[:develop:api:efl:ui:layout_base:property:part_exist|part_exist]]** //**(get)**//// [Overridden from [[:develop:api:efl:layout:group|Efl.Layout.Group]]]//\\
+>
+
+Eina_Bool efl_layout_group_part_exist_get(const Eo *obj, const char *part);
+
+\\
+**[[:develop:api:efl:ui:layout_base:method:property_bind|property_bind]]**// [Overridden from [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]]]//\\
+> %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%%
+
+Eina_Error efl_ui_property_bind(Eo *obj, const char *key, const char *property);
+
+\\
+**[[:develop:api:efl:ui:layout_base:method:signal_callback_add|signal_callback_add]]**// [Overridden from [[:develop:api:efl:layout:signal|Efl.Layout.Signal]]]//\\
+> %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%%
+
+Eina_Bool efl_layout_signal_callback_add(Eo *obj, const char *emission, const char *source, EflLayoutSignalCb func);
+
+\\
+**[[:develop:api:efl:ui:layout_base:method:signal_callback_del|signal_callback_del]]**// [Overridden from [[:develop:api:efl:layout:signal|Efl.Layout.Signal]]]//\\
+> %%Removes a signal-triggered callback from an object.%%
+
+Eina_Bool efl_layout_signal_callback_del(Eo *obj, const char *emission, const char *source, EflLayoutSignalCb func);
+
+\\
+**[[:develop:api:efl:ui:layout_base:method:signal_emit|signal_emit]]**// [Overridden from [[:develop:api:efl:layout:signal|Efl.Layout.Signal]]]//\\
+> %%Sends/emits an Edje signal to this layout.%%
+
+void efl_layout_signal_emit(Eo *obj, const char *emission, const char *source);
+
+\\
+**[[:develop:api:efl:ui:layout_base:method:signal_process|signal_process]]**// [Overridden from [[:develop:api:efl:layout:signal|Efl.Layout.Signal]]]//\\
+> %%Processes an object's messages and signals queue.%%
+
+void efl_layout_signal_process(Eo *obj, Eina_Bool recurse);
+
+\\
+**[[:develop:api:efl:ui:layout_base:property:theme|theme]]** //**(get, set)**//\\
+> %%The theme of this widget, defines which edje group will be used.%%
+
+void efl_ui_layout_theme_get(const Eo *obj, const char **klass, const char **group, const char **style);
+Eina_Error efl_ui_layout_theme_set(Eo *obj, const char *klass, const char *group, const char *style);
+
+\\
+**[[:develop:api:efl:ui:layout_base:method:theme_rotation_apply|theme_rotation_apply]]**\\
+> %%Apply a new rotation value to this object.%%
+
+void efl_ui_layout_theme_rotation_apply(Eo *obj, int orientation);
+
+\\
+**[[:develop:api:efl:ui:layout_base:method:calc_force|calc_force]]** ''protected''// [Overridden from [[:develop:api:efl:layout:calc|Efl.Layout.Calc]]]//\\
+> %%Forces a Size/Geometry calculation.%%
+
+void efl_layout_calc_force(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout_base:method:on_focus_update|on_focus_update]]** ''protected''// [Overridden from [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]]]//\\
+> %%Virtual function handling focus in/out events on the widget.%%
+
+Eina_Bool efl_ui_focus_object_on_focus_update(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout_base:method:part_get|part_get]]** ''protected''// [Overridden from [[:develop:api:efl:part|Efl.Part]]]//\\
+> %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%%
+
+Efl_Object *efl_part_get(const Eo *obj, const char *name);
+
+\\
+**[[:develop:api:efl:ui:layout_base:method:theme_apply|theme_apply]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Virtual function called when the widget needs to re-apply its theme.%%
+
+Eina_Error efl_ui_widget_theme_apply(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout_base:method:widget_sub_object_add|widget_sub_object_add]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Virtual function customizing sub objects being added.%%
+
+Eina_Bool efl_ui_widget_sub_object_add(Eo *obj, Efl_Canvas_Object *sub_obj);
+
+\\
+**[[:develop:api:efl:ui:layout_base:method:widget_sub_object_del|widget_sub_object_del]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Virtual function customizing sub objects being removed.%%
+
+Eina_Bool efl_ui_widget_sub_object_del(Eo *obj, Efl_Canvas_Object *sub_obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:ui:widget:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:property:position|position]]** //**(get, set)**// | %%The 2D position of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:size|size]]** //**(get, set)**// | %%The 2D size of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| | **[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_input_event_handler|widget_input_event_handler]]** | %%Virtual function handling input events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+
+===== Events =====
+
+**[[:develop:api:efl:ui:layout_base:event:theme_changed|theme,changed]]**\\
+> %%Called when theme changed%%
+
+EFL_UI_LAYOUT_EVENT_THEME_CHANGED(void)
+
+\\ ==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] ^^^
+| | **[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]** | %%A circular dependency between parts of the object was found.%% |
+| | **[[:develop:api:efl:layout:calc:event:recalc|recalc]]** | %%The layout was recalculated.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/event/theme_changed.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/event/theme_changed.txt
new file mode 100644
index 00000000..2b08c03b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/event/theme_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Layout_Base: theme,changed~~
+
+===== Description =====
+
+%%Called when theme changed%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:layout_base:event:theme_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+theme,changed;
+
+
+===== C information =====
+
+
+EFL_UI_LAYOUT_EVENT_THEME_CHANGED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_layout_event_theme_changed(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_LAYOUT_EVENT_THEME_CHANGED, on_efl_ui_layout_event_theme_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/method/calc_force.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/method/calc_force.txt
new file mode 100644
index 00000000..18570f74
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/method/calc_force.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Ui.Layout_Base.calc_force~~
+====== Efl.Ui.Layout_Base.calc_force ======
+
+===== Description =====
+
+%%Forces a Size/Geometry calculation.%%
+
+%%Forces the object to recalculate its layout regardless of freeze/thaw. This API should be used carefully.%%
+
+%%See also %%[[:develop:api:efl:layout:calc:method:calc_freeze|Efl.Layout.Calc.calc_freeze]]%% and %%[[:develop:api:efl:layout:calc:method:calc_thaw|Efl.Layout.Calc.calc_thaw]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_base:method:calc_force:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:layout:calc:method:calc_force|Efl.Layout.Calc.calc_force]].//===== Signature =====
+
+
+calc_force @protected @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_layout_calc_force(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:calc:method:calc_force|Efl.Layout.Calc.calc_force]]
+ * [[:develop:api:efl:canvas:layout:method:calc_force|Efl.Canvas.Layout.calc_force]]
+ * [[:develop:api:efl:ui:image:method:calc_force|Efl.Ui.Image.calc_force]]
+ * [[:develop:api:efl:ui:layout_base:method:calc_force|Efl.Ui.Layout_Base.calc_force]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/method/calc_freeze.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/method/calc_freeze.txt
new file mode 100644
index 00000000..6baf3705
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/method/calc_freeze.txt
@@ -0,0 +1,35 @@
+~~Title: Efl.Ui.Layout_Base.calc_freeze~~
+====== Efl.Ui.Layout_Base.calc_freeze ======
+
+===== Description =====
+
+%%Freezes the layout object.%%
+
+%%This function puts all changes on hold. Successive freezes will nest, requiring an equal number of thaws.%%
+
+%%See also %%[[:develop:api:efl:layout:calc:method:calc_thaw|Efl.Layout.Calc.calc_thaw]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_base:method:calc_freeze:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:layout:calc:method:calc_freeze|Efl.Layout.Calc.calc_freeze]].//===== Signature =====
+
+
+calc_freeze @pure_virtual {
+ return: int;
+}
+
+
+===== C signature =====
+
+
+int efl_layout_calc_freeze(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:calc:method:calc_freeze|Efl.Layout.Calc.calc_freeze]]
+ * [[:develop:api:efl:canvas:layout:method:calc_freeze|Efl.Canvas.Layout.calc_freeze]]
+ * [[:develop:api:efl:ui:image:method:calc_freeze|Efl.Ui.Image.calc_freeze]]
+ * [[:develop:api:efl:ui:layout_base:method:calc_freeze|Efl.Ui.Layout_Base.calc_freeze]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/method/calc_parts_extends.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/method/calc_parts_extends.txt
new file mode 100644
index 00000000..552b5e29
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/method/calc_parts_extends.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Layout_Base.calc_parts_extends~~
+====== Efl.Ui.Layout_Base.calc_parts_extends ======
+
+===== Description =====
+
+%%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%%
+
+%%This function gets the geometry of the rectangle equal to the area required to group all parts in obj's group/collection. The x and y coordinates are relative to the top left corner of the whole obj object's area. Parts placed out of the group's boundaries will also be taken in account, so that x and y may be negative.%%
+
+
+calc_parts_extends @pure_virtual {
+ return: Eina.Rect;
+}
+
+
+===== C signature =====
+
+
+Eina_Rect efl_layout_calc_parts_extends(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:calc:method:calc_parts_extends|Efl.Layout.Calc.calc_parts_extends]]
+ * [[:develop:api:efl:canvas:layout:method:calc_parts_extends|Efl.Canvas.Layout.calc_parts_extends]]
+ * [[:develop:api:efl:ui:image:method:calc_parts_extends|Efl.Ui.Image.calc_parts_extends]]
+ * [[:develop:api:efl:ui:layout_base:method:calc_parts_extends|Efl.Ui.Layout_Base.calc_parts_extends]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/method/calc_size_min.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/method/calc_size_min.txt
new file mode 100644
index 00000000..6978efa9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/method/calc_size_min.txt
@@ -0,0 +1,48 @@
+~~Title: Efl.Ui.Layout_Base.calc_size_min~~
+====== Efl.Ui.Layout_Base.calc_size_min ======
+
+===== Description =====
+
+%%Calculates the minimum required size for a given layout object.%%
+
+%%This call will trigger an internal recalculation of all parts of the object, in order to return its minimum required dimensions for width and height. The user might choose to impose those minimum sizes, making the resulting calculation to get to values greater or equal than %%''restricted''%% in both directions.%%
+
+
+calc_size_min @pure_virtual {
+ params {
+ @in restricted: Eina.Size2D @optional;
+ }
+ return: Eina.Size2D;
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_layout_calc_size_min(Eo *obj, Eina_Size2D restricted);
+
+
+===== Parameters =====
+
+ * **restricted** //(in)// - %%The minimum size constraint as input, the returned size can not be lower than this (in both directions).%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:calc:method:calc_size_min|Efl.Layout.Calc.calc_size_min]]
+ * [[:develop:api:efl:canvas:layout:method:calc_size_min|Efl.Canvas.Layout.calc_size_min]]
+ * [[:develop:api:efl:ui:image:method:calc_size_min|Efl.Ui.Image.calc_size_min]]
+ * [[:develop:api:efl:ui:layout_base:method:calc_size_min|Efl.Ui.Layout_Base.calc_size_min]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/method/calc_thaw.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/method/calc_thaw.txt
new file mode 100644
index 00000000..4fb45685
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/method/calc_thaw.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Layout_Base.calc_thaw~~
+====== Efl.Ui.Layout_Base.calc_thaw ======
+
+===== Description =====
+
+%%Thaws the layout object.%%
+
+%%This function thaws (in other words "unfreezes") the given layout object.%%
+
+
+calc_thaw @pure_virtual {
+ return: int;
+}
+
+
+===== C signature =====
+
+
+int efl_layout_calc_thaw(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:calc:method:calc_thaw|Efl.Layout.Calc.calc_thaw]]
+ * [[:develop:api:efl:canvas:layout:method:calc_thaw|Efl.Canvas.Layout.calc_thaw]]
+ * [[:develop:api:efl:ui:image:method:calc_thaw|Efl.Ui.Image.calc_thaw]]
+ * [[:develop:api:efl:ui:layout_base:method:calc_thaw|Efl.Ui.Layout_Base.calc_thaw]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/method/constructor.txt
new file mode 100644
index 00000000..0c10bf58
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Layout_Base.constructor~~
+====== Efl.Ui.Layout_Base.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_base:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/method/content_count.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/method/content_count.txt
new file mode 100644
index 00000000..dc16983f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/method/content_count.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Layout_Base.content_count~~
+====== Efl.Ui.Layout_Base.content_count ======
+
+===== Description =====
+
+%%Returns the number of contained sub-objects.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_base:method:content_count:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:container:method:content_count|Efl.Container.content_count]].//===== Signature =====
+
+
+content_count @pure_virtual {
+ return: int;
+}
+
+
+===== C signature =====
+
+
+int efl_content_count(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:container:method:content_count|Efl.Container.content_count]]
+ * [[:develop:api:efl:canvas:layout:method:content_count|Efl.Canvas.Layout.content_count]]
+ * [[:develop:api:efl:ui:tab_bar:method:content_count|Efl.Ui.Tab_Bar.content_count]]
+ * [[:develop:api:efl:ui:table:method:content_count|Efl.Ui.Table.content_count]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:content_count|Efl.Canvas.Layout_Part_Table.content_count]]
+ * [[:develop:api:efl:ui:layout_part_table:method:content_count|Efl.Ui.Layout_Part_Table.content_count]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:content_count|Efl.Canvas.Layout_Part_Invalid.content_count]]
+ * [[:develop:api:efl:ui:flip:method:content_count|Efl.Ui.Flip.content_count]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:content_count|Efl.Canvas.Layout_Part_Box.content_count]]
+ * [[:develop:api:efl:ui:box:method:content_count|Efl.Ui.Box.content_count]]
+ * [[:develop:api:efl:ui:group_item:method:content_count|Efl.Ui.Group_Item.content_count]]
+ * [[:develop:api:efl:ui:collection:method:content_count|Efl.Ui.Collection.content_count]]
+ * [[:develop:api:efl:ui:layout_part_box:method:content_count|Efl.Ui.Layout_Part_Box.content_count]]
+ * [[:develop:api:efl:ui:spotlight:container:method:content_count|Efl.Ui.Spotlight.Container.content_count]]
+ * [[:develop:api:efl:ui:relative_layout:method:content_count|Efl.Ui.Relative_Layout.content_count]]
+ * [[:develop:api:efl:ui:layout_base:method:content_count|Efl.Ui.Layout_Base.content_count]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/method/content_iterate.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/method/content_iterate.txt
new file mode 100644
index 00000000..dd17b869
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/method/content_iterate.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Layout_Base.content_iterate~~
+====== Efl.Ui.Layout_Base.content_iterate ======
+
+===== Description =====
+
+%%Begin iterating over this object's contents.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_base:method:content_iterate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:container:method:content_iterate|Efl.Container.content_iterate]].//===== Signature =====
+
+
+content_iterate @pure_virtual {
+ return: iterator @no_unused;
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_content_iterate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:container:method:content_iterate|Efl.Container.content_iterate]]
+ * [[:develop:api:efl:canvas:layout:method:content_iterate|Efl.Canvas.Layout.content_iterate]]
+ * [[:develop:api:efl:ui:tab_bar:method:content_iterate|Efl.Ui.Tab_Bar.content_iterate]]
+ * [[:develop:api:efl:ui:table:method:content_iterate|Efl.Ui.Table.content_iterate]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:content_iterate|Efl.Canvas.Layout_Part_Table.content_iterate]]
+ * [[:develop:api:efl:ui:layout_part_table:method:content_iterate|Efl.Ui.Layout_Part_Table.content_iterate]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:content_iterate|Efl.Canvas.Layout_Part_Invalid.content_iterate]]
+ * [[:develop:api:efl:ui:flip:method:content_iterate|Efl.Ui.Flip.content_iterate]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:content_iterate|Efl.Canvas.Layout_Part_Box.content_iterate]]
+ * [[:develop:api:efl:ui:box:method:content_iterate|Efl.Ui.Box.content_iterate]]
+ * [[:develop:api:efl:ui:group_item:method:content_iterate|Efl.Ui.Group_Item.content_iterate]]
+ * [[:develop:api:efl:ui:collection:method:content_iterate|Efl.Ui.Collection.content_iterate]]
+ * [[:develop:api:efl:ui:layout_part_box:method:content_iterate|Efl.Ui.Layout_Part_Box.content_iterate]]
+ * [[:develop:api:efl:ui:spotlight:container:method:content_iterate|Efl.Ui.Spotlight.Container.content_iterate]]
+ * [[:develop:api:efl:ui:relative_layout:method:content_iterate|Efl.Ui.Relative_Layout.content_iterate]]
+ * [[:develop:api:efl:ui:layout_base:method:content_iterate|Efl.Ui.Layout_Base.content_iterate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/method/factory_bind.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/method/factory_bind.txt
new file mode 100644
index 00000000..4d14f254
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/method/factory_bind.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Layout_Base.factory_bind~~
+====== Efl.Ui.Layout_Base.factory_bind ======
+
+===== Description =====
+
+%%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_base:method:factory_bind:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:factory_bind:method:factory_bind|Efl.Ui.Factory_Bind.factory_bind]].//===== Signature =====
+
+
+factory_bind @pure_virtual {
+ params {
+ @in key: string;
+ @in factory: Efl.Ui.Factory;
+ }
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_factory_bind(Eo *obj, const char *key, Efl_Ui_Factory *factory);
+
+
+===== Parameters =====
+
+ * **key** //(in)// - %%Key string for bind model property data%%
+ * **factory** //(in)// - %%%%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% for create and bind model property data%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:factory_bind:method:factory_bind|Efl.Ui.Factory_Bind.factory_bind]]
+ * [[:develop:api:efl:ui:widget_factory:method:factory_bind|Efl.Ui.Widget_Factory.factory_bind]]
+ * [[:develop:api:efl:ui:layout_factory:method:factory_bind|Efl.Ui.Layout_Factory.factory_bind]]
+ * [[:develop:api:efl:ui:layout_base:method:factory_bind|Efl.Ui.Layout_Base.factory_bind]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/method/finalize.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/method/finalize.txt
new file mode 100644
index 00000000..367e2adf
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/method/finalize.txt
@@ -0,0 +1,91 @@
+~~Title: Efl.Ui.Layout_Base.finalize~~
+====== Efl.Ui.Layout_Base.finalize ======
+
+===== Description =====
+
+%%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+%%Use this method to delay expensive operations until user configuration has finished, to avoid building the object in a "default" state in the constructor, just to have to throw it all away because a user configuration (a property being set, for example) requires a different state. This is the last call inside efl_add() and will set %%[[:develop:api:efl:object:property:finalized|Efl.Object.finalized]]%% to %%''true''%% once it returns. This is an optimization and implementing this method is optional if you already perform all your initialization in the %%[[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]%% method. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_base:method:finalize:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:finalize|Efl.Object.finalize]].//===== Signature =====
+
+
+finalize {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_finalize(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]
+ * [[:develop:api:efl:loop_handler:method:finalize|Efl.Loop_Handler.finalize]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:finalize|Efl.Ui.Position_Manager.Grid.finalize]]
+ * [[:develop:api:efl:canvas:layout_part:method:finalize|Efl.Canvas.Layout_Part.finalize]]
+ * [[:develop:api:efl:net:server_udp_client:method:finalize|Efl.Net.Server_Udp_Client.finalize]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:finalize|Efl.Ui.Widget_Part_Bg.finalize]]
+ * [[:develop:api:efl:ui:layout_part_bg:method:finalize|Efl.Ui.Layout_Part_Bg.finalize]]
+ * [[:develop:api:efl:io:buffered_stream:method:finalize|Efl.Io.Buffered_Stream.finalize]]
+ * [[:develop:api:efl:net:dialer_simple:method:finalize|Efl.Net.Dialer_Simple.finalize]]
+ * [[:develop:api:efl:io:file:method:finalize|Efl.Io.File.finalize]]
+ * [[:develop:api:efl:net:server_fd:method:finalize|Efl.Net.Server_Fd.finalize]]
+ * [[:develop:api:efl:io:stderr:method:finalize|Efl.Io.Stderr.finalize]]
+ * [[:develop:api:efl:io:stdin:method:finalize|Efl.Io.Stdin.finalize]]
+ * [[:develop:api:efl:io:stdout:method:finalize|Efl.Io.Stdout.finalize]]
+ * [[:develop:api:efl:net:socket_fd:method:finalize|Efl.Net.Socket_Fd.finalize]]
+ * [[:develop:api:efl:net:socket_ssl:method:finalize|Efl.Net.Socket_Ssl.finalize]]
+ * [[:develop:api:efl:net:dialer_ssl:method:finalize|Efl.Net.Dialer_Ssl.finalize]]
+ * [[:develop:api:efl:canvas:object:method:finalize|Efl.Canvas.Object.finalize]]
+ * [[:develop:api:efl:canvas:image_internal:method:finalize|Efl.Canvas.Image_Internal.finalize]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:finalize|Efl.Ui.Internal.Text.Interactive.finalize]]
+ * [[:develop:api:efl:ui:widget:method:finalize|Efl.Ui.Widget.finalize]]
+ * [[:develop:api:efl:ui:win:method:finalize|Efl.Ui.Win.finalize]]
+ * [[:develop:api:efl:ui:win_socket:method:finalize|Efl.Ui.Win_Socket.finalize]]
+ * [[:develop:api:efl:ui:win_inlined:method:finalize|Efl.Ui.Win_Inlined.finalize]]
+ * [[:develop:api:efl:ui:layout_base:method:finalize|Efl.Ui.Layout_Base.finalize]]
+ * [[:develop:api:efl:ui:text:method:finalize|Efl.Ui.Text.finalize]]
+ * [[:develop:api:efl:ui:tab_bar:method:finalize|Efl.Ui.Tab_Bar.finalize]]
+ * [[:develop:api:efl:ui:item:method:finalize|Efl.Ui.Item.finalize]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:finalize|Efl.Ui.List_Placeholder_Item.finalize]]
+ * [[:develop:api:elm:code_widget:method:finalize|Elm.Code_Widget.finalize]]
+ * [[:develop:api:efl:ui:scroller:method:finalize|Efl.Ui.Scroller.finalize]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:finalize|Efl.Ui.Internal_Text_Scroller.finalize]]
+ * [[:develop:api:efl:ui:collection:method:finalize|Efl.Ui.Collection.finalize]]
+ * [[:develop:api:efl:ui:spotlight:container:method:finalize|Efl.Ui.Spotlight.Container.finalize]]
+ * [[:develop:api:efl:ui:tab_pager:method:finalize|Efl.Ui.Tab_Pager.finalize]]
+ * [[:develop:api:efl:ui:bg:method:finalize|Efl.Ui.Bg.finalize]]
+ * [[:develop:api:efl:canvas:vg:object:method:finalize|Efl.Canvas.Vg.Object.finalize]]
+ * [[:develop:api:efl:loop_timer:method:finalize|Efl.Loop_Timer.finalize]]
+ * [[:develop:api:eldbus:model:method:finalize|Eldbus.Model.finalize]]
+ * [[:develop:api:eldbus:model:proxy:method:finalize|Eldbus.Model.Proxy.finalize]]
+ * [[:develop:api:eldbus:model:arguments:method:finalize|Eldbus.Model.Arguments.finalize]]
+ * [[:develop:api:eldbus:model:method:method:finalize|Eldbus.Model.Method.finalize]]
+ * [[:develop:api:eldbus:model:object:method:finalize|Eldbus.Model.Object.finalize]]
+ * [[:develop:api:efl:composite_model:method:finalize|Efl.Composite_Model.finalize]]
+ * [[:develop:api:efl:container_model:method:finalize|Efl.Container_Model.finalize]]
+ * [[:develop:api:efl:ui:view_model:method:finalize|Efl.Ui.View_Model.finalize]]
+ * [[:develop:api:efl:io:model:method:finalize|Efl.Io.Model.finalize]]
+ * [[:develop:api:efl:net:server_simple:method:finalize|Efl.Net.Server_Simple.finalize]]
+ * [[:develop:api:efl:net:control:manager:method:finalize|Efl.Net.Control.Manager.finalize]]
+ * [[:develop:api:efl:ui:widget_factory:method:finalize|Efl.Ui.Widget_Factory.finalize]]
+ * [[:develop:api:efl:ui:caching_factory:method:finalize|Efl.Ui.Caching_Factory.finalize]]
+ * [[:develop:api:efl:thread:method:finalize|Efl.Thread.finalize]]
+ * [[:develop:api:efl:net:session:method:finalize|Efl.Net.Session.finalize]]
+ * [[:develop:api:efl:io:copier:method:finalize|Efl.Io.Copier.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:finalize|Efl.Ui.Focus.Manager_Calc.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:finalize|Efl.Ui.Focus.Manager_Root_Focus.finalize]]
+ * [[:develop:api:evas:canvas3d:node:method:finalize|Evas.Canvas3D.Node.finalize]]
+ * [[:develop:api:efl:net:ssl:context:method:finalize|Efl.Net.Ssl.Context.finalize]]
+ * [[:develop:api:efl:io:buffer:method:finalize|Efl.Io.Buffer.finalize]]
+ * [[:develop:api:efl:net:ip_address:method:finalize|Efl.Net.Ip_Address.finalize]]
+ * [[:develop:api:efl:io:queue:method:finalize|Efl.Io.Queue.finalize]]
+ * [[:develop:api:ector:renderer:method:finalize|Ector.Renderer.finalize]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/method/group_calculate.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/method/group_calculate.txt
new file mode 100644
index 00000000..02a4421b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/method/group_calculate.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Ui.Layout_Base.group_calculate~~
+====== Efl.Ui.Layout_Base.group_calculate ======
+
+===== Description =====
+
+%%Triggers an immediate recalculation of this object's geometry.%%
+
+%%This will also reset the flag %%[[:develop:api:efl:canvas:group:property:group_need_recalculate|Efl.Canvas.Group.group_need_recalculate]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_base:method:group_calculate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:group_calculate|Efl.Canvas.Group.group_calculate]].//===== Signature =====
+
+
+group_calculate {}
+
+
+===== C signature =====
+
+
+void efl_canvas_group_calculate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:group:method:group_calculate|Efl.Canvas.Group.group_calculate]]
+ * [[:develop:api:efl:canvas:event_grabber:method:group_calculate|Efl.Canvas.Event_Grabber.group_calculate]]
+ * [[:develop:api:efl:canvas:layout:method:group_calculate|Efl.Canvas.Layout.group_calculate]]
+ * [[:develop:api:efl:ui:widget:method:group_calculate|Efl.Ui.Widget.group_calculate]]
+ * [[:develop:api:efl:ui:table:method:group_calculate|Efl.Ui.Table.group_calculate]]
+ * [[:develop:api:efl:ui:box:method:group_calculate|Efl.Ui.Box.group_calculate]]
+ * [[:develop:api:efl:ui:layout_base:method:group_calculate|Efl.Ui.Layout_Base.group_calculate]]
+ * [[:develop:api:efl:ui:clock:method:group_calculate|Efl.Ui.Clock.group_calculate]]
+ * [[:develop:api:efl:ui:text:method:group_calculate|Efl.Ui.Text.group_calculate]]
+ * [[:develop:api:efl:ui:panel:method:group_calculate|Efl.Ui.Panel.group_calculate]]
+ * [[:develop:api:efl:ui:layout:method:group_calculate|Efl.Ui.Layout.group_calculate]]
+ * [[:develop:api:efl:ui:textpath:method:group_calculate|Efl.Ui.Textpath.group_calculate]]
+ * [[:develop:api:efl:ui:scroller:method:group_calculate|Efl.Ui.Scroller.group_calculate]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:group_calculate|Efl.Ui.Internal_Text_Scroller.group_calculate]]
+ * [[:develop:api:efl:ui:panes:method:group_calculate|Efl.Ui.Panes.group_calculate]]
+ * [[:develop:api:efl:ui:calendar:method:group_calculate|Efl.Ui.Calendar.group_calculate]]
+ * [[:develop:api:efl:ui:frame:method:group_calculate|Efl.Ui.Frame.group_calculate]]
+ * [[:develop:api:efl:ui:popup:method:group_calculate|Efl.Ui.Popup.group_calculate]]
+ * [[:develop:api:efl:ui:video:method:group_calculate|Efl.Ui.Video.group_calculate]]
+ * [[:develop:api:efl:ui:relative_layout:method:group_calculate|Efl.Ui.Relative_Layout.group_calculate]]
+ * [[:develop:api:efl:ui:pan:method:group_calculate|Efl.Ui.Pan.group_calculate]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:group_calculate|Efl.Ui.Image_Zoomable_Pan.group_calculate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/method/invalidate.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/method/invalidate.txt
new file mode 100644
index 00000000..e910a76e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/method/invalidate.txt
@@ -0,0 +1,74 @@
+~~Title: Efl.Ui.Layout_Base.invalidate~~
+====== Efl.Ui.Layout_Base.invalidate ======
+
+===== Description =====
+
+%%Implement this method to perform special actions when your object loses its parent, if you need to.%%
+
+%%It is called when the parent reference is lost or set to %%''NULL''%%. After this call returns, %%[[:develop:api:efl:object:property:invalidated|Efl.Object.invalidated]]%% is set to %%''true''%%. This allows a simpler tear down of complex hierarchies, by performing object destruction in two steps, first all object relationships are broken and then the isolated objects are destroyed. Performing everything in the %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%% can sometimes lead to deadlocks, but implementing this method is optional if this is not your case. When an object with a parent is destroyed, it first receives a call to %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% and then to %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_base:method:invalidate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:invalidate|Efl.Object.invalidate]].//===== Signature =====
+
+
+invalidate {}
+
+
+===== C signature =====
+
+
+void efl_invalidate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]
+ * [[:develop:api:efl:canvas:vg:node:method:invalidate|Efl.Canvas.Vg.Node.invalidate]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:invalidate|Efl.Ui.Position_Manager.Grid.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:manager_scroll:method:invalidate|Efl.Ui.Spotlight.Manager_Scroll.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:manager_stack:method:invalidate|Efl.Ui.Spotlight.Manager_Stack.invalidate]]
+ * [[:develop:api:efl:net:server_udp_client:method:invalidate|Efl.Net.Server_Udp_Client.invalidate]]
+ * [[:develop:api:efl:net:server_windows:method:invalidate|Efl.Net.Server_Windows.invalidate]]
+ * [[:develop:api:efl:io:buffered_stream:method:invalidate|Efl.Io.Buffered_Stream.invalidate]]
+ * [[:develop:api:efl:net:dialer_simple:method:invalidate|Efl.Net.Dialer_Simple.invalidate]]
+ * [[:develop:api:efl:loop_fd:method:invalidate|Efl.Loop_Fd.invalidate]]
+ * [[:develop:api:efl:net:server_ssl:method:invalidate|Efl.Net.Server_Ssl.invalidate]]
+ * [[:develop:api:efl:net:socket_fd:method:invalidate|Efl.Net.Socket_Fd.invalidate]]
+ * [[:develop:api:efl:net:dialer_udp:method:invalidate|Efl.Net.Dialer_Udp.invalidate]]
+ * [[:develop:api:efl:net:dialer_unix:method:invalidate|Efl.Net.Dialer_Unix.invalidate]]
+ * [[:develop:api:efl:net:dialer_tcp:method:invalidate|Efl.Net.Dialer_Tcp.invalidate]]
+ * [[:develop:api:efl:net:socket_ssl:method:invalidate|Efl.Net.Socket_Ssl.invalidate]]
+ * [[:develop:api:efl:net:dialer_ssl:method:invalidate|Efl.Net.Dialer_Ssl.invalidate]]
+ * [[:develop:api:efl:canvas:object:method:invalidate|Efl.Canvas.Object.invalidate]]
+ * [[:develop:api:efl:canvas:layout:method:invalidate|Efl.Canvas.Layout.invalidate]]
+ * [[:develop:api:efl:ui:widget:method:invalidate|Efl.Ui.Widget.invalidate]]
+ * [[:develop:api:efl:ui:table:method:invalidate|Efl.Ui.Table.invalidate]]
+ * [[:develop:api:efl:ui:box:method:invalidate|Efl.Ui.Box.invalidate]]
+ * [[:develop:api:efl:ui:image:method:invalidate|Efl.Ui.Image.invalidate]]
+ * [[:develop:api:efl:ui:layout_base:method:invalidate|Efl.Ui.Layout_Base.invalidate]]
+ * [[:develop:api:efl:ui:collection_view:method:invalidate|Efl.Ui.Collection_View.invalidate]]
+ * [[:develop:api:efl:ui:group_item:method:invalidate|Efl.Ui.Group_Item.invalidate]]
+ * [[:develop:api:efl:ui:collection:method:invalidate|Efl.Ui.Collection.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:container:method:invalidate|Efl.Ui.Spotlight.Container.invalidate]]
+ * [[:develop:api:efl:ui:relative_layout:method:invalidate|Efl.Ui.Relative_Layout.invalidate]]
+ * [[:develop:api:efl:canvas:vg:object:method:invalidate|Efl.Canvas.Vg.Object.invalidate]]
+ * [[:develop:api:efl:loop_model:method:invalidate|Efl.Loop_Model.invalidate]]
+ * [[:develop:api:eldbus:model:method:invalidate|Eldbus.Model.invalidate]]
+ * [[:develop:api:eldbus:model:connection:method:invalidate|Eldbus.Model.Connection.invalidate]]
+ * [[:develop:api:eldbus:model:proxy:method:invalidate|Eldbus.Model.Proxy.invalidate]]
+ * [[:develop:api:eldbus:model:arguments:method:invalidate|Eldbus.Model.Arguments.invalidate]]
+ * [[:develop:api:eldbus:model:signal:method:invalidate|Eldbus.Model.Signal.invalidate]]
+ * [[:develop:api:eldbus:model:object:method:invalidate|Eldbus.Model.Object.invalidate]]
+ * [[:develop:api:efl:composite_model:method:invalidate|Efl.Composite_Model.invalidate]]
+ * [[:develop:api:efl:ui:select_model:method:invalidate|Efl.Ui.Select_Model.invalidate]]
+ * [[:develop:api:efl:io:model:method:invalidate|Efl.Io.Model.invalidate]]
+ * [[:develop:api:efl:net:dialer_websocket:method:invalidate|Efl.Net.Dialer_Websocket.invalidate]]
+ * [[:develop:api:efl:net:server_simple:method:invalidate|Efl.Net.Server_Simple.invalidate]]
+ * [[:develop:api:efl:ui:caching_factory:method:invalidate|Efl.Ui.Caching_Factory.invalidate]]
+ * [[:develop:api:efl:loop:method:invalidate|Efl.Loop.invalidate]]
+ * [[:develop:api:efl:net:dialer_http:method:invalidate|Efl.Net.Dialer_Http.invalidate]]
+ * [[:develop:api:efl:io:copier:method:invalidate|Efl.Io.Copier.invalidate]]
+ * [[:develop:api:efl:ui:position_manager:list:method:invalidate|Efl.Ui.Position_Manager.List.invalidate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/method/message_send.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/method/message_send.txt
new file mode 100644
index 00000000..c140a664
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/method/message_send.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Ui.Layout_Base.message_send~~
+====== Efl.Ui.Layout_Base.message_send ======
+
+===== Description =====
+
+%%Sends an (Edje) message to a given Edje object%%
+
+%%This function sends an Edje message to obj and to all of its child objects, if it has any (swallowed objects are one kind of child object). Only a few types are supported: - int, - float/double, - string/stringshare, - arrays of int, float, double or strings.%%
+
+%%Messages can go both ways, from code to theme, or theme to code.%%
+
+%%The id argument as a form of code and theme defining a common interface on message communication. One should define the same IDs on both code and EDC declaration, to individualize messages (binding them to a given context).%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_base:method:message_send:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:layout:signal:method:message_send|Efl.Layout.Signal.message_send]].//===== Signature =====
+
+
+message_send @pure_virtual {
+ params {
+ @in id: int;
+ @in msg: const(any_value);
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_layout_signal_message_send(Eo *obj, int id, const Eina_Value msg);
+
+
+===== Parameters =====
+
+ * **id** //(in)// - %%A identification number for the message to be sent%%
+ * **msg** //(in)// - %%The message's payload%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:signal:method:message_send|Efl.Layout.Signal.message_send]]
+ * [[:develop:api:efl:canvas:layout:method:message_send|Efl.Canvas.Layout.message_send]]
+ * [[:develop:api:efl:ui:image:method:message_send|Efl.Ui.Image.message_send]]
+ * [[:develop:api:efl:ui:layout_base:method:message_send|Efl.Ui.Layout_Base.message_send]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/method/on_focus_update.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/method/on_focus_update.txt
new file mode 100644
index 00000000..fd2cf7e0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/method/on_focus_update.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.Layout_Base.on_focus_update~~
+====== Efl.Ui.Layout_Base.on_focus_update ======
+
+===== Description =====
+
+%%Virtual function handling focus in/out events on the widget.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_base:method:on_focus_update:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:on_focus_update|Efl.Ui.Focus.Object.on_focus_update]].//===== Signature =====
+
+
+on_focus_update @protected {
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_focus_object_on_focus_update(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:object:method:on_focus_update|Efl.Ui.Focus.Object.on_focus_update]]
+ * [[:develop:api:efl:ui:widget:method:on_focus_update|Efl.Ui.Widget.on_focus_update]]
+ * [[:develop:api:efl:ui:win:method:on_focus_update|Efl.Ui.Win.on_focus_update]]
+ * [[:develop:api:efl:ui:image_zoomable:method:on_focus_update|Efl.Ui.Image_Zoomable.on_focus_update]]
+ * [[:develop:api:efl:ui:layout_base:method:on_focus_update|Efl.Ui.Layout_Base.on_focus_update]]
+ * [[:develop:api:efl:ui:slider:method:on_focus_update|Efl.Ui.Slider.on_focus_update]]
+ * [[:develop:api:efl:ui:text:method:on_focus_update|Efl.Ui.Text.on_focus_update]]
+ * [[:develop:api:efl:ui:spin_button:method:on_focus_update|Efl.Ui.Spin_Button.on_focus_update]]
+ * [[:develop:api:efl:ui:calendar:method:on_focus_update|Efl.Ui.Calendar.on_focus_update]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/method/part_get.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/method/part_get.txt
new file mode 100644
index 00000000..8f3c87cb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/method/part_get.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Layout_Base.part_get~~
+====== Efl.Ui.Layout_Base.part_get ======
+
+===== Description =====
+
+%%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_base:method:part_get:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:part_get|Efl.Part.part_get]].//===== Signature =====
+
+
+part_get @protected @const @pure_virtual {
+ params {
+ @in name: string;
+ }
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_part_get(const Eo *obj, const char *name);
+
+
+===== Parameters =====
+
+ * **name** //(in)// - %%The part name.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:part:method:part_get|Efl.Part.part_get]]
+ * [[:develop:api:efl:canvas:layout:method:part_get|Efl.Canvas.Layout.part_get]]
+ * [[:develop:api:efl:ui:widget:method:part_get|Efl.Ui.Widget.part_get]]
+ * [[:develop:api:efl:ui:win:method:part_get|Efl.Ui.Win.part_get]]
+ * [[:develop:api:efl:ui:flip:method:part_get|Efl.Ui.Flip.part_get]]
+ * [[:develop:api:efl:ui:layout_base:method:part_get|Efl.Ui.Layout_Base.part_get]]
+ * [[:develop:api:efl:ui:text:method:part_get|Efl.Ui.Text.part_get]]
+ * [[:develop:api:efl:ui:default_item:method:part_get|Efl.Ui.Default_Item.part_get]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:part_get|Efl.Ui.List_Placeholder_Item.part_get]]
+ * [[:develop:api:efl:ui:textpath:method:part_get|Efl.Ui.Textpath.part_get]]
+ * [[:develop:api:efl:ui:panes:method:part_get|Efl.Ui.Panes.part_get]]
+ * [[:develop:api:efl:ui:progressbar:method:part_get|Efl.Ui.Progressbar.part_get]]
+ * [[:develop:api:efl:ui:popup:method:part_get|Efl.Ui.Popup.part_get]]
+ * [[:develop:api:efl:ui:alert_popup:method:part_get|Efl.Ui.Alert_Popup.part_get]]
+ * [[:develop:api:efl:ui:navigation_bar:method:part_get|Efl.Ui.Navigation_Bar.part_get]]
+ * [[:develop:api:efl:ui:widget_factory:method:part_get|Efl.Ui.Widget_Factory.part_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/method/property_bind.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/method/property_bind.txt
new file mode 100644
index 00000000..c2043028
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/method/property_bind.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Layout_Base.property_bind~~
+====== Efl.Ui.Layout_Base.property_bind ======
+
+===== Description =====
+
+%%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_base:method:property_bind:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:property_bind|Efl.Ui.Property_Bind.property_bind]].//===== Signature =====
+
+
+property_bind @pure_virtual {
+ params {
+ @in key: string;
+ @in property: string;
+ }
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_property_bind(Eo *obj, const char *key, const char *property);
+
+
+===== Parameters =====
+
+ * **key** //(in)// - %%key string for bind model property data%%
+ * **property** //(in)// - %%Model property name%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]
+ * [[:develop:api:efl:ui:widget_factory:method:property_bind|Efl.Ui.Widget_Factory.property_bind]]
+ * [[:develop:api:efl:ui:caching_factory:method:property_bind|Efl.Ui.Caching_Factory.property_bind]]
+ * [[:develop:api:efl:ui:image_factory:method:property_bind|Efl.Ui.Image_Factory.property_bind]]
+ * [[:develop:api:efl:ui:layout_factory:method:property_bind|Efl.Ui.Layout_Factory.property_bind]]
+ * [[:develop:api:efl:ui:widget_part:method:property_bind|Efl.Ui.Widget_Part.property_bind]]
+ * [[:develop:api:efl:ui:widget:method:property_bind|Efl.Ui.Widget.property_bind]]
+ * [[:develop:api:efl:ui:image:method:property_bind|Efl.Ui.Image.property_bind]]
+ * [[:develop:api:efl:ui:layout_base:method:property_bind|Efl.Ui.Layout_Base.property_bind]]
+ * [[:develop:api:efl:ui:property_bind_part:method:property_bind|Efl.Ui.Property_Bind_Part.property_bind]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/method/signal_callback_add.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/method/signal_callback_add.txt
new file mode 100644
index 00000000..8822fd1c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/method/signal_callback_add.txt
@@ -0,0 +1,60 @@
+~~Title: Efl.Ui.Layout_Base.signal_callback_add~~
+====== Efl.Ui.Layout_Base.signal_callback_add ======
+
+===== Description =====
+
+%%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%%
+
+%%Edje signals are one of the communication interfaces between code and a given Edje object's theme. With signals, one can communicate two string values at a time, which are: - "emission" value: the name of the signal, in general - "source" value: a name for the signal's context, in general%%
+
+%%Signals can go both ways, from code to theme, or theme to code.%%
+
+%%Though there are those common uses for the two strings, one is free to use them however they like.%%
+
+%%Signal callback registration is powerful, in the way that blobs may be used to match multiple signals at once. All the "*?[" set of %%''fnmatch''%%() operators can be used, both for emission and source.%%
+
+%%Edje has internal signals it will emit, automatically, on various actions taking place on group parts. For example, the mouse cursor being moved, pressed, released, etc., over a given part's area, all generate individual signals.%%
+
+%%With something like emission = "mouse,down,*", source = "button.*" where "button.*" is the pattern for the names of parts implementing buttons on an interface, you'd be registering for notifications on events of mouse buttons being pressed down on either of those parts (those events all have the "mouse,down," common prefix on their names, with a suffix giving the button number). The actual emission and source strings of an event will be passed in as the emission and source parameters of the callback function (e.g. "mouse,down,2" and "button.close"), for each of those events.%%
+
+%%See also the Edje Data Collection Reference for EDC files.%%
+
+%%See %%[[:develop:api:efl:layout:signal:method:signal_emit|Efl.Layout.Signal.signal_emit]]%% on how to emit signals from code to a an object See %%[[:develop:api:efl:layout:signal:method:signal_callback_del|Efl.Layout.Signal.signal_callback_del]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_base:method:signal_callback_add:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:layout:signal:method:signal_callback_add|Efl.Layout.Signal.signal_callback_add]].//===== Signature =====
+
+
+signal_callback_add @pure_virtual {
+ params {
+ @in emission: string;
+ @in source: string;
+ @in func: EflLayoutSignalCb;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_layout_signal_callback_add(Eo *obj, const char *emission, const char *source, EflLayoutSignalCb func);
+
+
+===== Parameters =====
+
+ * **emission** //(in)// - %%The signal's "emission" string%%
+ * **source** //(in)// - %%The signal's "source" string%%
+ * **func** //(in)// - %%The callback function to be executed when the signal is emitted.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:signal:method:signal_callback_add|Efl.Layout.Signal.signal_callback_add]]
+ * [[:develop:api:efl:canvas:layout:method:signal_callback_add|Efl.Canvas.Layout.signal_callback_add]]
+ * [[:develop:api:efl:ui:image:method:signal_callback_add|Efl.Ui.Image.signal_callback_add]]
+ * [[:develop:api:efl:ui:image_zoomable:method:signal_callback_add|Efl.Ui.Image_Zoomable.signal_callback_add]]
+ * [[:develop:api:efl:ui:layout_base:method:signal_callback_add|Efl.Ui.Layout_Base.signal_callback_add]]
+ * [[:develop:api:efl:ui:text:method:signal_callback_add|Efl.Ui.Text.signal_callback_add]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/method/signal_callback_del.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/method/signal_callback_del.txt
new file mode 100644
index 00000000..97da519e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/method/signal_callback_del.txt
@@ -0,0 +1,48 @@
+~~Title: Efl.Ui.Layout_Base.signal_callback_del~~
+====== Efl.Ui.Layout_Base.signal_callback_del ======
+
+===== Description =====
+
+%%Removes a signal-triggered callback from an object.%%
+
+%%This function removes a callback, previously attached to the emission of a signal, from the object obj. The parameters emission, source and func must match exactly those passed to a previous call to %%[[:develop:api:efl:layout:signal:method:signal_callback_add|Efl.Layout.Signal.signal_callback_add]]%%().%%
+
+%%See %%[[:develop:api:efl:layout:signal:method:signal_callback_add|Efl.Layout.Signal.signal_callback_add]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_base:method:signal_callback_del:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:layout:signal:method:signal_callback_del|Efl.Layout.Signal.signal_callback_del]].//===== Signature =====
+
+
+signal_callback_del @pure_virtual {
+ params {
+ @in emission: string;
+ @in source: string;
+ @in func: EflLayoutSignalCb;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_layout_signal_callback_del(Eo *obj, const char *emission, const char *source, EflLayoutSignalCb func);
+
+
+===== Parameters =====
+
+ * **emission** //(in)// - %%The signal's "emission" string%%
+ * **source** //(in)// - %%The signal's "source" string%%
+ * **func** //(in)// - %%The callback function to be executed when the signal is emitted.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:signal:method:signal_callback_del|Efl.Layout.Signal.signal_callback_del]]
+ * [[:develop:api:efl:canvas:layout:method:signal_callback_del|Efl.Canvas.Layout.signal_callback_del]]
+ * [[:develop:api:efl:ui:image:method:signal_callback_del|Efl.Ui.Image.signal_callback_del]]
+ * [[:develop:api:efl:ui:image_zoomable:method:signal_callback_del|Efl.Ui.Image_Zoomable.signal_callback_del]]
+ * [[:develop:api:efl:ui:layout_base:method:signal_callback_del|Efl.Ui.Layout_Base.signal_callback_del]]
+ * [[:develop:api:efl:ui:text:method:signal_callback_del|Efl.Ui.Text.signal_callback_del]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/method/signal_emit.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/method/signal_emit.txt
new file mode 100644
index 00000000..d156b5ff
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/method/signal_emit.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Layout_Base.signal_emit~~
+====== Efl.Ui.Layout_Base.signal_emit ======
+
+===== Description =====
+
+%%Sends/emits an Edje signal to this layout.%%
+
+%%This function sends a signal to the object. An Edje program, at the EDC specification level, can respond to a signal by having declared matching "signal" and "source" fields on its block.%%
+
+%%See also the Edje Data Collection Reference for EDC files.%%
+
+%%See %%[[:develop:api:efl:layout:signal:method:signal_callback_add|Efl.Layout.Signal.signal_callback_add]]%%() for more on Edje signals.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_base:method:signal_emit:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:layout:signal:method:signal_emit|Efl.Layout.Signal.signal_emit]].//===== Signature =====
+
+
+signal_emit @pure_virtual {
+ params {
+ @in emission: string;
+ @in source: string;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_layout_signal_emit(Eo *obj, const char *emission, const char *source);
+
+
+===== Parameters =====
+
+ * **emission** //(in)// - %%The signal's "emission" string%%
+ * **source** //(in)// - %%The signal's "source" string%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:signal:method:signal_emit|Efl.Layout.Signal.signal_emit]]
+ * [[:develop:api:efl:canvas:layout:method:signal_emit|Efl.Canvas.Layout.signal_emit]]
+ * [[:develop:api:efl:ui:image:method:signal_emit|Efl.Ui.Image.signal_emit]]
+ * [[:develop:api:efl:ui:layout_base:method:signal_emit|Efl.Ui.Layout_Base.signal_emit]]
+ * [[:develop:api:efl:ui:text:method:signal_emit|Efl.Ui.Text.signal_emit]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/method/signal_process.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/method/signal_process.txt
new file mode 100644
index 00000000..f66d34c9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/method/signal_process.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Layout_Base.signal_process~~
+====== Efl.Ui.Layout_Base.signal_process ======
+
+===== Description =====
+
+%%Processes an object's messages and signals queue.%%
+
+%%This function goes through the object message queue processing the pending messages for this specific Edje object. Normally they'd be processed only at idle time.%%
+
+%%If %%''recurse''%% is %%''true''%%, this function will be called recursively on all subobjects.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_base:method:signal_process:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:layout:signal:method:signal_process|Efl.Layout.Signal.signal_process]].//===== Signature =====
+
+
+signal_process @pure_virtual {
+ params {
+ @in recurse: bool @optional;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_layout_signal_process(Eo *obj, Eina_Bool recurse);
+
+
+===== Parameters =====
+
+ * **recurse** //(in)// - %%Whether to process messages on children objects.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:signal:method:signal_process|Efl.Layout.Signal.signal_process]]
+ * [[:develop:api:efl:canvas:layout:method:signal_process|Efl.Canvas.Layout.signal_process]]
+ * [[:develop:api:efl:ui:image:method:signal_process|Efl.Ui.Image.signal_process]]
+ * [[:develop:api:efl:ui:layout_base:method:signal_process|Efl.Ui.Layout_Base.signal_process]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/method/theme_apply.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/method/theme_apply.txt
new file mode 100644
index 00000000..4c332945
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/method/theme_apply.txt
@@ -0,0 +1,55 @@
+~~Title: Efl.Ui.Layout_Base.theme_apply~~
+====== Efl.Ui.Layout_Base.theme_apply ======
+
+===== Description =====
+
+%%Virtual function called when the widget needs to re-apply its theme.%%
+
+%%This may be called when the object is first created, or whenever the widget is modified in any way that may require a reload of the theme. This may include but is not limited to scale, theme, or mirrored mode changes.%%
+
+
+theme_apply @protected {
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_widget_theme_apply(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:theme_apply|Efl.Ui.Widget.theme_apply]]
+ * [[:develop:api:efl:ui:win:method:theme_apply|Efl.Ui.Win.theme_apply]]
+ * [[:develop:api:efl:ui:flip:method:theme_apply|Efl.Ui.Flip.theme_apply]]
+ * [[:develop:api:efl:ui:image:method:theme_apply|Efl.Ui.Image.theme_apply]]
+ * [[:develop:api:efl:ui:image_zoomable:method:theme_apply|Efl.Ui.Image_Zoomable.theme_apply]]
+ * [[:develop:api:efl:ui:layout_base:method:theme_apply|Efl.Ui.Layout_Base.theme_apply]]
+ * [[:develop:api:efl:ui:slider:method:theme_apply|Efl.Ui.Slider.theme_apply]]
+ * [[:develop:api:efl:ui:check:method:theme_apply|Efl.Ui.Check.theme_apply]]
+ * [[:develop:api:efl:ui:radio:method:theme_apply|Efl.Ui.Radio.theme_apply]]
+ * [[:develop:api:efl:ui:clock:method:theme_apply|Efl.Ui.Clock.theme_apply]]
+ * [[:develop:api:efl:ui:text:method:theme_apply|Efl.Ui.Text.theme_apply]]
+ * [[:develop:api:efl:ui:spin_button:method:theme_apply|Efl.Ui.Spin_Button.theme_apply]]
+ * [[:develop:api:efl:ui:collection_view:method:theme_apply|Efl.Ui.Collection_View.theme_apply]]
+ * [[:develop:api:efl:ui:panel:method:theme_apply|Efl.Ui.Panel.theme_apply]]
+ * [[:develop:api:efl:ui:slider_interval:method:theme_apply|Efl.Ui.Slider_Interval.theme_apply]]
+ * [[:develop:api:elm:code_widget:method:theme_apply|Elm.Code_Widget.theme_apply]]
+ * [[:develop:api:efl:ui:textpath:method:theme_apply|Efl.Ui.Textpath.theme_apply]]
+ * [[:develop:api:efl:ui:scroller:method:theme_apply|Efl.Ui.Scroller.theme_apply]]
+ * [[:develop:api:efl:ui:collection:method:theme_apply|Efl.Ui.Collection.theme_apply]]
+ * [[:develop:api:efl:ui:panes:method:theme_apply|Efl.Ui.Panes.theme_apply]]
+ * [[:develop:api:efl:ui:calendar:method:theme_apply|Efl.Ui.Calendar.theme_apply]]
+ * [[:develop:api:efl:ui:progressbar:method:theme_apply|Efl.Ui.Progressbar.theme_apply]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/method/theme_rotation_apply.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/method/theme_rotation_apply.txt
new file mode 100644
index 00000000..0040c0c6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/method/theme_rotation_apply.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Ui.Layout_Base.theme_rotation_apply~~
+====== Efl.Ui.Layout_Base.theme_rotation_apply ======
+
+===== Description =====
+
+%%Apply a new rotation value to this object.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_base:method:theme_rotation_apply:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+theme_rotation_apply @beta {
+ params {
+ @in orientation: int;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_layout_theme_rotation_apply(Eo *obj, int orientation);
+
+
+===== Parameters =====
+
+ * **orientation** //(in)// - %%The new rotation angle, in degrees.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:layout_base:method:theme_rotation_apply|Efl.Ui.Layout_Base.theme_rotation_apply]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/method/widget_sub_object_add.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/method/widget_sub_object_add.txt
new file mode 100644
index 00000000..6ce8226f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/method/widget_sub_object_add.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Layout_Base.widget_sub_object_add~~
+====== Efl.Ui.Layout_Base.widget_sub_object_add ======
+
+===== Description =====
+
+%%Virtual function customizing sub objects being added.%%
+
+%%When a widget is added as a sub-object of another widget (like list elements inside a list container, for example) some of its properties are automatically adapted to the parent's current values (like focus, access, theme, scale, mirror, scrollable child get, translate, display mode set, tree dump). Override this method if you want to customize differently sub-objects being added to this object.%%
+
+%%Sub objects can be any canvas object, not necessarily widgets.%%
+
+%%See also %%[[:develop:api:efl:ui:widget:property:widget_parent|Efl.Ui.Widget.widget_parent]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_base:method:widget_sub_object_add:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:widget_sub_object_add|Efl.Ui.Widget.widget_sub_object_add]].//===== Signature =====
+
+
+widget_sub_object_add @protected {
+ params {
+ @in sub_obj: Efl.Canvas.Object;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_sub_object_add(Eo *obj, Efl_Canvas_Object *sub_obj);
+
+
+===== Parameters =====
+
+ * **sub_obj** //(in)// - %%Sub object to be added. Not necessarily a widget itself.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:widget_sub_object_add|Efl.Ui.Widget.widget_sub_object_add]]
+ * [[:develop:api:efl:ui:flip:method:widget_sub_object_add|Efl.Ui.Flip.widget_sub_object_add]]
+ * [[:develop:api:efl:ui:layout_base:method:widget_sub_object_add|Efl.Ui.Layout_Base.widget_sub_object_add]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/method/widget_sub_object_del.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/method/widget_sub_object_del.txt
new file mode 100644
index 00000000..769cd8ae
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/method/widget_sub_object_del.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Layout_Base.widget_sub_object_del~~
+====== Efl.Ui.Layout_Base.widget_sub_object_del ======
+
+===== Description =====
+
+%%Virtual function customizing sub objects being removed.%%
+
+%%When a widget is removed as a sub-object from another widget (%%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%%, %%[[:develop:api:efl:content:method:content_unset|Efl.Content.content_unset]]%%, for example) some of its properties are automatically adjusted.(like focus, access, tree dump) Override this method if you want to customize differently sub-objects being removed to this object.%%
+
+%%Sub objects can be any canvas object, not necessarily widgets.%%
+
+%%See also %%[[:develop:api:efl:ui:widget:property:widget_parent|Efl.Ui.Widget.widget_parent]]%% and %%[[:develop:api:efl:ui:widget:method:widget_sub_object_add|Efl.Ui.Widget.widget_sub_object_add]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_base:method:widget_sub_object_del:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:widget_sub_object_del|Efl.Ui.Widget.widget_sub_object_del]].//===== Signature =====
+
+
+widget_sub_object_del @protected {
+ params {
+ @in sub_obj: Efl.Canvas.Object;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_sub_object_del(Eo *obj, Efl_Canvas_Object *sub_obj);
+
+
+===== Parameters =====
+
+ * **sub_obj** //(in)// - %%Sub object to be removed. Should be a child of this widget.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:widget_sub_object_del|Efl.Ui.Widget.widget_sub_object_del]]
+ * [[:develop:api:efl:ui:flip:method:widget_sub_object_del|Efl.Ui.Flip.widget_sub_object_del]]
+ * [[:develop:api:efl:ui:layout_base:method:widget_sub_object_del|Efl.Ui.Layout_Base.widget_sub_object_del]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/property/automatic_theme_rotation.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/property/automatic_theme_rotation.txt
new file mode 100644
index 00000000..f39b6eb9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/property/automatic_theme_rotation.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Layout_Base.automatic_theme_rotation~~
+====== Efl.Ui.Layout_Base.automatic_theme_rotation ======
+
+===== Description =====
+
+%%This flag tells if this object will automatically mirror the rotation changes of the window to this object.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_base:property:automatic_theme_rotation:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **automatic** - %%%%''true''%% to mirror orientation changes to the theme %%''false''%% otherwise%%
+
+===== Signature =====
+
+
+@property automatic_theme_rotation @beta {
+ get {}
+ set {}
+ values {
+ automatic: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_layout_automatic_theme_rotation_get(const Eo *obj);
+void efl_ui_layout_automatic_theme_rotation_set(Eo *obj, Eina_Bool automatic);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:layout_base:property:automatic_theme_rotation|Efl.Ui.Layout_Base.automatic_theme_rotation]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/property/calc_auto_update_hints.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/property/calc_auto_update_hints.txt
new file mode 100644
index 00000000..8b66b168
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/property/calc_auto_update_hints.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.Ui.Layout_Base.calc_auto_update_hints~~
+====== Efl.Ui.Layout_Base.calc_auto_update_hints ======
+
+===== Description =====
+
+%%Whether this object updates its size hints automatically.%%
+
+%%By default edje doesn't set size hints on itself. If this property is set to %%''true''%%, size hints will be updated after recalculation. Be careful, as recalculation may happen often, enabling this property may have a considerable performance impact as other widgets will be notified of the size hints changes.%%
+
+%%A layout recalculation can be triggered by %%[[:develop:api:efl:layout:calc:method:calc_size_min|Efl.Layout.Calc.calc_size_min]]%%(), %%[[:develop:api:efl:layout:calc:method:calc_size_min|Efl.Layout.Calc.calc_size_min]]%%(), %%[[:develop:api:efl:layout:calc:method:calc_parts_extends|Efl.Layout.Calc.calc_parts_extends]]%%() or even any other internal event.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_base:property:calc_auto_update_hints:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **update** - %%Whether or not update the size hints.%%
+
+//Overridden from [[:develop:api:efl:layout:calc:property:calc_auto_update_hints|Efl.Layout.Calc.calc_auto_update_hints]] **(get, set)**.//===== Signature =====
+
+
+@property calc_auto_update_hints @pure_virtual {
+ get {}
+ set {}
+ values {
+ update: bool (false);
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_layout_calc_auto_update_hints_get(const Eo *obj);
+void efl_layout_calc_auto_update_hints_set(Eo *obj, Eina_Bool update);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:calc:property:calc_auto_update_hints|Efl.Layout.Calc.calc_auto_update_hints]]
+ * [[:develop:api:efl:canvas:layout:property:calc_auto_update_hints|Efl.Canvas.Layout.calc_auto_update_hints]]
+ * [[:develop:api:efl:ui:image:property:calc_auto_update_hints|Efl.Ui.Image.calc_auto_update_hints]]
+ * [[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|Efl.Ui.Layout_Base.calc_auto_update_hints]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/property/disabled.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/property/disabled.txt
new file mode 100644
index 00000000..f717955b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/property/disabled.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Layout_Base.disabled~~
+====== Efl.Ui.Layout_Base.disabled ======
+
+===== Description =====
+
+%%Whether the widget is enabled (accepts and reacts to user inputs).%%
+
+%%Each widget may handle the disabled state differently, but overall disabled widgets shall not respond to any input events. This is %%''false''%% by default, meaning the widget is enabled.%%
+
+%%Disabling a widget will disable all its children recursively, but only this widget will be marked as disabled internally.%%
+
+%%This will return %%''true''%% if any widget in the parent hierarchy is disabled. Re-enabling that parent may in turn change the disabled state of this widget.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_base:property:disabled:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **disabled** - %%%%''true''%% if the widget is disabled.%%
+
+//Overridden from [[:develop:api:efl:ui:widget:property:disabled|Efl.Ui.Widget.disabled]] **(set)**.//===== Signature =====
+
+
+@property disabled {
+ get {}
+ set {}
+ values {
+ disabled: bool (false);
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_disabled_get(const Eo *obj);
+void efl_ui_widget_disabled_set(Eo *obj, Eina_Bool disabled);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:property:disabled|Efl.Ui.Widget.disabled]]
+ * [[:develop:api:efl:ui:layout_base:property:disabled|Efl.Ui.Layout_Base.disabled]]
+ * [[:develop:api:efl:ui:text:property:disabled|Efl.Ui.Text.disabled]]
+ * [[:develop:api:efl:ui:panel:property:disabled|Efl.Ui.Panel.disabled]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/property/finger_size_multiplier.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/property/finger_size_multiplier.txt
new file mode 100644
index 00000000..838600a3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/property/finger_size_multiplier.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Layout_Base.finger_size_multiplier~~
+====== Efl.Ui.Layout_Base.finger_size_multiplier ======
+
+===== Description =====
+
+%%Set a multiplier for applying finger size to the layout.%%
+
+%%By default, any widget which inherits from this class will apply the finger_size global config value with a 1:1 width:height ratio during sizing calculations. This will cause the widget to scale its size based on the finger_size config value.%%
+
+%%To disable finger_size in a layout's sizing calculations, set the multipliers for both axes to 0.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_base:property:finger_size_multiplier:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **multiplier_x** - %%Multiplier for X axis.%%
+ * **multiplier_y** - %%Multiplier for Y axis.%%
+
+===== Signature =====
+
+
+@property finger_size_multiplier {
+ get {}
+ set {}
+ values {
+ multiplier_x: uint;
+ multiplier_y: uint;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_layout_finger_size_multiplier_get(const Eo *obj, unsigned int *multiplier_x, unsigned int *multiplier_y);
+void efl_ui_layout_finger_size_multiplier_set(Eo *obj, unsigned int multiplier_x, unsigned int multiplier_y);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:layout_base:property:finger_size_multiplier|Efl.Ui.Layout_Base.finger_size_multiplier]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/property/group_data.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/property/group_data.txt
new file mode 100644
index 00000000..e09d51d8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/property/group_data.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Layout_Base.group_data~~
+====== Efl.Ui.Layout_Base.group_data ======
+
+===== Keys =====
+
+ * **key** - %%The data field's key string%%
+===== Values =====
+
+ * **val** - %%The data's value string.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:layout_base:property:group_data:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:layout:group:property:group_data|Efl.Layout.Group.group_data]] **(get)**.//===== Signature =====
+
+
+@property group_data @pure_virtual {
+ get {
+ keys {
+ key: string;
+ }
+ }
+ values {
+ val: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_layout_group_data_get(const Eo *obj, const char *key);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:group:property:group_data|Efl.Layout.Group.group_data]]
+ * [[:develop:api:efl:canvas:layout:property:group_data|Efl.Canvas.Layout.group_data]]
+ * [[:develop:api:efl:ui:image:property:group_data|Efl.Ui.Image.group_data]]
+ * [[:develop:api:efl:ui:layout_base:property:group_data|Efl.Ui.Layout_Base.group_data]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/property/group_size_max.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/property/group_size_max.txt
new file mode 100644
index 00000000..134abad6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/property/group_size_max.txt
@@ -0,0 +1,35 @@
+~~Title: Efl.Ui.Layout_Base.group_size_max~~
+====== Efl.Ui.Layout_Base.group_size_max ======
+
+===== Values =====
+
+ * **max** - %%The maximum size as set in EDC.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:layout_base:property:group_size_max:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:layout:group:property:group_size_max|Efl.Layout.Group.group_size_max]] **(get)**.//===== Signature =====
+
+
+@property group_size_max @pure_virtual {
+ get {}
+ values {
+ max: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_layout_group_size_max_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:group:property:group_size_max|Efl.Layout.Group.group_size_max]]
+ * [[:develop:api:efl:canvas:layout:property:group_size_max|Efl.Canvas.Layout.group_size_max]]
+ * [[:develop:api:efl:ui:image:property:group_size_max|Efl.Ui.Image.group_size_max]]
+ * [[:develop:api:efl:ui:image_zoomable:property:group_size_max|Efl.Ui.Image_Zoomable.group_size_max]]
+ * [[:develop:api:efl:ui:layout_base:property:group_size_max|Efl.Ui.Layout_Base.group_size_max]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/property/group_size_min.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/property/group_size_min.txt
new file mode 100644
index 00000000..78a42a48
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/property/group_size_min.txt
@@ -0,0 +1,35 @@
+~~Title: Efl.Ui.Layout_Base.group_size_min~~
+====== Efl.Ui.Layout_Base.group_size_min ======
+
+===== Values =====
+
+ * **min** - %%The minimum size as set in EDC.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:layout_base:property:group_size_min:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:layout:group:property:group_size_min|Efl.Layout.Group.group_size_min]] **(get)**.//===== Signature =====
+
+
+@property group_size_min @pure_virtual {
+ get {}
+ values {
+ min: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_layout_group_size_min_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:group:property:group_size_min|Efl.Layout.Group.group_size_min]]
+ * [[:develop:api:efl:canvas:layout:property:group_size_min|Efl.Canvas.Layout.group_size_min]]
+ * [[:develop:api:efl:ui:image:property:group_size_min|Efl.Ui.Image.group_size_min]]
+ * [[:develop:api:efl:ui:image_zoomable:property:group_size_min|Efl.Ui.Image_Zoomable.group_size_min]]
+ * [[:develop:api:efl:ui:layout_base:property:group_size_min|Efl.Ui.Layout_Base.group_size_min]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/property/l10n_text.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/property/l10n_text.txt
new file mode 100644
index 00000000..f27ccd24
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/property/l10n_text.txt
@@ -0,0 +1,72 @@
+~~Title: Efl.Ui.Layout_Base.l10n_text~~
+====== Efl.Ui.Layout_Base.l10n_text ======
+
+===== Description =====
+
+%%A unique string to be translated.%%
+
+%%Often this will be a human-readable string (e.g. in English) but it can also be a unique string identifier that must then be translated to the current locale with %%''dgettext''%%() or any similar mechanism.%%
+
+%%Setting this property will enable translation for this object or part.%%
+
+
+{{page>:develop:api-include:efl:ui:layout_base:property:l10n_text:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+==== Getter ====
+
+ * **domain** - %%A translation domain. If %%''null''%% this means the default domain is used.%%
+==== Setter ====
+
+ * **label** - %%A unique (untranslated) string.%%
+ * **domain** - %%A translation domain. If %%''null''%% this uses the default domain (eg. set by %%''textdomain''%%()).%%
+==== Setter ====
+
+%%Sets the new untranslated string and domain for this object.%%
+{{page>:develop:api-include:efl:ui:layout_base:property:l10n_text:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:l10n:property:l10n_text|Efl.Ui.L10n.l10n_text]] **(get, set)**.//===== Signature =====
+
+
+@property l10n_text @pure_virtual {
+ get {
+ values {
+ domain: string @optional;
+ }
+ return: string;
+ }
+ set {
+ values {
+ label: string;
+ domain: string @optional;
+ }
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_ui_l10n_text_get(const Eo *obj, const char **domain);
+void efl_ui_l10n_text_set(Eo *obj, const char *label, const char *domain);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:l10n:property:l10n_text|Efl.Ui.L10n.l10n_text]]
+ * [[:develop:api:efl:ui:default_item:property:l10n_text|Efl.Ui.Default_Item.l10n_text]]
+ * [[:develop:api:efl:ui:layout_part_legacy:property:l10n_text|Efl.Ui.Layout_Part_Legacy.l10n_text]]
+ * [[:develop:api:elm:notify:part:property:l10n_text|Elm.Notify.Part.l10n_text]]
+ * [[:develop:api:efl:ui:layout_part_text:property:l10n_text|Efl.Ui.Layout_Part_Text.l10n_text]]
+ * [[:develop:api:efl:ui:win:property:l10n_text|Efl.Ui.Win.l10n_text]]
+ * [[:develop:api:efl:ui:table:property:l10n_text|Efl.Ui.Table.l10n_text]]
+ * [[:develop:api:efl:ui:box:property:l10n_text|Efl.Ui.Box.l10n_text]]
+ * [[:develop:api:efl:ui:layout_base:property:l10n_text|Efl.Ui.Layout_Base.l10n_text]]
+ * [[:develop:api:efl:ui:check:property:l10n_text|Efl.Ui.Check.l10n_text]]
+ * [[:develop:api:efl:ui:frame:property:l10n_text|Efl.Ui.Frame.l10n_text]]
+ * [[:develop:api:efl:ui:progressbar:property:l10n_text|Efl.Ui.Progressbar.l10n_text]]
+ * [[:develop:api:efl:ui:button:property:l10n_text|Efl.Ui.Button.l10n_text]]
+ * [[:develop:api:efl:ui:navigation_bar:property:l10n_text|Efl.Ui.Navigation_Bar.l10n_text]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/property/language.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/property/language.txt
new file mode 100644
index 00000000..78c68b0f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/property/language.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Layout_Base.language~~
+====== Efl.Ui.Layout_Base.language ======
+
+===== Description =====
+
+%%The (human) language for this object.%%
+{{page>:develop:api-include:efl:ui:layout_base:property:language:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **language** - %%The current language.%%
+
+//Overridden from [[:develop:api:efl:ui:i18n:property:language|Efl.Ui.I18n.language]] **(get, set)**.//===== Signature =====
+
+
+@property language @pure_virtual {
+ get {}
+ set {}
+ values {
+ language: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_ui_language_get(const Eo *obj);
+void efl_ui_language_set(Eo *obj, const char *language);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:i18n:property:language|Efl.Ui.I18n.language]]
+ * [[:develop:api:efl:canvas:layout:property:language|Efl.Canvas.Layout.language]]
+ * [[:develop:api:efl:ui:win:property:language|Efl.Ui.Win.language]]
+ * [[:develop:api:efl:ui:table:property:language|Efl.Ui.Table.language]]
+ * [[:develop:api:efl:ui:box:property:language|Efl.Ui.Box.language]]
+ * [[:develop:api:efl:ui:layout_base:property:language|Efl.Ui.Layout_Base.language]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/property/part_exist.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/property/part_exist.txt
new file mode 100644
index 00000000..cea88132
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/property/part_exist.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Layout_Base.part_exist~~
+====== Efl.Ui.Layout_Base.part_exist ======
+
+===== Keys =====
+
+ * **part** - %%The part name to check.%%
+===== Values =====
+
+ * **exists** - %%%%''true''%% if the part exists, %%''false''%% otherwise.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:layout_base:property:part_exist:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:layout:group:property:part_exist|Efl.Layout.Group.part_exist]] **(get)**.//===== Signature =====
+
+
+@property part_exist @pure_virtual {
+ get {
+ keys {
+ part: string;
+ }
+ }
+ values {
+ exists: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_layout_group_part_exist_get(const Eo *obj, const char *part);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:layout:group:property:part_exist|Efl.Layout.Group.part_exist]]
+ * [[:develop:api:efl:canvas:layout:property:part_exist|Efl.Canvas.Layout.part_exist]]
+ * [[:develop:api:efl:ui:image:property:part_exist|Efl.Ui.Image.part_exist]]
+ * [[:develop:api:efl:ui:layout_base:property:part_exist|Efl.Ui.Layout_Base.part_exist]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_base/property/theme.txt b/public_html/data/pages/develop/api/efl/ui/layout_base/property/theme.txt
new file mode 100644
index 00000000..7acee7a8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_base/property/theme.txt
@@ -0,0 +1,51 @@
+~~Title: Efl.Ui.Layout_Base.theme~~
+====== Efl.Ui.Layout_Base.theme ======
+
+===== Description =====
+
+%%The theme of this widget, defines which edje group will be used.%%
+
+%%Based on the type of widget (%%''klass''%%), a given %%''group''%% and a %%''style''%% (usually "default"), the edje group name will be formed for this object.%%
+
+%%Widgets that inherit from this class will call this function automatically so it should not be called by applications, unless you are dealing directly with a %%[[:develop:api:efl:ui:layout|Efl.Ui.Layout]]%% object.%%
+
+%%Note that %%''style''%% will be the new style of this object, as retrieved by %%[[:develop:api:efl:ui:widget:property:style|Efl.Ui.Widget.style]]%%. As a consequence this function can only be called during construction of the object, before finalize.%%
+
+%%If this returns %%''false''%% the widget is very likely to become non-functioning.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_base:property:theme:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **klass** - %%The class of the group, eg. "button".%%
+ * **group** - %%The group, eg. "base".%%
+ * **style** - %%The style to use, eg "default".%%
+
+===== Signature =====
+
+
+@property theme {
+ get {}
+ set {
+ return: Eina.Error;
+ }
+ values {
+ klass: string;
+ group: string ("base");
+ style: string ("default");
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_layout_theme_get(const Eo *obj, const char **klass, const char **group, const char **style);
+Eina_Error efl_ui_layout_theme_set(Eo *obj, const char *klass, const char *group, const char *style);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:layout_base:property:theme|Efl.Ui.Layout_Base.theme]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_orientable.txt b/public_html/data/pages/develop/api/efl/ui/layout_orientable.txt
new file mode 100644
index 00000000..8d2d0a2a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_orientable.txt
@@ -0,0 +1,27 @@
+~~Title: Efl.Ui.Layout_Orientable~~
+====== Efl.Ui.Layout_Orientable (interface) ======
+
+===== Description =====
+
+%%Interface for UI objects which can have more than one orientation.%%
+
+%%For example, sliders, which can be horizontal or vertical, or container boxes, which can arrange their elements in a horizontal or vertical fashion.%%
+
+%%Compare with %%[[:develop:api:efl:gfx:image_orientable|Efl.Gfx.Image_Orientable]]%% that works for images and includes rotation.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:layout_orientable:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:ui:layout_orientable:property:orientation|orientation]]** //**(get, set)**//\\
+> %%Control the direction of a given widget.%%
+
+Efl_Ui_Layout_Orientation efl_ui_layout_orientation_get(const Eo *obj);
+void efl_ui_layout_orientation_set(Eo *obj, Efl_Ui_Layout_Orientation dir);
+
+\\
+
+===== Events =====
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_orientable/property/orientation.txt b/public_html/data/pages/develop/api/efl/ui/layout_orientable/property/orientation.txt
new file mode 100644
index 00000000..24f0dbfa
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_orientable/property/orientation.txt
@@ -0,0 +1,56 @@
+~~Title: Efl.Ui.Layout_Orientable.orientation~~
+====== Efl.Ui.Layout_Orientable.orientation ======
+
+===== Description =====
+
+%%Control the direction of a given widget.%%
+
+%%Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.%%
+
+%%Mirroring as defined in %%[[:develop:api:efl:ui:i18n|Efl.Ui.I18n]]%% can invert the %%''horizontal''%% direction: it is %%''ltr''%% by default, but becomes %%''rtl''%% if the object is mirrored.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_orientable:property:orientation:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **dir** - %%Direction of the widget.%%
+
+===== Signature =====
+
+
+@property orientation @pure_virtual {
+ get {}
+ set {}
+ values {
+ dir: Efl.Ui.Layout_Orientation;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Layout_Orientation efl_ui_layout_orientation_get(const Eo *obj);
+void efl_ui_layout_orientation_set(Eo *obj, Efl_Ui_Layout_Orientation dir);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:layout_orientable:property:orientation|Efl.Ui.Layout_Orientable.orientation]]
+ * [[:develop:api:efl:ui:slider:property:orientation|Efl.Ui.Slider.orientation]]
+ * [[:develop:api:efl:ui:layout_orientable_readonly:property:orientation|Efl.Ui.Layout_Orientable_Readonly.orientation]]
+ * [[:develop:api:efl:canvas:layout_part_box:property:orientation|Efl.Canvas.Layout_Part_Box.orientation]]
+ * [[:develop:api:efl:ui:layout_part_box:property:orientation|Efl.Ui.Layout_Part_Box.orientation]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:orientation|Efl.Canvas.Layout_Part_Invalid.orientation]]
+ * [[:develop:api:efl:ui:collection_view:property:orientation|Efl.Ui.Collection_View.orientation]]
+ * [[:develop:api:efl:ui:table:property:orientation|Efl.Ui.Table.orientation]]
+ * [[:develop:api:efl:ui:box:property:orientation|Efl.Ui.Box.orientation]]
+ * [[:develop:api:efl:ui:slider_interval:property:orientation|Efl.Ui.Slider_Interval.orientation]]
+ * [[:develop:api:efl:ui:collection:property:orientation|Efl.Ui.Collection.orientation]]
+ * [[:develop:api:efl:ui:panes:property:orientation|Efl.Ui.Panes.orientation]]
+ * [[:develop:api:efl:ui:progressbar:property:orientation|Efl.Ui.Progressbar.orientation]]
+ * [[:develop:api:efl:ui:spin_button:property:orientation|Efl.Ui.Spin_Button.orientation]]
+ * [[:develop:api:efl:ui:position_manager:grid:property:orientation|Efl.Ui.Position_Manager.Grid.orientation]]
+ * [[:develop:api:efl:ui:position_manager:list:property:orientation|Efl.Ui.Position_Manager.List.orientation]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_orientation.txt b/public_html/data/pages/develop/api/efl/ui/layout_orientation.txt
new file mode 100644
index 00000000..7f0fa7d0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_orientation.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Ui.Layout_Orientation~~
+
+===== Description =====
+
+%%Orientation for UI objects and layouts that can have multiple configurations.%%
+
+%%Select among %%''horizontal''%% or %%''vertical''%% orientations (or use %%''default''%% to let the object decide). Additionally, %%''inverted''%% can be added to reverse the direction along the selected axis.%%
+
+%%Not to be confused with %%[[:develop:api:efl:gfx:image_orientation|Efl.Gfx.Image_Orientation]]%% which is for images and canvases. This enum is used to define how widgets should expand and orient themselves, not to rotate images.%%
+
+%%See also %%[[:develop:api:efl:ui:layout_orientable|Efl.Ui.Layout_Orientable]]%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:layout_orientation:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:ui:layout_orientation:fields&nouser&nolink&nodate}}
+
+ * **default** - %%Default direction. Each widget may have a different default.%%
+ * **horizontal** - %%Horizontal direction, along the X axis. Usually left-to-right, but can be inverted.%%
+ * **vertical** - %%Vertical direction, along the Y axis. Usually downwards but can be inverted.%%
+ * **axis_bitmask** - %%This bitmask can be used to isolate the axis value from the rest of bits.%%
+ * **inverted** - %%Add this value to make the object invert its default direction along the selected axis.%%
+
+===== Signature =====
+
+
+enum Efl.Ui.Layout_Orientation {
+ default: 0,
+ horizontal: 1,
+ vertical: 2,
+ axis_bitmask: 3,
+ inverted: 4
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_UI_LAYOUT_ORIENTATION_DEFAULT = 0,
+ EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL = 1,
+ EFL_UI_LAYOUT_ORIENTATION_VERTICAL = 2,
+ EFL_UI_LAYOUT_ORIENTATION_AXIS_BITMASK = 3,
+ EFL_UI_LAYOUT_ORIENTATION_INVERTED = 4
+} Efl_Ui_Layout_Orientation;
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part.txt b/public_html/data/pages/develop/api/efl/ui/layout_part.txt
new file mode 100644
index 00000000..afa3d688
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part.txt
@@ -0,0 +1,73 @@
+~~Title: Efl.Ui.Layout_Part~~
+====== Efl.Ui.Layout_Part (class) ======
+
+===== Description =====
+
+%%Elementary layout internal part class%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:layout_part:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+
+
+++++
+===== Members =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:constructor|constructor]]** | %%Implement this method to provide optional initialization code for your object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]] ^^^
+| | **[[:develop:api:efl:ui:widget_part:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| | **[[:develop:api:efl:ui:widget_part:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_bg.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_bg.txt
new file mode 100644
index 00000000..11ea1b45
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_bg.txt
@@ -0,0 +1,112 @@
+~~Title: Efl.Ui.Layout_Part_Bg~~
+====== Efl.Ui.Layout_Part_Bg (class) ======
+
+===== Description =====
+
+%%Elementary layout internal part background class%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:layout_part_bg:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:widget_part_bg|Efl.Ui.Widget_Part_Bg]] //(class)// => [[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:widget_part_bg|Efl.Ui.Widget_Part_Bg]] //(class)//
+ * [[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:file|Efl.File]] //(mixin)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:image|Efl.Gfx.Image]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:layout_part_bg:method:finalize|finalize]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+Efl_Object *efl_finalize(Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:file|Efl.File]] ^^^
+| | **[[:develop:api:efl:file:property:loaded|loaded]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:image|Efl.Gfx.Image]] ^^^
+| | **[[:develop:api:efl:gfx:image:property:border_insets|border_insets]]** //**(get, set)**// | %%Dimensions of this image's border, a region that does not scale with the center area.%% |
+| | **[[:develop:api:efl:gfx:image:property:border_insets_scale|border_insets_scale]]** //**(get, set)**// | %%Scaling factor applied to the image borders.%% |
+| | **[[:develop:api:efl:gfx:image:property:can_downscale|can_downscale]]** //**(get, set)**// | %%If %%''true''%%, the image may be scaled to a smaller size. If %%''false''%%, the image will never be resized smaller than its native size.%% |
+| | **[[:develop:api:efl:gfx:image:property:can_upscale|can_upscale]]** //**(get, set)**// | %%If %%''true''%%, the image may be scaled to a larger size. If %%''false''%%, the image will never be resized larger than its native size.%% |
+| | **[[:develop:api:efl:gfx:image:property:center_fill_mode|center_fill_mode]]** //**(get, set)**// | %%Specifies how the center part of the object (not the borders) should be drawn when EFL is rendering it.%% |
+| | **[[:develop:api:efl:gfx:image:property:content_hint|content_hint]]** //**(get, set)**// | %%Content hint setting for the image. These hints might be used by EFL to enable optimizations.%% |
+| | **[[:develop:api:efl:gfx:image:property:content_region|content_region]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:image:property:image_load_error|image_load_error]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:image:property:image_size|image_size]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:image:property:ratio|ratio]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:image:property:scale_hint|scale_hint]]** //**(get, set)**// | %%The scale hint of a given image of the canvas.%% |
+| | **[[:develop:api:efl:gfx:image:property:scale_method|scale_method]]** //**(get, set)**// | %%Determine how the image is scaled at render time.%% |
+| | **[[:develop:api:efl:gfx:image:property:smooth_scale|smooth_scale]]** //**(get, set)**// | %%Whether to use high-quality image scaling algorithm for this image.%% |
+| | **[[:develop:api:efl:gfx:image:property:stretch_region|stretch_region]]** //**(get, set)**// | %%This property defines the stretchable pixels region of an image.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:constructor|constructor]]** | %%Implement this method to provide optional initialization code for your object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]] ^^^
+| | **[[:develop:api:efl:ui:widget_part:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| | **[[:develop:api:efl:ui:widget_part:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+^ [[:develop:api:efl:ui:widget_part_bg|Efl.Ui.Widget_Part_Bg]] ^^^
+| | **[[:develop:api:efl:ui:widget_part_bg:property:color|color]]** //**(get, set)**// | %%The general/main color of the given Evas object.%% |
+| | **[[:develop:api:efl:ui:widget_part_bg:property:file|file]]** //**(get, set)**// | %%The file path from where an object will fetch the data.%% |
+| | **[[:develop:api:efl:ui:widget_part_bg:property:key|key]]** //**(get, set)**// | %%The key which corresponds to the target data within a file.%% |
+| | **[[:develop:api:efl:ui:widget_part_bg:method:load|load]]** | %%Perform all necessary operations to open and load file data into the object using the %%[[:develop:api:efl:file:property:file|Efl.File.file]]%% (or %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap]]%%) and %%[[:develop:api:efl:file:property:key|Efl.File.key]]%% properties.%% |
+| | **[[:develop:api:efl:ui:widget_part_bg:property:mmap|mmap]]** //**(get, set)**// | %%The mmaped file from where an object will fetch the real data (it must be an %%[[:develop:api:eina:file|Eina.File]]%%).%% |
+| | **[[:develop:api:efl:ui:widget_part_bg:method:unload|unload]]** | %%Perform all necessary operations to unload file data from the object.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:gfx:image|Efl.Gfx.Image]] ^^^
+| | **[[:develop:api:efl:gfx:image:event:image_preload_state_changed|image,preload_state,changed]]** | %%If %%''true''%%, image data has been preloaded and can be displayed. If %%''false''%%, the image data has been unloaded and can no longer be displayed.%% |
+| | **[[:develop:api:efl:gfx:image:event:image_resized|image,resized]]** | %%Image was resized (its pixel data). The event data is the image's new size.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_bg/method/finalize.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_bg/method/finalize.txt
new file mode 100644
index 00000000..1d5a91c3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_bg/method/finalize.txt
@@ -0,0 +1,91 @@
+~~Title: Efl.Ui.Layout_Part_Bg.finalize~~
+====== Efl.Ui.Layout_Part_Bg.finalize ======
+
+===== Description =====
+
+%%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+%%Use this method to delay expensive operations until user configuration has finished, to avoid building the object in a "default" state in the constructor, just to have to throw it all away because a user configuration (a property being set, for example) requires a different state. This is the last call inside efl_add() and will set %%[[:develop:api:efl:object:property:finalized|Efl.Object.finalized]]%% to %%''true''%% once it returns. This is an optimization and implementing this method is optional if you already perform all your initialization in the %%[[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]%% method. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_part_bg:method:finalize:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget_part_bg:method:finalize|Efl.Object.finalize]].//===== Signature =====
+
+
+finalize {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_finalize(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]
+ * [[:develop:api:efl:loop_handler:method:finalize|Efl.Loop_Handler.finalize]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:finalize|Efl.Ui.Position_Manager.Grid.finalize]]
+ * [[:develop:api:efl:canvas:layout_part:method:finalize|Efl.Canvas.Layout_Part.finalize]]
+ * [[:develop:api:efl:net:server_udp_client:method:finalize|Efl.Net.Server_Udp_Client.finalize]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:finalize|Efl.Ui.Widget_Part_Bg.finalize]]
+ * [[:develop:api:efl:ui:layout_part_bg:method:finalize|Efl.Ui.Layout_Part_Bg.finalize]]
+ * [[:develop:api:efl:io:buffered_stream:method:finalize|Efl.Io.Buffered_Stream.finalize]]
+ * [[:develop:api:efl:net:dialer_simple:method:finalize|Efl.Net.Dialer_Simple.finalize]]
+ * [[:develop:api:efl:io:file:method:finalize|Efl.Io.File.finalize]]
+ * [[:develop:api:efl:net:server_fd:method:finalize|Efl.Net.Server_Fd.finalize]]
+ * [[:develop:api:efl:io:stderr:method:finalize|Efl.Io.Stderr.finalize]]
+ * [[:develop:api:efl:io:stdin:method:finalize|Efl.Io.Stdin.finalize]]
+ * [[:develop:api:efl:io:stdout:method:finalize|Efl.Io.Stdout.finalize]]
+ * [[:develop:api:efl:net:socket_fd:method:finalize|Efl.Net.Socket_Fd.finalize]]
+ * [[:develop:api:efl:net:socket_ssl:method:finalize|Efl.Net.Socket_Ssl.finalize]]
+ * [[:develop:api:efl:net:dialer_ssl:method:finalize|Efl.Net.Dialer_Ssl.finalize]]
+ * [[:develop:api:efl:canvas:object:method:finalize|Efl.Canvas.Object.finalize]]
+ * [[:develop:api:efl:canvas:image_internal:method:finalize|Efl.Canvas.Image_Internal.finalize]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:finalize|Efl.Ui.Internal.Text.Interactive.finalize]]
+ * [[:develop:api:efl:ui:widget:method:finalize|Efl.Ui.Widget.finalize]]
+ * [[:develop:api:efl:ui:win:method:finalize|Efl.Ui.Win.finalize]]
+ * [[:develop:api:efl:ui:win_socket:method:finalize|Efl.Ui.Win_Socket.finalize]]
+ * [[:develop:api:efl:ui:win_inlined:method:finalize|Efl.Ui.Win_Inlined.finalize]]
+ * [[:develop:api:efl:ui:layout_base:method:finalize|Efl.Ui.Layout_Base.finalize]]
+ * [[:develop:api:efl:ui:text:method:finalize|Efl.Ui.Text.finalize]]
+ * [[:develop:api:efl:ui:tab_bar:method:finalize|Efl.Ui.Tab_Bar.finalize]]
+ * [[:develop:api:efl:ui:item:method:finalize|Efl.Ui.Item.finalize]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:finalize|Efl.Ui.List_Placeholder_Item.finalize]]
+ * [[:develop:api:elm:code_widget:method:finalize|Elm.Code_Widget.finalize]]
+ * [[:develop:api:efl:ui:scroller:method:finalize|Efl.Ui.Scroller.finalize]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:finalize|Efl.Ui.Internal_Text_Scroller.finalize]]
+ * [[:develop:api:efl:ui:collection:method:finalize|Efl.Ui.Collection.finalize]]
+ * [[:develop:api:efl:ui:spotlight:container:method:finalize|Efl.Ui.Spotlight.Container.finalize]]
+ * [[:develop:api:efl:ui:tab_pager:method:finalize|Efl.Ui.Tab_Pager.finalize]]
+ * [[:develop:api:efl:ui:bg:method:finalize|Efl.Ui.Bg.finalize]]
+ * [[:develop:api:efl:canvas:vg:object:method:finalize|Efl.Canvas.Vg.Object.finalize]]
+ * [[:develop:api:efl:loop_timer:method:finalize|Efl.Loop_Timer.finalize]]
+ * [[:develop:api:eldbus:model:method:finalize|Eldbus.Model.finalize]]
+ * [[:develop:api:eldbus:model:proxy:method:finalize|Eldbus.Model.Proxy.finalize]]
+ * [[:develop:api:eldbus:model:arguments:method:finalize|Eldbus.Model.Arguments.finalize]]
+ * [[:develop:api:eldbus:model:method:method:finalize|Eldbus.Model.Method.finalize]]
+ * [[:develop:api:eldbus:model:object:method:finalize|Eldbus.Model.Object.finalize]]
+ * [[:develop:api:efl:composite_model:method:finalize|Efl.Composite_Model.finalize]]
+ * [[:develop:api:efl:container_model:method:finalize|Efl.Container_Model.finalize]]
+ * [[:develop:api:efl:ui:view_model:method:finalize|Efl.Ui.View_Model.finalize]]
+ * [[:develop:api:efl:io:model:method:finalize|Efl.Io.Model.finalize]]
+ * [[:develop:api:efl:net:server_simple:method:finalize|Efl.Net.Server_Simple.finalize]]
+ * [[:develop:api:efl:net:control:manager:method:finalize|Efl.Net.Control.Manager.finalize]]
+ * [[:develop:api:efl:ui:widget_factory:method:finalize|Efl.Ui.Widget_Factory.finalize]]
+ * [[:develop:api:efl:ui:caching_factory:method:finalize|Efl.Ui.Caching_Factory.finalize]]
+ * [[:develop:api:efl:thread:method:finalize|Efl.Thread.finalize]]
+ * [[:develop:api:efl:net:session:method:finalize|Efl.Net.Session.finalize]]
+ * [[:develop:api:efl:io:copier:method:finalize|Efl.Io.Copier.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:finalize|Efl.Ui.Focus.Manager_Calc.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:finalize|Efl.Ui.Focus.Manager_Root_Focus.finalize]]
+ * [[:develop:api:evas:canvas3d:node:method:finalize|Evas.Canvas3D.Node.finalize]]
+ * [[:develop:api:efl:net:ssl:context:method:finalize|Efl.Net.Ssl.Context.finalize]]
+ * [[:develop:api:efl:io:buffer:method:finalize|Efl.Io.Buffer.finalize]]
+ * [[:develop:api:efl:net:ip_address:method:finalize|Efl.Net.Ip_Address.finalize]]
+ * [[:develop:api:efl:io:queue:method:finalize|Efl.Io.Queue.finalize]]
+ * [[:develop:api:ector:renderer:method:finalize|Ector.Renderer.finalize]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_box.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_box.txt
new file mode 100644
index 00000000..c1fb48bc
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_box.txt
@@ -0,0 +1,173 @@
+~~Title: Efl.Ui.Layout_Part_Box~~
+====== Efl.Ui.Layout_Part_Box (class) ======
+
+===== Description =====
+
+%%Represents a Box created as part of a layout.%%
+
+%%Cannot be deleted. This is only a representation of an internal object of an EFL layout.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:layout_part_box:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:pack_linear|Efl.Pack_Linear]] //(interface)//
+ * [[:develop:api:efl:pack|Efl.Pack]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:layout_orientable_readonly|Efl.Ui.Layout_Orientable_Readonly]] //(mixin)//
+ * [[:develop:api:efl:ui:layout_orientable|Efl.Ui.Layout_Orientable]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:layout_part_box:method:content_count|content_count]]**// [Overridden from [[:develop:api:efl:container|Efl.Container]]]//\\
+> %%Returns the number of contained sub-objects.%%
+
+int efl_content_count(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout_part_box:method:content_iterate|content_iterate]]**// [Overridden from [[:develop:api:efl:container|Efl.Container]]]//\\
+> %%Begin iterating over this object's contents.%%
+
+Eina_Iterator *efl_content_iterate(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout_part_box:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout_part_box:property:orientation|orientation]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:layout_orientable|Efl.Ui.Layout_Orientable]]]//\\
+> %%This will always print an error saying that this is a read-only object.%%
+
+Efl_Ui_Layout_Orientation efl_ui_layout_orientation_get(const Eo *obj);
+void efl_ui_layout_orientation_set(Eo *obj, Efl_Ui_Layout_Orientation dir);
+
+\\
+**[[:develop:api:efl:ui:layout_part_box:method:pack|pack]]**// [Overridden from [[:develop:api:efl:pack|Efl.Pack]]]//\\
+> %%Adds a sub-object to this container.%%
+
+Eina_Bool efl_pack(Eo *obj, Efl_Gfx_Entity *subobj);
+
+\\
+**[[:develop:api:efl:ui:layout_part_box:method:pack_after|pack_after]]**// [Overridden from [[:develop:api:efl:pack_linear|Efl.Pack_Linear]]]//\\
+> %%Append an object after the %%''existing''%% sub-object.%%
+
+Eina_Bool efl_pack_after(Eo *obj, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing);
+
+\\
+**[[:develop:api:efl:ui:layout_part_box:method:pack_at|pack_at]]**// [Overridden from [[:develop:api:efl:pack_linear|Efl.Pack_Linear]]]//\\
+> %%Inserts %%''subobj''%% BEFORE the sub-object at position %%''index''%%.%%
+
+Eina_Bool efl_pack_at(Eo *obj, Efl_Gfx_Entity *subobj, int index);
+
+\\
+**[[:develop:api:efl:ui:layout_part_box:method:pack_before|pack_before]]**// [Overridden from [[:develop:api:efl:pack_linear|Efl.Pack_Linear]]]//\\
+> %%Prepend an object before the %%''existing''%% sub-object.%%
+
+Eina_Bool efl_pack_before(Eo *obj, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing);
+
+\\
+**[[:develop:api:efl:ui:layout_part_box:method:pack_begin|pack_begin]]**// [Overridden from [[:develop:api:efl:pack_linear|Efl.Pack_Linear]]]//\\
+> %%Prepend an object at the beginning of this container.%%
+
+Eina_Bool efl_pack_begin(Eo *obj, Efl_Gfx_Entity *subobj);
+
+\\
+**[[:develop:api:efl:ui:layout_part_box:method:pack_clear|pack_clear]]**// [Overridden from [[:develop:api:efl:pack|Efl.Pack]]]//\\
+> %%Removes all packed sub-objects and unreferences them.%%
+
+Eina_Bool efl_pack_clear(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout_part_box:method:pack_content_get|pack_content_get]]**// [Overridden from [[:develop:api:efl:pack_linear|Efl.Pack_Linear]]]//\\
+> %%Sub-object at a given %%''index''%% in this container.%%
+
+Efl_Gfx_Entity *efl_pack_content_get(Eo *obj, int index);
+
+\\
+**[[:develop:api:efl:ui:layout_part_box:method:pack_end|pack_end]]**// [Overridden from [[:develop:api:efl:pack_linear|Efl.Pack_Linear]]]//\\
+> %%Append object at the end of this container.%%
+
+Eina_Bool efl_pack_end(Eo *obj, Efl_Gfx_Entity *subobj);
+
+\\
+**[[:develop:api:efl:ui:layout_part_box:method:pack_index_get|pack_index_get]]**// [Overridden from [[:develop:api:efl:pack_linear|Efl.Pack_Linear]]]//\\
+> %%Get the index of a sub-object in this container.%%
+
+int efl_pack_index_get(Eo *obj, const Efl_Gfx_Entity *subobj);
+
+\\
+**[[:develop:api:efl:ui:layout_part_box:method:pack_unpack_at|pack_unpack_at]]**// [Overridden from [[:develop:api:efl:pack_linear|Efl.Pack_Linear]]]//\\
+> %%Pop out (remove) the sub-object at the specified %%''index''%%.%%
+
+Efl_Gfx_Entity *efl_pack_unpack_at(Eo *obj, int index);
+
+\\
+**[[:develop:api:efl:ui:layout_part_box:method:unpack|unpack]]**// [Overridden from [[:develop:api:efl:pack|Efl.Pack]]]//\\
+> %%Removes an existing sub-object from the container without deleting it.%%
+
+Eina_Bool efl_pack_unpack(Eo *obj, Efl_Gfx_Entity *subobj);
+
+\\
+**[[:develop:api:efl:ui:layout_part_box:method:unpack_all|unpack_all]]**// [Overridden from [[:develop:api:efl:pack|Efl.Pack]]]//\\
+> %%Removes all packed sub-objects without unreferencing them.%%
+
+Eina_Bool efl_pack_unpack_all(Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:constructor|constructor]]** | %%Implement this method to provide optional initialization code for your object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/content_count.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/content_count.txt
new file mode 100644
index 00000000..8aab8909
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/content_count.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Layout_Part_Box.content_count~~
+====== Efl.Ui.Layout_Part_Box.content_count ======
+
+===== Description =====
+
+%%Returns the number of contained sub-objects.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_part_box:method:content_count:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:container:method:content_count|Efl.Container.content_count]].//===== Signature =====
+
+
+content_count @pure_virtual {
+ return: int;
+}
+
+
+===== C signature =====
+
+
+int efl_content_count(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:container:method:content_count|Efl.Container.content_count]]
+ * [[:develop:api:efl:canvas:layout:method:content_count|Efl.Canvas.Layout.content_count]]
+ * [[:develop:api:efl:ui:tab_bar:method:content_count|Efl.Ui.Tab_Bar.content_count]]
+ * [[:develop:api:efl:ui:table:method:content_count|Efl.Ui.Table.content_count]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:content_count|Efl.Canvas.Layout_Part_Table.content_count]]
+ * [[:develop:api:efl:ui:layout_part_table:method:content_count|Efl.Ui.Layout_Part_Table.content_count]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:content_count|Efl.Canvas.Layout_Part_Invalid.content_count]]
+ * [[:develop:api:efl:ui:flip:method:content_count|Efl.Ui.Flip.content_count]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:content_count|Efl.Canvas.Layout_Part_Box.content_count]]
+ * [[:develop:api:efl:ui:box:method:content_count|Efl.Ui.Box.content_count]]
+ * [[:develop:api:efl:ui:group_item:method:content_count|Efl.Ui.Group_Item.content_count]]
+ * [[:develop:api:efl:ui:collection:method:content_count|Efl.Ui.Collection.content_count]]
+ * [[:develop:api:efl:ui:layout_part_box:method:content_count|Efl.Ui.Layout_Part_Box.content_count]]
+ * [[:develop:api:efl:ui:spotlight:container:method:content_count|Efl.Ui.Spotlight.Container.content_count]]
+ * [[:develop:api:efl:ui:relative_layout:method:content_count|Efl.Ui.Relative_Layout.content_count]]
+ * [[:develop:api:efl:ui:layout_base:method:content_count|Efl.Ui.Layout_Base.content_count]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/content_iterate.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/content_iterate.txt
new file mode 100644
index 00000000..5670e6bf
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/content_iterate.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Layout_Part_Box.content_iterate~~
+====== Efl.Ui.Layout_Part_Box.content_iterate ======
+
+===== Description =====
+
+%%Begin iterating over this object's contents.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_part_box:method:content_iterate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:container:method:content_iterate|Efl.Container.content_iterate]].//===== Signature =====
+
+
+content_iterate @pure_virtual {
+ return: iterator @no_unused;
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_content_iterate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:container:method:content_iterate|Efl.Container.content_iterate]]
+ * [[:develop:api:efl:canvas:layout:method:content_iterate|Efl.Canvas.Layout.content_iterate]]
+ * [[:develop:api:efl:ui:tab_bar:method:content_iterate|Efl.Ui.Tab_Bar.content_iterate]]
+ * [[:develop:api:efl:ui:table:method:content_iterate|Efl.Ui.Table.content_iterate]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:content_iterate|Efl.Canvas.Layout_Part_Table.content_iterate]]
+ * [[:develop:api:efl:ui:layout_part_table:method:content_iterate|Efl.Ui.Layout_Part_Table.content_iterate]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:content_iterate|Efl.Canvas.Layout_Part_Invalid.content_iterate]]
+ * [[:develop:api:efl:ui:flip:method:content_iterate|Efl.Ui.Flip.content_iterate]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:content_iterate|Efl.Canvas.Layout_Part_Box.content_iterate]]
+ * [[:develop:api:efl:ui:box:method:content_iterate|Efl.Ui.Box.content_iterate]]
+ * [[:develop:api:efl:ui:group_item:method:content_iterate|Efl.Ui.Group_Item.content_iterate]]
+ * [[:develop:api:efl:ui:collection:method:content_iterate|Efl.Ui.Collection.content_iterate]]
+ * [[:develop:api:efl:ui:layout_part_box:method:content_iterate|Efl.Ui.Layout_Part_Box.content_iterate]]
+ * [[:develop:api:efl:ui:spotlight:container:method:content_iterate|Efl.Ui.Spotlight.Container.content_iterate]]
+ * [[:develop:api:efl:ui:relative_layout:method:content_iterate|Efl.Ui.Relative_Layout.content_iterate]]
+ * [[:develop:api:efl:ui:layout_base:method:content_iterate|Efl.Ui.Layout_Base.content_iterate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/destructor.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/destructor.txt
new file mode 100644
index 00000000..05545734
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Ui.Layout_Part_Box.destructor~~
+====== Efl.Ui.Layout_Part_Box.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_part_box:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack.txt
new file mode 100644
index 00000000..1780ccea
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Ui.Layout_Part_Box.pack~~
+====== Efl.Ui.Layout_Part_Box.pack ======
+
+===== Description =====
+
+%%Adds a sub-object to this container.%%
+
+%%Depending on the container this will either fill in the default spot, replacing any already existing element or append to the end of the container if there is no default part.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_part_box:method:pack:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack:method:pack|Efl.Pack.pack]].//===== Signature =====
+
+
+pack @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack(Eo *obj, Efl_Gfx_Entity *subobj);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%The object to pack.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack:method:pack|Efl.Pack.pack]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack|Efl.Ui.Tab_Bar.pack]]
+ * [[:develop:api:efl:ui:table:method:pack|Efl.Ui.Table.pack]]
+ * [[:develop:api:efl:ui:layout_part_table:method:pack|Efl.Ui.Layout_Part_Table.pack]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack|Efl.Canvas.Layout_Part_Invalid.pack]]
+ * [[:develop:api:efl:ui:flip:method:pack|Efl.Ui.Flip.pack]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack|Efl.Canvas.Layout_Part_Box.pack]]
+ * [[:develop:api:efl:ui:box:method:pack|Efl.Ui.Box.pack]]
+ * [[:develop:api:efl:ui:radio_box:method:pack|Efl.Ui.Radio_Box.pack]]
+ * [[:develop:api:efl:ui:group_item:method:pack|Efl.Ui.Group_Item.pack]]
+ * [[:develop:api:efl:ui:collection:method:pack|Efl.Ui.Collection.pack]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack|Efl.Ui.Layout_Part_Box.pack]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack|Efl.Ui.Spotlight.Container.pack]]
+ * [[:develop:api:efl:ui:relative_layout:method:pack|Efl.Ui.Relative_Layout.pack]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_after.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_after.txt
new file mode 100644
index 00000000..9012433c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_after.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Ui.Layout_Part_Box.pack_after~~
+====== Efl.Ui.Layout_Part_Box.pack_after ======
+
+===== Description =====
+
+%%Append an object after the %%''existing''%% sub-object.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+%%If %%''existing''%% is %%''NULL''%% this method behaves like %%[[:develop:api:efl:pack_linear:method:pack_end|Efl.Pack_Linear.pack_end]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_part_box:method:pack_after:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_linear:method:pack_after|Efl.Pack_Linear.pack_after]].//===== Signature =====
+
+
+pack_after @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ @in existing: const(Efl.Gfx.Entity);
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_after(Eo *obj, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%Object to pack after %%''existing''%%.%%
+ * **existing** //(in)// - %%Existing reference sub-object. Must already belong to the container or be %%''NULL''%%.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_after|Efl.Pack_Linear.pack_after]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_after|Efl.Ui.Tab_Bar.pack_after]]
+ * [[:develop:api:efl:ui:flip:method:pack_after|Efl.Ui.Flip.pack_after]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_after|Efl.Canvas.Layout_Part_Box.pack_after]]
+ * [[:develop:api:efl:ui:box:method:pack_after|Efl.Ui.Box.pack_after]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_after|Efl.Ui.Radio_Box.pack_after]]
+ * [[:develop:api:efl:ui:group_item:method:pack_after|Efl.Ui.Group_Item.pack_after]]
+ * [[:develop:api:efl:ui:collection:method:pack_after|Efl.Ui.Collection.pack_after]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_after|Efl.Ui.Layout_Part_Box.pack_after]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_after|Efl.Canvas.Layout_Part_Invalid.pack_after]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_after|Efl.Ui.Spotlight.Container.pack_after]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_after|Efl.Ui.Tab_Pager.pack_after]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_at.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_at.txt
new file mode 100644
index 00000000..1dba2da7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_at.txt
@@ -0,0 +1,54 @@
+~~Title: Efl.Ui.Layout_Part_Box.pack_at~~
+====== Efl.Ui.Layout_Part_Box.pack_at ======
+
+===== Description =====
+
+%%Inserts %%''subobj''%% BEFORE the sub-object at position %%''index''%%.%%
+
+%%%%''index''%% ranges from %%''-count''%% to %%''count-1''%%, where positive numbers go from first sub-object (%%''0''%%) to last (%%''count-1''%%), and negative numbers go from last sub-object (%%''-1''%%) to first (%%''-count''%%). %%''count''%% is the number of sub-objects currently in the container as returned by %%[[:develop:api:efl:container:method:content_count|Efl.Container.content_count]]%%.%%
+
+%%If %%''index''%% is less than %%''-count''%%, it will trigger %%[[:develop:api:efl:pack_linear:method:pack_begin|Efl.Pack_Linear.pack_begin]]%% whereas %%''index''%% greater than %%''count-1''%% will trigger %%[[:develop:api:efl:pack_linear:method:pack_end|Efl.Pack_Linear.pack_end]]%%.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_part_box:method:pack_at:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_linear:method:pack_at|Efl.Pack_Linear.pack_at]].//===== Signature =====
+
+
+pack_at @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ @in index: int;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_at(Eo *obj, Efl_Gfx_Entity *subobj, int index);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%Object to pack.%%
+ * **index** //(in)// - %%Index of existing sub-object to insert BEFORE. Valid range is %%''-count''%% to %%''count-1''%%).%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_at|Efl.Pack_Linear.pack_at]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_at|Efl.Ui.Tab_Bar.pack_at]]
+ * [[:develop:api:efl:ui:flip:method:pack_at|Efl.Ui.Flip.pack_at]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_at|Efl.Canvas.Layout_Part_Box.pack_at]]
+ * [[:develop:api:efl:ui:box:method:pack_at|Efl.Ui.Box.pack_at]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_at|Efl.Ui.Radio_Box.pack_at]]
+ * [[:develop:api:efl:ui:group_item:method:pack_at|Efl.Ui.Group_Item.pack_at]]
+ * [[:develop:api:efl:ui:collection:method:pack_at|Efl.Ui.Collection.pack_at]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_at|Efl.Ui.Layout_Part_Box.pack_at]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_at|Efl.Canvas.Layout_Part_Invalid.pack_at]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_at|Efl.Ui.Spotlight.Container.pack_at]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_at|Efl.Ui.Tab_Pager.pack_at]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_before.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_before.txt
new file mode 100644
index 00000000..657baebb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_before.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Ui.Layout_Part_Box.pack_before~~
+====== Efl.Ui.Layout_Part_Box.pack_before ======
+
+===== Description =====
+
+%%Prepend an object before the %%''existing''%% sub-object.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+%%If %%''existing''%% is %%''NULL''%% this method behaves like %%[[:develop:api:efl:pack_linear:method:pack_begin|Efl.Pack_Linear.pack_begin]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_part_box:method:pack_before:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_linear:method:pack_before|Efl.Pack_Linear.pack_before]].//===== Signature =====
+
+
+pack_before @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ @in existing: const(Efl.Gfx.Entity);
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_before(Eo *obj, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%Object to pack before %%''existing''%%.%%
+ * **existing** //(in)// - %%Existing reference sub-object. Must already belong to the container or be %%''NULL''%%.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_before|Efl.Pack_Linear.pack_before]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_before|Efl.Ui.Tab_Bar.pack_before]]
+ * [[:develop:api:efl:ui:flip:method:pack_before|Efl.Ui.Flip.pack_before]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_before|Efl.Canvas.Layout_Part_Box.pack_before]]
+ * [[:develop:api:efl:ui:box:method:pack_before|Efl.Ui.Box.pack_before]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_before|Efl.Ui.Radio_Box.pack_before]]
+ * [[:develop:api:efl:ui:group_item:method:pack_before|Efl.Ui.Group_Item.pack_before]]
+ * [[:develop:api:efl:ui:collection:method:pack_before|Efl.Ui.Collection.pack_before]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_before|Efl.Ui.Layout_Part_Box.pack_before]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_before|Efl.Canvas.Layout_Part_Invalid.pack_before]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_before|Efl.Ui.Spotlight.Container.pack_before]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_before|Efl.Ui.Tab_Pager.pack_before]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_begin.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_begin.txt
new file mode 100644
index 00000000..d74f8144
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_begin.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Layout_Part_Box.pack_begin~~
+====== Efl.Ui.Layout_Part_Box.pack_begin ======
+
+===== Description =====
+
+%%Prepend an object at the beginning of this container.%%
+
+%%This is the same as %%[[:develop:api:efl:pack_linear:method:pack_at|Efl.Pack_Linear.pack_at]]%% with a %%''0''%% index.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_part_box:method:pack_begin:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_linear:method:pack_begin|Efl.Pack_Linear.pack_begin]].//===== Signature =====
+
+
+pack_begin @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_begin(Eo *obj, Efl_Gfx_Entity *subobj);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%Object to pack at the beginning.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_begin|Efl.Pack_Linear.pack_begin]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_begin|Efl.Ui.Tab_Bar.pack_begin]]
+ * [[:develop:api:efl:ui:flip:method:pack_begin|Efl.Ui.Flip.pack_begin]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_begin|Efl.Canvas.Layout_Part_Box.pack_begin]]
+ * [[:develop:api:efl:ui:box:method:pack_begin|Efl.Ui.Box.pack_begin]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_begin|Efl.Ui.Radio_Box.pack_begin]]
+ * [[:develop:api:efl:ui:group_item:method:pack_begin|Efl.Ui.Group_Item.pack_begin]]
+ * [[:develop:api:efl:ui:collection:method:pack_begin|Efl.Ui.Collection.pack_begin]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_begin|Efl.Ui.Layout_Part_Box.pack_begin]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_begin|Efl.Canvas.Layout_Part_Invalid.pack_begin]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_begin|Efl.Ui.Spotlight.Container.pack_begin]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_begin|Efl.Ui.Tab_Pager.pack_begin]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_clear.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_clear.txt
new file mode 100644
index 00000000..5e977eba
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_clear.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Layout_Part_Box.pack_clear~~
+====== Efl.Ui.Layout_Part_Box.pack_clear ======
+
+===== Description =====
+
+%%Removes all packed sub-objects and unreferences them.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_part_box:method:pack_clear:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack:method:pack_clear|Efl.Pack.pack_clear]].//===== Signature =====
+
+
+pack_clear @pure_virtual {
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_clear(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack:method:pack_clear|Efl.Pack.pack_clear]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_clear|Efl.Ui.Tab_Bar.pack_clear]]
+ * [[:develop:api:efl:ui:table:method:pack_clear|Efl.Ui.Table.pack_clear]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:pack_clear|Efl.Canvas.Layout_Part_Table.pack_clear]]
+ * [[:develop:api:efl:ui:layout_part_table:method:pack_clear|Efl.Ui.Layout_Part_Table.pack_clear]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_clear|Efl.Canvas.Layout_Part_Invalid.pack_clear]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_clear|Efl.Canvas.Layout_Part_Box.pack_clear]]
+ * [[:develop:api:efl:ui:box:method:pack_clear|Efl.Ui.Box.pack_clear]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_clear|Efl.Ui.Radio_Box.pack_clear]]
+ * [[:develop:api:efl:ui:group_item:method:pack_clear|Efl.Ui.Group_Item.pack_clear]]
+ * [[:develop:api:efl:ui:collection:method:pack_clear|Efl.Ui.Collection.pack_clear]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_clear|Efl.Ui.Layout_Part_Box.pack_clear]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_clear|Efl.Ui.Spotlight.Container.pack_clear]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_clear|Efl.Ui.Tab_Pager.pack_clear]]
+ * [[:develop:api:efl:ui:relative_layout:method:pack_clear|Efl.Ui.Relative_Layout.pack_clear]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_content_get.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_content_get.txt
new file mode 100644
index 00000000..9f0ec1ea
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_content_get.txt
@@ -0,0 +1,47 @@
+~~Title: Efl.Ui.Layout_Part_Box.pack_content_get~~
+====== Efl.Ui.Layout_Part_Box.pack_content_get ======
+
+===== Description =====
+
+%%Sub-object at a given %%''index''%% in this container.%%
+
+%%%%''index''%% ranges from %%''-count''%% to %%''count-1''%%, where positive numbers go from first sub-object (%%''0''%%) to last (%%''count-1''%%), and negative numbers go from last sub-object (%%''-1''%%) to first (%%''-count''%%). %%''count''%% is the number of sub-objects currently in the container as returned by %%[[:develop:api:efl:container:method:content_count|Efl.Container.content_count]]%%.%%
+
+%%If %%''index''%% is less than %%''-count''%%, it will return the first sub-object whereas %%''index''%% greater than %%''count-1''%% will return the last sub-object.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_part_box:method:pack_content_get:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_linear:method:pack_content_get|Efl.Pack_Linear.pack_content_get]].//===== Signature =====
+
+
+pack_content_get @pure_virtual {
+ params {
+ @in index: int;
+ }
+ return: Efl.Gfx.Entity;
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_pack_content_get(Eo *obj, int index);
+
+
+===== Parameters =====
+
+ * **index** //(in)// - %%Index of the existing sub-object to retrieve. Valid range is %%''-count''%% to %%''count-1''%%.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_content_get|Efl.Pack_Linear.pack_content_get]]
+ * [[:develop:api:efl:ui:flip:method:pack_content_get|Efl.Ui.Flip.pack_content_get]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_content_get|Efl.Canvas.Layout_Part_Box.pack_content_get]]
+ * [[:develop:api:efl:ui:box:method:pack_content_get|Efl.Ui.Box.pack_content_get]]
+ * [[:develop:api:efl:ui:group_item:method:pack_content_get|Efl.Ui.Group_Item.pack_content_get]]
+ * [[:develop:api:efl:ui:collection:method:pack_content_get|Efl.Ui.Collection.pack_content_get]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_content_get|Efl.Ui.Layout_Part_Box.pack_content_get]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_content_get|Efl.Canvas.Layout_Part_Invalid.pack_content_get]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_content_get|Efl.Ui.Spotlight.Container.pack_content_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_end.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_end.txt
new file mode 100644
index 00000000..0bb9e6ba
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_end.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Layout_Part_Box.pack_end~~
+====== Efl.Ui.Layout_Part_Box.pack_end ======
+
+===== Description =====
+
+%%Append object at the end of this container.%%
+
+%%This is the same as %%[[:develop:api:efl:pack_linear:method:pack_at|Efl.Pack_Linear.pack_at]]%% with a %%''-1''%% index.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_part_box:method:pack_end:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_linear:method:pack_end|Efl.Pack_Linear.pack_end]].//===== Signature =====
+
+
+pack_end @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_end(Eo *obj, Efl_Gfx_Entity *subobj);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%Object to pack at the end.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_end|Efl.Pack_Linear.pack_end]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_end|Efl.Ui.Tab_Bar.pack_end]]
+ * [[:develop:api:efl:ui:flip:method:pack_end|Efl.Ui.Flip.pack_end]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_end|Efl.Canvas.Layout_Part_Box.pack_end]]
+ * [[:develop:api:efl:ui:box:method:pack_end|Efl.Ui.Box.pack_end]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_end|Efl.Ui.Radio_Box.pack_end]]
+ * [[:develop:api:efl:ui:group_item:method:pack_end|Efl.Ui.Group_Item.pack_end]]
+ * [[:develop:api:efl:ui:collection:method:pack_end|Efl.Ui.Collection.pack_end]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_end|Efl.Ui.Layout_Part_Box.pack_end]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_end|Efl.Canvas.Layout_Part_Invalid.pack_end]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_end|Efl.Ui.Spotlight.Container.pack_end]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_end|Efl.Ui.Tab_Pager.pack_end]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_index_get.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_index_get.txt
new file mode 100644
index 00000000..f569d165
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_index_get.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Layout_Part_Box.pack_index_get~~
+====== Efl.Ui.Layout_Part_Box.pack_index_get ======
+
+===== Description =====
+
+%%Get the index of a sub-object in this container.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_part_box:method:pack_index_get:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_linear:method:pack_index_get|Efl.Pack_Linear.pack_index_get]].//===== Signature =====
+
+
+pack_index_get @pure_virtual {
+ params {
+ @in subobj: const(Efl.Gfx.Entity);
+ }
+ return: int (+1);
+}
+
+
+===== C signature =====
+
+
+int efl_pack_index_get(Eo *obj, const Efl_Gfx_Entity *subobj);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%An existing sub-object in this container.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_index_get|Efl.Pack_Linear.pack_index_get]]
+ * [[:develop:api:efl:ui:flip:method:pack_index_get|Efl.Ui.Flip.pack_index_get]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_index_get|Efl.Canvas.Layout_Part_Box.pack_index_get]]
+ * [[:develop:api:efl:ui:box:method:pack_index_get|Efl.Ui.Box.pack_index_get]]
+ * [[:develop:api:efl:ui:group_item:method:pack_index_get|Efl.Ui.Group_Item.pack_index_get]]
+ * [[:develop:api:efl:ui:collection:method:pack_index_get|Efl.Ui.Collection.pack_index_get]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_index_get|Efl.Ui.Layout_Part_Box.pack_index_get]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_index_get|Efl.Canvas.Layout_Part_Invalid.pack_index_get]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_index_get|Efl.Ui.Spotlight.Container.pack_index_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_unpack_at.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_unpack_at.txt
new file mode 100644
index 00000000..b022dda7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/pack_unpack_at.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Layout_Part_Box.pack_unpack_at~~
+====== Efl.Ui.Layout_Part_Box.pack_unpack_at ======
+
+===== Description =====
+
+%%Pop out (remove) the sub-object at the specified %%''index''%%.%%
+
+%%%%''index''%% ranges from %%''-count''%% to %%''count-1''%%, where positive numbers go from first sub-object (%%''0''%%) to last (%%''count-1''%%), and negative numbers go from last sub-object (%%''-1''%%) to first (%%''-count''%%). %%''count''%% is the number of sub-objects currently in the container as returned by %%[[:develop:api:efl:container:method:content_count|Efl.Container.content_count]]%%.%%
+
+%%If %%''index''%% is less than -%%''count''%%, it will remove the first sub-object whereas %%''index''%% greater than %%''count''%%-1 will remove the last sub-object.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_part_box:method:pack_unpack_at:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_linear:method:pack_unpack_at|Efl.Pack_Linear.pack_unpack_at]].//===== Signature =====
+
+
+pack_unpack_at @pure_virtual {
+ params {
+ @in index: int;
+ }
+ return: Efl.Gfx.Entity;
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_pack_unpack_at(Eo *obj, int index);
+
+
+===== Parameters =====
+
+ * **index** //(in)// - %%Index of the sub-object to remove. Valid range is %%''-count''%% to %%''count-1''%%.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_linear:method:pack_unpack_at|Efl.Pack_Linear.pack_unpack_at]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_unpack_at|Efl.Ui.Tab_Bar.pack_unpack_at]]
+ * [[:develop:api:efl:ui:flip:method:pack_unpack_at|Efl.Ui.Flip.pack_unpack_at]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_unpack_at|Efl.Canvas.Layout_Part_Box.pack_unpack_at]]
+ * [[:develop:api:efl:ui:box:method:pack_unpack_at|Efl.Ui.Box.pack_unpack_at]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_unpack_at|Efl.Ui.Radio_Box.pack_unpack_at]]
+ * [[:develop:api:efl:ui:group_item:method:pack_unpack_at|Efl.Ui.Group_Item.pack_unpack_at]]
+ * [[:develop:api:efl:ui:collection:method:pack_unpack_at|Efl.Ui.Collection.pack_unpack_at]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_unpack_at|Efl.Ui.Layout_Part_Box.pack_unpack_at]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_unpack_at|Efl.Canvas.Layout_Part_Invalid.pack_unpack_at]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_unpack_at|Efl.Ui.Spotlight.Container.pack_unpack_at]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_unpack_at|Efl.Ui.Tab_Pager.pack_unpack_at]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/unpack.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/unpack.txt
new file mode 100644
index 00000000..4f966663
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/unpack.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Layout_Part_Box.unpack~~
+====== Efl.Ui.Layout_Part_Box.unpack ======
+
+===== Description =====
+
+%%Removes an existing sub-object from the container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_part_box:method:unpack:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]].//===== Signature =====
+
+
+unpack @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_unpack(Eo *obj, Efl_Gfx_Entity *subobj);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%The sub-object to unpack.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]
+ * [[:develop:api:efl:ui:tab_bar:method:unpack|Efl.Ui.Tab_Bar.unpack]]
+ * [[:develop:api:efl:ui:table:method:unpack|Efl.Ui.Table.unpack]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:unpack|Efl.Canvas.Layout_Part_Table.unpack]]
+ * [[:develop:api:efl:ui:layout_part_table:method:unpack|Efl.Ui.Layout_Part_Table.unpack]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:unpack|Efl.Canvas.Layout_Part_Invalid.unpack]]
+ * [[:develop:api:efl:ui:flip:method:unpack|Efl.Ui.Flip.unpack]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:unpack|Efl.Canvas.Layout_Part_Box.unpack]]
+ * [[:develop:api:efl:ui:box:method:unpack|Efl.Ui.Box.unpack]]
+ * [[:develop:api:efl:ui:radio_box:method:unpack|Efl.Ui.Radio_Box.unpack]]
+ * [[:develop:api:efl:ui:group_item:method:unpack|Efl.Ui.Group_Item.unpack]]
+ * [[:develop:api:efl:ui:collection:method:unpack|Efl.Ui.Collection.unpack]]
+ * [[:develop:api:efl:ui:layout_part_box:method:unpack|Efl.Ui.Layout_Part_Box.unpack]]
+ * [[:develop:api:efl:ui:spotlight:container:method:unpack|Efl.Ui.Spotlight.Container.unpack]]
+ * [[:develop:api:efl:ui:tab_pager:method:unpack|Efl.Ui.Tab_Pager.unpack]]
+ * [[:develop:api:efl:ui:relative_layout:method:unpack|Efl.Ui.Relative_Layout.unpack]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/unpack_all.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/unpack_all.txt
new file mode 100644
index 00000000..653b26d9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_box/method/unpack_all.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.Ui.Layout_Part_Box.unpack_all~~
+====== Efl.Ui.Layout_Part_Box.unpack_all ======
+
+===== Description =====
+
+%%Removes all packed sub-objects without unreferencing them.%%
+
+%%Use with caution.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_part_box:method:unpack_all:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack:method:unpack_all|Efl.Pack.unpack_all]].//===== Signature =====
+
+
+unpack_all @pure_virtual {
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_unpack_all(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack:method:unpack_all|Efl.Pack.unpack_all]]
+ * [[:develop:api:efl:ui:tab_bar:method:unpack_all|Efl.Ui.Tab_Bar.unpack_all]]
+ * [[:develop:api:efl:ui:table:method:unpack_all|Efl.Ui.Table.unpack_all]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:unpack_all|Efl.Canvas.Layout_Part_Table.unpack_all]]
+ * [[:develop:api:efl:ui:layout_part_table:method:unpack_all|Efl.Ui.Layout_Part_Table.unpack_all]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:unpack_all|Efl.Canvas.Layout_Part_Invalid.unpack_all]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:unpack_all|Efl.Canvas.Layout_Part_Box.unpack_all]]
+ * [[:develop:api:efl:ui:box:method:unpack_all|Efl.Ui.Box.unpack_all]]
+ * [[:develop:api:efl:ui:radio_box:method:unpack_all|Efl.Ui.Radio_Box.unpack_all]]
+ * [[:develop:api:efl:ui:group_item:method:unpack_all|Efl.Ui.Group_Item.unpack_all]]
+ * [[:develop:api:efl:ui:collection:method:unpack_all|Efl.Ui.Collection.unpack_all]]
+ * [[:develop:api:efl:ui:layout_part_box:method:unpack_all|Efl.Ui.Layout_Part_Box.unpack_all]]
+ * [[:develop:api:efl:ui:spotlight:container:method:unpack_all|Efl.Ui.Spotlight.Container.unpack_all]]
+ * [[:develop:api:efl:ui:tab_pager:method:unpack_all|Efl.Ui.Tab_Pager.unpack_all]]
+ * [[:develop:api:efl:ui:relative_layout:method:unpack_all|Efl.Ui.Relative_Layout.unpack_all]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_box/property/orientation.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_box/property/orientation.txt
new file mode 100644
index 00000000..0e0a734c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_box/property/orientation.txt
@@ -0,0 +1,63 @@
+~~Title: Efl.Ui.Layout_Part_Box.orientation~~
+====== Efl.Ui.Layout_Part_Box.orientation ======
+
+===== Description =====
+
+%%Control the direction of a given widget.%%
+
+%%Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.%%
+
+%%Mirroring as defined in %%[[:develop:api:efl:ui:i18n|Efl.Ui.I18n]]%% can invert the %%''horizontal''%% direction: it is %%''ltr''%% by default, but becomes %%''rtl''%% if the object is mirrored.%%
+
+//Since 1.23//
+
+
+{{page>:develop:api-include:efl:ui:layout_part_box:property:orientation:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **dir** - %%Direction of the widget.%%
+==== Setter ====
+
+%%This will always print an error saying that this is a read-only object.%%
+{{page>:develop:api-include:efl:ui:layout_part_box:property:orientation:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:layout_orientable_readonly:property:orientation|Efl.Ui.Layout_Orientable.orientation]] **(get)**.//===== Signature =====
+
+
+@property orientation @pure_virtual {
+ get {}
+ set {}
+ values {
+ dir: Efl.Ui.Layout_Orientation;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Layout_Orientation efl_ui_layout_orientation_get(const Eo *obj);
+void efl_ui_layout_orientation_set(Eo *obj, Efl_Ui_Layout_Orientation dir);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:layout_orientable:property:orientation|Efl.Ui.Layout_Orientable.orientation]]
+ * [[:develop:api:efl:ui:slider:property:orientation|Efl.Ui.Slider.orientation]]
+ * [[:develop:api:efl:ui:layout_orientable_readonly:property:orientation|Efl.Ui.Layout_Orientable_Readonly.orientation]]
+ * [[:develop:api:efl:canvas:layout_part_box:property:orientation|Efl.Canvas.Layout_Part_Box.orientation]]
+ * [[:develop:api:efl:ui:layout_part_box:property:orientation|Efl.Ui.Layout_Part_Box.orientation]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:orientation|Efl.Canvas.Layout_Part_Invalid.orientation]]
+ * [[:develop:api:efl:ui:collection_view:property:orientation|Efl.Ui.Collection_View.orientation]]
+ * [[:develop:api:efl:ui:table:property:orientation|Efl.Ui.Table.orientation]]
+ * [[:develop:api:efl:ui:box:property:orientation|Efl.Ui.Box.orientation]]
+ * [[:develop:api:efl:ui:slider_interval:property:orientation|Efl.Ui.Slider_Interval.orientation]]
+ * [[:develop:api:efl:ui:collection:property:orientation|Efl.Ui.Collection.orientation]]
+ * [[:develop:api:efl:ui:panes:property:orientation|Efl.Ui.Panes.orientation]]
+ * [[:develop:api:efl:ui:progressbar:property:orientation|Efl.Ui.Progressbar.orientation]]
+ * [[:develop:api:efl:ui:spin_button:property:orientation|Efl.Ui.Spin_Button.orientation]]
+ * [[:develop:api:efl:ui:position_manager:grid:property:orientation|Efl.Ui.Position_Manager.Grid.orientation]]
+ * [[:develop:api:efl:ui:position_manager:list:property:orientation|Efl.Ui.Position_Manager.List.orientation]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_content.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_content.txt
new file mode 100644
index 00000000..6ffbce34
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_content.txt
@@ -0,0 +1,91 @@
+~~Title: Efl.Ui.Layout_Part_Content~~
+====== Efl.Ui.Layout_Part_Content (class) ======
+
+===== Description =====
+
+%%Elementary layout internal part class%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:layout_part_content:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:layout_part|Efl.Ui.Layout_Part]] //(class)// => [[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:layout_part|Efl.Ui.Layout_Part]] //(class)//
+ * [[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:content|Efl.Content]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:layout_part_content:property:content|content]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:content|Efl.Content]]]//\\
+> %%Sub-object currently set as this object's single content.%%
+
+Efl_Gfx_Entity *efl_content_get(const Eo *obj);
+Eina_Bool efl_content_set(Eo *obj, Efl_Gfx_Entity *content);
+
+\\
+**[[:develop:api:efl:ui:layout_part_content:method:content_unset|content_unset]]**// [Overridden from [[:develop:api:efl:content|Efl.Content]]]//\\
+> %%Remove the sub-object currently set as content of this object and return it. This object becomes empty.%%
+
+Efl_Gfx_Entity *efl_content_unset(Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:constructor|constructor]]** | %%Implement this method to provide optional initialization code for your object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]] ^^^
+| | **[[:develop:api:efl:ui:widget_part:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| | **[[:develop:api:efl:ui:widget_part:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:content|Efl.Content]] ^^^
+| | **[[:develop:api:efl:content:event:content_changed|content,changed]]** | %%Sent after the content is set or unset using the current content object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_content/method/content_unset.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_content/method/content_unset.txt
new file mode 100644
index 00000000..60430de8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_content/method/content_unset.txt
@@ -0,0 +1,62 @@
+~~Title: Efl.Ui.Layout_Part_Content.content_unset~~
+====== Efl.Ui.Layout_Part_Content.content_unset ======
+
+===== Description =====
+
+%%Remove the sub-object currently set as content of this object and return it. This object becomes empty.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_part_content:method:content_unset:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:content:method:content_unset|Efl.Content.content_unset]].//===== Signature =====
+
+
+content_unset @pure_virtual {
+ return: Efl.Gfx.Entity;
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_content_unset(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:content:method:content_unset|Efl.Content.content_unset]]
+ * [[:develop:api:efl:ui:check:method:content_unset|Efl.Ui.Check.content_unset]]
+ * [[:develop:api:efl:ui:win:method:content_unset|Efl.Ui.Win.content_unset]]
+ * [[:develop:api:efl:ui:default_item:method:content_unset|Efl.Ui.Default_Item.content_unset]]
+ * [[:develop:api:efl:ui:win_part:method:content_unset|Efl.Ui.Win_Part.content_unset]]
+ * [[:develop:api:efl:canvas:layout_part_external:method:content_unset|Efl.Canvas.Layout_Part_External.content_unset]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:method:content_unset|Efl.Ui.Navigation_Bar_Part_Back_Button.content_unset]]
+ * [[:develop:api:efl:ui:layout_part_legacy:method:content_unset|Efl.Ui.Layout_Part_Legacy.content_unset]]
+ * [[:develop:api:elm:dayselector:part:method:content_unset|Elm.Dayselector.Part.content_unset]]
+ * [[:develop:api:elm:entry:part:method:content_unset|Elm.Entry.Part.content_unset]]
+ * [[:develop:api:elm:naviframe:part:method:content_unset|Elm.Naviframe.Part.content_unset]]
+ * [[:develop:api:elm:ctxpopup:part:method:content_unset|Elm.Ctxpopup.Part.content_unset]]
+ * [[:develop:api:elm:fileselector:entry:part:method:content_unset|Elm.Fileselector.Entry.Part.content_unset]]
+ * [[:develop:api:elm:popup:part:method:content_unset|Elm.Popup.Part.content_unset]]
+ * [[:develop:api:elm:hover:part:method:content_unset|Elm.Hover.Part.content_unset]]
+ * [[:develop:api:elm:scroller:part:method:content_unset|Elm.Scroller.Part.content_unset]]
+ * [[:develop:api:elm:notify:part:method:content_unset|Elm.Notify.Part.content_unset]]
+ * [[:develop:api:efl:ui:panel:method:content_unset|Efl.Ui.Panel.content_unset]]
+ * [[:develop:api:elm:panel:part:method:content_unset|Elm.Panel.Part.content_unset]]
+ * [[:develop:api:efl:ui:tab_page:method:content_unset|Efl.Ui.Tab_Page.content_unset]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:content_unset|Efl.Ui.List_Placeholder_Item.content_unset]]
+ * [[:develop:api:elm:mapbuf:part:method:content_unset|Elm.Mapbuf.Part.content_unset]]
+ * [[:develop:api:efl:ui:scroller:method:content_unset|Efl.Ui.Scroller.content_unset]]
+ * [[:develop:api:efl:ui:flip_part:method:content_unset|Efl.Ui.Flip_Part.content_unset]]
+ * [[:develop:api:efl:canvas:layout_part_swallow:method:content_unset|Efl.Canvas.Layout_Part_Swallow.content_unset]]
+ * [[:develop:api:efl:ui:pan:method:content_unset|Efl.Ui.Pan.content_unset]]
+ * [[:develop:api:efl:ui:frame:method:content_unset|Efl.Ui.Frame.content_unset]]
+ * [[:develop:api:efl:ui:progressbar:method:content_unset|Efl.Ui.Progressbar.content_unset]]
+ * [[:develop:api:efl:ui:popup:method:content_unset|Efl.Ui.Popup.content_unset]]
+ * [[:develop:api:efl:ui:navigation_layout:method:content_unset|Efl.Ui.Navigation_Layout.content_unset]]
+ * [[:develop:api:elm:flip:part:method:content_unset|Elm.Flip.Part.content_unset]]
+ * [[:develop:api:efl:ui:button:method:content_unset|Efl.Ui.Button.content_unset]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:content_unset|Efl.Canvas.Layout_Part_Invalid.content_unset]]
+ * [[:develop:api:efl:ui:layout_part_content:method:content_unset|Efl.Ui.Layout_Part_Content.content_unset]]
+ * [[:develop:api:efl:ui:navigation_bar_part:method:content_unset|Efl.Ui.Navigation_Bar_Part.content_unset]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_content/property/content.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_content/property/content.txt
new file mode 100644
index 00000000..cd3252fd
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_content/property/content.txt
@@ -0,0 +1,80 @@
+~~Title: Efl.Ui.Layout_Part_Content.content~~
+====== Efl.Ui.Layout_Part_Content.content ======
+
+===== Description =====
+
+%%Sub-object currently set as this object's single content.%%
+
+%%If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid %%''content''%% is set the object will become empty (it will have no sub-object).%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_part_content:property:content:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **content** - %%The sub-object.%%
+
+//Overridden from [[:develop:api:efl:content:property:content|Efl.Content.content]] **(get, set)**.//===== Signature =====
+
+
+@property content @pure_virtual {
+ get {}
+ set {
+ return: bool;
+ }
+ values {
+ content: Efl.Gfx.Entity;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_content_get(const Eo *obj);
+Eina_Bool efl_content_set(Eo *obj, Efl_Gfx_Entity *content);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:content:property:content|Efl.Content.content]]
+ * [[:develop:api:efl:ui:check:property:content|Efl.Ui.Check.content]]
+ * [[:develop:api:efl:ui:win:property:content|Efl.Ui.Win.content]]
+ * [[:develop:api:efl:ui:default_item:property:content|Efl.Ui.Default_Item.content]]
+ * [[:develop:api:efl:ui:win_part:property:content|Efl.Ui.Win_Part.content]]
+ * [[:develop:api:efl:canvas:layout_part_external:property:content|Efl.Canvas.Layout_Part_External.content]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:property:content|Efl.Ui.Navigation_Bar_Part_Back_Button.content]]
+ * [[:develop:api:efl:ui:layout_part_legacy:property:content|Efl.Ui.Layout_Part_Legacy.content]]
+ * [[:develop:api:elm:dayselector:part:property:content|Elm.Dayselector.Part.content]]
+ * [[:develop:api:elm:entry:part:property:content|Elm.Entry.Part.content]]
+ * [[:develop:api:elm:naviframe:part:property:content|Elm.Naviframe.Part.content]]
+ * [[:develop:api:elm:ctxpopup:part:property:content|Elm.Ctxpopup.Part.content]]
+ * [[:develop:api:elm:fileselector:entry:part:property:content|Elm.Fileselector.Entry.Part.content]]
+ * [[:develop:api:elm:popup:part:property:content|Elm.Popup.Part.content]]
+ * [[:develop:api:elm:hover:part:property:content|Elm.Hover.Part.content]]
+ * [[:develop:api:elm:scroller:part:property:content|Elm.Scroller.Part.content]]
+ * [[:develop:api:elm:player:part:property:content|Elm.Player.Part.content]]
+ * [[:develop:api:elm:notify:part:property:content|Elm.Notify.Part.content]]
+ * [[:develop:api:efl:ui:panel:property:content|Efl.Ui.Panel.content]]
+ * [[:develop:api:elm:panel:part:property:content|Elm.Panel.Part.content]]
+ * [[:develop:api:efl:ui:tab_page:property:content|Efl.Ui.Tab_Page.content]]
+ * [[:develop:api:efl:ui:list_placeholder_item:property:content|Efl.Ui.List_Placeholder_Item.content]]
+ * [[:develop:api:elm:mapbuf:part:property:content|Elm.Mapbuf.Part.content]]
+ * [[:develop:api:efl:ui:scroller:property:content|Efl.Ui.Scroller.content]]
+ * [[:develop:api:efl:ui:flip_part:property:content|Efl.Ui.Flip_Part.content]]
+ * [[:develop:api:efl:canvas:layout_part_swallow:property:content|Efl.Canvas.Layout_Part_Swallow.content]]
+ * [[:develop:api:efl:ui:pan:property:content|Efl.Ui.Pan.content]]
+ * [[:develop:api:efl:ui:frame:property:content|Efl.Ui.Frame.content]]
+ * [[:develop:api:efl:ui:progressbar:property:content|Efl.Ui.Progressbar.content]]
+ * [[:develop:api:efl:ui:popup:property:content|Efl.Ui.Popup.content]]
+ * [[:develop:api:efl:ui:navigation_layout:property:content|Efl.Ui.Navigation_Layout.content]]
+ * [[:develop:api:elm:flip:part:property:content|Elm.Flip.Part.content]]
+ * [[:develop:api:efl:ui:button:property:content|Efl.Ui.Button.content]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:content|Efl.Canvas.Layout_Part_Invalid.content]]
+ * [[:develop:api:efl:ui:layout_part_content:property:content|Efl.Ui.Layout_Part_Content.content]]
+ * [[:develop:api:efl:ui:progressbar_legacy_part:property:content|Efl.Ui.Progressbar_Legacy_Part.content]]
+ * [[:develop:api:efl:ui:check_legacy_part:property:content|Efl.Ui.Check_Legacy_Part.content]]
+ * [[:develop:api:efl:ui:button_legacy_part:property:content|Efl.Ui.Button_Legacy_Part.content]]
+ * [[:develop:api:efl:ui:navigation_bar_part:property:content|Efl.Ui.Navigation_Bar_Part.content]]
+ * [[:develop:api:efl:ui:radio_legacy_part:property:content|Efl.Ui.Radio_Legacy_Part.content]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_table.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_table.txt
new file mode 100644
index 00000000..ae1c736d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_table.txt
@@ -0,0 +1,169 @@
+~~Title: Efl.Ui.Layout_Part_Table~~
+====== Efl.Ui.Layout_Part_Table (class) ======
+
+===== Description =====
+
+%%Represents a Table created as part of a layout.%%
+
+%%Cannot be deleted. This is only a representation of an internal object of an EFL layout.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:layout_part_table:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:pack_table|Efl.Pack_Table]] //(interface)//
+ * [[:develop:api:efl:pack|Efl.Pack]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:layout_part_table:method:content_count|content_count]]**// [Overridden from [[:develop:api:efl:container|Efl.Container]]]//\\
+> %%Returns the number of contained sub-objects.%%
+
+int efl_content_count(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout_part_table:method:content_iterate|content_iterate]]**// [Overridden from [[:develop:api:efl:container|Efl.Container]]]//\\
+> %%Begin iterating over this object's contents.%%
+
+Eina_Iterator *efl_content_iterate(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout_part_table:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout_part_table:method:pack|pack]]**// [Overridden from [[:develop:api:efl:pack|Efl.Pack]]]//\\
+> %%Adds a sub-object to this container.%%
+
+Eina_Bool efl_pack(Eo *obj, Efl_Gfx_Entity *subobj);
+
+\\
+**[[:develop:api:efl:ui:layout_part_table:method:pack_clear|pack_clear]]**// [Overridden from [[:develop:api:efl:pack|Efl.Pack]]]//\\
+> %%Removes all packed sub-objects and unreferences them.%%
+
+Eina_Bool efl_pack_clear(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:layout_part_table:method:pack_table|pack_table]]**// [Overridden from [[:develop:api:efl:pack_table|Efl.Pack_Table]]]//\\
+> %%Pack object at a given location in the table.%%
+
+Eina_Bool efl_pack_table(Eo *obj, Efl_Gfx_Entity *subobj, int col, int row, int colspan, int rowspan);
+
+\\
+**[[:develop:api:efl:ui:layout_part_table:property:table_cell_column|table_cell_column]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:pack_table|Efl.Pack_Table]]]//\\
+> %%column of the %%''subobj''%% in this container.%%
+
+Eina_Bool efl_pack_table_cell_column_get(const Eo *obj, Efl_Gfx_Entity *subobj, int *col, int *colspan);
+void efl_pack_table_cell_column_set(Eo *obj, Efl_Gfx_Entity *subobj, int col, int colspan);
+
+\\
+**[[:develop:api:efl:ui:layout_part_table:property:table_cell_row|table_cell_row]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:pack_table|Efl.Pack_Table]]]//\\
+> %%row of the %%''subobj''%% in this container.%%
+
+Eina_Bool efl_pack_table_cell_row_get(const Eo *obj, Efl_Gfx_Entity *subobj, int *row, int *rowspan);
+void efl_pack_table_cell_row_set(Eo *obj, Efl_Gfx_Entity *subobj, int row, int rowspan);
+
+\\
+**[[:develop:api:efl:ui:layout_part_table:property:table_columns|table_columns]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:pack_table|Efl.Pack_Table]]]//\\
+> %%Specifies the amount of columns the table will have when the fill direction is horizontal. If it is vertical, the amount of columns depends on the amount of cells added and %%[[:develop:api:efl:pack_table:property:table_rows|Efl.Pack_Table.table_rows]]%%.%%
+
+int efl_pack_table_columns_get(const Eo *obj);
+void efl_pack_table_columns_set(Eo *obj, int cols);
+
+\\
+**[[:develop:api:efl:ui:layout_part_table:method:table_content_get|table_content_get]]**// [Overridden from [[:develop:api:efl:pack_table|Efl.Pack_Table]]]//\\
+> %%Returns a child at a given position, see %%[[:develop:api:efl:pack_table:method:table_contents_get|Efl.Pack_Table.table_contents_get]]%%.%%
+
+Efl_Gfx_Entity *efl_pack_table_content_get(Eo *obj, int col, int row);
+
+\\
+**[[:develop:api:efl:ui:layout_part_table:method:table_contents_get|table_contents_get]]**// [Overridden from [[:develop:api:efl:pack_table|Efl.Pack_Table]]]//\\
+> %%Returns all objects at a given position in this table.%%
+
+Eina_Iterator *efl_pack_table_contents_get(Eo *obj, int col, int row, Eina_Bool below);
+
+\\
+**[[:develop:api:efl:ui:layout_part_table:property:table_rows|table_rows]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:pack_table|Efl.Pack_Table]]]//\\
+> %%Specifies the amount of rows the table will have when the fill direction is vertical. If it is horizontal, the amount of rows depends on the amount of cells added and %%[[:develop:api:efl:pack_table:property:table_columns|Efl.Pack_Table.table_columns]]%%.%%
+
+int efl_pack_table_rows_get(const Eo *obj);
+void efl_pack_table_rows_set(Eo *obj, int rows);
+
+\\
+**[[:develop:api:efl:ui:layout_part_table:property:table_size|table_size]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:pack_table|Efl.Pack_Table]]]//\\
+> %%Combines %%[[:develop:api:efl:pack_table:property:table_columns|Efl.Pack_Table.table_columns]]%% and %%[[:develop:api:efl:pack_table:property:table_rows|Efl.Pack_Table.table_rows]]%%%%
+
+void efl_pack_table_size_get(const Eo *obj, int *cols, int *rows);
+void efl_pack_table_size_set(Eo *obj, int cols, int rows);
+
+\\
+**[[:develop:api:efl:ui:layout_part_table:method:unpack|unpack]]**// [Overridden from [[:develop:api:efl:pack|Efl.Pack]]]//\\
+> %%Removes an existing sub-object from the container without deleting it.%%
+
+Eina_Bool efl_pack_unpack(Eo *obj, Efl_Gfx_Entity *subobj);
+
+\\
+**[[:develop:api:efl:ui:layout_part_table:method:unpack_all|unpack_all]]**// [Overridden from [[:develop:api:efl:pack|Efl.Pack]]]//\\
+> %%Removes all packed sub-objects without unreferencing them.%%
+
+Eina_Bool efl_pack_unpack_all(Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:constructor|constructor]]** | %%Implement this method to provide optional initialization code for your object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/content_count.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/content_count.txt
new file mode 100644
index 00000000..e0c3627b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/content_count.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Layout_Part_Table.content_count~~
+====== Efl.Ui.Layout_Part_Table.content_count ======
+
+===== Description =====
+
+%%Returns the number of contained sub-objects.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_part_table:method:content_count:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:container:method:content_count|Efl.Container.content_count]].//===== Signature =====
+
+
+content_count @pure_virtual {
+ return: int;
+}
+
+
+===== C signature =====
+
+
+int efl_content_count(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:container:method:content_count|Efl.Container.content_count]]
+ * [[:develop:api:efl:canvas:layout:method:content_count|Efl.Canvas.Layout.content_count]]
+ * [[:develop:api:efl:ui:tab_bar:method:content_count|Efl.Ui.Tab_Bar.content_count]]
+ * [[:develop:api:efl:ui:table:method:content_count|Efl.Ui.Table.content_count]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:content_count|Efl.Canvas.Layout_Part_Table.content_count]]
+ * [[:develop:api:efl:ui:layout_part_table:method:content_count|Efl.Ui.Layout_Part_Table.content_count]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:content_count|Efl.Canvas.Layout_Part_Invalid.content_count]]
+ * [[:develop:api:efl:ui:flip:method:content_count|Efl.Ui.Flip.content_count]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:content_count|Efl.Canvas.Layout_Part_Box.content_count]]
+ * [[:develop:api:efl:ui:box:method:content_count|Efl.Ui.Box.content_count]]
+ * [[:develop:api:efl:ui:group_item:method:content_count|Efl.Ui.Group_Item.content_count]]
+ * [[:develop:api:efl:ui:collection:method:content_count|Efl.Ui.Collection.content_count]]
+ * [[:develop:api:efl:ui:layout_part_box:method:content_count|Efl.Ui.Layout_Part_Box.content_count]]
+ * [[:develop:api:efl:ui:spotlight:container:method:content_count|Efl.Ui.Spotlight.Container.content_count]]
+ * [[:develop:api:efl:ui:relative_layout:method:content_count|Efl.Ui.Relative_Layout.content_count]]
+ * [[:develop:api:efl:ui:layout_base:method:content_count|Efl.Ui.Layout_Base.content_count]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/content_iterate.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/content_iterate.txt
new file mode 100644
index 00000000..487a3ed1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/content_iterate.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Layout_Part_Table.content_iterate~~
+====== Efl.Ui.Layout_Part_Table.content_iterate ======
+
+===== Description =====
+
+%%Begin iterating over this object's contents.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_part_table:method:content_iterate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:container:method:content_iterate|Efl.Container.content_iterate]].//===== Signature =====
+
+
+content_iterate @pure_virtual {
+ return: iterator @no_unused;
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_content_iterate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:container:method:content_iterate|Efl.Container.content_iterate]]
+ * [[:develop:api:efl:canvas:layout:method:content_iterate|Efl.Canvas.Layout.content_iterate]]
+ * [[:develop:api:efl:ui:tab_bar:method:content_iterate|Efl.Ui.Tab_Bar.content_iterate]]
+ * [[:develop:api:efl:ui:table:method:content_iterate|Efl.Ui.Table.content_iterate]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:content_iterate|Efl.Canvas.Layout_Part_Table.content_iterate]]
+ * [[:develop:api:efl:ui:layout_part_table:method:content_iterate|Efl.Ui.Layout_Part_Table.content_iterate]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:content_iterate|Efl.Canvas.Layout_Part_Invalid.content_iterate]]
+ * [[:develop:api:efl:ui:flip:method:content_iterate|Efl.Ui.Flip.content_iterate]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:content_iterate|Efl.Canvas.Layout_Part_Box.content_iterate]]
+ * [[:develop:api:efl:ui:box:method:content_iterate|Efl.Ui.Box.content_iterate]]
+ * [[:develop:api:efl:ui:group_item:method:content_iterate|Efl.Ui.Group_Item.content_iterate]]
+ * [[:develop:api:efl:ui:collection:method:content_iterate|Efl.Ui.Collection.content_iterate]]
+ * [[:develop:api:efl:ui:layout_part_box:method:content_iterate|Efl.Ui.Layout_Part_Box.content_iterate]]
+ * [[:develop:api:efl:ui:spotlight:container:method:content_iterate|Efl.Ui.Spotlight.Container.content_iterate]]
+ * [[:develop:api:efl:ui:relative_layout:method:content_iterate|Efl.Ui.Relative_Layout.content_iterate]]
+ * [[:develop:api:efl:ui:layout_base:method:content_iterate|Efl.Ui.Layout_Base.content_iterate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/destructor.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/destructor.txt
new file mode 100644
index 00000000..a07a1333
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Ui.Layout_Part_Table.destructor~~
+====== Efl.Ui.Layout_Part_Table.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_part_table:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/pack.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/pack.txt
new file mode 100644
index 00000000..290ed2d3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/pack.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Ui.Layout_Part_Table.pack~~
+====== Efl.Ui.Layout_Part_Table.pack ======
+
+===== Description =====
+
+%%Adds a sub-object to this container.%%
+
+%%Depending on the container this will either fill in the default spot, replacing any already existing element or append to the end of the container if there is no default part.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_part_table:method:pack:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack:method:pack|Efl.Pack.pack]].//===== Signature =====
+
+
+pack @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack(Eo *obj, Efl_Gfx_Entity *subobj);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%The object to pack.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack:method:pack|Efl.Pack.pack]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack|Efl.Ui.Tab_Bar.pack]]
+ * [[:develop:api:efl:ui:table:method:pack|Efl.Ui.Table.pack]]
+ * [[:develop:api:efl:ui:layout_part_table:method:pack|Efl.Ui.Layout_Part_Table.pack]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack|Efl.Canvas.Layout_Part_Invalid.pack]]
+ * [[:develop:api:efl:ui:flip:method:pack|Efl.Ui.Flip.pack]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack|Efl.Canvas.Layout_Part_Box.pack]]
+ * [[:develop:api:efl:ui:box:method:pack|Efl.Ui.Box.pack]]
+ * [[:develop:api:efl:ui:radio_box:method:pack|Efl.Ui.Radio_Box.pack]]
+ * [[:develop:api:efl:ui:group_item:method:pack|Efl.Ui.Group_Item.pack]]
+ * [[:develop:api:efl:ui:collection:method:pack|Efl.Ui.Collection.pack]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack|Efl.Ui.Layout_Part_Box.pack]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack|Efl.Ui.Spotlight.Container.pack]]
+ * [[:develop:api:efl:ui:relative_layout:method:pack|Efl.Ui.Relative_Layout.pack]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/pack_clear.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/pack_clear.txt
new file mode 100644
index 00000000..6612a78b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/pack_clear.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Layout_Part_Table.pack_clear~~
+====== Efl.Ui.Layout_Part_Table.pack_clear ======
+
+===== Description =====
+
+%%Removes all packed sub-objects and unreferences them.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_part_table:method:pack_clear:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack:method:pack_clear|Efl.Pack.pack_clear]].//===== Signature =====
+
+
+pack_clear @pure_virtual {
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_clear(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack:method:pack_clear|Efl.Pack.pack_clear]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_clear|Efl.Ui.Tab_Bar.pack_clear]]
+ * [[:develop:api:efl:ui:table:method:pack_clear|Efl.Ui.Table.pack_clear]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:pack_clear|Efl.Canvas.Layout_Part_Table.pack_clear]]
+ * [[:develop:api:efl:ui:layout_part_table:method:pack_clear|Efl.Ui.Layout_Part_Table.pack_clear]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_clear|Efl.Canvas.Layout_Part_Invalid.pack_clear]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_clear|Efl.Canvas.Layout_Part_Box.pack_clear]]
+ * [[:develop:api:efl:ui:box:method:pack_clear|Efl.Ui.Box.pack_clear]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_clear|Efl.Ui.Radio_Box.pack_clear]]
+ * [[:develop:api:efl:ui:group_item:method:pack_clear|Efl.Ui.Group_Item.pack_clear]]
+ * [[:develop:api:efl:ui:collection:method:pack_clear|Efl.Ui.Collection.pack_clear]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_clear|Efl.Ui.Layout_Part_Box.pack_clear]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_clear|Efl.Ui.Spotlight.Container.pack_clear]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_clear|Efl.Ui.Tab_Pager.pack_clear]]
+ * [[:develop:api:efl:ui:relative_layout:method:pack_clear|Efl.Ui.Relative_Layout.pack_clear]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/pack_table.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/pack_table.txt
new file mode 100644
index 00000000..b66f016c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/pack_table.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Ui.Layout_Part_Table.pack_table~~
+====== Efl.Ui.Layout_Part_Table.pack_table ======
+
+===== Description =====
+
+%%Pack object at a given location in the table.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_part_table:method:pack_table:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_table:method:pack_table|Efl.Pack_Table.pack_table]].//===== Signature =====
+
+
+pack_table @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ @in col: int;
+ @in row: int;
+ @in colspan: int @optional;
+ @in rowspan: int @optional;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_table(Eo *obj, Efl_Gfx_Entity *subobj, int col, int row, int colspan, int rowspan);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%A child object to pack in this table.%%
+ * **col** //(in)// - %%Column number%%
+ * **row** //(in)// - %%Row number%%
+ * **colspan** //(in)// - %%0 means 1, -1 means %%[[:develop:api:efl:pack_table:property:table_columns|Efl.Pack_Table.table_columns]]%%%%
+ * **rowspan** //(in)// - %%0 means 1, -1 means %%[[:develop:api:efl:pack_table:property:table_rows|Efl.Pack_Table.table_rows]]%%%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_table:method:pack_table|Efl.Pack_Table.pack_table]]
+ * [[:develop:api:efl:ui:table:method:pack_table|Efl.Ui.Table.pack_table]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:pack_table|Efl.Canvas.Layout_Part_Table.pack_table]]
+ * [[:develop:api:efl:ui:layout_part_table:method:pack_table|Efl.Ui.Layout_Part_Table.pack_table]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_table|Efl.Canvas.Layout_Part_Invalid.pack_table]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/table_content_get.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/table_content_get.txt
new file mode 100644
index 00000000..8ce014eb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/table_content_get.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Layout_Part_Table.table_content_get~~
+====== Efl.Ui.Layout_Part_Table.table_content_get ======
+
+===== Description =====
+
+%%Returns a child at a given position, see %%[[:develop:api:efl:pack_table:method:table_contents_get|Efl.Pack_Table.table_contents_get]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_part_table:method:table_content_get:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_table:method:table_content_get|Efl.Pack_Table.table_content_get]].//===== Signature =====
+
+
+table_content_get @pure_virtual {
+ params {
+ @in col: int;
+ @in row: int;
+ }
+ return: Efl.Gfx.Entity;
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_pack_table_content_get(Eo *obj, int col, int row);
+
+
+===== Parameters =====
+
+ * **col** //(in)// - %%Column number%%
+ * **row** //(in)// - %%Row number%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_table:method:table_content_get|Efl.Pack_Table.table_content_get]]
+ * [[:develop:api:efl:ui:table:method:table_content_get|Efl.Ui.Table.table_content_get]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:table_content_get|Efl.Canvas.Layout_Part_Table.table_content_get]]
+ * [[:develop:api:efl:ui:layout_part_table:method:table_content_get|Efl.Ui.Layout_Part_Table.table_content_get]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:table_content_get|Efl.Canvas.Layout_Part_Invalid.table_content_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/table_contents_get.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/table_contents_get.txt
new file mode 100644
index 00000000..e30aa27e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/table_contents_get.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Layout_Part_Table.table_contents_get~~
+====== Efl.Ui.Layout_Part_Table.table_contents_get ======
+
+===== Description =====
+
+%%Returns all objects at a given position in this table.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_part_table:method:table_contents_get:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_table:method:table_contents_get|Efl.Pack_Table.table_contents_get]].//===== Signature =====
+
+
+table_contents_get @pure_virtual {
+ params {
+ @in col: int;
+ @in row: int;
+ @in below: bool @optional;
+ }
+ return: iterator;
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_pack_table_contents_get(Eo *obj, int col, int row, Eina_Bool below);
+
+
+===== Parameters =====
+
+ * **col** //(in)// - %%Column number%%
+ * **row** //(in)// - %%Row number%%
+ * **below** //(in)// - %%If %%''true''%% get objects spanning over this cell.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_table:method:table_contents_get|Efl.Pack_Table.table_contents_get]]
+ * [[:develop:api:efl:ui:table:method:table_contents_get|Efl.Ui.Table.table_contents_get]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:table_contents_get|Efl.Canvas.Layout_Part_Table.table_contents_get]]
+ * [[:develop:api:efl:ui:layout_part_table:method:table_contents_get|Efl.Ui.Layout_Part_Table.table_contents_get]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:table_contents_get|Efl.Canvas.Layout_Part_Invalid.table_contents_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/unpack.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/unpack.txt
new file mode 100644
index 00000000..79628553
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/unpack.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Layout_Part_Table.unpack~~
+====== Efl.Ui.Layout_Part_Table.unpack ======
+
+===== Description =====
+
+%%Removes an existing sub-object from the container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_part_table:method:unpack:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]].//===== Signature =====
+
+
+unpack @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_unpack(Eo *obj, Efl_Gfx_Entity *subobj);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%The sub-object to unpack.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]
+ * [[:develop:api:efl:ui:tab_bar:method:unpack|Efl.Ui.Tab_Bar.unpack]]
+ * [[:develop:api:efl:ui:table:method:unpack|Efl.Ui.Table.unpack]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:unpack|Efl.Canvas.Layout_Part_Table.unpack]]
+ * [[:develop:api:efl:ui:layout_part_table:method:unpack|Efl.Ui.Layout_Part_Table.unpack]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:unpack|Efl.Canvas.Layout_Part_Invalid.unpack]]
+ * [[:develop:api:efl:ui:flip:method:unpack|Efl.Ui.Flip.unpack]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:unpack|Efl.Canvas.Layout_Part_Box.unpack]]
+ * [[:develop:api:efl:ui:box:method:unpack|Efl.Ui.Box.unpack]]
+ * [[:develop:api:efl:ui:radio_box:method:unpack|Efl.Ui.Radio_Box.unpack]]
+ * [[:develop:api:efl:ui:group_item:method:unpack|Efl.Ui.Group_Item.unpack]]
+ * [[:develop:api:efl:ui:collection:method:unpack|Efl.Ui.Collection.unpack]]
+ * [[:develop:api:efl:ui:layout_part_box:method:unpack|Efl.Ui.Layout_Part_Box.unpack]]
+ * [[:develop:api:efl:ui:spotlight:container:method:unpack|Efl.Ui.Spotlight.Container.unpack]]
+ * [[:develop:api:efl:ui:tab_pager:method:unpack|Efl.Ui.Tab_Pager.unpack]]
+ * [[:develop:api:efl:ui:relative_layout:method:unpack|Efl.Ui.Relative_Layout.unpack]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/unpack_all.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/unpack_all.txt
new file mode 100644
index 00000000..fa224c1e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_table/method/unpack_all.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.Ui.Layout_Part_Table.unpack_all~~
+====== Efl.Ui.Layout_Part_Table.unpack_all ======
+
+===== Description =====
+
+%%Removes all packed sub-objects without unreferencing them.%%
+
+%%Use with caution.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_part_table:method:unpack_all:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack:method:unpack_all|Efl.Pack.unpack_all]].//===== Signature =====
+
+
+unpack_all @pure_virtual {
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_unpack_all(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack:method:unpack_all|Efl.Pack.unpack_all]]
+ * [[:develop:api:efl:ui:tab_bar:method:unpack_all|Efl.Ui.Tab_Bar.unpack_all]]
+ * [[:develop:api:efl:ui:table:method:unpack_all|Efl.Ui.Table.unpack_all]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:unpack_all|Efl.Canvas.Layout_Part_Table.unpack_all]]
+ * [[:develop:api:efl:ui:layout_part_table:method:unpack_all|Efl.Ui.Layout_Part_Table.unpack_all]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:unpack_all|Efl.Canvas.Layout_Part_Invalid.unpack_all]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:unpack_all|Efl.Canvas.Layout_Part_Box.unpack_all]]
+ * [[:develop:api:efl:ui:box:method:unpack_all|Efl.Ui.Box.unpack_all]]
+ * [[:develop:api:efl:ui:radio_box:method:unpack_all|Efl.Ui.Radio_Box.unpack_all]]
+ * [[:develop:api:efl:ui:group_item:method:unpack_all|Efl.Ui.Group_Item.unpack_all]]
+ * [[:develop:api:efl:ui:collection:method:unpack_all|Efl.Ui.Collection.unpack_all]]
+ * [[:develop:api:efl:ui:layout_part_box:method:unpack_all|Efl.Ui.Layout_Part_Box.unpack_all]]
+ * [[:develop:api:efl:ui:spotlight:container:method:unpack_all|Efl.Ui.Spotlight.Container.unpack_all]]
+ * [[:develop:api:efl:ui:tab_pager:method:unpack_all|Efl.Ui.Tab_Pager.unpack_all]]
+ * [[:develop:api:efl:ui:relative_layout:method:unpack_all|Efl.Ui.Relative_Layout.unpack_all]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_table/property/table_cell_column.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_table/property/table_cell_column.txt
new file mode 100644
index 00000000..8625e66b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_table/property/table_cell_column.txt
@@ -0,0 +1,51 @@
+~~Title: Efl.Ui.Layout_Part_Table.table_cell_column~~
+====== Efl.Ui.Layout_Part_Table.table_cell_column ======
+
+===== Description =====
+
+%%column of the %%''subobj''%% in this container.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_part_table:property:table_cell_column:description&nouser&nolink&nodate}}
+
+===== Keys =====
+
+ * **subobj** - %%Child object%%
+===== Values =====
+
+ * **col** - %%Column number%%
+ * **colspan** - %%Column span%%
+
+//Overridden from [[:develop:api:efl:pack_table:property:table_cell_column|Efl.Pack_Table.table_cell_column]] **(get, set)**.//===== Signature =====
+
+
+@property table_cell_column @pure_virtual {
+ get {
+ return: bool;
+ }
+ set {}
+ keys {
+ subobj: Efl.Gfx.Entity;
+ }
+ values {
+ col: int;
+ colspan: int;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_table_cell_column_get(const Eo *obj, Efl_Gfx_Entity *subobj, int *col, int *colspan);
+void efl_pack_table_cell_column_set(Eo *obj, Efl_Gfx_Entity *subobj, int col, int colspan);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_table:property:table_cell_column|Efl.Pack_Table.table_cell_column]]
+ * [[:develop:api:efl:ui:table:property:table_cell_column|Efl.Ui.Table.table_cell_column]]
+ * [[:develop:api:efl:canvas:layout_part_table:property:table_cell_column|Efl.Canvas.Layout_Part_Table.table_cell_column]]
+ * [[:develop:api:efl:ui:layout_part_table:property:table_cell_column|Efl.Ui.Layout_Part_Table.table_cell_column]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:table_cell_column|Efl.Canvas.Layout_Part_Invalid.table_cell_column]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_table/property/table_cell_row.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_table/property/table_cell_row.txt
new file mode 100644
index 00000000..fa713d34
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_table/property/table_cell_row.txt
@@ -0,0 +1,51 @@
+~~Title: Efl.Ui.Layout_Part_Table.table_cell_row~~
+====== Efl.Ui.Layout_Part_Table.table_cell_row ======
+
+===== Description =====
+
+%%row of the %%''subobj''%% in this container.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_part_table:property:table_cell_row:description&nouser&nolink&nodate}}
+
+===== Keys =====
+
+ * **subobj** - %%Child object%%
+===== Values =====
+
+ * **row** - %%Row number%%
+ * **rowspan** - %%Row span%%
+
+//Overridden from [[:develop:api:efl:pack_table:property:table_cell_row|Efl.Pack_Table.table_cell_row]] **(get, set)**.//===== Signature =====
+
+
+@property table_cell_row @pure_virtual {
+ get {
+ return: bool;
+ }
+ set {}
+ keys {
+ subobj: Efl.Gfx.Entity;
+ }
+ values {
+ row: int;
+ rowspan: int;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_table_cell_row_get(const Eo *obj, Efl_Gfx_Entity *subobj, int *row, int *rowspan);
+void efl_pack_table_cell_row_set(Eo *obj, Efl_Gfx_Entity *subobj, int row, int rowspan);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_table:property:table_cell_row|Efl.Pack_Table.table_cell_row]]
+ * [[:develop:api:efl:ui:table:property:table_cell_row|Efl.Ui.Table.table_cell_row]]
+ * [[:develop:api:efl:canvas:layout_part_table:property:table_cell_row|Efl.Canvas.Layout_Part_Table.table_cell_row]]
+ * [[:develop:api:efl:ui:layout_part_table:property:table_cell_row|Efl.Ui.Layout_Part_Table.table_cell_row]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:table_cell_row|Efl.Canvas.Layout_Part_Invalid.table_cell_row]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_table/property/table_columns.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_table/property/table_columns.txt
new file mode 100644
index 00000000..30362da9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_table/property/table_columns.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Layout_Part_Table.table_columns~~
+====== Efl.Ui.Layout_Part_Table.table_columns ======
+
+===== Description =====
+
+%%Specifies the amount of columns the table will have when the fill direction is horizontal. If it is vertical, the amount of columns depends on the amount of cells added and %%[[:develop:api:efl:pack_table:property:table_rows|Efl.Pack_Table.table_rows]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_part_table:property:table_columns:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **cols** - %%Amount of columns.%%
+
+//Overridden from [[:develop:api:efl:pack_table:property:table_columns|Efl.Pack_Table.table_columns]] **(get, set)**.//===== Signature =====
+
+
+@property table_columns @pure_virtual {
+ get {}
+ set {}
+ values {
+ cols: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_pack_table_columns_get(const Eo *obj);
+void efl_pack_table_columns_set(Eo *obj, int cols);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_table:property:table_columns|Efl.Pack_Table.table_columns]]
+ * [[:develop:api:efl:ui:table:property:table_columns|Efl.Ui.Table.table_columns]]
+ * [[:develop:api:efl:canvas:layout_part_table:property:table_columns|Efl.Canvas.Layout_Part_Table.table_columns]]
+ * [[:develop:api:efl:ui:layout_part_table:property:table_columns|Efl.Ui.Layout_Part_Table.table_columns]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:table_columns|Efl.Canvas.Layout_Part_Invalid.table_columns]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_table/property/table_rows.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_table/property/table_rows.txt
new file mode 100644
index 00000000..751e856a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_table/property/table_rows.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Layout_Part_Table.table_rows~~
+====== Efl.Ui.Layout_Part_Table.table_rows ======
+
+===== Description =====
+
+%%Specifies the amount of rows the table will have when the fill direction is vertical. If it is horizontal, the amount of rows depends on the amount of cells added and %%[[:develop:api:efl:pack_table:property:table_columns|Efl.Pack_Table.table_columns]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_part_table:property:table_rows:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **rows** - %%Amount of rows.%%
+
+//Overridden from [[:develop:api:efl:pack_table:property:table_rows|Efl.Pack_Table.table_rows]] **(get, set)**.//===== Signature =====
+
+
+@property table_rows @pure_virtual {
+ get {}
+ set {}
+ values {
+ rows: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_pack_table_rows_get(const Eo *obj);
+void efl_pack_table_rows_set(Eo *obj, int rows);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_table:property:table_rows|Efl.Pack_Table.table_rows]]
+ * [[:develop:api:efl:ui:table:property:table_rows|Efl.Ui.Table.table_rows]]
+ * [[:develop:api:efl:canvas:layout_part_table:property:table_rows|Efl.Canvas.Layout_Part_Table.table_rows]]
+ * [[:develop:api:efl:ui:layout_part_table:property:table_rows|Efl.Ui.Layout_Part_Table.table_rows]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:table_rows|Efl.Canvas.Layout_Part_Invalid.table_rows]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_table/property/table_size.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_table/property/table_size.txt
new file mode 100644
index 00000000..d5f34035
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_table/property/table_size.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Layout_Part_Table.table_size~~
+====== Efl.Ui.Layout_Part_Table.table_size ======
+
+===== Description =====
+
+%%Combines %%[[:develop:api:efl:pack_table:property:table_columns|Efl.Pack_Table.table_columns]]%% and %%[[:develop:api:efl:pack_table:property:table_rows|Efl.Pack_Table.table_rows]]%%%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:layout_part_table:property:table_size:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **cols** - %%Number of columns%%
+ * **rows** - %%Number of rows%%
+
+//Overridden from [[:develop:api:efl:pack_table:property:table_size|Efl.Pack_Table.table_size]] **(get, set)**.//===== Signature =====
+
+
+@property table_size @pure_virtual {
+ get {}
+ set {}
+ values {
+ cols: int;
+ rows: int;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_pack_table_size_get(const Eo *obj, int *cols, int *rows);
+void efl_pack_table_size_set(Eo *obj, int cols, int rows);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_table:property:table_size|Efl.Pack_Table.table_size]]
+ * [[:develop:api:efl:ui:table:property:table_size|Efl.Ui.Table.table_size]]
+ * [[:develop:api:efl:canvas:layout_part_table:property:table_size|Efl.Canvas.Layout_Part_Table.table_size]]
+ * [[:develop:api:efl:ui:layout_part_table:property:table_size|Efl.Ui.Layout_Part_Table.table_size]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:table_size|Efl.Canvas.Layout_Part_Invalid.table_size]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_text.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_text.txt
new file mode 100644
index 00000000..85ff2b8c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_text.txt
@@ -0,0 +1,101 @@
+~~Title: Efl.Ui.Layout_Part_Text~~
+====== Efl.Ui.Layout_Part_Text (class) ======
+
+===== Description =====
+
+%%Elementary layout internal part class%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:layout_part_text:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:layout_part|Efl.Ui.Layout_Part]] //(class)// => [[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:layout_part|Efl.Ui.Layout_Part]] //(class)//
+ * [[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:text|Efl.Text]] //(interface)//
+ * [[:develop:api:efl:text_markup|Efl.Text_Markup]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:layout_part_text:property:l10n_text|l10n_text]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]]]//\\
+> %%A unique string to be translated.%%
+
+const char *efl_ui_l10n_text_get(const Eo *obj, const char **domain);
+void efl_ui_l10n_text_set(Eo *obj, const char *label, const char *domain);
+
+\\
+**[[:develop:api:efl:ui:layout_part_text:property:markup|markup]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:text_markup|Efl.Text_Markup]]]//\\
+> %%Markup property%%
+
+const char *efl_text_markup_get(const Eo *obj);
+void efl_text_markup_set(Eo *obj, const char *markup);
+
+\\
+**[[:develop:api:efl:ui:layout_part_text:property:text|text]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:text|Efl.Text]]]//\\
+> %%The text string to be displayed by the given text object.%%
+
+const char *efl_text_get(const Eo *obj);
+void efl_text_set(Eo *obj, const char *text);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:constructor|constructor]]** | %%Implement this method to provide optional initialization code for your object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] ^^^
+| ''protected'' | **[[:develop:api:efl:ui:l10n:method:translation_update|translation_update]]** | %%Requests this object to update its text strings for the current locale.%% |
+^ [[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]] ^^^
+| | **[[:develop:api:efl:ui:widget_part:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| | **[[:develop:api:efl:ui:widget_part:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_text/property/l10n_text.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_text/property/l10n_text.txt
new file mode 100644
index 00000000..d262b6cc
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_text/property/l10n_text.txt
@@ -0,0 +1,72 @@
+~~Title: Efl.Ui.Layout_Part_Text.l10n_text~~
+====== Efl.Ui.Layout_Part_Text.l10n_text ======
+
+===== Description =====
+
+%%A unique string to be translated.%%
+
+%%Often this will be a human-readable string (e.g. in English) but it can also be a unique string identifier that must then be translated to the current locale with %%''dgettext''%%() or any similar mechanism.%%
+
+%%Setting this property will enable translation for this object or part.%%
+
+
+{{page>:develop:api-include:efl:ui:layout_part_text:property:l10n_text:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+==== Getter ====
+
+ * **domain** - %%A translation domain. If %%''null''%% this means the default domain is used.%%
+==== Setter ====
+
+ * **label** - %%A unique (untranslated) string.%%
+ * **domain** - %%A translation domain. If %%''null''%% this uses the default domain (eg. set by %%''textdomain''%%()).%%
+==== Setter ====
+
+%%Sets the new untranslated string and domain for this object.%%
+{{page>:develop:api-include:efl:ui:layout_part_text:property:l10n_text:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:l10n:property:l10n_text|Efl.Ui.L10n.l10n_text]] **(get, set)**.//===== Signature =====
+
+
+@property l10n_text @pure_virtual {
+ get {
+ values {
+ domain: string @optional;
+ }
+ return: string;
+ }
+ set {
+ values {
+ label: string;
+ domain: string @optional;
+ }
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_ui_l10n_text_get(const Eo *obj, const char **domain);
+void efl_ui_l10n_text_set(Eo *obj, const char *label, const char *domain);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:l10n:property:l10n_text|Efl.Ui.L10n.l10n_text]]
+ * [[:develop:api:efl:ui:default_item:property:l10n_text|Efl.Ui.Default_Item.l10n_text]]
+ * [[:develop:api:efl:ui:layout_part_legacy:property:l10n_text|Efl.Ui.Layout_Part_Legacy.l10n_text]]
+ * [[:develop:api:elm:notify:part:property:l10n_text|Elm.Notify.Part.l10n_text]]
+ * [[:develop:api:efl:ui:layout_part_text:property:l10n_text|Efl.Ui.Layout_Part_Text.l10n_text]]
+ * [[:develop:api:efl:ui:win:property:l10n_text|Efl.Ui.Win.l10n_text]]
+ * [[:develop:api:efl:ui:table:property:l10n_text|Efl.Ui.Table.l10n_text]]
+ * [[:develop:api:efl:ui:box:property:l10n_text|Efl.Ui.Box.l10n_text]]
+ * [[:develop:api:efl:ui:layout_base:property:l10n_text|Efl.Ui.Layout_Base.l10n_text]]
+ * [[:develop:api:efl:ui:check:property:l10n_text|Efl.Ui.Check.l10n_text]]
+ * [[:develop:api:efl:ui:frame:property:l10n_text|Efl.Ui.Frame.l10n_text]]
+ * [[:develop:api:efl:ui:progressbar:property:l10n_text|Efl.Ui.Progressbar.l10n_text]]
+ * [[:develop:api:efl:ui:button:property:l10n_text|Efl.Ui.Button.l10n_text]]
+ * [[:develop:api:efl:ui:navigation_bar:property:l10n_text|Efl.Ui.Navigation_Bar.l10n_text]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_text/property/markup.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_text/property/markup.txt
new file mode 100644
index 00000000..116ac73a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_text/property/markup.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Layout_Part_Text.markup~~
+====== Efl.Ui.Layout_Part_Text.markup ======
+
+===== Description =====
+
+%%Markup property%%
+{{page>:develop:api-include:efl:ui:layout_part_text:property:markup:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **markup** - %%The markup-text representation set to this text.%%
+
+//Overridden from [[:develop:api:efl:text_markup:property:markup|Efl.Text_Markup.markup]] **(get, set)**.//===== Signature =====
+
+
+@property markup @pure_virtual {
+ get {}
+ set {}
+ values {
+ markup: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_text_markup_get(const Eo *obj);
+void efl_text_markup_set(Eo *obj, const char *markup);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:text_markup:property:markup|Efl.Text_Markup.markup]]
+ * [[:develop:api:efl:ui:default_item:property:markup|Efl.Ui.Default_Item.markup]]
+ * [[:develop:api:efl:ui:layout_part_legacy:property:markup|Efl.Ui.Layout_Part_Legacy.markup]]
+ * [[:develop:api:efl:canvas:text:property:markup|Efl.Canvas.Text.markup]]
+ * [[:develop:api:efl:ui:layout_part_text:property:markup|Efl.Ui.Layout_Part_Text.markup]]
+ * [[:develop:api:efl:ui:frame:property:markup|Efl.Ui.Frame.markup]]
+ * [[:develop:api:efl:ui:progressbar:property:markup|Efl.Ui.Progressbar.markup]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:markup|Efl.Canvas.Layout_Part_Invalid.markup]]
+ * [[:develop:api:efl:canvas:layout_part_text:property:markup|Efl.Canvas.Layout_Part_Text.markup]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/layout_part_text/property/text.txt b/public_html/data/pages/develop/api/efl/ui/layout_part_text/property/text.txt
new file mode 100644
index 00000000..472571b7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/layout_part_text/property/text.txt
@@ -0,0 +1,67 @@
+~~Title: Efl.Ui.Layout_Part_Text.text~~
+====== Efl.Ui.Layout_Part_Text.text ======
+
+===== Description =====
+
+%%The text string to be displayed by the given text object.%%
+
+%%Do not release (free) the returned value.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:layout_part_text:property:text:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **text** - %%Text string to display.%%
+
+//Overridden from [[:develop:api:efl:text:property:text|Efl.Text.text]] **(get, set)**.//===== Signature =====
+
+
+@property text @pure_virtual {
+ get {}
+ set {}
+ values {
+ text: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_text_get(const Eo *obj);
+void efl_text_set(Eo *obj, const char *text);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:text:property:text|Efl.Text.text]]
+ * [[:develop:api:efl:ui:check:property:text|Efl.Ui.Check.text]]
+ * [[:develop:api:efl:ui:win:property:text|Efl.Ui.Win.text]]
+ * [[:develop:api:efl:ui:default_item:property:text|Efl.Ui.Default_Item.text]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:property:text|Efl.Ui.Navigation_Bar_Part_Back_Button.text]]
+ * [[:develop:api:efl:ui:layout_part_legacy:property:text|Efl.Ui.Layout_Part_Legacy.text]]
+ * [[:develop:api:elm_actionslider:part:property:text|Elm_Actionslider.Part.text]]
+ * [[:develop:api:elm:entry:part:property:text|Elm.Entry.Part.text]]
+ * [[:develop:api:elm_label:part:property:text|Elm_Label.Part.text]]
+ * [[:develop:api:elm:multibuttonentry_part:property:text|Elm.Multibuttonentry_Part.text]]
+ * [[:develop:api:elm:naviframe:part:property:text|Elm.Naviframe.Part.text]]
+ * [[:develop:api:elm_bubble:part:property:text|Elm_Bubble.Part.text]]
+ * [[:develop:api:elm:fileselector:entry:part:property:text|Elm.Fileselector.Entry.Part.text]]
+ * [[:develop:api:elm:fileselector:part:property:text|Elm.Fileselector.Part.text]]
+ * [[:develop:api:elm:popup:part:property:text|Elm.Popup.Part.text]]
+ * [[:develop:api:elm:notify:part:property:text|Elm.Notify.Part.text]]
+ * [[:develop:api:efl:canvas:text:property:text|Efl.Canvas.Text.text]]
+ * [[:develop:api:efl:ui:layout_part_text:property:text|Efl.Ui.Layout_Part_Text.text]]
+ * [[:develop:api:efl:ui:textpath_part:property:text|Efl.Ui.Textpath_Part.text]]
+ * [[:develop:api:efl:ui:alert_popup_part:property:text|Efl.Ui.Alert_Popup_Part.text]]
+ * [[:develop:api:efl:ui:text_part:property:text|Efl.Ui.Text_Part.text]]
+ * [[:develop:api:efl:ui:textpath:property:text|Efl.Ui.Textpath.text]]
+ * [[:develop:api:efl:ui:tags:property:text|Efl.Ui.Tags.text]]
+ * [[:develop:api:efl:ui:frame:property:text|Efl.Ui.Frame.text]]
+ * [[:develop:api:efl:ui:progressbar:property:text|Efl.Ui.Progressbar.text]]
+ * [[:develop:api:efl:ui:button:property:text|Efl.Ui.Button.text]]
+ * [[:develop:api:efl:ui:navigation_bar:property:text|Efl.Ui.Navigation_Bar.text]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:text|Efl.Canvas.Layout_Part_Invalid.text]]
+ * [[:develop:api:efl:canvas:layout_part_text:property:text|Efl.Canvas.Layout_Part_Text.text]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/list.txt b/public_html/data/pages/develop/api/efl/ui/list.txt
new file mode 100644
index 00000000..a6494966
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/list.txt
@@ -0,0 +1,497 @@
+~~Title: Efl.Ui.List~~
+====== Efl.Ui.List (class) ======
+
+===== Description =====
+
+%%A scrollable list of %%[[:develop:api:efl:ui:item|Efl.Ui.Item]]%% objects, typically %%[[:develop:api:efl:ui:list_default_item|Efl.Ui.List_Default_Item]]%% objects.%%
+
+%%Items are added using the %%[[:develop:api:efl:pack_linear|Efl.Pack_Linear]]%% interface.%%
+
+%%The orientation (vertical or horizontal) of the list can be set with %%[[:develop:api:efl:ui:layout_orientable:property:orientation|Efl.Ui.Layout_Orientable.orientation]]%%.%%
+
+%%Items inside this widget can be selected according to the %%[[:develop:api:efl:ui:multi_selectable:property:select_mode|Efl.Ui.Multi_Selectable.select_mode]]%% policy, and the selection can be retrieved with %%[[:develop:api:efl:ui:multi_selectable:method:selected_iterator_new|Efl.Ui.Multi_Selectable.selected_iterator_new]]%%.%%
+
+%%%%[[:develop:api:efl:ui:list|Efl.Ui.List]]%% supports grouping by using %%[[:develop:api:efl:ui:group_item|Efl.Ui.Group_Item]]%% objects. Group headers are displayed at the top or left side of the viewport if items belonging to the group are visible in the viewport.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:list:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:collection|Efl.Ui.Collection]] //(class)// => [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)// => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:collection|Efl.Ui.Collection]] //(class)//
+ * [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)//
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] //(interface)//
+ * [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] //(interface)//
+ * [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] //(interface)//
+ * [[:develop:api:efl:layout:group|Efl.Layout.Group]] //(interface)//
+ * [[:develop:api:efl:pack_linear|Efl.Pack_Linear]] //(interface)//
+ * [[:develop:api:efl:pack|Efl.Pack]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:layout_orientable|Efl.Ui.Layout_Orientable]] //(interface)//
+ * [[:develop:api:efl:ui:multi_selectable|Efl.Ui.Multi_Selectable]] //(interface)//
+ * [[:develop:api:efl:ui:single_selectable|Efl.Ui.Single_Selectable]] //(interface)//
+ * [[:develop:api:efl:ui:focus:manager_sub|Efl.Ui.Focus.Manager_Sub]] //(mixin)//
+ * [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] //(interface)//
+ * [[:develop:api:efl:ui:widget_focus_manager|Efl.Ui.Widget_Focus_Manager]] //(mixin)//
+ * [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] //(interface)//
+ * [[:develop:api:efl:ui:item_clickable|Efl.Ui.Item_Clickable]] //(interface)//
+ * [[:develop:api:efl:ui:scrollable|Efl.Ui.Scrollable]] //(interface)//
+ * [[:develop:api:efl:ui:scrollbar|Efl.Ui.Scrollbar]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:list:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:collection|Efl.Ui.Collection]] ^^^
+| | **[[:develop:api:efl:ui:collection:method:all_select|all_select]]** | %%Select all %%[[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]]%%%% |
+| | **[[:develop:api:efl:ui:collection:method:all_unselect|all_unselect]]** | %%Unselect all %%[[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]]%%%% |
+| | **[[:develop:api:efl:ui:collection:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:ui:collection:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+| | **[[:develop:api:efl:ui:collection:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| | **[[:develop:api:efl:ui:collection:property:fallback_selection|fallback_selection]]** //**(get, set)**// | %%A object that will be selected in case nothing is selected%% |
+| | **[[:develop:api:efl:ui:collection:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:ui:collection:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:ui:collection:method:item_scroll|item_scroll]]** | %%Brings the passed item into the viewport.%% |
+| | **[[:develop:api:efl:ui:collection:method:item_scroll_align|item_scroll_align]]** | %%Brings the passed item into the viewport and align it.%% |
+| | **[[:develop:api:efl:ui:collection:property:last_selected|last_selected]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:collection:property:match_content|match_content]]** //**(set)**// | |
+| | **[[:develop:api:efl:ui:collection:method:move|move]]** | %%Moves the focus in the given direction to the next regular widget.%% |
+| | **[[:develop:api:efl:ui:collection:property:orientation|orientation]]** //**(get, set)**// | %%Control the direction of a given widget.%% |
+| | **[[:develop:api:efl:ui:collection:method:pack|pack]]** | %%Adds a sub-object to this container.%% |
+| | **[[:develop:api:efl:ui:collection:method:pack_after|pack_after]]** | %%Append an object after the %%''existing''%% sub-object.%% |
+| | **[[:develop:api:efl:ui:collection:method:pack_at|pack_at]]** | %%Inserts %%''subobj''%% BEFORE the sub-object at position %%''index''%%.%% |
+| | **[[:develop:api:efl:ui:collection:method:pack_before|pack_before]]** | %%Prepend an object before the %%''existing''%% sub-object.%% |
+| | **[[:develop:api:efl:ui:collection:method:pack_begin|pack_begin]]** | %%Prepend an object at the beginning of this container.%% |
+| | **[[:develop:api:efl:ui:collection:method:pack_clear|pack_clear]]** | %%Removes all packed sub-objects and unreferences them.%% |
+| | **[[:develop:api:efl:ui:collection:method:pack_content_get|pack_content_get]]** | %%Sub-object at a given %%''index''%% in this container.%% |
+| | **[[:develop:api:efl:ui:collection:method:pack_end|pack_end]]** | %%Append object at the end of this container.%% |
+| | **[[:develop:api:efl:ui:collection:method:pack_index_get|pack_index_get]]** | %%Get the index of a sub-object in this container.%% |
+| | **[[:develop:api:efl:ui:collection:method:pack_unpack_at|pack_unpack_at]]** | %%Pop out (remove) the sub-object at the specified %%''index''%%.%% |
+| | **[[:develop:api:efl:ui:collection:property:position_manager|position_manager]]** //**(get, set)**// | %%Position manager object that handles placement of items.%% |
+| | **[[:develop:api:efl:ui:collection:method:range_select|range_select]]** | %%Select a range of %%[[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]]%%.%% |
+| | **[[:develop:api:efl:ui:collection:method:range_unselect|range_unselect]]** | %%Unselect a range of %%[[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]]%%.%% |
+| | **[[:develop:api:efl:ui:collection:property:select_mode|select_mode]]** //**(get, set)**// | %%The mode type for children selection.%% |
+| | **[[:develop:api:efl:ui:collection:method:selected_iterator_new|selected_iterator_new]]** | %%Get the selected items in a iterator. The iterator sequence will be decided by selection.%% |
+| | **[[:develop:api:efl:ui:collection:method:unpack|unpack]]** | %%Removes an existing sub-object from the container without deleting it.%% |
+| | **[[:develop:api:efl:ui:collection:method:unpack_all|unpack_all]]** | %%Removes all packed sub-objects without unreferencing them.%% |
+| ''protected'' | **[[:develop:api:efl:ui:collection:method:focus_manager_create|focus_manager_create]]** | %%If the widget needs a focus manager, this function will be called.%% |
+| ''protected'' | **[[:develop:api:efl:ui:collection:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:collection:method:theme_apply|theme_apply]]** | %%Virtual function called when the widget needs to re-apply its theme.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] ^^^
+| | **[[:develop:api:efl:ui:focus:manager:property:border_elements|border_elements]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:focus:manager:method:dirty_logic_freeze|dirty_logic_freeze]]** | %%Disables the cache invalidation when an object is moved.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:dirty_logic_unfreeze|dirty_logic_unfreeze]]** | %%Enables the cache invalidation when an object is moved.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:fetch|fetch]]** | %%Fetches the data from a registered node.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:logical_end|logical_end]]** | %%Returns the last logical object.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:manager_focus|manager_focus]]** //**(get, set)**// | %%The element which is currently focused by this manager.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:pop_history_stack|pop_history_stack]]** | %%Removes the uppermost history element, and focuses the previous one.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:redirect|redirect]]** //**(get, set)**// | %%Add another manager to serve the move requests.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:request_move|request_move]]** | %%Returns the object in the %%''direction''%% from %%''child''%%.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:request_subchild|request_subchild]]** | %%Returns the widget in the direction next.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:reset_history|reset_history]]** | %%Resets the history stack of this manager object. This means the uppermost element will be unfocused, and all other elements will be removed from the remembered list.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:root|root]]** //**(get, set)**// | %%Root node for all logical sub-trees.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:setup_on_first_touch|setup_on_first_touch]]** | %%Called when this manager is set as redirect.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:viewport_elements|viewport_elements]]** //**(get)**// | |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:property:automatic_theme_rotation|automatic_theme_rotation]]** //**(get, set)**// | %%This flag tells if this object will automatically mirror the rotation changes of the window to this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**// | %%Whether this object updates its size hints automatically.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_freeze|calc_freeze]]** | %%Freezes the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_parts_extends|calc_parts_extends]]** | %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_size_min|calc_size_min]]** | %%Calculates the minimum required size for a given layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_thaw|calc_thaw]]** | %%Thaws the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:layout_base:method:factory_bind|factory_bind]]** | %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:finger_size_multiplier|finger_size_multiplier]]** //**(get, set)**// | %%Set a multiplier for applying finger size to the layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:group_calculate|group_calculate]]** | %%Triggers an immediate recalculation of this object's geometry.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:group_data|group_data]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_max|group_size_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_min|group_size_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:l10n_text|l10n_text]]** //**(get, set)**// | %%A unique string to be translated.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:message_send|message_send]]** | %%Sends an (Edje) message to a given Edje object%% |
+| | **[[:develop:api:efl:ui:layout_base:property:part_exist|part_exist]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_add|signal_callback_add]]** | %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_del|signal_callback_del]]** | %%Removes a signal-triggered callback from an object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_emit|signal_emit]]** | %%Sends/emits an Edje signal to this layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_process|signal_process]]** | %%Processes an object's messages and signals queue.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:theme|theme]]** //**(get, set)**// | %%The theme of this widget, defines which edje group will be used.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:theme_rotation_apply|theme_rotation_apply]]** | %%Apply a new rotation value to this object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:calc_force|calc_force]]** | %%Forces a Size/Geometry calculation.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:on_focus_update|on_focus_update]]** | %%Virtual function handling focus in/out events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:part_get|part_get]]** | %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+^ [[:develop:api:efl:ui:scrollable|Efl.Ui.Scrollable]] ^^^
+| | **[[:develop:api:efl:ui:scrollable:property:bounce_enabled|bounce_enabled]]** //**(get, set)**// | %%When scrolling, the scroller may "bounce" when reaching the edge of the content object. This is a visual way to indicate the end has been reached. This is enabled by default for both axes. This property determines if bouncing is enabled in each axis. When bouncing is disabled, scrolling just stops upon reaching the end of the content.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:content_pos|content_pos]]** //**(get, set)**// | %%Position of the content inside the scroller.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:content_size|content_size]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:scrollable:property:gravity|gravity]]** //**(get, set)**// | %%Control scrolling gravity on the scrollable.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:looping|looping]]** //**(get, set)**// | %%Controls infinite looping for a scroller.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:movement_block|movement_block]]** //**(get, set)**// | %%Blocking of scrolling (per axis).%% |
+| | **[[:develop:api:efl:ui:scrollable:method:scroll|scroll]]** | %%Show a specific virtual region within the scroller content object.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:scroll_freeze|scroll_freeze]]** //**(get, set)**// | %%Freezes scrolling movement (by input of a user). Unlike %%[[:develop:api:efl:ui:scrollable:property:movement_block|Efl.Ui.Scrollable.movement_block]]%%, this property freezes bidirectionally. If you want to freeze in only one direction, see %%[[:develop:api:efl:ui:scrollable:property:movement_block|Efl.Ui.Scrollable.movement_block]]%%.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:scroll_hold|scroll_hold]]** //**(get, set)**// | %%When hold turns on, it only scrolls by holding action.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:step_size|step_size]]** //**(get, set)**// | %%Amount to scroll in response to cursor key presses.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:viewport_geometry|viewport_geometry]]** //**(get)**// | |
+^ [[:develop:api:efl:ui:scrollbar|Efl.Ui.Scrollbar]] ^^^
+| | **[[:develop:api:efl:ui:scrollbar:property:bar_mode|bar_mode]]** //**(get, set)**// | %%Scrollbar visibility mode, for each of the scrollbars.%% |
+| | **[[:develop:api:efl:ui:scrollbar:property:bar_position|bar_position]]** //**(get, set)**// | %%Position of the thumb (the draggable zone) inside the scrollbar. It is calculated based on current position of the viewport inside the total content.%% |
+| | **[[:develop:api:efl:ui:scrollbar:property:bar_size|bar_size]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:scrollbar:method:bar_visibility_update|bar_visibility_update]]** | %%Update bar visibility.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:property:position|position]]** //**(get, set)**// | %%The 2D position of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:size|size]]** //**(get, set)**// | %%The 2D size of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| | **[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_input_event_handler|widget_input_event_handler]]** | %%Virtual function handling input events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] ^^^
+| | **[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]** | %%A circular dependency between parts of the object was found.%% |
+| | **[[:develop:api:efl:layout:calc:event:recalc|recalc]]** | %%The layout was recalculated.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] ^^^
+| | **[[:develop:api:efl:ui:focus:manager:event:coords_dirty|coords,dirty]]** | %%Cached relationship calculation results have been invalidated.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:dirty_logic_freeze_changed|dirty_logic_freeze,changed]]** | %%Called when this focus manager is frozen or thawed, even_info being %%''true''%% indicates that it is now frozen, %%''false''%% indicates that it is thawed.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:flush_pre|flush,pre]]** | %%After this event, the manager object will calculate relations in the graph. Can be used to add / remove children in a lazy fashion.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:manager_focus_changed|manager_focus,changed]]** | %%The manager_focus property has changed. The previously focused object is passed as an event argument.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:redirect_changed|redirect,changed]]** | %%Redirect object has changed, the old manager is passed as an event argument.%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:item_clickable|Efl.Ui.Item_Clickable]] ^^^
+| | **[[:develop:api:efl:ui:item_clickable:event:item_clicked|item,clicked]]** | %%A %%''clicked''%% event occurred over an item.%% |
+| | **[[:develop:api:efl:ui:item_clickable:event:item_clicked_any|item,clicked,any]]** | %%A %%''clicked,any''%% event occurred over an item.%% |
+| | **[[:develop:api:efl:ui:item_clickable:event:item_longpressed|item,longpressed]]** | %%A %%''longpressed''%% event occurred over an item.%% |
+| | **[[:develop:api:efl:ui:item_clickable:event:item_pressed|item,pressed]]** | %%A %%''pressed''%% event occurred over an item.%% |
+| | **[[:develop:api:efl:ui:item_clickable:event:item_unpressed|item,unpressed]]** | %%An %%''unpressed''%% event occurred over an item.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:event:theme_changed|theme,changed]]** | %%Called when theme changed%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:scrollable|Efl.Ui.Scrollable]] ^^^
+| | **[[:develop:api:efl:ui:scrollable:event:edge_down|edge,down]]** | %%Called when hitting the bottom edge.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:edge_left|edge,left]]** | %%Called when hitting the left edge.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:edge_right|edge,right]]** | %%Called when hitting the right edge.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:edge_up|edge,up]]** | %%Called when hitting the top edge.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_anim_finished|scroll,anim,finished]]** | %%Called when scroll animation finishes.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_anim_started|scroll,anim,started]]** | %%Called when scroll animation starts.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_changed|scroll,changed]]** | %%Called when scrolling.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_down|scroll,down]]** | %%Called when scrolling downwards.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_drag_finished|scroll,drag,finished]]** | %%Called when scroll drag finishes.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_drag_started|scroll,drag,started]]** | %%Called when scroll drag starts.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_finished|scroll,finished]]** | %%Called when scroll operation finishes.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_left|scroll,left]]** | %%Called when scrolling left.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_right|scroll,right]]** | %%Called when scrolling right.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_started|scroll,started]]** | %%Called when scroll operation starts.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_up|scroll,up]]** | %%Called when scrolling upwards.%% |
+^ [[:develop:api:efl:ui:scrollbar|Efl.Ui.Scrollbar]] ^^^
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_dragged|bar,dragged]]** | %%Emitted when thumb is dragged.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_hide|bar,hide]]** | %%Emitted when scrollbar is hidden.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_pos_changed|bar,pos,changed]]** | %%Emitted when thumb position has changed.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_pressed|bar,pressed]]** | %%Emitted when thumb is pressed.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_show|bar,show]]** | %%Emitted when scrollbar is shown.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_size_changed|bar,size,changed]]** | %%Emitted when thumb size has changed.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_unpressed|bar,unpressed]]** | %%Emitted when thumb is unpressed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:single_selectable|Efl.Ui.Single_Selectable]] ^^^
+| | **[[:develop:api:efl:ui:single_selectable:event:selection_changed|selection_changed]]** | %%Emitted when there is a change in the selection state. This event will collect all the item selection change events that are happening within one loop iteration. This means, you will only get this event once, even if a lot of items have changed. If you are interested in detailed changes, subscribe to the individual %%[[:develop:api:efl:ui:selectable:event:selected,changed|Efl.Ui.Selectable.selected,changed]]%% events of each item.%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/list/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/list/method/constructor.txt
new file mode 100644
index 00000000..7b8f42b5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/list/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.List.constructor~~
+====== Efl.Ui.List.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:list:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:collection:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/list_default_item.txt b/public_html/data/pages/develop/api/efl/ui/list_default_item.txt
new file mode 100644
index 00000000..243067a4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/list_default_item.txt
@@ -0,0 +1,412 @@
+~~Title: Efl.Ui.List_Default_Item~~
+====== Efl.Ui.List_Default_Item (class) ======
+
+===== Description =====
+
+%%Default Item class to be used inside %%[[:develop:api:efl:ui:list|Efl.Ui.List]]%% containers. It displays the three parts in horizontal order: %%''icon''%%, %%''text''%% and %%''extra''%%. Theming can change this arrangement.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:list_default_item:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:default_item|Efl.Ui.Default_Item]] //(class)// => [[:develop:api:efl:ui:item|Efl.Ui.Item]] //(class)// => [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)// => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:default_item|Efl.Ui.Default_Item]] //(class)//
+ * [[:develop:api:efl:ui:item|Efl.Ui.Item]] //(class)//
+ * [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)//
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] //(interface)//
+ * [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] //(interface)//
+ * [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] //(interface)//
+ * [[:develop:api:efl:layout:group|Efl.Layout.Group]] //(interface)//
+ * [[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]] //(interface)//
+ * [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] //(mixin)//
+ * [[:develop:api:efl:text|Efl.Text]] //(interface)//
+ * [[:develop:api:efl:text_markup|Efl.Text_Markup]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:content|Efl.Content]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:list_default_item:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] ^^^
+| | **[[:develop:api:efl:input:clickable:property:interaction|interaction]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:button_state_reset|button_state_reset]]** | %%This aborts the internal state after a press call.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:longpress_abort|longpress_abort]]** | %%This aborts ongoing longpress event.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:press|press]]** | %%Change internal states that a button got pressed.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:unpress|unpress]]** | %%Change internal states that a button got unpressed.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:default_item|Efl.Ui.Default_Item]] ^^^
+| | **[[:develop:api:efl:ui:default_item:property:content|content]]** //**(get, set)**// | %%Sub-object currently set as this object's single content.%% |
+| | **[[:develop:api:efl:ui:default_item:method:content_unset|content_unset]]** | %%Remove the sub-object currently set as content of this object and return it. This object becomes empty.%% |
+| | **[[:develop:api:efl:ui:default_item:property:l10n_text|l10n_text]]** //**(get, set)**// | %%A unique string to be translated.%% |
+| | **[[:develop:api:efl:ui:default_item:property:markup|markup]]** //**(get, set)**// | %%Markup property%% |
+| | **[[:develop:api:efl:ui:default_item:property:text|text]]** //**(get, set)**// | %%The text string to be displayed by the given text object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:default_item:method:part_get|part_get]]** | %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:item|Efl.Ui.Item]] ^^^
+| | **[[:develop:api:efl:ui:item:property:calc_locked|calc_locked]]** //**(get, set)**// | %%If the item has its calc locked it will not trigger %%[[:develop:api:efl:canvas:group:property:group_need_recalculate|Efl.Canvas.Group.group_need_recalculate.set]]%% done.%% |
+| | **[[:develop:api:efl:ui:item:property:container|container]]** //**(get, set)**// | %%The container this object is part of.%% |
+| | **[[:develop:api:efl:ui:item:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| | **[[:develop:api:efl:ui:item:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:ui:item:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:ui:item:property:index|index]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:item:property:item_parent|item_parent]]** //**(get, set)**// | %%The parent of the item.%% |
+| | **[[:develop:api:efl:ui:item:property:selected|selected]]** //**(get, set)**// | %%The selected state of this object%% |
+| ''protected'' | **[[:develop:api:efl:ui:item:method:widget_input_event_handler|widget_input_event_handler]]** | %%Virtual function handling input events on the widget.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:property:automatic_theme_rotation|automatic_theme_rotation]]** //**(get, set)**// | %%This flag tells if this object will automatically mirror the rotation changes of the window to this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**// | %%Whether this object updates its size hints automatically.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_freeze|calc_freeze]]** | %%Freezes the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_parts_extends|calc_parts_extends]]** | %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_size_min|calc_size_min]]** | %%Calculates the minimum required size for a given layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_thaw|calc_thaw]]** | %%Thaws the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:layout_base:method:factory_bind|factory_bind]]** | %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:finger_size_multiplier|finger_size_multiplier]]** //**(get, set)**// | %%Set a multiplier for applying finger size to the layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:group_calculate|group_calculate]]** | %%Triggers an immediate recalculation of this object's geometry.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:group_data|group_data]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_max|group_size_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_min|group_size_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:message_send|message_send]]** | %%Sends an (Edje) message to a given Edje object%% |
+| | **[[:develop:api:efl:ui:layout_base:property:part_exist|part_exist]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_add|signal_callback_add]]** | %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_del|signal_callback_del]]** | %%Removes a signal-triggered callback from an object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_emit|signal_emit]]** | %%Sends/emits an Edje signal to this layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_process|signal_process]]** | %%Processes an object's messages and signals queue.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:theme|theme]]** //**(get, set)**// | %%The theme of this widget, defines which edje group will be used.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:theme_rotation_apply|theme_rotation_apply]]** | %%Apply a new rotation value to this object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:calc_force|calc_force]]** | %%Forces a Size/Geometry calculation.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:on_focus_update|on_focus_update]]** | %%Virtual function handling focus in/out events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:theme_apply|theme_apply]]** | %%Virtual function called when the widget needs to re-apply its theme.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:property:position|position]]** //**(get, set)**// | %%The 2D position of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:size|size]]** //**(get, set)**// | %%The 2D size of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| | **[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:content|Efl.Content]] ^^^
+| | **[[:develop:api:efl:content:event:content_changed|content,changed]]** | %%Sent after the content is set or unset using the current content object.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] ^^^
+| | **[[:develop:api:efl:input:clickable:event:clicked|clicked]]** | %%Called when object is in sequence pressed and unpressed by the primary button%% |
+| | **[[:develop:api:efl:input:clickable:event:clicked_any|clicked,any]]** | %%Called when object is in sequence pressed and unpressed by any button. The button that triggered the event can be found in the event information.%% |
+| | **[[:develop:api:efl:input:clickable:event:longpressed|longpressed]]** | %%Called when the object receives a long press, event_info is the button that got pressed%% |
+| | **[[:develop:api:efl:input:clickable:event:pressed|pressed]]** | %%Called when the object is pressed, event_info is the button that got pressed%% |
+| | **[[:develop:api:efl:input:clickable:event:unpressed|unpressed]]** | %%Called when the object is no longer pressed, event_info is the button that got pressed%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] ^^^
+| | **[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]** | %%A circular dependency between parts of the object was found.%% |
+| | **[[:develop:api:efl:layout:calc:event:recalc|recalc]]** | %%The layout was recalculated.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:event:theme_changed|theme,changed]]** | %%Called when theme changed%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]] ^^^
+| | **[[:develop:api:efl:ui:selectable:event:selected_changed|selected,changed]]** | %%Called when the selected state has changed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/list_default_item/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/list_default_item/method/constructor.txt
new file mode 100644
index 00000000..d9cc71ee
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/list_default_item/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.List_Default_Item.constructor~~
+====== Efl.Ui.List_Default_Item.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:list_default_item:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:item:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/popup.txt b/public_html/data/pages/develop/api/efl/ui/popup.txt
new file mode 100644
index 00000000..dab79418
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/popup.txt
@@ -0,0 +1,518 @@
+~~Title: Efl.Ui.Popup~~
+====== Efl.Ui.Popup (class) ======
+
+===== Description =====
+
+%%A styled container widget which overlays a window's contents.%%
+
+%%The Popup widget is a theme-capable container which can be used for various purposes. Regular contents can be set using the %%[[:develop:api:efl:content|Efl.Content]]%% interface, or basic scrollable contents can be set through the %%[[:develop:api:efl:ui:widget_scrollable_content|Efl.Ui.Widget_Scrollable_Content]]%% mixin API. For contents which should be scrollable but require more fine-grained tuning, it may be necessary for users to set up and provide their own scroller object such as %%[[:develop:api:efl:ui:scroller|Efl.Ui.Scroller]]%%.%%
+
+%%A Popup widget will create an overlay for the window contents. This overlay is an %%[[:develop:api:efl:ui:popup_part_backwall|Efl.Ui.Popup_Part_Backwall]]%% object, which provides functionality for passing events through to the main window while the Popup is active as well as the ability to set background images for the Popup.%%
+
+%%By default, a Popup is positioned by the user through the %%[[:develop:api:efl:gfx:entity:property:position|Efl.Gfx.Entity.position]]%% property. This behavior can be altered by using the %%[[:develop:api:efl:ui:popup:property:align|Efl.Ui.Popup.align]]%% and %%[[:develop:api:efl:ui:popup:property:anchor|Efl.Ui.Popup.anchor]]%% properties. Setting the %%[[:develop:api:efl:gfx:entity:property:position|Efl.Gfx.Entity.position]]%% property directly will unset both the %%[[:develop:api:efl:ui:popup:property:align|Efl.Ui.Popup.align]]%% and %%[[:develop:api:efl:ui:popup:property:anchor|Efl.Ui.Popup.anchor]]%% properties, and vice versa.%%
+
+%%By default, a Popup will size itself based on the minimum size of its contents through the %%[[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]%% interface. A Popup will never size itself smaller than the minimum size of its contents, but by manually setting the %%[[:develop:api:efl:gfx:entity:property:size|Efl.Gfx.Entity.size]]%% property or the %%[[:develop:api:efl:gfx:hint:property:hint_size_min|Efl.Gfx.Hint.hint_size_min]]%% property, a larger size can be specified.%%
+
+%%Users can set a given Popup widget to close automatically after a specified time using the %%[[:develop:api:efl:ui:popup:property:closing_timeout|Efl.Ui.Popup.closing_timeout]]%% property.%%
+
+%%For a Popup with a more specialized purpose, see %%[[:develop:api:efl:ui:alert_popup|Efl.Ui.Alert_Popup]]%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:popup:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)// => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)//
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] //(interface)//
+ * [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] //(interface)//
+ * [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] //(interface)//
+ * [[:develop:api:efl:layout:group|Efl.Layout.Group]] //(interface)//
+ * [[:develop:api:efl:content|Efl.Content]] //(interface)//
+ * [[:develop:api:efl:ui:focus:layer|Efl.Ui.Focus.Layer]] //(mixin)//
+ * [[:develop:api:efl:ui:widget_focus_manager|Efl.Ui.Widget_Focus_Manager]] //(mixin)//
+ * [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] //(interface)//
+ * [[:develop:api:efl:ui:widget_scrollable_content|Efl.Ui.Widget_Scrollable_Content]] //(mixin)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:popup:property:align|align]]** //**(get, set)**//\\
+> %%The align property specifies a Popup's current positioning relative to its anchor.%%
+
+Efl_Ui_Popup_Align efl_ui_popup_align_get(const Eo *obj);
+void efl_ui_popup_align_set(Eo *obj, Efl_Ui_Popup_Align type);
+
+\\
+**[[:develop:api:efl:ui:popup:property:align_priority|align_priority]]** //**(get, set)**//\\
+> %%This is the priority in which alignments will be tested using the anchor object if the value of %%[[:develop:api:efl:ui:popup:property:align|Efl.Ui.Popup.align]]%% is determined to be invalid. If a given alignment would result in the popup being partially or fully outside the visible area of the window, it is deemed invalid, and the next alignment is tested until either the priority list is exhausted or a usable alignment is found.%%
+
+void efl_ui_popup_align_priority_get(const Eo *obj, Efl_Ui_Popup_Align *first, Efl_Ui_Popup_Align *second, Efl_Ui_Popup_Align *third, Efl_Ui_Popup_Align *fourth, Efl_Ui_Popup_Align *fifth);
+void efl_ui_popup_align_priority_set(Eo *obj, Efl_Ui_Popup_Align first, Efl_Ui_Popup_Align second, Efl_Ui_Popup_Align third, Efl_Ui_Popup_Align fourth, Efl_Ui_Popup_Align fifth);
+
+\\
+**[[:develop:api:efl:ui:popup:property:anchor|anchor]]** //**(get, set)**//\\
+> %%The anchor object is the reference object for positioning a Popup using the %%[[:develop:api:efl:ui:popup:property:align|Efl.Ui.Popup.align]]%% and %%[[:develop:api:efl:ui:popup:property:align_priority|Efl.Ui.Popup.align_priority]]%% properties.%%
+
+Efl_Canvas_Object *efl_ui_popup_anchor_get(const Eo *obj);
+void efl_ui_popup_anchor_set(Eo *obj, Efl_Canvas_Object *anchor);
+
+\\
+**[[:develop:api:efl:ui:popup:property:closing_timeout|closing_timeout]]** //**(get, set)**//\\
+> %%The closing_timeout property is the time after which the Popup widget will be automatically deleted.%%
+
+double efl_ui_popup_closing_timeout_get(const Eo *obj);
+void efl_ui_popup_closing_timeout_set(Eo *obj, double time);
+
+\\
+**[[:develop:api:efl:ui:popup:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:popup:property:content|content]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:content|Efl.Content]]]//\\
+> %%Sub-object currently set as this object's single content.%%
+
+Efl_Gfx_Entity *efl_content_get(const Eo *obj);
+Eina_Bool efl_content_set(Eo *obj, Efl_Gfx_Entity *content);
+
+\\
+**[[:develop:api:efl:ui:popup:method:content_unset|content_unset]]**// [Overridden from [[:develop:api:efl:content|Efl.Content]]]//\\
+> %%Remove the sub-object currently set as content of this object and return it. This object becomes empty.%%
+
+Efl_Gfx_Entity *efl_content_unset(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:popup:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:popup:method:group_calculate|group_calculate]]**// [Overridden from [[:develop:api:efl:canvas:group|Efl.Canvas.Group]]]//\\
+> %%Triggers an immediate recalculation of this object's geometry.%%
+
+void efl_canvas_group_calculate(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:popup:property:position|position]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The 2D position of a canvas object.%%
+
+Eina_Position2D efl_gfx_entity_position_get(const Eo *obj);
+void efl_gfx_entity_position_set(Eo *obj, Eina_Position2D pos);
+
+\\
+**[[:develop:api:efl:ui:popup:property:size|size]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The 2D size of a canvas object.%%
+
+Eina_Size2D efl_gfx_entity_size_get(const Eo *obj);
+void efl_gfx_entity_size_set(Eo *obj, Eina_Size2D size);
+
+\\
+**[[:develop:api:efl:ui:popup:property:visible|visible]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The visibility of a canvas object.%%
+
+Eina_Bool efl_gfx_entity_visible_get(const Eo *obj);
+void efl_gfx_entity_visible_set(Eo *obj, Eina_Bool v);
+
+\\
+**[[:develop:api:efl:ui:popup:method:part_get|part_get]]** ''protected''// [Overridden from [[:develop:api:efl:part|Efl.Part]]]//\\
+> %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%%
+
+Efl_Object *efl_part_get(const Eo *obj, const char *name);
+
+\\
+**[[:develop:api:efl:ui:popup:property:widget_parent|widget_parent]]** //**(get, set)**// ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%The internal parent of this widget.%%
+
+Efl_Ui_Widget *efl_ui_widget_parent_get(const Eo *obj);
+void efl_ui_widget_parent_set(Eo *obj, Efl_Ui_Widget *parent);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:layer|Efl.Ui.Focus.Layer]] ^^^
+| | **[[:develop:api:efl:ui:focus:layer:method:move|move]]** | %%Moves the focus in the given direction to the next regular widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:layer:property:behaviour|behaviour]]** //**(get, set)**// | %%Sets the behaviour of the focus layer.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:layer:property:enable|enable]]** //**(get, set)**// | %%Whether the focus layer is enabled. This can be handled automatically through %%[[:develop:api:efl:gfx:entity:property:visible|Efl.Gfx.Entity.visible]]%% and %%[[:develop:api:efl:ui:focus:layer:property:behaviour|Efl.Ui.Focus.Layer.behaviour]]%%.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:layer:method:focus_manager_create|focus_manager_create]]** | %%If the widget needs a focus manager, this function will be called.%% |
+^ [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] ^^^
+| | **[[:develop:api:efl:ui:focus:manager:property:border_elements|border_elements]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:focus:manager:method:dirty_logic_freeze|dirty_logic_freeze]]** | %%Disables the cache invalidation when an object is moved.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:dirty_logic_unfreeze|dirty_logic_unfreeze]]** | %%Enables the cache invalidation when an object is moved.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:fetch|fetch]]** | %%Fetches the data from a registered node.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:logical_end|logical_end]]** | %%Returns the last logical object.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:manager_focus|manager_focus]]** //**(get, set)**// | %%The element which is currently focused by this manager.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:pop_history_stack|pop_history_stack]]** | %%Removes the uppermost history element, and focuses the previous one.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:redirect|redirect]]** //**(get, set)**// | %%Add another manager to serve the move requests.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:request_move|request_move]]** | %%Returns the object in the %%''direction''%% from %%''child''%%.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:request_subchild|request_subchild]]** | %%Returns the widget in the direction next.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:reset_history|reset_history]]** | %%Resets the history stack of this manager object. This means the uppermost element will be unfocused, and all other elements will be removed from the remembered list.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:root|root]]** //**(get, set)**// | %%Root node for all logical sub-trees.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:setup_on_first_touch|setup_on_first_touch]]** | %%Called when this manager is set as redirect.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:viewport_elements|viewport_elements]]** //**(get)**// | |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:property:automatic_theme_rotation|automatic_theme_rotation]]** //**(get, set)**// | %%This flag tells if this object will automatically mirror the rotation changes of the window to this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**// | %%Whether this object updates its size hints automatically.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_freeze|calc_freeze]]** | %%Freezes the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_parts_extends|calc_parts_extends]]** | %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_size_min|calc_size_min]]** | %%Calculates the minimum required size for a given layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_thaw|calc_thaw]]** | %%Thaws the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:layout_base:method:factory_bind|factory_bind]]** | %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:finger_size_multiplier|finger_size_multiplier]]** //**(get, set)**// | %%Set a multiplier for applying finger size to the layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:group_data|group_data]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_max|group_size_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_min|group_size_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:l10n_text|l10n_text]]** //**(get, set)**// | %%A unique string to be translated.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:message_send|message_send]]** | %%Sends an (Edje) message to a given Edje object%% |
+| | **[[:develop:api:efl:ui:layout_base:property:part_exist|part_exist]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_add|signal_callback_add]]** | %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_del|signal_callback_del]]** | %%Removes a signal-triggered callback from an object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_emit|signal_emit]]** | %%Sends/emits an Edje signal to this layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_process|signal_process]]** | %%Processes an object's messages and signals queue.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:theme|theme]]** //**(get, set)**// | %%The theme of this widget, defines which edje group will be used.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:theme_rotation_apply|theme_rotation_apply]]** | %%Apply a new rotation value to this object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:calc_force|calc_force]]** | %%Forces a Size/Geometry calculation.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:on_focus_update|on_focus_update]]** | %%Virtual function handling focus in/out events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:theme_apply|theme_apply]]** | %%Virtual function called when the widget needs to re-apply its theme.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_input_event_handler|widget_input_event_handler]]** | %%Virtual function handling input events on the widget.%% |
+^ [[:develop:api:efl:ui:widget_scrollable_content|Efl.Ui.Widget_Scrollable_Content]] ^^^
+| | **[[:develop:api:efl:ui:widget_scrollable_content:property:scrollable_content|scrollable_content]]** //**(get, set)**// | %%This is the content which will be placed in the internal scroller.%% |
+| | **[[:develop:api:efl:ui:widget_scrollable_content:property:scrollable_text|scrollable_text]]** //**(get, set)**// | %%The text string to be displayed by the given text object. The text will use %%[[:develop:api:efl:text_format_wrap|Efl.Text_Format_Wrap.mixed]]%% wrapping, and it will be scrollable depending on its size relative to the object's geometry.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget_scrollable_content:property:scrollable_content_did_group_calc|scrollable_content_did_group_calc]]** //**(get)**// | |
+
+===== Events =====
+
+**[[:develop:api:efl:ui:popup:event:backwall_clicked|backwall,clicked]]**\\
+> %%This is called whenever the user clicks the backwall part of the Popup.%%
+
+EFL_UI_POPUP_EVENT_BACKWALL_CLICKED(void)
+
+\\ **[[:develop:api:efl:ui:popup:event:timeout|timeout]]**\\
+> %%This is called when Popup times out.%%
+
+EFL_UI_POPUP_EVENT_TIMEOUT(void)
+
+\\ ==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:content|Efl.Content]] ^^^
+| | **[[:develop:api:efl:content:event:content_changed|content,changed]]** | %%Sent after the content is set or unset using the current content object.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] ^^^
+| | **[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]** | %%A circular dependency between parts of the object was found.%% |
+| | **[[:develop:api:efl:layout:calc:event:recalc|recalc]]** | %%The layout was recalculated.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] ^^^
+| | **[[:develop:api:efl:ui:focus:manager:event:coords_dirty|coords,dirty]]** | %%Cached relationship calculation results have been invalidated.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:dirty_logic_freeze_changed|dirty_logic_freeze,changed]]** | %%Called when this focus manager is frozen or thawed, even_info being %%''true''%% indicates that it is now frozen, %%''false''%% indicates that it is thawed.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:flush_pre|flush,pre]]** | %%After this event, the manager object will calculate relations in the graph. Can be used to add / remove children in a lazy fashion.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:manager_focus_changed|manager_focus,changed]]** | %%The manager_focus property has changed. The previously focused object is passed as an event argument.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:redirect_changed|redirect,changed]]** | %%Redirect object has changed, the old manager is passed as an event argument.%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:event:theme_changed|theme,changed]]** | %%Called when theme changed%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
+^ [[:develop:api:efl:ui:widget_scrollable_content|Efl.Ui.Widget_Scrollable_Content]] ^^^
+| | **[[:develop:api:efl:ui:widget_scrollable_content:event:optimal_size_calc|optimal_size,calc]]** | %%The optimal size for the widget based on scrollable content.%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/popup/event/backwall_clicked.txt b/public_html/data/pages/develop/api/efl/ui/popup/event/backwall_clicked.txt
new file mode 100644
index 00000000..ce7daee5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/popup/event/backwall_clicked.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Popup: backwall,clicked~~
+
+===== Description =====
+
+%%This is called whenever the user clicks the backwall part of the Popup.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:popup:event:backwall_clicked:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+backwall,clicked;
+
+
+===== C information =====
+
+
+EFL_UI_POPUP_EVENT_BACKWALL_CLICKED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_popup_event_backwall_clicked(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_POPUP_EVENT_BACKWALL_CLICKED, on_efl_ui_popup_event_backwall_clicked, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/popup/event/timeout.txt b/public_html/data/pages/develop/api/efl/ui/popup/event/timeout.txt
new file mode 100644
index 00000000..cc8f8b1b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/popup/event/timeout.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Popup: timeout~~
+
+===== Description =====
+
+%%This is called when Popup times out.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:popup:event:timeout:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+timeout;
+
+
+===== C information =====
+
+
+EFL_UI_POPUP_EVENT_TIMEOUT(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_popup_event_timeout(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_POPUP_EVENT_TIMEOUT, on_efl_ui_popup_event_timeout, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/popup/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/popup/method/constructor.txt
new file mode 100644
index 00000000..5fc2eed9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/popup/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Popup.constructor~~
+====== Efl.Ui.Popup.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:popup:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/popup/method/content_unset.txt b/public_html/data/pages/develop/api/efl/ui/popup/method/content_unset.txt
new file mode 100644
index 00000000..8688af64
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/popup/method/content_unset.txt
@@ -0,0 +1,62 @@
+~~Title: Efl.Ui.Popup.content_unset~~
+====== Efl.Ui.Popup.content_unset ======
+
+===== Description =====
+
+%%Remove the sub-object currently set as content of this object and return it. This object becomes empty.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:popup:method:content_unset:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:content:method:content_unset|Efl.Content.content_unset]].//===== Signature =====
+
+
+content_unset @pure_virtual {
+ return: Efl.Gfx.Entity;
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_content_unset(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:content:method:content_unset|Efl.Content.content_unset]]
+ * [[:develop:api:efl:ui:check:method:content_unset|Efl.Ui.Check.content_unset]]
+ * [[:develop:api:efl:ui:win:method:content_unset|Efl.Ui.Win.content_unset]]
+ * [[:develop:api:efl:ui:default_item:method:content_unset|Efl.Ui.Default_Item.content_unset]]
+ * [[:develop:api:efl:ui:win_part:method:content_unset|Efl.Ui.Win_Part.content_unset]]
+ * [[:develop:api:efl:canvas:layout_part_external:method:content_unset|Efl.Canvas.Layout_Part_External.content_unset]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:method:content_unset|Efl.Ui.Navigation_Bar_Part_Back_Button.content_unset]]
+ * [[:develop:api:efl:ui:layout_part_legacy:method:content_unset|Efl.Ui.Layout_Part_Legacy.content_unset]]
+ * [[:develop:api:elm:dayselector:part:method:content_unset|Elm.Dayselector.Part.content_unset]]
+ * [[:develop:api:elm:entry:part:method:content_unset|Elm.Entry.Part.content_unset]]
+ * [[:develop:api:elm:naviframe:part:method:content_unset|Elm.Naviframe.Part.content_unset]]
+ * [[:develop:api:elm:ctxpopup:part:method:content_unset|Elm.Ctxpopup.Part.content_unset]]
+ * [[:develop:api:elm:fileselector:entry:part:method:content_unset|Elm.Fileselector.Entry.Part.content_unset]]
+ * [[:develop:api:elm:popup:part:method:content_unset|Elm.Popup.Part.content_unset]]
+ * [[:develop:api:elm:hover:part:method:content_unset|Elm.Hover.Part.content_unset]]
+ * [[:develop:api:elm:scroller:part:method:content_unset|Elm.Scroller.Part.content_unset]]
+ * [[:develop:api:elm:notify:part:method:content_unset|Elm.Notify.Part.content_unset]]
+ * [[:develop:api:efl:ui:panel:method:content_unset|Efl.Ui.Panel.content_unset]]
+ * [[:develop:api:elm:panel:part:method:content_unset|Elm.Panel.Part.content_unset]]
+ * [[:develop:api:efl:ui:tab_page:method:content_unset|Efl.Ui.Tab_Page.content_unset]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:content_unset|Efl.Ui.List_Placeholder_Item.content_unset]]
+ * [[:develop:api:elm:mapbuf:part:method:content_unset|Elm.Mapbuf.Part.content_unset]]
+ * [[:develop:api:efl:ui:scroller:method:content_unset|Efl.Ui.Scroller.content_unset]]
+ * [[:develop:api:efl:ui:flip_part:method:content_unset|Efl.Ui.Flip_Part.content_unset]]
+ * [[:develop:api:efl:canvas:layout_part_swallow:method:content_unset|Efl.Canvas.Layout_Part_Swallow.content_unset]]
+ * [[:develop:api:efl:ui:pan:method:content_unset|Efl.Ui.Pan.content_unset]]
+ * [[:develop:api:efl:ui:frame:method:content_unset|Efl.Ui.Frame.content_unset]]
+ * [[:develop:api:efl:ui:progressbar:method:content_unset|Efl.Ui.Progressbar.content_unset]]
+ * [[:develop:api:efl:ui:popup:method:content_unset|Efl.Ui.Popup.content_unset]]
+ * [[:develop:api:efl:ui:navigation_layout:method:content_unset|Efl.Ui.Navigation_Layout.content_unset]]
+ * [[:develop:api:elm:flip:part:method:content_unset|Elm.Flip.Part.content_unset]]
+ * [[:develop:api:efl:ui:button:method:content_unset|Efl.Ui.Button.content_unset]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:content_unset|Efl.Canvas.Layout_Part_Invalid.content_unset]]
+ * [[:develop:api:efl:ui:layout_part_content:method:content_unset|Efl.Ui.Layout_Part_Content.content_unset]]
+ * [[:develop:api:efl:ui:navigation_bar_part:method:content_unset|Efl.Ui.Navigation_Bar_Part.content_unset]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/popup/method/destructor.txt b/public_html/data/pages/develop/api/efl/ui/popup/method/destructor.txt
new file mode 100644
index 00000000..d7d223f5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/popup/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Ui.Popup.destructor~~
+====== Efl.Ui.Popup.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:popup:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/popup/method/group_calculate.txt b/public_html/data/pages/develop/api/efl/ui/popup/method/group_calculate.txt
new file mode 100644
index 00000000..1068f728
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/popup/method/group_calculate.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Ui.Popup.group_calculate~~
+====== Efl.Ui.Popup.group_calculate ======
+
+===== Description =====
+
+%%Triggers an immediate recalculation of this object's geometry.%%
+
+%%This will also reset the flag %%[[:develop:api:efl:canvas:group:property:group_need_recalculate|Efl.Canvas.Group.group_need_recalculate]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:popup:method:group_calculate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:group_calculate|Efl.Canvas.Group.group_calculate]].//===== Signature =====
+
+
+group_calculate {}
+
+
+===== C signature =====
+
+
+void efl_canvas_group_calculate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:group:method:group_calculate|Efl.Canvas.Group.group_calculate]]
+ * [[:develop:api:efl:canvas:event_grabber:method:group_calculate|Efl.Canvas.Event_Grabber.group_calculate]]
+ * [[:develop:api:efl:canvas:layout:method:group_calculate|Efl.Canvas.Layout.group_calculate]]
+ * [[:develop:api:efl:ui:widget:method:group_calculate|Efl.Ui.Widget.group_calculate]]
+ * [[:develop:api:efl:ui:table:method:group_calculate|Efl.Ui.Table.group_calculate]]
+ * [[:develop:api:efl:ui:box:method:group_calculate|Efl.Ui.Box.group_calculate]]
+ * [[:develop:api:efl:ui:layout_base:method:group_calculate|Efl.Ui.Layout_Base.group_calculate]]
+ * [[:develop:api:efl:ui:clock:method:group_calculate|Efl.Ui.Clock.group_calculate]]
+ * [[:develop:api:efl:ui:text:method:group_calculate|Efl.Ui.Text.group_calculate]]
+ * [[:develop:api:efl:ui:panel:method:group_calculate|Efl.Ui.Panel.group_calculate]]
+ * [[:develop:api:efl:ui:layout:method:group_calculate|Efl.Ui.Layout.group_calculate]]
+ * [[:develop:api:efl:ui:textpath:method:group_calculate|Efl.Ui.Textpath.group_calculate]]
+ * [[:develop:api:efl:ui:scroller:method:group_calculate|Efl.Ui.Scroller.group_calculate]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:group_calculate|Efl.Ui.Internal_Text_Scroller.group_calculate]]
+ * [[:develop:api:efl:ui:panes:method:group_calculate|Efl.Ui.Panes.group_calculate]]
+ * [[:develop:api:efl:ui:calendar:method:group_calculate|Efl.Ui.Calendar.group_calculate]]
+ * [[:develop:api:efl:ui:frame:method:group_calculate|Efl.Ui.Frame.group_calculate]]
+ * [[:develop:api:efl:ui:popup:method:group_calculate|Efl.Ui.Popup.group_calculate]]
+ * [[:develop:api:efl:ui:video:method:group_calculate|Efl.Ui.Video.group_calculate]]
+ * [[:develop:api:efl:ui:relative_layout:method:group_calculate|Efl.Ui.Relative_Layout.group_calculate]]
+ * [[:develop:api:efl:ui:pan:method:group_calculate|Efl.Ui.Pan.group_calculate]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:group_calculate|Efl.Ui.Image_Zoomable_Pan.group_calculate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/popup/method/part_get.txt b/public_html/data/pages/develop/api/efl/ui/popup/method/part_get.txt
new file mode 100644
index 00000000..3dee0a24
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/popup/method/part_get.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Popup.part_get~~
+====== Efl.Ui.Popup.part_get ======
+
+===== Description =====
+
+%%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:popup:method:part_get:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:part_get|Efl.Part.part_get]].//===== Signature =====
+
+
+part_get @protected @const @pure_virtual {
+ params {
+ @in name: string;
+ }
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_part_get(const Eo *obj, const char *name);
+
+
+===== Parameters =====
+
+ * **name** //(in)// - %%The part name.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:part:method:part_get|Efl.Part.part_get]]
+ * [[:develop:api:efl:canvas:layout:method:part_get|Efl.Canvas.Layout.part_get]]
+ * [[:develop:api:efl:ui:widget:method:part_get|Efl.Ui.Widget.part_get]]
+ * [[:develop:api:efl:ui:win:method:part_get|Efl.Ui.Win.part_get]]
+ * [[:develop:api:efl:ui:flip:method:part_get|Efl.Ui.Flip.part_get]]
+ * [[:develop:api:efl:ui:layout_base:method:part_get|Efl.Ui.Layout_Base.part_get]]
+ * [[:develop:api:efl:ui:text:method:part_get|Efl.Ui.Text.part_get]]
+ * [[:develop:api:efl:ui:default_item:method:part_get|Efl.Ui.Default_Item.part_get]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:part_get|Efl.Ui.List_Placeholder_Item.part_get]]
+ * [[:develop:api:efl:ui:textpath:method:part_get|Efl.Ui.Textpath.part_get]]
+ * [[:develop:api:efl:ui:panes:method:part_get|Efl.Ui.Panes.part_get]]
+ * [[:develop:api:efl:ui:progressbar:method:part_get|Efl.Ui.Progressbar.part_get]]
+ * [[:develop:api:efl:ui:popup:method:part_get|Efl.Ui.Popup.part_get]]
+ * [[:develop:api:efl:ui:alert_popup:method:part_get|Efl.Ui.Alert_Popup.part_get]]
+ * [[:develop:api:efl:ui:navigation_bar:method:part_get|Efl.Ui.Navigation_Bar.part_get]]
+ * [[:develop:api:efl:ui:widget_factory:method:part_get|Efl.Ui.Widget_Factory.part_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/popup/property/align.txt b/public_html/data/pages/develop/api/efl/ui/popup/property/align.txt
new file mode 100644
index 00000000..cf4bd28c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/popup/property/align.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Popup.align~~
+====== Efl.Ui.Popup.align ======
+
+===== Description =====
+
+%%The align property specifies a Popup's current positioning relative to its anchor.%%
+
+%%When set, this property will override any user-provided value for the widget's %%[[:develop:api:efl:gfx:entity:property:position|Efl.Gfx.Entity.position]]%% property.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:popup:property:align:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **type** - %%Alignment of the Popup relative to its anchor. The default is %%[[:develop:api:efl:ui:popup_align|Efl.Ui.Popup_Align.none]]%%.%%
+
+===== Signature =====
+
+
+@property align {
+ get {}
+ set {}
+ values {
+ type: Efl.Ui.Popup_Align;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Popup_Align efl_ui_popup_align_get(const Eo *obj);
+void efl_ui_popup_align_set(Eo *obj, Efl_Ui_Popup_Align type);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:popup:property:align|Efl.Ui.Popup.align]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/popup/property/align_priority.txt b/public_html/data/pages/develop/api/efl/ui/popup/property/align_priority.txt
new file mode 100644
index 00000000..233dfdb4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/popup/property/align_priority.txt
@@ -0,0 +1,47 @@
+~~Title: Efl.Ui.Popup.align_priority~~
+====== Efl.Ui.Popup.align_priority ======
+
+===== Description =====
+
+%%This is the priority in which alignments will be tested using the anchor object if the value of %%[[:develop:api:efl:ui:popup:property:align|Efl.Ui.Popup.align]]%% is determined to be invalid. If a given alignment would result in the popup being partially or fully outside the visible area of the window, it is deemed invalid, and the next alignment is tested until either the priority list is exhausted or a usable alignment is found.%%
+
+%%An alignment will also be deemed invalid if the popup occludes its anchor object, except if %%[[:develop:api:efl:ui:popup_align|Efl.Ui.Popup_Align.center]]%% is specified.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:popup:property:align_priority:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **first** - %%First alignment. The default is %%[[:develop:api:efl:ui:popup_align|Efl.Ui.Popup_Align.top]]%%.%%
+ * **second** - %%Second alignment. The default is %%[[:develop:api:efl:ui:popup_align|Efl.Ui.Popup_Align.left]]%%.%%
+ * **third** - %%Third alignment. The default is %%[[:develop:api:efl:ui:popup_align|Efl.Ui.Popup_Align.right]]%%.%%
+ * **fourth** - %%Fourth alignment. The default is %%[[:develop:api:efl:ui:popup_align|Efl.Ui.Popup_Align.bottom]]%%.%%
+ * **fifth** - %%Fifth alignment. The default is %%[[:develop:api:efl:ui:popup_align|Efl.Ui.Popup_Align.center]]%%.%%
+
+===== Signature =====
+
+
+@property align_priority {
+ get {}
+ set {}
+ values {
+ first: Efl.Ui.Popup_Align;
+ second: Efl.Ui.Popup_Align;
+ third: Efl.Ui.Popup_Align;
+ fourth: Efl.Ui.Popup_Align;
+ fifth: Efl.Ui.Popup_Align;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_popup_align_priority_get(const Eo *obj, Efl_Ui_Popup_Align *first, Efl_Ui_Popup_Align *second, Efl_Ui_Popup_Align *third, Efl_Ui_Popup_Align *fourth, Efl_Ui_Popup_Align *fifth);
+void efl_ui_popup_align_priority_set(Eo *obj, Efl_Ui_Popup_Align first, Efl_Ui_Popup_Align second, Efl_Ui_Popup_Align third, Efl_Ui_Popup_Align fourth, Efl_Ui_Popup_Align fifth);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:popup:property:align_priority|Efl.Ui.Popup.align_priority]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/popup/property/anchor.txt b/public_html/data/pages/develop/api/efl/ui/popup/property/anchor.txt
new file mode 100644
index 00000000..aef745ac
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/popup/property/anchor.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Popup.anchor~~
+====== Efl.Ui.Popup.anchor ======
+
+===== Description =====
+
+%%The anchor object is the reference object for positioning a Popup using the %%[[:develop:api:efl:ui:popup:property:align|Efl.Ui.Popup.align]]%% and %%[[:develop:api:efl:ui:popup:property:align_priority|Efl.Ui.Popup.align_priority]]%% properties.%%
+
+%%A Popup will recalculate its alignment relative to its anchor and change its position when: - the anchor object is moved (unless the anchor is a window) - the anchor object is resized - the Popup is resized - the parent window is resized%%
+
+%%If %%[[:develop:api:efl:ui:popup:property:anchor|Efl.Ui.Popup.anchor.get]]%% returns %%''NULL''%%, the anchor is the parent window of the Popup. If the anchor object is set to %%''NULL''%%, the Popup will no longer recalculate its alignment or change its position under any circumstance. If the Popup is moved by using %%[[:develop:api:efl:gfx:entity:property:position|Efl.Gfx.Entity.position.set]]%%, %%''anchor''%% is set %%''NULL''%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:popup:property:anchor:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **anchor** - %%The object which Popup is following. By default this is %%''NULL''%%.%%
+
+===== Signature =====
+
+
+@property anchor {
+ get {}
+ set {}
+ values {
+ anchor: Efl.Canvas.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Canvas_Object *efl_ui_popup_anchor_get(const Eo *obj);
+void efl_ui_popup_anchor_set(Eo *obj, Efl_Canvas_Object *anchor);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:popup:property:anchor|Efl.Ui.Popup.anchor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/popup/property/closing_timeout.txt b/public_html/data/pages/develop/api/efl/ui/popup/property/closing_timeout.txt
new file mode 100644
index 00000000..6c78e1c9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/popup/property/closing_timeout.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Popup.closing_timeout~~
+====== Efl.Ui.Popup.closing_timeout ======
+
+===== Description =====
+
+%%The closing_timeout property is the time after which the Popup widget will be automatically deleted.%%
+
+%%The timer is initiated at the time when the popup is shown. If the value is changed prior to the timer expiring, the existing timer will be deleted. If the new value is greater than $0, a new timer will be created.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:popup:property:closing_timeout:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **time** - %%If greater than $0, the Popup will close automatically after the value in seconds. The default is to not automatically delete the Popup.%%
+
+===== Signature =====
+
+
+@property closing_timeout {
+ get {}
+ set {}
+ values {
+ time: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_ui_popup_closing_timeout_get(const Eo *obj);
+void efl_ui_popup_closing_timeout_set(Eo *obj, double time);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:popup:property:closing_timeout|Efl.Ui.Popup.closing_timeout]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/popup/property/content.txt b/public_html/data/pages/develop/api/efl/ui/popup/property/content.txt
new file mode 100644
index 00000000..12362347
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/popup/property/content.txt
@@ -0,0 +1,80 @@
+~~Title: Efl.Ui.Popup.content~~
+====== Efl.Ui.Popup.content ======
+
+===== Description =====
+
+%%Sub-object currently set as this object's single content.%%
+
+%%If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid %%''content''%% is set the object will become empty (it will have no sub-object).%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:popup:property:content:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **content** - %%The sub-object.%%
+
+//Overridden from [[:develop:api:efl:content:property:content|Efl.Content.content]] **(get, set)**.//===== Signature =====
+
+
+@property content @pure_virtual {
+ get {}
+ set {
+ return: bool;
+ }
+ values {
+ content: Efl.Gfx.Entity;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_content_get(const Eo *obj);
+Eina_Bool efl_content_set(Eo *obj, Efl_Gfx_Entity *content);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:content:property:content|Efl.Content.content]]
+ * [[:develop:api:efl:ui:check:property:content|Efl.Ui.Check.content]]
+ * [[:develop:api:efl:ui:win:property:content|Efl.Ui.Win.content]]
+ * [[:develop:api:efl:ui:default_item:property:content|Efl.Ui.Default_Item.content]]
+ * [[:develop:api:efl:ui:win_part:property:content|Efl.Ui.Win_Part.content]]
+ * [[:develop:api:efl:canvas:layout_part_external:property:content|Efl.Canvas.Layout_Part_External.content]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:property:content|Efl.Ui.Navigation_Bar_Part_Back_Button.content]]
+ * [[:develop:api:efl:ui:layout_part_legacy:property:content|Efl.Ui.Layout_Part_Legacy.content]]
+ * [[:develop:api:elm:dayselector:part:property:content|Elm.Dayselector.Part.content]]
+ * [[:develop:api:elm:entry:part:property:content|Elm.Entry.Part.content]]
+ * [[:develop:api:elm:naviframe:part:property:content|Elm.Naviframe.Part.content]]
+ * [[:develop:api:elm:ctxpopup:part:property:content|Elm.Ctxpopup.Part.content]]
+ * [[:develop:api:elm:fileselector:entry:part:property:content|Elm.Fileselector.Entry.Part.content]]
+ * [[:develop:api:elm:popup:part:property:content|Elm.Popup.Part.content]]
+ * [[:develop:api:elm:hover:part:property:content|Elm.Hover.Part.content]]
+ * [[:develop:api:elm:scroller:part:property:content|Elm.Scroller.Part.content]]
+ * [[:develop:api:elm:player:part:property:content|Elm.Player.Part.content]]
+ * [[:develop:api:elm:notify:part:property:content|Elm.Notify.Part.content]]
+ * [[:develop:api:efl:ui:panel:property:content|Efl.Ui.Panel.content]]
+ * [[:develop:api:elm:panel:part:property:content|Elm.Panel.Part.content]]
+ * [[:develop:api:efl:ui:tab_page:property:content|Efl.Ui.Tab_Page.content]]
+ * [[:develop:api:efl:ui:list_placeholder_item:property:content|Efl.Ui.List_Placeholder_Item.content]]
+ * [[:develop:api:elm:mapbuf:part:property:content|Elm.Mapbuf.Part.content]]
+ * [[:develop:api:efl:ui:scroller:property:content|Efl.Ui.Scroller.content]]
+ * [[:develop:api:efl:ui:flip_part:property:content|Efl.Ui.Flip_Part.content]]
+ * [[:develop:api:efl:canvas:layout_part_swallow:property:content|Efl.Canvas.Layout_Part_Swallow.content]]
+ * [[:develop:api:efl:ui:pan:property:content|Efl.Ui.Pan.content]]
+ * [[:develop:api:efl:ui:frame:property:content|Efl.Ui.Frame.content]]
+ * [[:develop:api:efl:ui:progressbar:property:content|Efl.Ui.Progressbar.content]]
+ * [[:develop:api:efl:ui:popup:property:content|Efl.Ui.Popup.content]]
+ * [[:develop:api:efl:ui:navigation_layout:property:content|Efl.Ui.Navigation_Layout.content]]
+ * [[:develop:api:elm:flip:part:property:content|Elm.Flip.Part.content]]
+ * [[:develop:api:efl:ui:button:property:content|Efl.Ui.Button.content]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:content|Efl.Canvas.Layout_Part_Invalid.content]]
+ * [[:develop:api:efl:ui:layout_part_content:property:content|Efl.Ui.Layout_Part_Content.content]]
+ * [[:develop:api:efl:ui:progressbar_legacy_part:property:content|Efl.Ui.Progressbar_Legacy_Part.content]]
+ * [[:develop:api:efl:ui:check_legacy_part:property:content|Efl.Ui.Check_Legacy_Part.content]]
+ * [[:develop:api:efl:ui:button_legacy_part:property:content|Efl.Ui.Button_Legacy_Part.content]]
+ * [[:develop:api:efl:ui:navigation_bar_part:property:content|Efl.Ui.Navigation_Bar_Part.content]]
+ * [[:develop:api:efl:ui:radio_legacy_part:property:content|Efl.Ui.Radio_Legacy_Part.content]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/popup/property/position.txt b/public_html/data/pages/develop/api/efl/ui/popup/property/position.txt
new file mode 100644
index 00000000..d48b5a36
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/popup/property/position.txt
@@ -0,0 +1,76 @@
+~~Title: Efl.Ui.Popup.position~~
+====== Efl.Ui.Popup.position ======
+
+===== Description =====
+
+%%The 2D position of a canvas object.%%
+
+%%The position is absolute, in pixels, relative to the top-left corner of the window, within its border decorations (application space).%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:popup:property:position:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **pos** - %%A 2D coordinate in pixel units.%%
+==== Getter ====
+
+%%Retrieves the position of the given canvas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:popup:property:position:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Moves the given canvas object to the given location inside its canvas' viewport. If unchanged this call may be entirely skipped, but if changed this will trigger move events, as well as potential pointer,in or pointer,out events.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:popup:property:position:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:widget:property:position|Efl.Gfx.Entity.position]] **(set)**.//===== Signature =====
+
+
+@property position @pure_virtual {
+ get {}
+ set {}
+ values {
+ pos: Eina.Position2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Position2D efl_gfx_entity_position_get(const Eo *obj);
+void efl_gfx_entity_position_set(Eo *obj, Eina_Position2D pos);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:position|Efl.Gfx.Entity.position]]
+ * [[:develop:api:efl:canvas:vg:node:property:position|Efl.Canvas.Vg.Node.position]]
+ * [[:develop:api:efl:ui:win:property:position|Efl.Ui.Win.position]]
+ * [[:develop:api:efl:ui:image:property:position|Efl.Ui.Image.position]]
+ * [[:develop:api:efl:ui:image_zoomable:property:position|Efl.Ui.Image_Zoomable.position]]
+ * [[:develop:api:efl:ui:widget:property:position|Efl.Ui.Widget.position]]
+ * [[:develop:api:efl:ui:table:property:position|Efl.Ui.Table.position]]
+ * [[:develop:api:efl:ui:box:property:position|Efl.Ui.Box.position]]
+ * [[:develop:api:efl:ui:animation_view:property:position|Efl.Ui.Animation_View.position]]
+ * [[:develop:api:efl:ui:text:property:position|Efl.Ui.Text.position]]
+ * [[:develop:api:efl:ui:textpath:property:position|Efl.Ui.Textpath.position]]
+ * [[:develop:api:efl:ui:popup:property:position|Efl.Ui.Popup.position]]
+ * [[:develop:api:efl:ui:relative_layout:property:position|Efl.Ui.Relative_Layout.position]]
+ * [[:develop:api:efl:canvas:object:property:position|Efl.Canvas.Object.position]]
+ * [[:develop:api:efl:canvas:group:property:position|Efl.Canvas.Group.position]]
+ * [[:develop:api:efl:canvas:video:property:position|Efl.Canvas.Video.position]]
+ * [[:develop:api:efl:canvas:event_grabber:property:position|Efl.Canvas.Event_Grabber.position]]
+ * [[:develop:api:efl:canvas:layout:property:position|Efl.Canvas.Layout.position]]
+ * [[:develop:api:efl:ui:pan:property:position|Efl.Ui.Pan.position]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:property:position|Efl.Ui.Image_Zoomable_Pan.position]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/popup/property/size.txt b/public_html/data/pages/develop/api/efl/ui/popup/property/size.txt
new file mode 100644
index 00000000..023c9c31
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/popup/property/size.txt
@@ -0,0 +1,76 @@
+~~Title: Efl.Ui.Popup.size~~
+====== Efl.Ui.Popup.size ======
+
+===== Description =====
+
+%%The 2D size of a canvas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:popup:property:size:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **size** - %%A 2D size in pixel units.%%
+==== Getter ====
+
+%%Retrieves the (rectangular) size of the given Evas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:popup:property:size:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Changes the size of the given object.%%
+
+%%Note that setting the actual size of an object might be the job of its container, so this function might have no effect. Look at %%[[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]%% instead, when manipulating widgets.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:popup:property:size:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:widget:property:size|Efl.Gfx.Entity.size]] **(set)**.//===== Signature =====
+
+
+@property size @pure_virtual {
+ get {}
+ set {}
+ values {
+ size: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_entity_size_get(const Eo *obj);
+void efl_gfx_entity_size_set(Eo *obj, Eina_Size2D size);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:size|Efl.Gfx.Entity.size]]
+ * [[:develop:api:efl:canvas:vg:node:property:size|Efl.Canvas.Vg.Node.size]]
+ * [[:develop:api:efl:ui:win:property:size|Efl.Ui.Win.size]]
+ * [[:develop:api:efl:ui:image:property:size|Efl.Ui.Image.size]]
+ * [[:develop:api:efl:ui:image_zoomable:property:size|Efl.Ui.Image_Zoomable.size]]
+ * [[:develop:api:efl:ui:widget:property:size|Efl.Ui.Widget.size]]
+ * [[:develop:api:efl:ui:table:property:size|Efl.Ui.Table.size]]
+ * [[:develop:api:efl:ui:box:property:size|Efl.Ui.Box.size]]
+ * [[:develop:api:efl:ui:animation_view:property:size|Efl.Ui.Animation_View.size]]
+ * [[:develop:api:efl:ui:text:property:size|Efl.Ui.Text.size]]
+ * [[:develop:api:efl:ui:panel:property:size|Efl.Ui.Panel.size]]
+ * [[:develop:api:efl:ui:textpath:property:size|Efl.Ui.Textpath.size]]
+ * [[:develop:api:efl:ui:popup:property:size|Efl.Ui.Popup.size]]
+ * [[:develop:api:efl:ui:relative_layout:property:size|Efl.Ui.Relative_Layout.size]]
+ * [[:develop:api:efl:canvas:object:property:size|Efl.Canvas.Object.size]]
+ * [[:develop:api:efl:canvas:video:property:size|Efl.Canvas.Video.size]]
+ * [[:develop:api:efl:canvas:event_grabber:property:size|Efl.Canvas.Event_Grabber.size]]
+ * [[:develop:api:efl:canvas:layout:property:size|Efl.Canvas.Layout.size]]
+ * [[:develop:api:efl:ui:pan:property:size|Efl.Ui.Pan.size]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:property:size|Efl.Ui.Image_Zoomable_Pan.size]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/popup/property/visible.txt b/public_html/data/pages/develop/api/efl/ui/popup/property/visible.txt
new file mode 100644
index 00000000..beccd8d3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/popup/property/visible.txt
@@ -0,0 +1,72 @@
+~~Title: Efl.Ui.Popup.visible~~
+====== Efl.Ui.Popup.visible ======
+
+===== Description =====
+
+%%The visibility of a canvas object.%%
+
+%%All canvas objects will become visible by default just before render. This means that it is not required to call %%[[:develop:api:efl:gfx:entity:property:visible|Efl.Gfx.Entity.visible.set]]%% after creating an object unless you want to create it without showing it. Note that this behavior is new since 1.21, and only applies to canvas objects created with the EO API (i.e. not the legacy C-only API). Other types of Gfx objects may or may not be visible by default.%%
+
+%%Note that many other parameters can prevent a visible object from actually being "visible" on screen. For instance if its color is fully transparent, or its parent is hidden, or it is clipped out, etc...%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:popup:property:visible:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **v** - %%%%''true''%% if to make the object visible, %%''false''%% otherwise%%
+==== Getter ====
+
+%%Retrieves whether or not the given canvas object is visible.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:popup:property:visible:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Shows or hides this object.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:popup:property:visible:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:widget:property:visible|Efl.Gfx.Entity.visible]] **(set)**.//===== Signature =====
+
+
+@property visible @pure_virtual {
+ get {}
+ set {}
+ values {
+ v: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_gfx_entity_visible_get(const Eo *obj);
+void efl_gfx_entity_visible_set(Eo *obj, Eina_Bool v);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:visible|Efl.Gfx.Entity.visible]]
+ * [[:develop:api:efl:canvas:vg:node:property:visible|Efl.Canvas.Vg.Node.visible]]
+ * [[:develop:api:efl:ui:win:property:visible|Efl.Ui.Win.visible]]
+ * [[:develop:api:efl:ui:image:property:visible|Efl.Ui.Image.visible]]
+ * [[:develop:api:efl:ui:widget:property:visible|Efl.Ui.Widget.visible]]
+ * [[:develop:api:efl:ui:animation_view:property:visible|Efl.Ui.Animation_View.visible]]
+ * [[:develop:api:efl:ui:text:property:visible|Efl.Ui.Text.visible]]
+ * [[:develop:api:efl:ui:popup:property:visible|Efl.Ui.Popup.visible]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:property:visible|Efl.Ui.Navigation_Bar_Part_Back_Button.visible]]
+ * [[:develop:api:efl:canvas:object:property:visible|Efl.Canvas.Object.visible]]
+ * [[:develop:api:efl:canvas:group:property:visible|Efl.Canvas.Group.visible]]
+ * [[:develop:api:efl:canvas:event_grabber:property:visible|Efl.Canvas.Event_Grabber.visible]]
+ * [[:develop:api:efl:canvas:layout:property:visible|Efl.Canvas.Layout.visible]]
+ * [[:develop:api:efl:ui:pan:property:visible|Efl.Ui.Pan.visible]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/popup/property/widget_parent.txt b/public_html/data/pages/develop/api/efl/ui/popup/property/widget_parent.txt
new file mode 100644
index 00000000..84d970e1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/popup/property/widget_parent.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Popup.widget_parent~~
+====== Efl.Ui.Popup.widget_parent ======
+
+===== Description =====
+
+%%The internal parent of this widget.%%
+
+%%%%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% objects have a parent hierarchy that may differ slightly from their %%[[:develop:api:efl:object|Efl.Object]]%% or %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% hierarchy. This is meant for internal handling.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:popup:property:widget_parent:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **parent** - %%Widget parent object%%
+
+//Overridden from [[:develop:api:efl:ui:widget:property:widget_parent|Efl.Ui.Widget.widget_parent]] **(set)**.//===== Signature =====
+
+
+@property widget_parent @protected {
+ get {}
+ set {}
+ values {
+ parent: Efl.Ui.Widget;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Widget *efl_ui_widget_parent_get(const Eo *obj);
+void efl_ui_widget_parent_set(Eo *obj, Efl_Ui_Widget *parent);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:property:widget_parent|Efl.Ui.Widget.widget_parent]]
+ * [[:develop:api:efl:ui:popup:property:widget_parent|Efl.Ui.Popup.widget_parent]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/popup_align.txt b/public_html/data/pages/develop/api/efl/ui/popup_align.txt
new file mode 100644
index 00000000..27cfb2d9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/popup_align.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Popup_Align~~
+
+===== Description =====
+
+%%This is the alignment method for positioning Popup widgets.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:popup_align:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:ui:popup_align:fields&nouser&nolink&nodate}}
+
+ * **none** - %%Popup not aligned.%%
+ * **center** - %%Popup is aligned to the center of its anchor object.%%
+ * **left** - %%Popup's left edge is aligned to the left side of its anchor object.%%
+ * **right** - %%Popup's right edge is aligned to the right side of its anchor object.%%
+ * **top** - %%Popup's top is aligned to the top of its anchor object.%%
+ * **bottom** - %%Popup's bottom is aligned to the bottom of its anchor object.%%
+
+===== Signature =====
+
+
+enum Efl.Ui.Popup_Align {
+ none: 0,
+ center,
+ left,
+ right,
+ top,
+ bottom
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_UI_POPUP_ALIGN_NONE = 0,
+ EFL_UI_POPUP_ALIGN_CENTER,
+ EFL_UI_POPUP_ALIGN_LEFT,
+ EFL_UI_POPUP_ALIGN_RIGHT,
+ EFL_UI_POPUP_ALIGN_TOP,
+ EFL_UI_POPUP_ALIGN_BOTTOM
+} Efl_Ui_Popup_Align;
+
diff --git a/public_html/data/pages/develop/api/efl/ui/popup_part_backwall.txt b/public_html/data/pages/develop/api/efl/ui/popup_part_backwall.txt
new file mode 100644
index 00000000..9acc9a3a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/popup_part_backwall.txt
@@ -0,0 +1,118 @@
+~~Title: Efl.Ui.Popup_Part_Backwall~~
+====== Efl.Ui.Popup_Part_Backwall (class) ======
+
+===== Description =====
+
+%%A Popup backwall is the background object for an %%[[:develop:api:efl:ui:popup|Efl.Ui.Popup]]%% widget. It can be returned from a given Popup widget by using the %%[[:develop:api:efl:part|Efl.Part]]%% API to fetch the "backwall" part.%%
+
+%%This object provides functionality for determining the look and interaction methods of a Popup's background.%%
+
+%%If a Popup should allow input events to reach the objects behind the Popup, %%[[:develop:api:efl:ui:popup_part_backwall:property:repeat_events|Efl.Ui.Popup_Part_Backwall.repeat_events]]%% can be enabled.%%
+
+%%To set an image to be used as a background for the Popup, the %%[[:develop:api:efl:file|Efl.File]]%% API can be used directly on the backwall object.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:popup_part_backwall:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:layout_part|Efl.Ui.Layout_Part]] //(class)// => [[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:layout_part|Efl.Ui.Layout_Part]] //(class)//
+ * [[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:file|Efl.File]] //(mixin)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:popup_part_backwall:property:file|file]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:file|Efl.File]]]//\\
+> %%The file path from where an object will fetch the data.%%
+
+const char *efl_file_get(const Eo *obj);
+Eina_Error efl_file_set(Eo *obj, const char *file);
+
+\\
+**[[:develop:api:efl:ui:popup_part_backwall:property:key|key]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:file|Efl.File]]]//\\
+> %%The key which corresponds to the target data within a file.%%
+
+const char *efl_file_key_get(const Eo *obj);
+void efl_file_key_set(Eo *obj, const char *key);
+
+\\
+**[[:develop:api:efl:ui:popup_part_backwall:method:load|load]]**// [Overridden from [[:develop:api:efl:file|Efl.File]]]//\\
+> %%Perform all necessary operations to open and load file data into the object using the %%[[:develop:api:efl:file:property:file|Efl.File.file]]%% (or %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap]]%%) and %%[[:develop:api:efl:file:property:key|Efl.File.key]]%% properties.%%
+
+Eina_Error efl_file_load(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:popup_part_backwall:property:repeat_events|repeat_events]]** //**(get, set)**//\\
+> %%If this property is set to %%''true''%%, input events will be able to reach objects below the Popup. This allows for e.g., a click to activate a widget below the Popup while the Popup is active.%%
+
+Eina_Bool efl_ui_popup_part_backwall_repeat_events_get(const Eo *obj);
+void efl_ui_popup_part_backwall_repeat_events_set(Eo *obj, Eina_Bool repeat);
+
+\\
+**[[:develop:api:efl:ui:popup_part_backwall:method:unload|unload]]**// [Overridden from [[:develop:api:efl:file|Efl.File]]]//\\
+> %%Perform all necessary operations to unload file data from the object.%%
+
+void efl_file_unload(Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:file|Efl.File]] ^^^
+| | **[[:develop:api:efl:file:property:loaded|loaded]]** //**(get)**// | |
+| | **[[:develop:api:efl:file:property:mmap|mmap]]** //**(get, set)**// | %%The mmaped file from where an object will fetch the real data (it must be an %%[[:develop:api:eina:file|Eina.File]]%%).%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:constructor|constructor]]** | %%Implement this method to provide optional initialization code for your object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]] ^^^
+| | **[[:develop:api:efl:ui:widget_part:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| | **[[:develop:api:efl:ui:widget_part:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/popup_part_backwall/method/load.txt b/public_html/data/pages/develop/api/efl/ui/popup_part_backwall/method/load.txt
new file mode 100644
index 00000000..efe25423
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/popup_part_backwall/method/load.txt
@@ -0,0 +1,48 @@
+~~Title: Efl.Ui.Popup_Part_Backwall.load~~
+====== Efl.Ui.Popup_Part_Backwall.load ======
+
+===== Description =====
+
+%%Perform all necessary operations to open and load file data into the object using the %%[[:develop:api:efl:file:property:file|Efl.File.file]]%% (or %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap]]%%) and %%[[:develop:api:efl:file:property:key|Efl.File.key]]%% properties.%%
+
+%%In the case where %%[[:develop:api:efl:file:property:file|Efl.File.file.set]]%% has been called on an object, this will internally open the file and call %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap.set]]%% on the object using the opened file handle.%%
+
+%%Calling %%[[:develop:api:efl:file:method:load|Efl.File.load]]%% on an object which has already performed file operations based on the currently set properties will have no effect.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:popup_part_backwall:method:load:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:file:method:load|Efl.File.load]].//===== Signature =====
+
+
+load {
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_file_load(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:method:load|Efl.File.load]]
+ * [[:develop:api:evas:canvas3d:mesh:method:load|Evas.Canvas3D.Mesh.load]]
+ * [[:develop:api:efl:ui:win_part:method:load|Efl.Ui.Win_Part.load]]
+ * [[:develop:api:efl:canvas:video:method:load|Efl.Canvas.Video.load]]
+ * [[:develop:api:efl:ui:text:method:load|Efl.Ui.Text.load]]
+ * [[:develop:api:efl:canvas:image:method:load|Efl.Canvas.Image.load]]
+ * [[:develop:api:efl:canvas:layout:method:load|Efl.Canvas.Layout.load]]
+ * [[:develop:api:efl:ui:layout:method:load|Efl.Ui.Layout.load]]
+ * [[:develop:api:efl:ui:image:method:load|Efl.Ui.Image.load]]
+ * [[:develop:api:efl:ui:image_zoomable:method:load|Efl.Ui.Image_Zoomable.load]]
+ * [[:develop:api:efl:ui:animation_view:method:load|Efl.Ui.Animation_View.load]]
+ * [[:develop:api:evas:canvas3d:texture:method:load|Evas.Canvas3D.Texture.load]]
+ * [[:develop:api:efl:canvas:vg:object:method:load|Efl.Canvas.Vg.Object.load]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:load|Efl.Ui.Widget_Part_Bg.load]]
+ * [[:develop:api:efl:ui:video:method:load|Efl.Ui.Video.load]]
+ * [[:develop:api:efl:ui:popup_part_backwall:method:load|Efl.Ui.Popup_Part_Backwall.load]]
+ * [[:develop:api:efl:ui:bg:method:load|Efl.Ui.Bg.load]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/popup_part_backwall/method/unload.txt b/public_html/data/pages/develop/api/efl/ui/popup_part_backwall/method/unload.txt
new file mode 100644
index 00000000..0e294a01
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/popup_part_backwall/method/unload.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Popup_Part_Backwall.unload~~
+====== Efl.Ui.Popup_Part_Backwall.unload ======
+
+===== Description =====
+
+%%Perform all necessary operations to unload file data from the object.%%
+
+%%In the case where %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap.set]]%% has been externally called on an object, the file handle stored in the object will be preserved.%%
+
+%%Calling %%[[:develop:api:efl:file:method:unload|Efl.File.unload]]%% on an object which is not currently loaded will have no effect.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:popup_part_backwall:method:unload:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:file:method:unload|Efl.File.unload]].//===== Signature =====
+
+
+unload {}
+
+
+===== C signature =====
+
+
+void efl_file_unload(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:method:unload|Efl.File.unload]]
+ * [[:develop:api:evas:canvas3d:mesh:method:unload|Evas.Canvas3D.Mesh.unload]]
+ * [[:develop:api:efl:ui:win_part:method:unload|Efl.Ui.Win_Part.unload]]
+ * [[:develop:api:efl:canvas:video:method:unload|Efl.Canvas.Video.unload]]
+ * [[:develop:api:efl:ui:text:method:unload|Efl.Ui.Text.unload]]
+ * [[:develop:api:efl:canvas:image:method:unload|Efl.Canvas.Image.unload]]
+ * [[:develop:api:efl:canvas:layout:method:unload|Efl.Canvas.Layout.unload]]
+ * [[:develop:api:efl:ui:layout:method:unload|Efl.Ui.Layout.unload]]
+ * [[:develop:api:efl:ui:image:method:unload|Efl.Ui.Image.unload]]
+ * [[:develop:api:efl:ui:image_zoomable:method:unload|Efl.Ui.Image_Zoomable.unload]]
+ * [[:develop:api:efl:ui:animation_view:method:unload|Efl.Ui.Animation_View.unload]]
+ * [[:develop:api:evas:canvas3d:texture:method:unload|Evas.Canvas3D.Texture.unload]]
+ * [[:develop:api:efl:canvas:vg:object:method:unload|Efl.Canvas.Vg.Object.unload]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:unload|Efl.Ui.Widget_Part_Bg.unload]]
+ * [[:develop:api:efl:ui:video:method:unload|Efl.Ui.Video.unload]]
+ * [[:develop:api:efl:ui:popup_part_backwall:method:unload|Efl.Ui.Popup_Part_Backwall.unload]]
+ * [[:develop:api:efl:ui:bg:method:unload|Efl.Ui.Bg.unload]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/popup_part_backwall/property/file.txt b/public_html/data/pages/develop/api/efl/ui/popup_part_backwall/property/file.txt
new file mode 100644
index 00000000..8667616f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/popup_part_backwall/property/file.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Ui.Popup_Part_Backwall.file~~
+====== Efl.Ui.Popup_Part_Backwall.file ======
+
+===== Description =====
+
+%%The file path from where an object will fetch the data.%%
+
+%%If file is set during object construction, the object will automatically call %%[[:develop:api:efl:file:method:load|Efl.File.load]]%% during the finalize phase of construction.%%
+
+%%You must not modify the strings on the returned pointers.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:popup_part_backwall:property:file:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **file** - %%The file path.%%
+
+//Overridden from [[:develop:api:efl:file:property:file|Efl.File.file]] **(get)**.//===== Signature =====
+
+
+@property file {
+ get {}
+ set {
+ return: Eina.Error;
+ }
+ values {
+ file: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_file_get(const Eo *obj);
+Eina_Error efl_file_set(Eo *obj, const char *file);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:property:file|Efl.File.file]]
+ * [[:develop:api:efl:ui:win_part:property:file|Efl.Ui.Win_Part.file]]
+ * [[:develop:api:efl:canvas:video:property:file|Efl.Canvas.Video.file]]
+ * [[:develop:api:efl:ui:text:property:file|Efl.Ui.Text.file]]
+ * [[:develop:api:efl:ui:layout:property:file|Efl.Ui.Layout.file]]
+ * [[:develop:api:efl:ui:image_zoomable:property:file|Efl.Ui.Image_Zoomable.file]]
+ * [[:develop:api:efl:canvas:vg:object:property:file|Efl.Canvas.Vg.Object.file]]
+ * [[:develop:api:efl:ui:widget_part_bg:property:file|Efl.Ui.Widget_Part_Bg.file]]
+ * [[:develop:api:efl:ui:popup_part_backwall:property:file|Efl.Ui.Popup_Part_Backwall.file]]
+ * [[:develop:api:efl:ui:bg:property:file|Efl.Ui.Bg.file]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/popup_part_backwall/property/key.txt b/public_html/data/pages/develop/api/efl/ui/popup_part_backwall/property/key.txt
new file mode 100644
index 00000000..8ab0eb50
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/popup_part_backwall/property/key.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Popup_Part_Backwall.key~~
+====== Efl.Ui.Popup_Part_Backwall.key ======
+
+===== Description =====
+
+%%The key which corresponds to the target data within a file.%%
+
+%%Some file types can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example %%[[:develop:api:efl:ui:image|Efl.Ui.Image]]%% or %%[[:develop:api:efl:ui:layout|Efl.Ui.Layout]]%%).%%
+
+%%You must not modify the strings on the returned pointers.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:popup_part_backwall:property:key:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **key** - %%The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.%%
+
+//Overridden from [[:develop:api:efl:file:property:key|Efl.File.key]] **(get)**.//===== Signature =====
+
+
+@property key {
+ get {}
+ set {}
+ values {
+ key: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_file_key_get(const Eo *obj);
+void efl_file_key_set(Eo *obj, const char *key);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:property:key|Efl.File.key]]
+ * [[:develop:api:efl:ui:win_part:property:key|Efl.Ui.Win_Part.key]]
+ * [[:develop:api:efl:ui:layout:property:key|Efl.Ui.Layout.key]]
+ * [[:develop:api:efl:ui:widget_part_bg:property:key|Efl.Ui.Widget_Part_Bg.key]]
+ * [[:develop:api:efl:ui:popup_part_backwall:property:key|Efl.Ui.Popup_Part_Backwall.key]]
+ * [[:develop:api:efl:ui:bg:property:key|Efl.Ui.Bg.key]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/popup_part_backwall/property/repeat_events.txt b/public_html/data/pages/develop/api/efl/ui/popup_part_backwall/property/repeat_events.txt
new file mode 100644
index 00000000..717ec3d5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/popup_part_backwall/property/repeat_events.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Popup_Part_Backwall.repeat_events~~
+====== Efl.Ui.Popup_Part_Backwall.repeat_events ======
+
+===== Description =====
+
+%%If this property is set to %%''true''%%, input events will be able to reach objects below the Popup. This allows for e.g., a click to activate a widget below the Popup while the Popup is active.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:popup_part_backwall:property:repeat_events:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **repeat** - %%Whether to repeat events to objects below the Popup. The default is %%''false''%%.%%
+
+===== Signature =====
+
+
+@property repeat_events {
+ get {}
+ set {}
+ values {
+ repeat: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_popup_part_backwall_repeat_events_get(const Eo *obj);
+void efl_ui_popup_part_backwall_repeat_events_set(Eo *obj, Eina_Bool repeat);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:popup_part_backwall:property:repeat_events|Efl.Ui.Popup_Part_Backwall.repeat_events]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/property_bind.txt b/public_html/data/pages/develop/api/efl/ui/property_bind.txt
new file mode 100644
index 00000000..a63788e3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/property_bind.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Ui.Property_Bind~~
+====== Efl.Ui.Property_Bind (interface) ======
+
+===== Description =====
+
+%%Efl UI Property_Bind interface. view object can have %%[[:develop:api:efl:model|Efl.Model]]%% to manage the data, the interface can help loading and tracking child data from the model property. see %%[[:develop:api:efl:model|Efl.Model]]%% see %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%%%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:property_bind:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:ui:property_bind:method:property_bind|property_bind]]**\\
+> %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%%
+
+Eina_Error efl_ui_property_bind(Eo *obj, const char *key, const char *property);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]**\\
+> %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%%
+
+EFL_UI_PROPERTY_BIND_EVENT_PROPERTIES_CHANGED(Efl_Ui_Property_Event)
+
+\\ **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]**\\
+> %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%%
+
+EFL_UI_PROPERTY_BIND_EVENT_PROPERTY_BOUND(Eina_Stringshare *)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/ui/property_bind/event/properties_changed.txt b/public_html/data/pages/develop/api/efl/ui/property_bind/event/properties_changed.txt
new file mode 100644
index 00000000..a176bde7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/property_bind/event/properties_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Property_Bind: properties,changed~~
+
+===== Description =====
+
+%%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:property_bind:event:properties_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+properties,changed: Efl.Ui.Property_Event;
+
+
+===== C information =====
+
+
+EFL_UI_PROPERTY_BIND_EVENT_PROPERTIES_CHANGED(Efl_Ui_Property_Event)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_property_bind_event_properties_changed(void *data, const Efl_Event *event)
+{
+ Efl_Ui_Property_Event info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_PROPERTY_BIND_EVENT_PROPERTIES_CHANGED, on_efl_ui_property_bind_event_properties_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/property_bind/event/property_bound.txt b/public_html/data/pages/develop/api/efl/ui/property_bind/event/property_bound.txt
new file mode 100644
index 00000000..7c06a9aa
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/property_bind/event/property_bound.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Property_Bind: property,bound~~
+
+===== Description =====
+
+%%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:property_bind:event:property_bound:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+property,bound: stringshare;
+
+
+===== C information =====
+
+
+EFL_UI_PROPERTY_BIND_EVENT_PROPERTY_BOUND(Eina_Stringshare *)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_property_bind_event_property_bound(void *data, const Efl_Event *event)
+{
+ Eina_Stringshare *info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_PROPERTY_BIND_EVENT_PROPERTY_BOUND, on_efl_ui_property_bind_event_property_bound, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/property_bind/method/property_bind.txt b/public_html/data/pages/develop/api/efl/ui/property_bind/method/property_bind.txt
new file mode 100644
index 00000000..045f9e44
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/property_bind/method/property_bind.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Property_Bind.property_bind~~
+====== Efl.Ui.Property_Bind.property_bind ======
+
+===== Description =====
+
+%%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:property_bind:method:property_bind:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+property_bind @pure_virtual {
+ params {
+ @in key: string;
+ @in property: string;
+ }
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_property_bind(Eo *obj, const char *key, const char *property);
+
+
+===== Parameters =====
+
+ * **key** //(in)// - %%key string for bind model property data%%
+ * **property** //(in)// - %%Model property name%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]
+ * [[:develop:api:efl:ui:widget_factory:method:property_bind|Efl.Ui.Widget_Factory.property_bind]]
+ * [[:develop:api:efl:ui:caching_factory:method:property_bind|Efl.Ui.Caching_Factory.property_bind]]
+ * [[:develop:api:efl:ui:image_factory:method:property_bind|Efl.Ui.Image_Factory.property_bind]]
+ * [[:develop:api:efl:ui:layout_factory:method:property_bind|Efl.Ui.Layout_Factory.property_bind]]
+ * [[:develop:api:efl:ui:widget_part:method:property_bind|Efl.Ui.Widget_Part.property_bind]]
+ * [[:develop:api:efl:ui:widget:method:property_bind|Efl.Ui.Widget.property_bind]]
+ * [[:develop:api:efl:ui:image:method:property_bind|Efl.Ui.Image.property_bind]]
+ * [[:develop:api:efl:ui:layout_base:method:property_bind|Efl.Ui.Layout_Base.property_bind]]
+ * [[:develop:api:efl:ui:property_bind_part:method:property_bind|Efl.Ui.Property_Bind_Part.property_bind]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/property_event.txt b/public_html/data/pages/develop/api/efl/ui/property_event.txt
new file mode 100644
index 00000000..5b45529e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/property_event.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Ui.Property_Event~~
+
+===== Description =====
+
+%%EFL Ui property event data structure triggered when an object property change due to the interaction on the object.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:property_event:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:ui:property_event:fields&nouser&nolink&nodate}}
+
+ * **changed_properties** - %%List of changed properties%%
+
+===== Signature =====
+
+
+struct Efl.Ui.Property_Event {
+ changed_properties: array;
+}
+
+
+===== C signature =====
+
+
+typedef struct _Efl_Ui_Property_Event {
+ Eina_Array *changed_properties;
+} Efl_Ui_Property_Event;
+
diff --git a/public_html/data/pages/develop/api/efl/ui/radio.txt b/public_html/data/pages/develop/api/efl/ui/radio.txt
new file mode 100644
index 00000000..e91bf1ec
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/radio.txt
@@ -0,0 +1,465 @@
+~~Title: Efl.Ui.Radio~~
+====== Efl.Ui.Radio (class) ======
+
+===== Description =====
+
+%%Elementary radio button class.%%
+
+%%Radio buttons are like check boxes in that they can be either checked or unchecked. However, radio buttons are always bunched together in groups, and only one button in each group can be checked at any given time. Pressing a different button in the group will automatically uncheck any previously checked button.%%
+
+%%They are a common way to allow a user to select one option among a list.%%
+
+%%To handle button grouping, you can either use an %%[[:develop:api:efl:ui:radio_group_impl|Efl.Ui.Radio_Group_Impl]]%% object or use more convenient widgets like %%[[:develop:api:efl:ui:radio_box|Efl.Ui.Radio_Box]]%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:radio:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:check|Efl.Ui.Check]] //(class)// => [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)// => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:check|Efl.Ui.Check]] //(class)//
+ * [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)//
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] //(interface)//
+ * [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] //(interface)//
+ * [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] //(interface)//
+ * [[:develop:api:efl:layout:group|Efl.Layout.Group]] //(interface)//
+ * [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]] //(mixin)//
+ * [[:develop:api:efl:access:action|Efl.Access.Action]] //(mixin)//
+ * [[:develop:api:efl:text|Efl.Text]] //(interface)//
+ * [[:develop:api:efl:content|Efl.Content]] //(interface)//
+ * [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] //(mixin)//
+ * [[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]] //(interface)//
+ * [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]] //(mixin)//
+ * [[:develop:api:efl:access:action|Efl.Access.Action]] //(mixin)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:radio:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:radio:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:radio:property:selected|selected]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]]]//\\
+> %%The selected state of this object%%
+
+Eina_Bool efl_ui_selectable_selected_get(const Eo *obj);
+void efl_ui_selectable_selected_set(Eo *obj, Eina_Bool selected);
+
+\\
+**[[:develop:api:efl:ui:radio:property:state_value|state_value]]** //**(get, set)**//\\
+> %%Integer value that this radio button represents.%%
+
+int efl_ui_radio_state_value_get(const Eo *obj);
+void efl_ui_radio_state_value_set(Eo *obj, int value);
+
+\\
+**[[:develop:api:efl:ui:radio:property:elm_actions|elm_actions]]** //**(get)**// ''protected''// [Overridden from [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]]]//\\
+>
+
+const Efl_Access_Action_Data *efl_access_widget_action_elm_actions_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:radio:method:on_access_activate|on_access_activate]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Hook function called when widget is activated through accessibility.%%
+
+Eina_Bool efl_ui_widget_on_access_activate(Eo *obj, Efl_Ui_Activate act);
+
+\\
+**[[:develop:api:efl:ui:radio:property:state_set|state_set]]** //**(get)**// ''protected''// [Overridden from [[:develop:api:efl:access:object|Efl.Access.Object]]]//\\
+>
+
+Efl_Access_State_Set efl_access_object_state_set_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:radio:method:theme_apply|theme_apply]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Virtual function called when the widget needs to re-apply its theme.%%
+
+Eina_Error efl_ui_widget_theme_apply(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:radio:method:widget_input_event_handler|widget_input_event_handler]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Virtual function handling input events on the widget.%%
+
+Eina_Bool efl_ui_widget_input_event_handler(Eo *obj, const Efl_Event *eo_event, Efl_Canvas_Object *source);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:action|Efl.Access.Action]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:action:property:action_localized_name|action_localized_name]]** //**(get)**// | |
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:action_description|action_description]]** //**(get, set)**// | %%Action description for given id%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:method:action_do|action_do]]** | %%Performs action on given widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:method:action_keybinding_get|action_keybinding_get]]** | %%Gets configured keybinding for specific action and widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:action_name|action_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:actions|actions]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] ^^^
+| | **[[:develop:api:efl:input:clickable:property:interaction|interaction]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:button_state_reset|button_state_reset]]** | %%This aborts the internal state after a press call.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:longpress_abort|longpress_abort]]** | %%This aborts ongoing longpress event.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:press|press]]** | %%Change internal states that a button got pressed.%% |
+| ''protected'' | **[[:develop:api:efl:input:clickable:method:unpress|unpress]]** | %%Change internal states that a button got unpressed.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:check|Efl.Ui.Check]] ^^^
+| | **[[:develop:api:efl:ui:check:property:content|content]]** //**(get, set)**// | %%Sub-object currently set as this object's single content.%% |
+| | **[[:develop:api:efl:ui:check:method:content_unset|content_unset]]** | %%Remove the sub-object currently set as content of this object and return it. This object becomes empty.%% |
+| | **[[:develop:api:efl:ui:check:property:l10n_text|l10n_text]]** //**(get, set)**// | %%A unique string to be translated.%% |
+| | **[[:develop:api:efl:ui:check:property:text|text]]** //**(get, set)**// | %%The text string to be displayed by the given text object.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:property:automatic_theme_rotation|automatic_theme_rotation]]** //**(get, set)**// | %%This flag tells if this object will automatically mirror the rotation changes of the window to this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**// | %%Whether this object updates its size hints automatically.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_freeze|calc_freeze]]** | %%Freezes the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_parts_extends|calc_parts_extends]]** | %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_size_min|calc_size_min]]** | %%Calculates the minimum required size for a given layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_thaw|calc_thaw]]** | %%Thaws the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:layout_base:method:factory_bind|factory_bind]]** | %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:finger_size_multiplier|finger_size_multiplier]]** //**(get, set)**// | %%Set a multiplier for applying finger size to the layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:group_calculate|group_calculate]]** | %%Triggers an immediate recalculation of this object's geometry.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:group_data|group_data]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_max|group_size_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_min|group_size_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:message_send|message_send]]** | %%Sends an (Edje) message to a given Edje object%% |
+| | **[[:develop:api:efl:ui:layout_base:property:part_exist|part_exist]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_add|signal_callback_add]]** | %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_del|signal_callback_del]]** | %%Removes a signal-triggered callback from an object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_emit|signal_emit]]** | %%Sends/emits an Edje signal to this layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_process|signal_process]]** | %%Processes an object's messages and signals queue.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:theme|theme]]** //**(get, set)**// | %%The theme of this widget, defines which edje group will be used.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:theme_rotation_apply|theme_rotation_apply]]** | %%Apply a new rotation value to this object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:calc_force|calc_force]]** | %%Forces a Size/Geometry calculation.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:on_focus_update|on_focus_update]]** | %%Virtual function handling focus in/out events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:part_get|part_get]]** | %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:property:position|position]]** //**(get, set)**// | %%The 2D position of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:size|size]]** //**(get, set)**// | %%The 2D size of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| | **[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:content|Efl.Content]] ^^^
+| | **[[:develop:api:efl:content:event:content_changed|content,changed]]** | %%Sent after the content is set or unset using the current content object.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] ^^^
+| | **[[:develop:api:efl:input:clickable:event:clicked|clicked]]** | %%Called when object is in sequence pressed and unpressed by the primary button%% |
+| | **[[:develop:api:efl:input:clickable:event:clicked_any|clicked,any]]** | %%Called when object is in sequence pressed and unpressed by any button. The button that triggered the event can be found in the event information.%% |
+| | **[[:develop:api:efl:input:clickable:event:longpressed|longpressed]]** | %%Called when the object receives a long press, event_info is the button that got pressed%% |
+| | **[[:develop:api:efl:input:clickable:event:pressed|pressed]]** | %%Called when the object is pressed, event_info is the button that got pressed%% |
+| | **[[:develop:api:efl:input:clickable:event:unpressed|unpressed]]** | %%Called when the object is no longer pressed, event_info is the button that got pressed%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] ^^^
+| | **[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]** | %%A circular dependency between parts of the object was found.%% |
+| | **[[:develop:api:efl:layout:calc:event:recalc|recalc]]** | %%The layout was recalculated.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:event:theme_changed|theme,changed]]** | %%Called when theme changed%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]] ^^^
+| | **[[:develop:api:efl:ui:selectable:event:selected_changed|selected,changed]]** | %%Called when the selected state has changed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/radio/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/radio/method/constructor.txt
new file mode 100644
index 00000000..c810389d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/radio/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Radio.constructor~~
+====== Efl.Ui.Radio.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:radio:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:check:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/radio/method/destructor.txt b/public_html/data/pages/develop/api/efl/ui/radio/method/destructor.txt
new file mode 100644
index 00000000..856e119b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/radio/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Ui.Radio.destructor~~
+====== Efl.Ui.Radio.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:radio:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/radio/method/on_access_activate.txt b/public_html/data/pages/develop/api/efl/ui/radio/method/on_access_activate.txt
new file mode 100644
index 00000000..abb3f2fd
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/radio/method/on_access_activate.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Radio.on_access_activate~~
+====== Efl.Ui.Radio.on_access_activate ======
+
+===== Description =====
+
+%%Hook function called when widget is activated through accessibility.%%
+
+%%This meant to be overridden by subclasses to support accessibility. This is an unstable API.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:radio:method:on_access_activate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:check:method:on_access_activate|Efl.Ui.Widget.on_access_activate]].//===== Signature =====
+
+
+on_access_activate @beta @protected {
+ params {
+ @in act: Efl.Ui.Activate;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_on_access_activate(Eo *obj, Efl_Ui_Activate act);
+
+
+===== Parameters =====
+
+ * **act** //(in)// - %%Type of activation.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:on_access_activate|Efl.Ui.Widget.on_access_activate]]
+ * [[:develop:api:efl:ui:slider:method:on_access_activate|Efl.Ui.Slider.on_access_activate]]
+ * [[:develop:api:efl:ui:check:method:on_access_activate|Efl.Ui.Check.on_access_activate]]
+ * [[:develop:api:efl:ui:radio:method:on_access_activate|Efl.Ui.Radio.on_access_activate]]
+ * [[:develop:api:efl:ui:text:method:on_access_activate|Efl.Ui.Text.on_access_activate]]
+ * [[:develop:api:efl:ui:slider_interval:method:on_access_activate|Efl.Ui.Slider_Interval.on_access_activate]]
+ * [[:develop:api:efl:ui:button:method:on_access_activate|Efl.Ui.Button.on_access_activate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/radio/method/theme_apply.txt b/public_html/data/pages/develop/api/efl/ui/radio/method/theme_apply.txt
new file mode 100644
index 00000000..0e7dfe8f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/radio/method/theme_apply.txt
@@ -0,0 +1,55 @@
+~~Title: Efl.Ui.Radio.theme_apply~~
+====== Efl.Ui.Radio.theme_apply ======
+
+===== Description =====
+
+%%Virtual function called when the widget needs to re-apply its theme.%%
+
+%%This may be called when the object is first created, or whenever the widget is modified in any way that may require a reload of the theme. This may include but is not limited to scale, theme, or mirrored mode changes.%%
+
+
+theme_apply @protected {
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_widget_theme_apply(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:theme_apply|Efl.Ui.Widget.theme_apply]]
+ * [[:develop:api:efl:ui:win:method:theme_apply|Efl.Ui.Win.theme_apply]]
+ * [[:develop:api:efl:ui:flip:method:theme_apply|Efl.Ui.Flip.theme_apply]]
+ * [[:develop:api:efl:ui:image:method:theme_apply|Efl.Ui.Image.theme_apply]]
+ * [[:develop:api:efl:ui:image_zoomable:method:theme_apply|Efl.Ui.Image_Zoomable.theme_apply]]
+ * [[:develop:api:efl:ui:layout_base:method:theme_apply|Efl.Ui.Layout_Base.theme_apply]]
+ * [[:develop:api:efl:ui:slider:method:theme_apply|Efl.Ui.Slider.theme_apply]]
+ * [[:develop:api:efl:ui:check:method:theme_apply|Efl.Ui.Check.theme_apply]]
+ * [[:develop:api:efl:ui:radio:method:theme_apply|Efl.Ui.Radio.theme_apply]]
+ * [[:develop:api:efl:ui:clock:method:theme_apply|Efl.Ui.Clock.theme_apply]]
+ * [[:develop:api:efl:ui:text:method:theme_apply|Efl.Ui.Text.theme_apply]]
+ * [[:develop:api:efl:ui:spin_button:method:theme_apply|Efl.Ui.Spin_Button.theme_apply]]
+ * [[:develop:api:efl:ui:collection_view:method:theme_apply|Efl.Ui.Collection_View.theme_apply]]
+ * [[:develop:api:efl:ui:panel:method:theme_apply|Efl.Ui.Panel.theme_apply]]
+ * [[:develop:api:efl:ui:slider_interval:method:theme_apply|Efl.Ui.Slider_Interval.theme_apply]]
+ * [[:develop:api:elm:code_widget:method:theme_apply|Elm.Code_Widget.theme_apply]]
+ * [[:develop:api:efl:ui:textpath:method:theme_apply|Efl.Ui.Textpath.theme_apply]]
+ * [[:develop:api:efl:ui:scroller:method:theme_apply|Efl.Ui.Scroller.theme_apply]]
+ * [[:develop:api:efl:ui:collection:method:theme_apply|Efl.Ui.Collection.theme_apply]]
+ * [[:develop:api:efl:ui:panes:method:theme_apply|Efl.Ui.Panes.theme_apply]]
+ * [[:develop:api:efl:ui:calendar:method:theme_apply|Efl.Ui.Calendar.theme_apply]]
+ * [[:develop:api:efl:ui:progressbar:method:theme_apply|Efl.Ui.Progressbar.theme_apply]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/radio/method/widget_input_event_handler.txt b/public_html/data/pages/develop/api/efl/ui/radio/method/widget_input_event_handler.txt
new file mode 100644
index 00000000..4f62e955
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/radio/method/widget_input_event_handler.txt
@@ -0,0 +1,57 @@
+~~Title: Efl.Ui.Radio.widget_input_event_handler~~
+====== Efl.Ui.Radio.widget_input_event_handler ======
+
+===== Description =====
+
+%%Virtual function handling input events on the widget.%%
+
+%%This method should return %%''true''%% if the event has been processed. Only key down, key up and pointer wheel events will be propagated through this function.%%
+
+%%It is common for the event to be also marked as processed as in %%[[:develop:api:efl:input:event:property:processed|Efl.Input.Event.processed]]%%, if this operation was successful. This makes sure other widgets will not also process this input event.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:radio:method:widget_input_event_handler:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:check:method:widget_input_event_handler|Efl.Ui.Widget.widget_input_event_handler]].//===== Signature =====
+
+
+widget_input_event_handler @protected {
+ params {
+ @in eo_event: const(event);
+ @in source: Efl.Canvas.Object;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_input_event_handler(Eo *obj, const Efl_Event *eo_event, Efl_Canvas_Object *source);
+
+
+===== Parameters =====
+
+ * **eo_event** //(in)// - %%EO event struct with an Efl.Input.Event as info.%%
+ * **source** //(in)// - %%Source object where the event originated. Often same as this.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:widget_input_event_handler|Efl.Ui.Widget.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:win:method:widget_input_event_handler|Efl.Ui.Win.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:image:method:widget_input_event_handler|Efl.Ui.Image.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:image_zoomable:method:widget_input_event_handler|Efl.Ui.Image_Zoomable.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:slider:method:widget_input_event_handler|Efl.Ui.Slider.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:check:method:widget_input_event_handler|Efl.Ui.Check.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:radio:method:widget_input_event_handler|Efl.Ui.Radio.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:spin_button:method:widget_input_event_handler|Efl.Ui.Spin_Button.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:panel:method:widget_input_event_handler|Efl.Ui.Panel.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:item:method:widget_input_event_handler|Efl.Ui.Item.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:slider_interval:method:widget_input_event_handler|Efl.Ui.Slider_Interval.widget_input_event_handler]]
+ * [[:develop:api:elm:code_widget:method:widget_input_event_handler|Elm.Code_Widget.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:tags:method:widget_input_event_handler|Efl.Ui.Tags.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:scroller:method:widget_input_event_handler|Efl.Ui.Scroller.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:calendar:method:widget_input_event_handler|Efl.Ui.Calendar.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:video:method:widget_input_event_handler|Efl.Ui.Video.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:button:method:widget_input_event_handler|Efl.Ui.Button.widget_input_event_handler]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/radio/property/elm_actions.txt b/public_html/data/pages/develop/api/efl/ui/radio/property/elm_actions.txt
new file mode 100644
index 00000000..f3e69e34
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/radio/property/elm_actions.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Radio.elm_actions~~
+====== Efl.Ui.Radio.elm_actions ======
+
+===== Values =====
+
+ * **actions** - %%NULL-terminated array of Efl.Access.Action_Data.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:radio:property:elm_actions:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:check:property:elm_actions|Efl.Access.Widget.Action.elm_actions]] **(get)**.//===== Signature =====
+
+
+@property elm_actions @beta @pure_virtual {
+ get @protected {}
+ values {
+ actions: ptr(const(Efl.Access.Action_Data));
+ }
+}
+
+
+===== C signature =====
+
+
+const Efl_Access_Action_Data *efl_access_widget_action_elm_actions_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:widget:action:property:elm_actions|Efl.Access.Widget.Action.elm_actions]]
+ * [[:develop:api:efl:ui:slider:property:elm_actions|Efl.Ui.Slider.elm_actions]]
+ * [[:develop:api:efl:ui:check:property:elm_actions|Efl.Ui.Check.elm_actions]]
+ * [[:develop:api:efl:ui:radio:property:elm_actions|Efl.Ui.Radio.elm_actions]]
+ * [[:develop:api:efl:ui:win:property:elm_actions|Efl.Ui.Win.elm_actions]]
+ * [[:develop:api:efl:ui:spin_button:property:elm_actions|Efl.Ui.Spin_Button.elm_actions]]
+ * [[:develop:api:efl:ui:panel:property:elm_actions|Efl.Ui.Panel.elm_actions]]
+ * [[:develop:api:efl:ui:slider_interval:property:elm_actions|Efl.Ui.Slider_Interval.elm_actions]]
+ * [[:develop:api:efl:ui:image:property:elm_actions|Efl.Ui.Image.elm_actions]]
+ * [[:develop:api:efl:ui:image_zoomable:property:elm_actions|Efl.Ui.Image_Zoomable.elm_actions]]
+ * [[:develop:api:efl:ui:calendar:property:elm_actions|Efl.Ui.Calendar.elm_actions]]
+ * [[:develop:api:efl:ui:video:property:elm_actions|Efl.Ui.Video.elm_actions]]
+ * [[:develop:api:efl:ui:button:property:elm_actions|Efl.Ui.Button.elm_actions]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/radio/property/selected.txt b/public_html/data/pages/develop/api/efl/ui/radio/property/selected.txt
new file mode 100644
index 00000000..3840bcf3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/radio/property/selected.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Radio.selected~~
+====== Efl.Ui.Radio.selected ======
+
+===== Description =====
+
+%%The selected state of this object%%
+
+%%A change to this property emits the changed event.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:radio:property:selected:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **selected** - %%The selected state of this object.%%
+
+//Overridden from [[:develop:api:efl:ui:check:property:selected|Efl.Ui.Selectable.selected]] **(set)**.//===== Signature =====
+
+
+@property selected @pure_virtual {
+ get {}
+ set {}
+ values {
+ selected: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_selectable_selected_get(const Eo *obj);
+void efl_ui_selectable_selected_set(Eo *obj, Eina_Bool selected);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:selectable:property:selected|Efl.Ui.Selectable.selected]]
+ * [[:develop:api:efl:ui:check:property:selected|Efl.Ui.Check.selected]]
+ * [[:develop:api:efl:ui:radio:property:selected|Efl.Ui.Radio.selected]]
+ * [[:develop:api:efl:ui:select_model:property:selected|Efl.Ui.Select_Model.selected]]
+ * [[:develop:api:efl:ui:item:property:selected|Efl.Ui.Item.selected]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/radio/property/state_set.txt b/public_html/data/pages/develop/api/efl/ui/radio/property/state_set.txt
new file mode 100644
index 00000000..f30b59ba
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/radio/property/state_set.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.Radio.state_set~~
+====== Efl.Ui.Radio.state_set ======
+
+===== Values =====
+
+ * **states** - %%Accessible state set%%
+
+
+\\ {{page>:develop:api-include:efl:ui:radio:property:state_set:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:check:property:state_set|Efl.Access.Object.state_set]] **(get)**.//===== Signature =====
+
+
+@property state_set @beta {
+ get @protected {}
+ values {
+ states: Efl.Access.State_Set;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Access_State_Set efl_access_object_state_set_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:object:property:state_set|Efl.Access.Object.state_set]]
+ * [[:develop:api:efl:ui:widget:property:state_set|Efl.Ui.Widget.state_set]]
+ * [[:develop:api:efl:ui:win:property:state_set|Efl.Ui.Win.state_set]]
+ * [[:develop:api:efl:ui:check:property:state_set|Efl.Ui.Check.state_set]]
+ * [[:develop:api:efl:ui:radio:property:state_set|Efl.Ui.Radio.state_set]]
+ * [[:develop:api:efl:ui:text:property:state_set|Efl.Ui.Text.state_set]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/radio/property/state_value.txt b/public_html/data/pages/develop/api/efl/ui/radio/property/state_value.txt
new file mode 100644
index 00000000..763da5b4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/radio/property/state_value.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Radio.state_value~~
+====== Efl.Ui.Radio.state_value ======
+
+===== Description =====
+
+%%Integer value that this radio button represents.%%
+
+%%Each radio button in a group must have a unique value. The selected button in a group can then be set or retrieved through the %%[[:develop:api:efl:ui:radio_group:property:selected_value|Efl.Ui.Radio_Group.selected_value]]%% property. This value is also informed through the %%[[:develop:api:efl:ui:radio_group:event:value,changed|Efl.Ui.Radio_Group.value,changed]]%% event.%%
+
+%%All non-negative values are legal but keep in mind that 0 is the starting value for all new groups: If no button in the group has this value, then no button in the group is initially selected. -1 is the value that %%[[:develop:api:efl:ui:radio_group:property:selected_value|Efl.Ui.Radio_Group.selected_value]]%% returns when no button is selected and therefore cannot be used.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:radio:property:state_value:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **value** - %%The value to use when this radio button is selected. Any value can be used but 0 and -1 have special meanings as described above.%%
+
+===== Signature =====
+
+
+@property state_value {
+ get {}
+ set {}
+ values {
+ value: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_ui_radio_state_value_get(const Eo *obj);
+void efl_ui_radio_state_value_set(Eo *obj, int value);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:radio:property:state_value|Efl.Ui.Radio.state_value]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/radio_group.txt b/public_html/data/pages/develop/api/efl/ui/radio_group.txt
new file mode 100644
index 00000000..a0264cfd
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/radio_group.txt
@@ -0,0 +1,61 @@
+~~Title: Efl.Ui.Radio_Group~~
+====== Efl.Ui.Radio_Group (interface) ======
+
+===== Description =====
+
+%%Interface for manually handling a group of %%[[:develop:api:efl:ui:radio|Efl.Ui.Radio]]%% buttons.%%
+
+%%See the documentation of %%[[:develop:api:efl:ui:radio|Efl.Ui.Radio]]%% for an explanation of radio button grouping.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:radio_group:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:single_selectable|Efl.Ui.Single_Selectable]] //(interface)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:single_selectable|Efl.Ui.Single_Selectable]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:radio_group:method:register|register]]**\\
+> %%Register a new %%[[:develop:api:efl:ui:radio|Efl.Ui.Radio]]%% button to this group. Keep in mind that registering to a group will only handle button grouping, you still need to add the button to a layout for it to be rendered.%%
+
+void efl_ui_radio_group_register(Eo *obj, Efl_Ui_Radio *radio);
+
+\\
+**[[:develop:api:efl:ui:radio_group:property:selected_value|selected_value]]** //**(get, set)**//\\
+> %%The value associated with the currently selected button in the group. Give each radio button in the group a different value using %%[[:develop:api:efl:ui:radio:property:state_value|Efl.Ui.Radio.state_value]]%%.%%
+
+int efl_ui_radio_group_selected_value_get(const Eo *obj);
+void efl_ui_radio_group_selected_value_set(Eo *obj, int selected_value);
+
+\\
+**[[:develop:api:efl:ui:radio_group:method:unregister|unregister]]**\\
+> %%Unregister an %%[[:develop:api:efl:ui:radio|Efl.Ui.Radio]]%% button from this group. This will unlink the behavior of this button from the other buttons in the group, but if it still belongs to a layout, it will still be rendered.%%
+
+void efl_ui_radio_group_unregister(Eo *obj, Efl_Ui_Radio *radio);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:ui:single_selectable|Efl.Ui.Single_Selectable]] ^^^
+| | **[[:develop:api:efl:ui:single_selectable:property:fallback_selection|fallback_selection]]** //**(get, set)**// | %%A object that will be selected in case nothing is selected%% |
+| | **[[:develop:api:efl:ui:single_selectable:property:last_selected|last_selected]]** //**(get)**// | |
+
+===== Events =====
+
+**[[:develop:api:efl:ui:radio_group:event:value_changed|value,changed]]**\\
+> %%Emitted each time the %%''selected_value''%% changes. The event information contains the %%[[:develop:api:efl:ui:radio:property:state_value|Efl.Ui.Radio.state_value]]%% of the newly selected button or -1 if no button is now selected.%%
+
+EFL_UI_RADIO_GROUP_EVENT_VALUE_CHANGED(int)
+
+\\ ==== Inherited ====
+
+^ [[:develop:api:efl:ui:single_selectable|Efl.Ui.Single_Selectable]] ^^^
+| | **[[:develop:api:efl:ui:single_selectable:event:selection_changed|selection_changed]]** | %%Emitted when there is a change in the selection state. This event will collect all the item selection change events that are happening within one loop iteration. This means, you will only get this event once, even if a lot of items have changed. If you are interested in detailed changes, subscribe to the individual %%[[:develop:api:efl:ui:selectable:event:selected,changed|Efl.Ui.Selectable.selected,changed]]%% events of each item.%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/radio_group/event/value_changed.txt b/public_html/data/pages/develop/api/efl/ui/radio_group/event/value_changed.txt
new file mode 100644
index 00000000..82764ad3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/radio_group/event/value_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Radio_Group: value,changed~~
+
+===== Description =====
+
+%%Emitted each time the %%''selected_value''%% changes. The event information contains the %%[[:develop:api:efl:ui:radio:property:state_value|Efl.Ui.Radio.state_value]]%% of the newly selected button or -1 if no button is now selected.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:radio_group:event:value_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+value,changed: int;
+
+
+===== C information =====
+
+
+EFL_UI_RADIO_GROUP_EVENT_VALUE_CHANGED(int)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_radio_group_event_value_changed(void *data, const Efl_Event *event)
+{
+ int info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_RADIO_GROUP_EVENT_VALUE_CHANGED, on_efl_ui_radio_group_event_value_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/radio_group/method/register.txt b/public_html/data/pages/develop/api/efl/ui/radio_group/method/register.txt
new file mode 100644
index 00000000..fb9b502f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/radio_group/method/register.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Radio_Group.register~~
+====== Efl.Ui.Radio_Group.register ======
+
+===== Description =====
+
+%%Register a new %%[[:develop:api:efl:ui:radio|Efl.Ui.Radio]]%% button to this group. Keep in mind that registering to a group will only handle button grouping, you still need to add the button to a layout for it to be rendered.%%
+
+%%If the %%[[:develop:api:efl:ui:radio:property:state_value|Efl.Ui.Radio.state_value]]%% of the new button is already used by a previous button in the group, the button will not be added.%%
+
+%%See also %%[[:develop:api:efl:ui:radio_group:method:unregister|Efl.Ui.Radio_Group.unregister]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:radio_group:method:register:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+register @pure_virtual {
+ params {
+ @in radio: Efl.Ui.Radio;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_radio_group_register(Eo *obj, Efl_Ui_Radio *radio);
+
+
+===== Parameters =====
+
+ * **radio** //(in)// - %%The radio button to add to the group.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:radio_group:method:register|Efl.Ui.Radio_Group.register]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:register|Efl.Ui.Radio_Group_Impl.register]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/radio_group/method/unregister.txt b/public_html/data/pages/develop/api/efl/ui/radio_group/method/unregister.txt
new file mode 100644
index 00000000..badac943
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/radio_group/method/unregister.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Radio_Group.unregister~~
+====== Efl.Ui.Radio_Group.unregister ======
+
+===== Description =====
+
+%%Unregister an %%[[:develop:api:efl:ui:radio|Efl.Ui.Radio]]%% button from this group. This will unlink the behavior of this button from the other buttons in the group, but if it still belongs to a layout, it will still be rendered.%%
+
+%%If the button was not registered in the group the call is ignored. If the button was selected, no button will be selected in the group after this call.%%
+
+%%See also %%[[:develop:api:efl:ui:radio_group:method:register|Efl.Ui.Radio_Group.register]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:radio_group:method:unregister:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+unregister @pure_virtual {
+ params {
+ @in radio: Efl.Ui.Radio;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_radio_group_unregister(Eo *obj, Efl_Ui_Radio *radio);
+
+
+===== Parameters =====
+
+ * **radio** //(in)// - %%The radio button to remove from the group.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:radio_group:method:unregister|Efl.Ui.Radio_Group.unregister]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:unregister|Efl.Ui.Radio_Group_Impl.unregister]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/radio_group/property/selected_value.txt b/public_html/data/pages/develop/api/efl/ui/radio_group/property/selected_value.txt
new file mode 100644
index 00000000..51f79867
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/radio_group/property/selected_value.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Radio_Group.selected_value~~
+====== Efl.Ui.Radio_Group.selected_value ======
+
+===== Description =====
+
+%%The value associated with the currently selected button in the group. Give each radio button in the group a different value using %%[[:develop:api:efl:ui:radio:property:state_value|Efl.Ui.Radio.state_value]]%%.%%
+
+%%A value of -1 means that no button is selected. Only values associated with the buttons in the group (and -1) can be used.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:radio_group:property:selected_value:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **selected_value** - %%The value of the currently selected radio button, or -1.%%
+
+===== Signature =====
+
+
+@property selected_value @pure_virtual {
+ get {}
+ set {}
+ values {
+ selected_value: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_ui_radio_group_selected_value_get(const Eo *obj);
+void efl_ui_radio_group_selected_value_set(Eo *obj, int selected_value);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:radio_group:property:selected_value|Efl.Ui.Radio_Group.selected_value]]
+ * [[:develop:api:efl:ui:radio_group_impl:property:selected_value|Efl.Ui.Radio_Group_Impl.selected_value]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/radio_group_impl.txt b/public_html/data/pages/develop/api/efl/ui/radio_group_impl.txt
new file mode 100644
index 00000000..f30f16ba
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/radio_group_impl.txt
@@ -0,0 +1,110 @@
+~~Title: Efl.Ui.Radio_Group_Impl~~
+====== Efl.Ui.Radio_Group_Impl (class) ======
+
+===== Description =====
+
+%%Object with the default implementation for %%[[:develop:api:efl:ui:radio_group|Efl.Ui.Radio_Group]]%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:radio_group_impl:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:ui:radio_group|Efl.Ui.Radio_Group]] //(interface)//
+ * [[:develop:api:efl:ui:single_selectable|Efl.Ui.Single_Selectable]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:radio_group_impl:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:radio_group_impl:property:fallback_selection|fallback_selection]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:single_selectable|Efl.Ui.Single_Selectable]]]//\\
+> %%A object that will be selected in case nothing is selected%%
+
+Efl_Ui_Selectable *efl_ui_selectable_fallback_selection_get(const Eo *obj);
+void efl_ui_selectable_fallback_selection_set(Eo *obj, Efl_Ui_Selectable *fallback);
+
+\\
+**[[:develop:api:efl:ui:radio_group_impl:property:last_selected|last_selected]]** //**(get)**//// [Overridden from [[:develop:api:efl:ui:single_selectable|Efl.Ui.Single_Selectable]]]//\\
+>
+
+Efl_Ui_Selectable *efl_ui_selectable_last_selected_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:radio_group_impl:method:register|register]]**// [Overridden from [[:develop:api:efl:ui:radio_group|Efl.Ui.Radio_Group]]]//\\
+> %%Register a new %%[[:develop:api:efl:ui:radio|Efl.Ui.Radio]]%% button to this group. Keep in mind that registering to a group will only handle button grouping, you still need to add the button to a layout for it to be rendered.%%
+
+void efl_ui_radio_group_register(Eo *obj, Efl_Ui_Radio *radio);
+
+\\
+**[[:develop:api:efl:ui:radio_group_impl:property:selected_value|selected_value]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:radio_group|Efl.Ui.Radio_Group]]]//\\
+> %%The value associated with the currently selected button in the group. Give each radio button in the group a different value using %%[[:develop:api:efl:ui:radio:property:state_value|Efl.Ui.Radio.state_value]]%%.%%
+
+int efl_ui_radio_group_selected_value_get(const Eo *obj);
+void efl_ui_radio_group_selected_value_set(Eo *obj, int selected_value);
+
+\\
+**[[:develop:api:efl:ui:radio_group_impl:method:unregister|unregister]]**// [Overridden from [[:develop:api:efl:ui:radio_group|Efl.Ui.Radio_Group]]]//\\
+> %%Unregister an %%[[:develop:api:efl:ui:radio|Efl.Ui.Radio]]%% button from this group. This will unlink the behavior of this button from the other buttons in the group, but if it still belongs to a layout, it will still be rendered.%%
+
+void efl_ui_radio_group_unregister(Eo *obj, Efl_Ui_Radio *radio);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:constructor|constructor]]** | %%Implement this method to provide optional initialization code for your object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:radio_group|Efl.Ui.Radio_Group]] ^^^
+| | **[[:develop:api:efl:ui:radio_group:event:value_changed|value,changed]]** | %%Emitted each time the %%''selected_value''%% changes. The event information contains the %%[[:develop:api:efl:ui:radio:property:state_value|Efl.Ui.Radio.state_value]]%% of the newly selected button or -1 if no button is now selected.%% |
+^ [[:develop:api:efl:ui:single_selectable|Efl.Ui.Single_Selectable]] ^^^
+| | **[[:develop:api:efl:ui:single_selectable:event:selection_changed|selection_changed]]** | %%Emitted when there is a change in the selection state. This event will collect all the item selection change events that are happening within one loop iteration. This means, you will only get this event once, even if a lot of items have changed. If you are interested in detailed changes, subscribe to the individual %%[[:develop:api:efl:ui:selectable:event:selected,changed|Efl.Ui.Selectable.selected,changed]]%% events of each item.%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/radio_group_impl/method/destructor.txt b/public_html/data/pages/develop/api/efl/ui/radio_group_impl/method/destructor.txt
new file mode 100644
index 00000000..7bfd02ab
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/radio_group_impl/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Ui.Radio_Group_Impl.destructor~~
+====== Efl.Ui.Radio_Group_Impl.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:radio_group_impl:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/radio_group_impl/method/register.txt b/public_html/data/pages/develop/api/efl/ui/radio_group_impl/method/register.txt
new file mode 100644
index 00000000..9c3d25f0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/radio_group_impl/method/register.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Radio_Group_Impl.register~~
+====== Efl.Ui.Radio_Group_Impl.register ======
+
+===== Description =====
+
+%%Register a new %%[[:develop:api:efl:ui:radio|Efl.Ui.Radio]]%% button to this group. Keep in mind that registering to a group will only handle button grouping, you still need to add the button to a layout for it to be rendered.%%
+
+%%If the %%[[:develop:api:efl:ui:radio:property:state_value|Efl.Ui.Radio.state_value]]%% of the new button is already used by a previous button in the group, the button will not be added.%%
+
+%%See also %%[[:develop:api:efl:ui:radio_group:method:unregister|Efl.Ui.Radio_Group.unregister]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:radio_group_impl:method:register:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:radio_group:method:register|Efl.Ui.Radio_Group.register]].//===== Signature =====
+
+
+register @pure_virtual {
+ params {
+ @in radio: Efl.Ui.Radio;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_radio_group_register(Eo *obj, Efl_Ui_Radio *radio);
+
+
+===== Parameters =====
+
+ * **radio** //(in)// - %%The radio button to add to the group.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:radio_group:method:register|Efl.Ui.Radio_Group.register]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:register|Efl.Ui.Radio_Group_Impl.register]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/radio_group_impl/method/unregister.txt b/public_html/data/pages/develop/api/efl/ui/radio_group_impl/method/unregister.txt
new file mode 100644
index 00000000..9a897976
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/radio_group_impl/method/unregister.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Radio_Group_Impl.unregister~~
+====== Efl.Ui.Radio_Group_Impl.unregister ======
+
+===== Description =====
+
+%%Unregister an %%[[:develop:api:efl:ui:radio|Efl.Ui.Radio]]%% button from this group. This will unlink the behavior of this button from the other buttons in the group, but if it still belongs to a layout, it will still be rendered.%%
+
+%%If the button was not registered in the group the call is ignored. If the button was selected, no button will be selected in the group after this call.%%
+
+%%See also %%[[:develop:api:efl:ui:radio_group:method:register|Efl.Ui.Radio_Group.register]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:radio_group_impl:method:unregister:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:radio_group:method:unregister|Efl.Ui.Radio_Group.unregister]].//===== Signature =====
+
+
+unregister @pure_virtual {
+ params {
+ @in radio: Efl.Ui.Radio;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_radio_group_unregister(Eo *obj, Efl_Ui_Radio *radio);
+
+
+===== Parameters =====
+
+ * **radio** //(in)// - %%The radio button to remove from the group.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:radio_group:method:unregister|Efl.Ui.Radio_Group.unregister]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:unregister|Efl.Ui.Radio_Group_Impl.unregister]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/radio_group_impl/property/fallback_selection.txt b/public_html/data/pages/develop/api/efl/ui/radio_group_impl/property/fallback_selection.txt
new file mode 100644
index 00000000..c8ec1005
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/radio_group_impl/property/fallback_selection.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Ui.Radio_Group_Impl.fallback_selection~~
+====== Efl.Ui.Radio_Group_Impl.fallback_selection ======
+
+===== Description =====
+
+%%A object that will be selected in case nothing is selected%%
+
+%%A object set to this property will be selected instead of no item being selected. Which means, there will be always at least one element selected. If this property is %%''NULL''%%, the state of "no item is selected" can be reached.%%
+
+%%Setting this property as a result of selection events results in undefined behavior.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:radio_group_impl:property:fallback_selection:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **fallback** - No description supplied.
+
+//Overridden from [[:develop:api:efl:ui:single_selectable:property:fallback_selection|Efl.Ui.Single_Selectable.fallback_selection]] **(get, set)**.//===== Signature =====
+
+
+@property fallback_selection @pure_virtual {
+ get {}
+ set {}
+ values {
+ fallback: Efl.Ui.Selectable;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Selectable *efl_ui_selectable_fallback_selection_get(const Eo *obj);
+void efl_ui_selectable_fallback_selection_set(Eo *obj, Efl_Ui_Selectable *fallback);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:single_selectable:property:fallback_selection|Efl.Ui.Single_Selectable.fallback_selection]]
+ * [[:develop:api:efl:ui:collection:property:fallback_selection|Efl.Ui.Collection.fallback_selection]]
+ * [[:develop:api:efl:ui:select_model:property:fallback_selection|Efl.Ui.Select_Model.fallback_selection]]
+ * [[:develop:api:efl:ui:tab_bar:property:fallback_selection|Efl.Ui.Tab_Bar.fallback_selection]]
+ * [[:develop:api:efl:ui:radio_group_impl:property:fallback_selection|Efl.Ui.Radio_Group_Impl.fallback_selection]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/radio_group_impl/property/last_selected.txt b/public_html/data/pages/develop/api/efl/ui/radio_group_impl/property/last_selected.txt
new file mode 100644
index 00000000..7404def7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/radio_group_impl/property/last_selected.txt
@@ -0,0 +1,35 @@
+~~Title: Efl.Ui.Radio_Group_Impl.last_selected~~
+====== Efl.Ui.Radio_Group_Impl.last_selected ======
+
+===== Values =====
+
+ * **selectable** - %%The latest selected item.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:radio_group_impl:property:last_selected:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:single_selectable:property:last_selected|Efl.Ui.Single_Selectable.last_selected]] **(get)**.//===== Signature =====
+
+
+@property last_selected @pure_virtual {
+ get {}
+ values {
+ selectable: Efl.Ui.Selectable;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Selectable *efl_ui_selectable_last_selected_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:single_selectable:property:last_selected|Efl.Ui.Single_Selectable.last_selected]]
+ * [[:develop:api:efl:ui:collection:property:last_selected|Efl.Ui.Collection.last_selected]]
+ * [[:develop:api:efl:ui:select_model:property:last_selected|Efl.Ui.Select_Model.last_selected]]
+ * [[:develop:api:efl:ui:tab_bar:property:last_selected|Efl.Ui.Tab_Bar.last_selected]]
+ * [[:develop:api:efl:ui:radio_group_impl:property:last_selected|Efl.Ui.Radio_Group_Impl.last_selected]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/radio_group_impl/property/selected_value.txt b/public_html/data/pages/develop/api/efl/ui/radio_group_impl/property/selected_value.txt
new file mode 100644
index 00000000..89053646
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/radio_group_impl/property/selected_value.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Radio_Group_Impl.selected_value~~
+====== Efl.Ui.Radio_Group_Impl.selected_value ======
+
+===== Description =====
+
+%%The value associated with the currently selected button in the group. Give each radio button in the group a different value using %%[[:develop:api:efl:ui:radio:property:state_value|Efl.Ui.Radio.state_value]]%%.%%
+
+%%A value of -1 means that no button is selected. Only values associated with the buttons in the group (and -1) can be used.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:radio_group_impl:property:selected_value:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **selected_value** - %%The value of the currently selected radio button, or -1.%%
+
+//Overridden from [[:develop:api:efl:ui:radio_group:property:selected_value|Efl.Ui.Radio_Group.selected_value]] **(get, set)**.//===== Signature =====
+
+
+@property selected_value @pure_virtual {
+ get {}
+ set {}
+ values {
+ selected_value: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_ui_radio_group_selected_value_get(const Eo *obj);
+void efl_ui_radio_group_selected_value_set(Eo *obj, int selected_value);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:radio_group:property:selected_value|Efl.Ui.Radio_Group.selected_value]]
+ * [[:develop:api:efl:ui:radio_group_impl:property:selected_value|Efl.Ui.Radio_Group_Impl.selected_value]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/range_display.txt b/public_html/data/pages/develop/api/efl/ui/range_display.txt
new file mode 100644
index 00000000..16e4a563
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/range_display.txt
@@ -0,0 +1,48 @@
+~~Title: Efl.Ui.Range_Display~~
+====== Efl.Ui.Range_Display (interface) ======
+
+===== Description =====
+
+%%Interface that contains properties regarding the displaying of a value within a range.%%
+
+%%A value range contains a value restricted between specified minimum and maximum limits at all times. This can be used for progressbars, sliders or spinners, for example.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:range_display:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:ui:range_display:property:range_limits|range_limits]]** //**(get, set)**//\\
+> %%Set the minimum and maximum values for given range widget.%%
+
+void efl_ui_range_limits_get(const Eo *obj, double *min, double *max);
+void efl_ui_range_limits_set(Eo *obj, double min, double max);
+
+\\
+**[[:develop:api:efl:ui:range_display:property:range_value|range_value]]** //**(get, set)**//\\
+> %%Control the value (position) of the widget within its valid range.%%
+
+double efl_ui_range_value_get(const Eo *obj);
+void efl_ui_range_value_set(Eo *obj, double val);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:ui:range_display:event:changed|changed]]**\\
+> %%Emitted when the %%[[:develop:api:efl:ui:range_display:property:range_value|Efl.Ui.Range_Display.range_value]]%% is getting changed.%%
+
+EFL_UI_RANGE_EVENT_CHANGED(void)
+
+\\ **[[:develop:api:efl:ui:range_display:event:max_reached|max,reached]]**\\
+> %%Emitted when the %%''range_value''%% has reached the maximum of %%[[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]%%.%%
+
+EFL_UI_RANGE_EVENT_MAX_REACHED(void)
+
+\\ **[[:develop:api:efl:ui:range_display:event:min_reached|min,reached]]**\\
+> %%Emitted when the %%[[:develop:api:efl:ui:range_display:property:range_value|Efl.Ui.Range_Display.range_value]]%% has reached the minimum of %%[[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]%%.%%
+
+EFL_UI_RANGE_EVENT_MIN_REACHED(void)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/ui/range_display/event/changed.txt b/public_html/data/pages/develop/api/efl/ui/range_display/event/changed.txt
new file mode 100644
index 00000000..4ca5ff08
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/range_display/event/changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Range_Display: changed~~
+
+===== Description =====
+
+%%Emitted when the %%[[:develop:api:efl:ui:range_display:property:range_value|Efl.Ui.Range_Display.range_value]]%% is getting changed.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:range_display:event:changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+changed;
+
+
+===== C information =====
+
+
+EFL_UI_RANGE_EVENT_CHANGED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_range_event_changed(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_RANGE_EVENT_CHANGED, on_efl_ui_range_event_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/range_display/event/max_reached.txt b/public_html/data/pages/develop/api/efl/ui/range_display/event/max_reached.txt
new file mode 100644
index 00000000..fc2a9f4b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/range_display/event/max_reached.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Range_Display: max,reached~~
+
+===== Description =====
+
+%%Emitted when the %%''range_value''%% has reached the maximum of %%[[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:range_display:event:max_reached:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+max,reached;
+
+
+===== C information =====
+
+
+EFL_UI_RANGE_EVENT_MAX_REACHED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_range_event_max_reached(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_RANGE_EVENT_MAX_REACHED, on_efl_ui_range_event_max_reached, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/range_display/event/min_reached.txt b/public_html/data/pages/develop/api/efl/ui/range_display/event/min_reached.txt
new file mode 100644
index 00000000..dfad6b9a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/range_display/event/min_reached.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Range_Display: min,reached~~
+
+===== Description =====
+
+%%Emitted when the %%[[:develop:api:efl:ui:range_display:property:range_value|Efl.Ui.Range_Display.range_value]]%% has reached the minimum of %%[[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:range_display:event:min_reached:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+min,reached;
+
+
+===== C information =====
+
+
+EFL_UI_RANGE_EVENT_MIN_REACHED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_range_event_min_reached(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_RANGE_EVENT_MIN_REACHED, on_efl_ui_range_event_min_reached, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/range_display/property/range_limits.txt b/public_html/data/pages/develop/api/efl/ui/range_display/property/range_limits.txt
new file mode 100644
index 00000000..3a9b15b4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/range_display/property/range_limits.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Ui.Range_Display.range_limits~~
+====== Efl.Ui.Range_Display.range_limits ======
+
+===== Description =====
+
+%%Set the minimum and maximum values for given range widget.%%
+
+%%If the current value is less than %%''min''%%, it will be updated to %%''min''%%. If it is bigger then %%''max''%%, will be updated to %%''max''%%. The resulting value can be obtained with %%[[:develop:api:efl:ui:range_display:property:range_value|Efl.Ui.Range_Display.range_value.get]]%%.%%
+
+%%The default minimum and maximum values may be different for each class.%%
+
+
+@property range_limits @pure_virtual {
+ get {}
+ set {}
+ values {
+ min: double;
+ max: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_range_limits_get(const Eo *obj, double *min, double *max);
+void efl_ui_range_limits_set(Eo *obj, double min, double max);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]
+ * [[:develop:api:efl:ui:spin:property:range_limits|Efl.Ui.Spin.range_limits]]
+ * [[:develop:api:efl:ui:progressbar_part:property:range_limits|Efl.Ui.Progressbar_Part.range_limits]]
+ * [[:develop:api:efl:ui:slider:property:range_limits|Efl.Ui.Slider.range_limits]]
+ * [[:develop:api:efl:ui:slider_interval:property:range_limits|Efl.Ui.Slider_Interval.range_limits]]
+ * [[:develop:api:efl:ui:progressbar:property:range_limits|Efl.Ui.Progressbar.range_limits]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/range_display/property/range_value.txt b/public_html/data/pages/develop/api/efl/ui/range_display/property/range_value.txt
new file mode 100644
index 00000000..e331b121
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/range_display/property/range_value.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Ui.Range_Display.range_value~~
+====== Efl.Ui.Range_Display.range_value ======
+
+===== Description =====
+
+%%Control the value (position) of the widget within its valid range.%%
+
+%%Values outside the limits defined in %%[[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]%% are ignored and an error is printed.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:range_display:property:range_value:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **val** - %%The range value (must be within the bounds of %%[[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]%%).%%
+
+===== Signature =====
+
+
+@property range_value @pure_virtual {
+ get {}
+ set {}
+ values {
+ val: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_ui_range_value_get(const Eo *obj);
+void efl_ui_range_value_set(Eo *obj, double val);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:range_display:property:range_value|Efl.Ui.Range_Display.range_value]]
+ * [[:develop:api:efl:ui:spin:property:range_value|Efl.Ui.Spin.range_value]]
+ * [[:develop:api:efl:ui:spin_button:property:range_value|Efl.Ui.Spin_Button.range_value]]
+ * [[:develop:api:efl:ui:progressbar_part:property:range_value|Efl.Ui.Progressbar_Part.range_value]]
+ * [[:develop:api:efl:ui:slider:property:range_value|Efl.Ui.Slider.range_value]]
+ * [[:develop:api:efl:ui:slider_interval:property:range_value|Efl.Ui.Slider_Interval.range_value]]
+ * [[:develop:api:efl:ui:progressbar:property:range_value|Efl.Ui.Progressbar.range_value]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/range_interactive.txt b/public_html/data/pages/develop/api/efl/ui/range_interactive.txt
new file mode 100644
index 00000000..488a2e8c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/range_interactive.txt
@@ -0,0 +1,51 @@
+~~Title: Efl.Ui.Range_Interactive~~
+====== Efl.Ui.Range_Interactive (interface) ======
+
+===== Description =====
+
+%%Interface that extends the normal displaying properties with usage properties.%%
+
+%%The properties defined here are used to manipulate the way a user interacts with a displayed range.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:range_interactive:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:range_display|Efl.Ui.Range_Display]] //(interface)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:range_display|Efl.Ui.Range_Display]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:range_interactive:property:range_step|range_step]]** //**(get, set)**//\\
+> %%Control the step used to increment or decrement values for given widget.%%
+
+double efl_ui_range_step_get(const Eo *obj);
+void efl_ui_range_step_set(Eo *obj, double step);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:ui:range_display|Efl.Ui.Range_Display]] ^^^
+| | **[[:develop:api:efl:ui:range_display:property:range_limits|range_limits]]** //**(get, set)**// | %%Set the minimum and maximum values for given range widget.%% |
+| | **[[:develop:api:efl:ui:range_display:property:range_value|range_value]]** //**(get, set)**// | %%Control the value (position) of the widget within its valid range.%% |
+
+===== Events =====
+
+**[[:develop:api:efl:ui:range_interactive:event:steady|steady]]**\\
+> %%Called when the widget's value has changed and has remained unchanged for 0.2s. This allows filtering out unwanted "noise" from the widget if you are only interested in its final position. Use this event instead of %%[[:develop:api:efl:ui:range_display:event:changed|Efl.Ui.Range_Display.changed]]%% if you are going to perform a costly operation on its handler.%%
+
+EFL_UI_RANGE_EVENT_STEADY(void)
+
+\\ ==== Inherited ====
+
+^ [[:develop:api:efl:ui:range_display|Efl.Ui.Range_Display]] ^^^
+| | **[[:develop:api:efl:ui:range_display:event:changed|changed]]** | %%Emitted when the %%[[:develop:api:efl:ui:range_display:property:range_value|Efl.Ui.Range_Display.range_value]]%% is getting changed.%% |
+| | **[[:develop:api:efl:ui:range_display:event:max_reached|max,reached]]** | %%Emitted when the %%''range_value''%% has reached the maximum of %%[[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]%%.%% |
+| | **[[:develop:api:efl:ui:range_display:event:min_reached|min,reached]]** | %%Emitted when the %%[[:develop:api:efl:ui:range_display:property:range_value|Efl.Ui.Range_Display.range_value]]%% has reached the minimum of %%[[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]%%.%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/range_interactive/event/steady.txt b/public_html/data/pages/develop/api/efl/ui/range_interactive/event/steady.txt
new file mode 100644
index 00000000..eaec327f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/range_interactive/event/steady.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Range_Interactive: steady~~
+
+===== Description =====
+
+%%Called when the widget's value has changed and has remained unchanged for 0.2s. This allows filtering out unwanted "noise" from the widget if you are only interested in its final position. Use this event instead of %%[[:develop:api:efl:ui:range_display:event:changed|Efl.Ui.Range_Display.changed]]%% if you are going to perform a costly operation on its handler.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:range_interactive:event:steady:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+steady;
+
+
+===== C information =====
+
+
+EFL_UI_RANGE_EVENT_STEADY(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_range_event_steady(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_RANGE_EVENT_STEADY, on_efl_ui_range_event_steady, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/range_interactive/property/range_step.txt b/public_html/data/pages/develop/api/efl/ui/range_interactive/property/range_step.txt
new file mode 100644
index 00000000..f2c4b27f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/range_interactive/property/range_step.txt
@@ -0,0 +1,48 @@
+~~Title: Efl.Ui.Range_Interactive.range_step~~
+====== Efl.Ui.Range_Interactive.range_step ======
+
+===== Description =====
+
+%%Control the step used to increment or decrement values for given widget.%%
+
+%%This value will be incremented or decremented to the displayed value.%%
+
+%%By default step value is equal to 1.%%
+
+
+@property range_step @pure_virtual {
+ get {}
+ set {}
+ values {
+ step: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_ui_range_step_get(const Eo *obj);
+void efl_ui_range_step_set(Eo *obj, double step);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:range_interactive:property:range_step|Efl.Ui.Range_Interactive.range_step]]
+ * [[:develop:api:efl:ui:slider:property:range_step|Efl.Ui.Slider.range_step]]
+ * [[:develop:api:efl:ui:slider_interval:property:range_step|Efl.Ui.Slider_Interval.range_step]]
+ * [[:develop:api:efl:ui:spin_button:property:range_step|Efl.Ui.Spin_Button.range_step]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable.txt b/public_html/data/pages/develop/api/efl/ui/scrollable.txt
new file mode 100644
index 00000000..13e30915
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable.txt
@@ -0,0 +1,174 @@
+~~Title: Efl.Ui.Scrollable~~
+====== Efl.Ui.Scrollable (interface) ======
+
+===== Description =====
+
+%%Interface for widgets capable of displaying content through a viewport, which might be smaller than the actual content. This interface does not control how the content is added. This is typically done through %%[[:develop:api:efl:content|Efl.Content]]%%.%%
+
+%%When the content does not fit inside the viewport, typically %%[[:develop:api:efl:ui:scrollbar|Efl.Ui.Scrollbar]]%% widgets will be used, but this is beyond the scope of this interface.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollable:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:ui:scrollable:property:bounce_enabled|bounce_enabled]]** //**(get, set)**//\\
+> %%When scrolling, the scroller may "bounce" when reaching the edge of the content object. This is a visual way to indicate the end has been reached. This is enabled by default for both axes. This property determines if bouncing is enabled in each axis. When bouncing is disabled, scrolling just stops upon reaching the end of the content.%%
+
+void efl_ui_scrollable_bounce_enabled_get(const Eo *obj, Eina_Bool *horiz, Eina_Bool *vert);
+void efl_ui_scrollable_bounce_enabled_set(Eo *obj, Eina_Bool horiz, Eina_Bool vert);
+
+\\
+**[[:develop:api:efl:ui:scrollable:property:content_pos|content_pos]]** //**(get, set)**//\\
+> %%Position of the content inside the scroller.%%
+
+Eina_Position2D efl_ui_scrollable_content_pos_get(const Eo *obj);
+void efl_ui_scrollable_content_pos_set(Eo *obj, Eina_Position2D pos);
+
+\\
+**[[:develop:api:efl:ui:scrollable:property:content_size|content_size]]** //**(get)**//\\
+>
+
+Eina_Size2D efl_ui_scrollable_content_size_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:scrollable:property:gravity|gravity]]** //**(get, set)**//\\
+> %%Control scrolling gravity on the scrollable.%%
+
+void efl_ui_scrollable_gravity_get(const Eo *obj, double *x, double *y);
+void efl_ui_scrollable_gravity_set(Eo *obj, double x, double y);
+
+\\
+**[[:develop:api:efl:ui:scrollable:property:looping|looping]]** //**(get, set)**//\\
+> %%Controls infinite looping for a scroller.%%
+
+void efl_ui_scrollable_looping_get(const Eo *obj, Eina_Bool *loop_h, Eina_Bool *loop_v);
+void efl_ui_scrollable_looping_set(Eo *obj, Eina_Bool loop_h, Eina_Bool loop_v);
+
+\\
+**[[:develop:api:efl:ui:scrollable:property:match_content|match_content]]** //**(set)**//\\
+>
+
+void efl_ui_scrollable_match_content_set(Eo *obj, Eina_Bool w, Eina_Bool h);
+
+\\
+**[[:develop:api:efl:ui:scrollable:property:movement_block|movement_block]]** //**(get, set)**//\\
+> %%Blocking of scrolling (per axis).%%
+
+Efl_Ui_Layout_Orientation efl_ui_scrollable_movement_block_get(const Eo *obj);
+void efl_ui_scrollable_movement_block_set(Eo *obj, Efl_Ui_Layout_Orientation block);
+
+\\
+**[[:develop:api:efl:ui:scrollable:method:scroll|scroll]]**\\
+> %%Show a specific virtual region within the scroller content object.%%
+
+void efl_ui_scrollable_scroll(Eo *obj, Eina_Rect rect, Eina_Bool animation);
+
+\\
+**[[:develop:api:efl:ui:scrollable:property:scroll_freeze|scroll_freeze]]** //**(get, set)**//\\
+> %%Freezes scrolling movement (by input of a user). Unlike %%[[:develop:api:efl:ui:scrollable:property:movement_block|Efl.Ui.Scrollable.movement_block]]%%, this property freezes bidirectionally. If you want to freeze in only one direction, see %%[[:develop:api:efl:ui:scrollable:property:movement_block|Efl.Ui.Scrollable.movement_block]]%%.%%
+
+Eina_Bool efl_ui_scrollable_scroll_freeze_get(const Eo *obj);
+void efl_ui_scrollable_scroll_freeze_set(Eo *obj, Eina_Bool freeze);
+
+\\
+**[[:develop:api:efl:ui:scrollable:property:scroll_hold|scroll_hold]]** //**(get, set)**//\\
+> %%When hold turns on, it only scrolls by holding action.%%
+
+Eina_Bool efl_ui_scrollable_scroll_hold_get(const Eo *obj);
+void efl_ui_scrollable_scroll_hold_set(Eo *obj, Eina_Bool hold);
+
+\\
+**[[:develop:api:efl:ui:scrollable:property:step_size|step_size]]** //**(get, set)**//\\
+> %%Amount to scroll in response to cursor key presses.%%
+
+Eina_Position2D efl_ui_scrollable_step_size_get(const Eo *obj);
+void efl_ui_scrollable_step_size_set(Eo *obj, Eina_Position2D step);
+
+\\
+**[[:develop:api:efl:ui:scrollable:property:viewport_geometry|viewport_geometry]]** //**(get)**//\\
+>
+
+Eina_Rect efl_ui_scrollable_viewport_geometry_get(const Eo *obj);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:ui:scrollable:event:edge_down|edge,down]]**\\
+> %%Called when hitting the bottom edge.%%
+
+EFL_UI_EVENT_EDGE_DOWN(void)
+
+\\ **[[:develop:api:efl:ui:scrollable:event:edge_left|edge,left]]**\\
+> %%Called when hitting the left edge.%%
+
+EFL_UI_EVENT_EDGE_LEFT(void)
+
+\\ **[[:develop:api:efl:ui:scrollable:event:edge_right|edge,right]]**\\
+> %%Called when hitting the right edge.%%
+
+EFL_UI_EVENT_EDGE_RIGHT(void)
+
+\\ **[[:develop:api:efl:ui:scrollable:event:edge_up|edge,up]]**\\
+> %%Called when hitting the top edge.%%
+
+EFL_UI_EVENT_EDGE_UP(void)
+
+\\ **[[:develop:api:efl:ui:scrollable:event:scroll_anim_finished|scroll,anim,finished]]**\\
+> %%Called when scroll animation finishes.%%
+
+EFL_UI_EVENT_SCROLL_ANIM_FINISHED(void)
+
+\\ **[[:develop:api:efl:ui:scrollable:event:scroll_anim_started|scroll,anim,started]]**\\
+> %%Called when scroll animation starts.%%
+
+EFL_UI_EVENT_SCROLL_ANIM_STARTED(void)
+
+\\ **[[:develop:api:efl:ui:scrollable:event:scroll_changed|scroll,changed]]**\\
+> %%Called when scrolling.%%
+
+EFL_UI_EVENT_SCROLL_CHANGED(void)
+
+\\ **[[:develop:api:efl:ui:scrollable:event:scroll_down|scroll,down]]**\\
+> %%Called when scrolling downwards.%%
+
+EFL_UI_EVENT_SCROLL_DOWN(void)
+
+\\ **[[:develop:api:efl:ui:scrollable:event:scroll_drag_finished|scroll,drag,finished]]**\\
+> %%Called when scroll drag finishes.%%
+
+EFL_UI_EVENT_SCROLL_DRAG_FINISHED(void)
+
+\\ **[[:develop:api:efl:ui:scrollable:event:scroll_drag_started|scroll,drag,started]]**\\
+> %%Called when scroll drag starts.%%
+
+EFL_UI_EVENT_SCROLL_DRAG_STARTED(void)
+
+\\ **[[:develop:api:efl:ui:scrollable:event:scroll_finished|scroll,finished]]**\\
+> %%Called when scroll operation finishes.%%
+
+EFL_UI_EVENT_SCROLL_FINISHED(void)
+
+\\ **[[:develop:api:efl:ui:scrollable:event:scroll_left|scroll,left]]**\\
+> %%Called when scrolling left.%%
+
+EFL_UI_EVENT_SCROLL_LEFT(void)
+
+\\ **[[:develop:api:efl:ui:scrollable:event:scroll_right|scroll,right]]**\\
+> %%Called when scrolling right.%%
+
+EFL_UI_EVENT_SCROLL_RIGHT(void)
+
+\\ **[[:develop:api:efl:ui:scrollable:event:scroll_started|scroll,started]]**\\
+> %%Called when scroll operation starts.%%
+
+EFL_UI_EVENT_SCROLL_STARTED(void)
+
+\\ **[[:develop:api:efl:ui:scrollable:event:scroll_up|scroll,up]]**\\
+> %%Called when scrolling upwards.%%
+
+EFL_UI_EVENT_SCROLL_UP(void)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/event/edge_down.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/event/edge_down.txt
new file mode 100644
index 00000000..15ca23d3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/event/edge_down.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Scrollable: edge,down~~
+
+===== Description =====
+
+%%Called when hitting the bottom edge.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollable:event:edge_down:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+edge,down;
+
+
+===== C information =====
+
+
+EFL_UI_EVENT_EDGE_DOWN(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_event_edge_down(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_EVENT_EDGE_DOWN, on_efl_ui_event_edge_down, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/event/edge_left.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/event/edge_left.txt
new file mode 100644
index 00000000..1b5408fa
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/event/edge_left.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Scrollable: edge,left~~
+
+===== Description =====
+
+%%Called when hitting the left edge.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollable:event:edge_left:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+edge,left;
+
+
+===== C information =====
+
+
+EFL_UI_EVENT_EDGE_LEFT(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_event_edge_left(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_EVENT_EDGE_LEFT, on_efl_ui_event_edge_left, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/event/edge_right.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/event/edge_right.txt
new file mode 100644
index 00000000..0cec20d1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/event/edge_right.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Scrollable: edge,right~~
+
+===== Description =====
+
+%%Called when hitting the right edge.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollable:event:edge_right:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+edge,right;
+
+
+===== C information =====
+
+
+EFL_UI_EVENT_EDGE_RIGHT(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_event_edge_right(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_EVENT_EDGE_RIGHT, on_efl_ui_event_edge_right, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/event/edge_up.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/event/edge_up.txt
new file mode 100644
index 00000000..64a6a992
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/event/edge_up.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Scrollable: edge,up~~
+
+===== Description =====
+
+%%Called when hitting the top edge.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollable:event:edge_up:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+edge,up;
+
+
+===== C information =====
+
+
+EFL_UI_EVENT_EDGE_UP(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_event_edge_up(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_EVENT_EDGE_UP, on_efl_ui_event_edge_up, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_anim_finished.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_anim_finished.txt
new file mode 100644
index 00000000..63029a5f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_anim_finished.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Scrollable: scroll,anim,finished~~
+
+===== Description =====
+
+%%Called when scroll animation finishes.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollable:event:scroll_anim_finished:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+scroll,anim,finished;
+
+
+===== C information =====
+
+
+EFL_UI_EVENT_SCROLL_ANIM_FINISHED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_event_scroll_anim_finished(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_EVENT_SCROLL_ANIM_FINISHED, on_efl_ui_event_scroll_anim_finished, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_anim_started.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_anim_started.txt
new file mode 100644
index 00000000..6709e395
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_anim_started.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Scrollable: scroll,anim,started~~
+
+===== Description =====
+
+%%Called when scroll animation starts.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollable:event:scroll_anim_started:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+scroll,anim,started;
+
+
+===== C information =====
+
+
+EFL_UI_EVENT_SCROLL_ANIM_STARTED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_event_scroll_anim_started(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_EVENT_SCROLL_ANIM_STARTED, on_efl_ui_event_scroll_anim_started, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_changed.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_changed.txt
new file mode 100644
index 00000000..8290586f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Scrollable: scroll,changed~~
+
+===== Description =====
+
+%%Called when scrolling.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollable:event:scroll_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+scroll,changed;
+
+
+===== C information =====
+
+
+EFL_UI_EVENT_SCROLL_CHANGED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_event_scroll_changed(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_EVENT_SCROLL_CHANGED, on_efl_ui_event_scroll_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_down.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_down.txt
new file mode 100644
index 00000000..76e15ab5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_down.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Scrollable: scroll,down~~
+
+===== Description =====
+
+%%Called when scrolling downwards.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollable:event:scroll_down:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+scroll,down;
+
+
+===== C information =====
+
+
+EFL_UI_EVENT_SCROLL_DOWN(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_event_scroll_down(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_EVENT_SCROLL_DOWN, on_efl_ui_event_scroll_down, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_drag_finished.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_drag_finished.txt
new file mode 100644
index 00000000..893cfa31
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_drag_finished.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Scrollable: scroll,drag,finished~~
+
+===== Description =====
+
+%%Called when scroll drag finishes.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollable:event:scroll_drag_finished:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+scroll,drag,finished;
+
+
+===== C information =====
+
+
+EFL_UI_EVENT_SCROLL_DRAG_FINISHED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_event_scroll_drag_finished(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_EVENT_SCROLL_DRAG_FINISHED, on_efl_ui_event_scroll_drag_finished, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_drag_started.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_drag_started.txt
new file mode 100644
index 00000000..60fa39db
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_drag_started.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Scrollable: scroll,drag,started~~
+
+===== Description =====
+
+%%Called when scroll drag starts.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollable:event:scroll_drag_started:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+scroll,drag,started;
+
+
+===== C information =====
+
+
+EFL_UI_EVENT_SCROLL_DRAG_STARTED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_event_scroll_drag_started(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_EVENT_SCROLL_DRAG_STARTED, on_efl_ui_event_scroll_drag_started, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_finished.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_finished.txt
new file mode 100644
index 00000000..f0f63027
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_finished.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Scrollable: scroll,finished~~
+
+===== Description =====
+
+%%Called when scroll operation finishes.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollable:event:scroll_finished:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+scroll,finished;
+
+
+===== C information =====
+
+
+EFL_UI_EVENT_SCROLL_FINISHED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_event_scroll_finished(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_EVENT_SCROLL_FINISHED, on_efl_ui_event_scroll_finished, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_left.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_left.txt
new file mode 100644
index 00000000..829ed50e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_left.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Scrollable: scroll,left~~
+
+===== Description =====
+
+%%Called when scrolling left.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollable:event:scroll_left:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+scroll,left;
+
+
+===== C information =====
+
+
+EFL_UI_EVENT_SCROLL_LEFT(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_event_scroll_left(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_EVENT_SCROLL_LEFT, on_efl_ui_event_scroll_left, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_right.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_right.txt
new file mode 100644
index 00000000..661ff1a1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_right.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Scrollable: scroll,right~~
+
+===== Description =====
+
+%%Called when scrolling right.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollable:event:scroll_right:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+scroll,right;
+
+
+===== C information =====
+
+
+EFL_UI_EVENT_SCROLL_RIGHT(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_event_scroll_right(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_EVENT_SCROLL_RIGHT, on_efl_ui_event_scroll_right, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_started.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_started.txt
new file mode 100644
index 00000000..aa7f2306
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_started.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Scrollable: scroll,started~~
+
+===== Description =====
+
+%%Called when scroll operation starts.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollable:event:scroll_started:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+scroll,started;
+
+
+===== C information =====
+
+
+EFL_UI_EVENT_SCROLL_STARTED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_event_scroll_started(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_EVENT_SCROLL_STARTED, on_efl_ui_event_scroll_started, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_up.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_up.txt
new file mode 100644
index 00000000..1721747e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/event/scroll_up.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Scrollable: scroll,up~~
+
+===== Description =====
+
+%%Called when scrolling upwards.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollable:event:scroll_up:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+scroll,up;
+
+
+===== C information =====
+
+
+EFL_UI_EVENT_SCROLL_UP(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_event_scroll_up(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_EVENT_SCROLL_UP, on_efl_ui_event_scroll_up, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/method/scroll.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/method/scroll.txt
new file mode 100644
index 00000000..b47e73d4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/method/scroll.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Scrollable.scroll~~
+====== Efl.Ui.Scrollable.scroll ======
+
+===== Description =====
+
+%%Show a specific virtual region within the scroller content object.%%
+
+%%This will ensure all (or part if it does not fit) of the designated region in the virtual content object (%%''0,0''%% starting at the top-left of the virtual content object) is shown within the scroller. This allows the scroller to "smoothly slide" to this location (if configuration in general calls for transitions). It may not jump immediately to the new location and make take a while and show other content along the way.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:scrollable:method:scroll:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+scroll @pure_virtual {
+ params {
+ @in rect: Eina.Rect;
+ @in animation: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_scrollable_scroll(Eo *obj, Eina_Rect rect, Eina_Bool animation);
+
+
+===== Parameters =====
+
+ * **rect** //(in)// - %%The position where to scroll and the size user want to see.%%
+ * **animation** //(in)// - %%Whether to scroll with animation or not.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:scrollable:method:scroll|Efl.Ui.Scrollable.scroll]]
+ * [[:develop:api:efl:ui:image_zoomable:method:scroll|Efl.Ui.Image_Zoomable.scroll]]
+ * [[:develop:api:efl:ui:scroll:manager:method:scroll|Efl.Ui.Scroll.Manager.scroll]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/property/bounce_enabled.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/property/bounce_enabled.txt
new file mode 100644
index 00000000..31c2847f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/property/bounce_enabled.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Scrollable.bounce_enabled~~
+====== Efl.Ui.Scrollable.bounce_enabled ======
+
+===== Description =====
+
+%%When scrolling, the scroller may "bounce" when reaching the edge of the content object. This is a visual way to indicate the end has been reached. This is enabled by default for both axes. This property determines if bouncing is enabled in each axis. When bouncing is disabled, scrolling just stops upon reaching the end of the content.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:scrollable:property:bounce_enabled:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **horiz** - %%Horizontal bouncing is enabled.%%
+ * **vert** - %%Vertical bouncing is enabled.%%
+
+===== Signature =====
+
+
+@property bounce_enabled @pure_virtual {
+ get {}
+ set {}
+ values {
+ horiz: bool;
+ vert: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_scrollable_bounce_enabled_get(const Eo *obj, Eina_Bool *horiz, Eina_Bool *vert);
+void efl_ui_scrollable_bounce_enabled_set(Eo *obj, Eina_Bool horiz, Eina_Bool vert);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:scrollable:property:bounce_enabled|Efl.Ui.Scrollable.bounce_enabled]]
+ * [[:develop:api:efl:ui:scroll:manager:property:bounce_enabled|Efl.Ui.Scroll.Manager.bounce_enabled]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/property/content_pos.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/property/content_pos.txt
new file mode 100644
index 00000000..2a9123d9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/property/content_pos.txt
@@ -0,0 +1,38 @@
+~~Title: Efl.Ui.Scrollable.content_pos~~
+====== Efl.Ui.Scrollable.content_pos ======
+
+===== Description =====
+
+%%Position of the content inside the scroller.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:scrollable:property:content_pos:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **pos** - %%The position is a virtual value, where %%''0,0''%% means the top-left corner.%%
+
+===== Signature =====
+
+
+@property content_pos @pure_virtual {
+ get {}
+ set {}
+ values {
+ pos: Eina.Position2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Position2D efl_ui_scrollable_content_pos_get(const Eo *obj);
+void efl_ui_scrollable_content_pos_set(Eo *obj, Eina_Position2D pos);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:scrollable:property:content_pos|Efl.Ui.Scrollable.content_pos]]
+ * [[:develop:api:efl:ui:scroll:manager:property:content_pos|Efl.Ui.Scroll.Manager.content_pos]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/property/content_size.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/property/content_size.txt
new file mode 100644
index 00000000..fff8f43c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/property/content_size.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.Ui.Scrollable.content_size~~
+====== Efl.Ui.Scrollable.content_size ======
+
+===== Values =====
+
+ * **size** - %%The content size in pixels.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:scrollable:property:content_size:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property content_size @pure_virtual {
+ get {}
+ values {
+ size: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_ui_scrollable_content_size_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:scrollable:property:content_size|Efl.Ui.Scrollable.content_size]]
+ * [[:develop:api:efl:ui:scroll:manager:property:content_size|Efl.Ui.Scroll.Manager.content_size]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/property/gravity.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/property/gravity.txt
new file mode 100644
index 00000000..1dfe5e42
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/property/gravity.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.Ui.Scrollable.gravity~~
+====== Efl.Ui.Scrollable.gravity ======
+
+===== Description =====
+
+%%Control scrolling gravity on the scrollable.%%
+
+%%The gravity defines how the scroller will adjust its view when the size of the scroller contents increases.%%
+
+%%The scroller will adjust the view to glue itself as follows: %%''x=0.0''%% to stay where it is relative to the left edge of the content. %%''x=1.0''%% to stay where it is relative to the right edge of the content. %%''y=0.0''%% to stay where it is relative to the top edge of the content. %%''y=1.0''%% to stay where it is relative to the bottom edge of the content.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:scrollable:property:gravity:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **x** - %%Horizontal scrolling gravity.%%
+ * **y** - %%Vertical scrolling gravity.%%
+
+===== Signature =====
+
+
+@property gravity @pure_virtual {
+ get {}
+ set {}
+ values {
+ x: double (0.000000);
+ y: double (0.000000);
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_scrollable_gravity_get(const Eo *obj, double *x, double *y);
+void efl_ui_scrollable_gravity_set(Eo *obj, double x, double y);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:scrollable:property:gravity|Efl.Ui.Scrollable.gravity]]
+ * [[:develop:api:efl:ui:scroll:manager:property:gravity|Efl.Ui.Scroll.Manager.gravity]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/property/looping.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/property/looping.txt
new file mode 100644
index 00000000..fbe318a3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/property/looping.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Scrollable.looping~~
+====== Efl.Ui.Scrollable.looping ======
+
+===== Description =====
+
+%%Controls infinite looping for a scroller.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:scrollable:property:looping:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **loop_h** - %%Scroll horizontal looping is enabled.%%
+ * **loop_v** - %%Scroll vertical looping is enabled.%%
+
+===== Signature =====
+
+
+@property looping @pure_virtual {
+ get {}
+ set {}
+ values {
+ loop_h: bool;
+ loop_v: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_scrollable_looping_get(const Eo *obj, Eina_Bool *loop_h, Eina_Bool *loop_v);
+void efl_ui_scrollable_looping_set(Eo *obj, Eina_Bool loop_h, Eina_Bool loop_v);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:scrollable:property:looping|Efl.Ui.Scrollable.looping]]
+ * [[:develop:api:efl:ui:scroll:manager:property:looping|Efl.Ui.Scroll.Manager.looping]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/property/match_content.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/property/match_content.txt
new file mode 100644
index 00000000..73c51ebe
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/property/match_content.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Ui.Scrollable.match_content~~
+====== Efl.Ui.Scrollable.match_content ======
+
+===== Values =====
+
+ * **w** - %%Whether to limit the minimum horizontal size.%%
+ * **h** - %%Whether to limit the minimum vertical size.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:scrollable:property:match_content:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property match_content @pure_virtual {
+ set {}
+}
+
+
+===== C signature =====
+
+
+void efl_ui_scrollable_match_content_set(Eo *obj, Eina_Bool w, Eina_Bool h);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:scrollable:property:match_content|Efl.Ui.Scrollable.match_content]]
+ * [[:develop:api:efl:ui:collection_view:property:match_content|Efl.Ui.Collection_View.match_content]]
+ * [[:develop:api:efl:ui:scroller:property:match_content|Efl.Ui.Scroller.match_content]]
+ * [[:develop:api:efl:ui:collection:property:match_content|Efl.Ui.Collection.match_content]]
+ * [[:develop:api:efl:ui:scroll:manager:property:match_content|Efl.Ui.Scroll.Manager.match_content]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/property/movement_block.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/property/movement_block.txt
new file mode 100644
index 00000000..f66c3532
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/property/movement_block.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Scrollable.movement_block~~
+====== Efl.Ui.Scrollable.movement_block ======
+
+===== Description =====
+
+%%Blocking of scrolling (per axis).%%
+
+%%This function will block scrolling movement (by input of a user) in a given direction. You can disable movements in the X axis, the Y axis or both. The default value is %%[[:develop:api:efl:ui:layout_orientation|Efl.Ui.Layout_Orientation.default]]%% meaning that movements are allowed in both directions.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:scrollable:property:movement_block:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **block** - %%Which axis (or axes) to block.%%
+
+===== Signature =====
+
+
+@property movement_block @pure_virtual {
+ get {}
+ set {}
+ values {
+ block: Efl.Ui.Layout_Orientation (Efl.Ui.Layout_Orientation.default);
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Layout_Orientation efl_ui_scrollable_movement_block_get(const Eo *obj);
+void efl_ui_scrollable_movement_block_set(Eo *obj, Efl_Ui_Layout_Orientation block);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:scrollable:property:movement_block|Efl.Ui.Scrollable.movement_block]]
+ * [[:develop:api:efl:ui:scroll:manager:property:movement_block|Efl.Ui.Scroll.Manager.movement_block]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/property/scroll_freeze.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/property/scroll_freeze.txt
new file mode 100644
index 00000000..c6416267
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/property/scroll_freeze.txt
@@ -0,0 +1,38 @@
+~~Title: Efl.Ui.Scrollable.scroll_freeze~~
+====== Efl.Ui.Scrollable.scroll_freeze ======
+
+===== Description =====
+
+%%Freezes scrolling movement (by input of a user). Unlike %%[[:develop:api:efl:ui:scrollable:property:movement_block|Efl.Ui.Scrollable.movement_block]]%%, this property freezes bidirectionally. If you want to freeze in only one direction, see %%[[:develop:api:efl:ui:scrollable:property:movement_block|Efl.Ui.Scrollable.movement_block]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:scrollable:property:scroll_freeze:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **freeze** - %%%%''true''%% if freeze.%%
+
+===== Signature =====
+
+
+@property scroll_freeze @pure_virtual {
+ get {}
+ set {}
+ values {
+ freeze: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_scrollable_scroll_freeze_get(const Eo *obj);
+void efl_ui_scrollable_scroll_freeze_set(Eo *obj, Eina_Bool freeze);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:scrollable:property:scroll_freeze|Efl.Ui.Scrollable.scroll_freeze]]
+ * [[:develop:api:efl:ui:scroll:manager:property:scroll_freeze|Efl.Ui.Scroll.Manager.scroll_freeze]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/property/scroll_hold.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/property/scroll_hold.txt
new file mode 100644
index 00000000..b8f07a4a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/property/scroll_hold.txt
@@ -0,0 +1,38 @@
+~~Title: Efl.Ui.Scrollable.scroll_hold~~
+====== Efl.Ui.Scrollable.scroll_hold ======
+
+===== Description =====
+
+%%When hold turns on, it only scrolls by holding action.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:scrollable:property:scroll_hold:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **hold** - %%%%''true''%% if hold.%%
+
+===== Signature =====
+
+
+@property scroll_hold @pure_virtual {
+ get {}
+ set {}
+ values {
+ hold: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_scrollable_scroll_hold_get(const Eo *obj);
+void efl_ui_scrollable_scroll_hold_set(Eo *obj, Eina_Bool hold);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:scrollable:property:scroll_hold|Efl.Ui.Scrollable.scroll_hold]]
+ * [[:develop:api:efl:ui:scroll:manager:property:scroll_hold|Efl.Ui.Scroll.Manager.scroll_hold]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/property/step_size.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/property/step_size.txt
new file mode 100644
index 00000000..74837114
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/property/step_size.txt
@@ -0,0 +1,38 @@
+~~Title: Efl.Ui.Scrollable.step_size~~
+====== Efl.Ui.Scrollable.step_size ======
+
+===== Description =====
+
+%%Amount to scroll in response to cursor key presses.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:scrollable:property:step_size:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **step** - %%The step size in pixels.%%
+
+===== Signature =====
+
+
+@property step_size @pure_virtual {
+ get {}
+ set {}
+ values {
+ step: Eina.Position2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Position2D efl_ui_scrollable_step_size_get(const Eo *obj);
+void efl_ui_scrollable_step_size_set(Eo *obj, Eina_Position2D step);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:scrollable:property:step_size|Efl.Ui.Scrollable.step_size]]
+ * [[:develop:api:efl:ui:scroll:manager:property:step_size|Efl.Ui.Scroll.Manager.step_size]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollable/property/viewport_geometry.txt b/public_html/data/pages/develop/api/efl/ui/scrollable/property/viewport_geometry.txt
new file mode 100644
index 00000000..df4e0794
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollable/property/viewport_geometry.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.Ui.Scrollable.viewport_geometry~~
+====== Efl.Ui.Scrollable.viewport_geometry ======
+
+===== Values =====
+
+ * **rect** - %%It is absolute geometry.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:scrollable:property:viewport_geometry:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property viewport_geometry @pure_virtual {
+ get {}
+ values {
+ rect: Eina.Rect;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Rect efl_ui_scrollable_viewport_geometry_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:scrollable:property:viewport_geometry|Efl.Ui.Scrollable.viewport_geometry]]
+ * [[:develop:api:efl:ui:scroll:manager:property:viewport_geometry|Efl.Ui.Scroll.Manager.viewport_geometry]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollbar.txt b/public_html/data/pages/develop/api/efl/ui/scrollbar.txt
new file mode 100644
index 00000000..9c86777c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollbar.txt
@@ -0,0 +1,78 @@
+~~Title: Efl.Ui.Scrollbar~~
+====== Efl.Ui.Scrollbar (interface) ======
+
+===== Description =====
+
+%%Interface used by widgets which can display scrollbars, enabling them to hold more content than actually visible through the viewport. A scrollbar contains a draggable part (thumb) which allows the user to move the viewport around the content. The size of the thumb relates to the size of the viewport compared to the whole content.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollbar:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:ui:scrollbar:property:bar_mode|bar_mode]]** //**(get, set)**//\\
+> %%Scrollbar visibility mode, for each of the scrollbars.%%
+
+void efl_ui_scrollbar_bar_mode_get(const Eo *obj, Efl_Ui_Scrollbar_Mode *hbar, Efl_Ui_Scrollbar_Mode *vbar);
+void efl_ui_scrollbar_bar_mode_set(Eo *obj, Efl_Ui_Scrollbar_Mode hbar, Efl_Ui_Scrollbar_Mode vbar);
+
+\\
+**[[:develop:api:efl:ui:scrollbar:property:bar_position|bar_position]]** //**(get, set)**//\\
+> %%Position of the thumb (the draggable zone) inside the scrollbar. It is calculated based on current position of the viewport inside the total content.%%
+
+void efl_ui_scrollbar_bar_position_get(const Eo *obj, double *posx, double *posy);
+void efl_ui_scrollbar_bar_position_set(Eo *obj, double posx, double posy);
+
+\\
+**[[:develop:api:efl:ui:scrollbar:property:bar_size|bar_size]]** //**(get)**//\\
+>
+
+void efl_ui_scrollbar_bar_size_get(const Eo *obj, double *width, double *height);
+
+\\
+**[[:develop:api:efl:ui:scrollbar:method:bar_visibility_update|bar_visibility_update]]** ''protected''\\
+> %%Update bar visibility.%%
+
+void efl_ui_scrollbar_bar_visibility_update(Eo *obj);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:ui:scrollbar:event:bar_dragged|bar,dragged]]**\\
+> %%Emitted when thumb is dragged.%%
+
+EFL_UI_SCROLLBAR_EVENT_BAR_DRAGGED(Efl_Ui_Layout_Orientation)
+
+\\ **[[:develop:api:efl:ui:scrollbar:event:bar_hide|bar,hide]]**\\
+> %%Emitted when scrollbar is hidden.%%
+
+EFL_UI_SCROLLBAR_EVENT_BAR_HIDE(Efl_Ui_Layout_Orientation)
+
+\\ **[[:develop:api:efl:ui:scrollbar:event:bar_pos_changed|bar,pos,changed]]**\\
+> %%Emitted when thumb position has changed.%%
+
+EFL_UI_SCROLLBAR_EVENT_BAR_POS_CHANGED(void)
+
+\\ **[[:develop:api:efl:ui:scrollbar:event:bar_pressed|bar,pressed]]**\\
+> %%Emitted when thumb is pressed.%%
+
+EFL_UI_SCROLLBAR_EVENT_BAR_PRESSED(Efl_Ui_Layout_Orientation)
+
+\\ **[[:develop:api:efl:ui:scrollbar:event:bar_show|bar,show]]**\\
+> %%Emitted when scrollbar is shown.%%
+
+EFL_UI_SCROLLBAR_EVENT_BAR_SHOW(Efl_Ui_Layout_Orientation)
+
+\\ **[[:develop:api:efl:ui:scrollbar:event:bar_size_changed|bar,size,changed]]**\\
+> %%Emitted when thumb size has changed.%%
+
+EFL_UI_SCROLLBAR_EVENT_BAR_SIZE_CHANGED(void)
+
+\\ **[[:develop:api:efl:ui:scrollbar:event:bar_unpressed|bar,unpressed]]**\\
+> %%Emitted when thumb is unpressed.%%
+
+EFL_UI_SCROLLBAR_EVENT_BAR_UNPRESSED(Efl_Ui_Layout_Orientation)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollbar/event/bar_dragged.txt b/public_html/data/pages/develop/api/efl/ui/scrollbar/event/bar_dragged.txt
new file mode 100644
index 00000000..fc5b8236
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollbar/event/bar_dragged.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Scrollbar: bar,dragged~~
+
+===== Description =====
+
+%%Emitted when thumb is dragged.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollbar:event:bar_dragged:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+bar,dragged: Efl.Ui.Layout_Orientation;
+
+
+===== C information =====
+
+
+EFL_UI_SCROLLBAR_EVENT_BAR_DRAGGED(Efl_Ui_Layout_Orientation)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_scrollbar_event_bar_dragged(void *data, const Efl_Event *event)
+{
+ Efl_Ui_Layout_Orientation info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_SCROLLBAR_EVENT_BAR_DRAGGED, on_efl_ui_scrollbar_event_bar_dragged, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollbar/event/bar_hide.txt b/public_html/data/pages/develop/api/efl/ui/scrollbar/event/bar_hide.txt
new file mode 100644
index 00000000..e31fd94c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollbar/event/bar_hide.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Scrollbar: bar,hide~~
+
+===== Description =====
+
+%%Emitted when scrollbar is hidden.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollbar:event:bar_hide:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+bar,hide: Efl.Ui.Layout_Orientation;
+
+
+===== C information =====
+
+
+EFL_UI_SCROLLBAR_EVENT_BAR_HIDE(Efl_Ui_Layout_Orientation)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_scrollbar_event_bar_hide(void *data, const Efl_Event *event)
+{
+ Efl_Ui_Layout_Orientation info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_SCROLLBAR_EVENT_BAR_HIDE, on_efl_ui_scrollbar_event_bar_hide, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollbar/event/bar_pos_changed.txt b/public_html/data/pages/develop/api/efl/ui/scrollbar/event/bar_pos_changed.txt
new file mode 100644
index 00000000..8b51d7fd
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollbar/event/bar_pos_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Scrollbar: bar,pos,changed~~
+
+===== Description =====
+
+%%Emitted when thumb position has changed.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollbar:event:bar_pos_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+bar,pos,changed;
+
+
+===== C information =====
+
+
+EFL_UI_SCROLLBAR_EVENT_BAR_POS_CHANGED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_scrollbar_event_bar_pos_changed(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_SCROLLBAR_EVENT_BAR_POS_CHANGED, on_efl_ui_scrollbar_event_bar_pos_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollbar/event/bar_pressed.txt b/public_html/data/pages/develop/api/efl/ui/scrollbar/event/bar_pressed.txt
new file mode 100644
index 00000000..7a712728
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollbar/event/bar_pressed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Scrollbar: bar,pressed~~
+
+===== Description =====
+
+%%Emitted when thumb is pressed.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollbar:event:bar_pressed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+bar,pressed: Efl.Ui.Layout_Orientation;
+
+
+===== C information =====
+
+
+EFL_UI_SCROLLBAR_EVENT_BAR_PRESSED(Efl_Ui_Layout_Orientation)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_scrollbar_event_bar_pressed(void *data, const Efl_Event *event)
+{
+ Efl_Ui_Layout_Orientation info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_SCROLLBAR_EVENT_BAR_PRESSED, on_efl_ui_scrollbar_event_bar_pressed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollbar/event/bar_show.txt b/public_html/data/pages/develop/api/efl/ui/scrollbar/event/bar_show.txt
new file mode 100644
index 00000000..e622a5ce
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollbar/event/bar_show.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Scrollbar: bar,show~~
+
+===== Description =====
+
+%%Emitted when scrollbar is shown.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollbar:event:bar_show:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+bar,show: Efl.Ui.Layout_Orientation;
+
+
+===== C information =====
+
+
+EFL_UI_SCROLLBAR_EVENT_BAR_SHOW(Efl_Ui_Layout_Orientation)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_scrollbar_event_bar_show(void *data, const Efl_Event *event)
+{
+ Efl_Ui_Layout_Orientation info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_SCROLLBAR_EVENT_BAR_SHOW, on_efl_ui_scrollbar_event_bar_show, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollbar/event/bar_size_changed.txt b/public_html/data/pages/develop/api/efl/ui/scrollbar/event/bar_size_changed.txt
new file mode 100644
index 00000000..1e3e59b9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollbar/event/bar_size_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Scrollbar: bar,size,changed~~
+
+===== Description =====
+
+%%Emitted when thumb size has changed.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollbar:event:bar_size_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+bar,size,changed;
+
+
+===== C information =====
+
+
+EFL_UI_SCROLLBAR_EVENT_BAR_SIZE_CHANGED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_scrollbar_event_bar_size_changed(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_SCROLLBAR_EVENT_BAR_SIZE_CHANGED, on_efl_ui_scrollbar_event_bar_size_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollbar/event/bar_unpressed.txt b/public_html/data/pages/develop/api/efl/ui/scrollbar/event/bar_unpressed.txt
new file mode 100644
index 00000000..c0414550
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollbar/event/bar_unpressed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Scrollbar: bar,unpressed~~
+
+===== Description =====
+
+%%Emitted when thumb is unpressed.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollbar:event:bar_unpressed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+bar,unpressed: Efl.Ui.Layout_Orientation;
+
+
+===== C information =====
+
+
+EFL_UI_SCROLLBAR_EVENT_BAR_UNPRESSED(Efl_Ui_Layout_Orientation)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_scrollbar_event_bar_unpressed(void *data, const Efl_Event *event)
+{
+ Efl_Ui_Layout_Orientation info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_SCROLLBAR_EVENT_BAR_UNPRESSED, on_efl_ui_scrollbar_event_bar_unpressed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollbar/method/bar_visibility_update.txt b/public_html/data/pages/develop/api/efl/ui/scrollbar/method/bar_visibility_update.txt
new file mode 100644
index 00000000..2eafaabb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollbar/method/bar_visibility_update.txt
@@ -0,0 +1,29 @@
+~~Title: Efl.Ui.Scrollbar.bar_visibility_update~~
+====== Efl.Ui.Scrollbar.bar_visibility_update ======
+
+===== Description =====
+
+%%Update bar visibility.%%
+
+%%The object will call this function whenever the bar needs to be shown or hidden.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:scrollbar:method:bar_visibility_update:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+bar_visibility_update @beta @protected @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_ui_scrollbar_bar_visibility_update(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:scrollbar:method:bar_visibility_update|Efl.Ui.Scrollbar.bar_visibility_update]]
+ * [[:develop:api:efl:ui:scroll:manager:method:bar_visibility_update|Efl.Ui.Scroll.Manager.bar_visibility_update]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollbar/property/bar_mode.txt b/public_html/data/pages/develop/api/efl/ui/scrollbar/property/bar_mode.txt
new file mode 100644
index 00000000..87fc46a8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollbar/property/bar_mode.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Scrollbar.bar_mode~~
+====== Efl.Ui.Scrollbar.bar_mode ======
+
+===== Description =====
+
+%%Scrollbar visibility mode, for each of the scrollbars.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:scrollbar:property:bar_mode:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **hbar** - %%Horizontal scrollbar mode.%%
+ * **vbar** - %%Vertical scrollbar mode.%%
+
+===== Signature =====
+
+
+@property bar_mode @pure_virtual {
+ get {}
+ set {}
+ values {
+ hbar: Efl.Ui.Scrollbar_Mode (Efl.Ui.Scrollbar_Mode.auto);
+ vbar: Efl.Ui.Scrollbar_Mode (Efl.Ui.Scrollbar_Mode.auto);
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_scrollbar_bar_mode_get(const Eo *obj, Efl_Ui_Scrollbar_Mode *hbar, Efl_Ui_Scrollbar_Mode *vbar);
+void efl_ui_scrollbar_bar_mode_set(Eo *obj, Efl_Ui_Scrollbar_Mode hbar, Efl_Ui_Scrollbar_Mode vbar);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:scrollbar:property:bar_mode|Efl.Ui.Scrollbar.bar_mode]]
+ * [[:develop:api:efl:ui:scroll:manager:property:bar_mode|Efl.Ui.Scroll.Manager.bar_mode]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollbar/property/bar_position.txt b/public_html/data/pages/develop/api/efl/ui/scrollbar/property/bar_position.txt
new file mode 100644
index 00000000..200ad865
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollbar/property/bar_position.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Scrollbar.bar_position~~
+====== Efl.Ui.Scrollbar.bar_position ======
+
+===== Description =====
+
+%%Position of the thumb (the draggable zone) inside the scrollbar. It is calculated based on current position of the viewport inside the total content.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:scrollbar:property:bar_position:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **posx** - %%Value between %%''0.0''%% (the left side of the thumb is touching the left edge of the widget) and %%''1.0''%% (the right side of the thumb is touching the right edge of the widget).%%
+ * **posy** - %%Value between %%''0.0''%% (the top side of the thumb is touching the top edge of the widget) and %%''1.0''%% (the bottom side of the thumb is touching the bottom edge of the widget).%%
+
+===== Signature =====
+
+
+@property bar_position @pure_virtual {
+ get {}
+ set {}
+ values {
+ posx: double;
+ posy: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_scrollbar_bar_position_get(const Eo *obj, double *posx, double *posy);
+void efl_ui_scrollbar_bar_position_set(Eo *obj, double posx, double posy);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:scrollbar:property:bar_position|Efl.Ui.Scrollbar.bar_position]]
+ * [[:develop:api:efl:ui:scroll:manager:property:bar_position|Efl.Ui.Scroll.Manager.bar_position]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollbar/property/bar_size.txt b/public_html/data/pages/develop/api/efl/ui/scrollbar/property/bar_size.txt
new file mode 100644
index 00000000..e9e97bd6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollbar/property/bar_size.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Ui.Scrollbar.bar_size~~
+====== Efl.Ui.Scrollbar.bar_size ======
+
+===== Values =====
+
+ * **width** - %%Value between %%''0.0''%% and %%''1.0''%%.%%
+ * **height** - %%Value between %%''0.0''%% and %%''1.0''%%.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:scrollbar:property:bar_size:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property bar_size @pure_virtual {
+ get {}
+ values {
+ width: double;
+ height: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_scrollbar_bar_size_get(const Eo *obj, double *width, double *height);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:scrollbar:property:bar_size|Efl.Ui.Scrollbar.bar_size]]
+ * [[:develop:api:efl:ui:scroll:manager:property:bar_size|Efl.Ui.Scroll.Manager.bar_size]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scrollbar_mode.txt b/public_html/data/pages/develop/api/efl/ui/scrollbar_mode.txt
new file mode 100644
index 00000000..439a5b34
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scrollbar_mode.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Scrollbar_Mode~~
+
+===== Description =====
+
+%%When should the scrollbar be shown.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scrollbar_mode:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:ui:scrollbar_mode:fields&nouser&nolink&nodate}}
+
+ * **auto** - %%Visible if necessary.%%
+ * **on** - %%Always visible.%%
+ * **off** - %%Always invisible.%%
+ * **last** - %%For internal use only.%%
+
+===== Signature =====
+
+
+enum Efl.Ui.Scrollbar_Mode {
+ auto: 0,
+ on,
+ off,
+ last
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_UI_SCROLLBAR_MODE_AUTO = 0,
+ EFL_UI_SCROLLBAR_MODE_ON,
+ EFL_UI_SCROLLBAR_MODE_OFF,
+ EFL_UI_SCROLLBAR_MODE_LAST
+} Efl_Ui_Scrollbar_Mode;
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scroller.txt b/public_html/data/pages/develop/api/efl/ui/scroller.txt
new file mode 100644
index 00000000..7a6297ef
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scroller.txt
@@ -0,0 +1,509 @@
+~~Title: Efl.Ui.Scroller~~
+====== Efl.Ui.Scroller (class) ======
+
+===== Description =====
+
+%%Widget container that allows objects bigger than itself to be put inside it, and provides scrolling functionality so the whole content is visible.%%
+
+%%Some widgets have scrolling capabilities (like %%[[:develop:api:efl:ui:list|Efl.Ui.List]]%%) that allow big content to be shown inside a small viewport, using the well-known scrollbar objects. Some other widgets (like %%[[:develop:api:efl:ui:box|Efl.Ui.Box]]%%, for example) cannot scroll by themselves and therefore would not be fully visible when placed inside a viewport smaller than them.%%
+
+%%The %%[[:develop:api:efl:ui:scroller|Efl.Ui.Scroller]]%% is a helper class that provides scrolling capabilities for widgets which don't have them. In the above example, simply putting the %%[[:develop:api:efl:ui:box|Efl.Ui.Box]]%% inside a %%[[:develop:api:efl:ui:scroller|Efl.Ui.Scroller]]%% (using %%[[:develop:api:efl:content:property:content|Efl.Content.content.set]]%%) would give it the ability to scroll.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:scroller:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)// => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)//
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] //(interface)//
+ * [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] //(interface)//
+ * [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] //(interface)//
+ * [[:develop:api:efl:layout:group|Efl.Layout.Group]] //(interface)//
+ * [[:develop:api:efl:ui:focus:manager_sub|Efl.Ui.Focus.Manager_Sub]] //(mixin)//
+ * [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] //(interface)//
+ * [[:develop:api:efl:ui:widget_focus_manager|Efl.Ui.Widget_Focus_Manager]] //(mixin)//
+ * [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] //(interface)//
+ * [[:develop:api:efl:content|Efl.Content]] //(interface)//
+ * [[:develop:api:efl:ui:scrollable|Efl.Ui.Scrollable]] //(interface)//
+ * [[:develop:api:efl:ui:scrollbar|Efl.Ui.Scrollbar]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:scroller:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:scroller:property:content|content]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:content|Efl.Content]]]//\\
+> %%Sub-object currently set as this object's single content.%%
+
+Efl_Gfx_Entity *efl_content_get(const Eo *obj);
+Eina_Bool efl_content_set(Eo *obj, Efl_Gfx_Entity *content);
+
+\\
+**[[:develop:api:efl:ui:scroller:method:content_unset|content_unset]]**// [Overridden from [[:develop:api:efl:content|Efl.Content]]]//\\
+> %%Remove the sub-object currently set as content of this object and return it. This object becomes empty.%%
+
+Efl_Gfx_Entity *efl_content_unset(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:scroller:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:scroller:method:finalize|finalize]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+Efl_Object *efl_finalize(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:scroller:method:group_calculate|group_calculate]]**// [Overridden from [[:develop:api:efl:canvas:group|Efl.Canvas.Group]]]//\\
+> %%Triggers an immediate recalculation of this object's geometry.%%
+
+void efl_canvas_group_calculate(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:scroller:property:match_content|match_content]]** //**(set)**//// [Overridden from [[:develop:api:efl:ui:scrollable|Efl.Ui.Scrollable]]]//\\
+>
+
+void efl_ui_scrollable_match_content_set(Eo *obj, Eina_Bool w, Eina_Bool h);
+
+\\
+**[[:develop:api:efl:ui:scroller:method:focus_manager_create|focus_manager_create]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget_focus_manager|Efl.Ui.Widget_Focus_Manager]]]//\\
+> %%If the widget needs a focus manager, this function will be called.%%
+
+Efl_Ui_Focus_Manager *efl_ui_widget_focus_manager_create(Eo *obj, Efl_Ui_Focus_Object *root);
+
+\\
+**[[:develop:api:efl:ui:scroller:method:focus_state_apply|focus_state_apply]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Apply a new focus state on the widget.%%
+
+Eina_Bool efl_ui_widget_focus_state_apply(Eo *obj, Efl_Ui_Widget_Focus_State current_state, Efl_Ui_Widget_Focus_State configured_state, Efl_Ui_Widget *redirect);
+
+\\
+**[[:develop:api:efl:ui:scroller:method:theme_apply|theme_apply]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Virtual function called when the widget needs to re-apply its theme.%%
+
+Eina_Error efl_ui_widget_theme_apply(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:scroller:method:widget_input_event_handler|widget_input_event_handler]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Virtual function handling input events on the widget.%%
+
+Eina_Bool efl_ui_widget_input_event_handler(Eo *obj, const Efl_Event *eo_event, Efl_Canvas_Object *source);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] ^^^
+| | **[[:develop:api:efl:ui:focus:manager:property:border_elements|border_elements]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:focus:manager:method:dirty_logic_freeze|dirty_logic_freeze]]** | %%Disables the cache invalidation when an object is moved.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:dirty_logic_unfreeze|dirty_logic_unfreeze]]** | %%Enables the cache invalidation when an object is moved.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:fetch|fetch]]** | %%Fetches the data from a registered node.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:logical_end|logical_end]]** | %%Returns the last logical object.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:manager_focus|manager_focus]]** //**(get, set)**// | %%The element which is currently focused by this manager.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:pop_history_stack|pop_history_stack]]** | %%Removes the uppermost history element, and focuses the previous one.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:redirect|redirect]]** //**(get, set)**// | %%Add another manager to serve the move requests.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:request_move|request_move]]** | %%Returns the object in the %%''direction''%% from %%''child''%%.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:request_subchild|request_subchild]]** | %%Returns the widget in the direction next.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:reset_history|reset_history]]** | %%Resets the history stack of this manager object. This means the uppermost element will be unfocused, and all other elements will be removed from the remembered list.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:root|root]]** //**(get, set)**// | %%Root node for all logical sub-trees.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:setup_on_first_touch|setup_on_first_touch]]** | %%Called when this manager is set as redirect.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:viewport_elements|viewport_elements]]** //**(get)**// | |
+^ [[:develop:api:efl:ui:focus:manager_sub|Efl.Ui.Focus.Manager_Sub]] ^^^
+| | **[[:develop:api:efl:ui:focus:manager_sub:method:move|move]]** | %%Moves the focus in the given direction to the next regular widget.%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:property:automatic_theme_rotation|automatic_theme_rotation]]** //**(get, set)**// | %%This flag tells if this object will automatically mirror the rotation changes of the window to this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**// | %%Whether this object updates its size hints automatically.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_freeze|calc_freeze]]** | %%Freezes the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_parts_extends|calc_parts_extends]]** | %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_size_min|calc_size_min]]** | %%Calculates the minimum required size for a given layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_thaw|calc_thaw]]** | %%Thaws the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:layout_base:method:factory_bind|factory_bind]]** | %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:finger_size_multiplier|finger_size_multiplier]]** //**(get, set)**// | %%Set a multiplier for applying finger size to the layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:group_data|group_data]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_max|group_size_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_min|group_size_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:l10n_text|l10n_text]]** //**(get, set)**// | %%A unique string to be translated.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:message_send|message_send]]** | %%Sends an (Edje) message to a given Edje object%% |
+| | **[[:develop:api:efl:ui:layout_base:property:part_exist|part_exist]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_add|signal_callback_add]]** | %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_del|signal_callback_del]]** | %%Removes a signal-triggered callback from an object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_emit|signal_emit]]** | %%Sends/emits an Edje signal to this layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_process|signal_process]]** | %%Processes an object's messages and signals queue.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:theme|theme]]** //**(get, set)**// | %%The theme of this widget, defines which edje group will be used.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:theme_rotation_apply|theme_rotation_apply]]** | %%Apply a new rotation value to this object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:calc_force|calc_force]]** | %%Forces a Size/Geometry calculation.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:on_focus_update|on_focus_update]]** | %%Virtual function handling focus in/out events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:part_get|part_get]]** | %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+^ [[:develop:api:efl:ui:scrollable|Efl.Ui.Scrollable]] ^^^
+| | **[[:develop:api:efl:ui:scrollable:property:bounce_enabled|bounce_enabled]]** //**(get, set)**// | %%When scrolling, the scroller may "bounce" when reaching the edge of the content object. This is a visual way to indicate the end has been reached. This is enabled by default for both axes. This property determines if bouncing is enabled in each axis. When bouncing is disabled, scrolling just stops upon reaching the end of the content.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:content_pos|content_pos]]** //**(get, set)**// | %%Position of the content inside the scroller.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:content_size|content_size]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:scrollable:property:gravity|gravity]]** //**(get, set)**// | %%Control scrolling gravity on the scrollable.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:looping|looping]]** //**(get, set)**// | %%Controls infinite looping for a scroller.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:movement_block|movement_block]]** //**(get, set)**// | %%Blocking of scrolling (per axis).%% |
+| | **[[:develop:api:efl:ui:scrollable:method:scroll|scroll]]** | %%Show a specific virtual region within the scroller content object.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:scroll_freeze|scroll_freeze]]** //**(get, set)**// | %%Freezes scrolling movement (by input of a user). Unlike %%[[:develop:api:efl:ui:scrollable:property:movement_block|Efl.Ui.Scrollable.movement_block]]%%, this property freezes bidirectionally. If you want to freeze in only one direction, see %%[[:develop:api:efl:ui:scrollable:property:movement_block|Efl.Ui.Scrollable.movement_block]]%%.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:scroll_hold|scroll_hold]]** //**(get, set)**// | %%When hold turns on, it only scrolls by holding action.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:step_size|step_size]]** //**(get, set)**// | %%Amount to scroll in response to cursor key presses.%% |
+| | **[[:develop:api:efl:ui:scrollable:property:viewport_geometry|viewport_geometry]]** //**(get)**// | |
+^ [[:develop:api:efl:ui:scrollbar|Efl.Ui.Scrollbar]] ^^^
+| | **[[:develop:api:efl:ui:scrollbar:property:bar_mode|bar_mode]]** //**(get, set)**// | %%Scrollbar visibility mode, for each of the scrollbars.%% |
+| | **[[:develop:api:efl:ui:scrollbar:property:bar_position|bar_position]]** //**(get, set)**// | %%Position of the thumb (the draggable zone) inside the scrollbar. It is calculated based on current position of the viewport inside the total content.%% |
+| | **[[:develop:api:efl:ui:scrollbar:property:bar_size|bar_size]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:scrollbar:method:bar_visibility_update|bar_visibility_update]]** | %%Update bar visibility.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:property:position|position]]** //**(get, set)**// | %%The 2D position of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:size|size]]** //**(get, set)**// | %%The 2D size of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| | **[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:content|Efl.Content]] ^^^
+| | **[[:develop:api:efl:content:event:content_changed|content,changed]]** | %%Sent after the content is set or unset using the current content object.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] ^^^
+| | **[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]** | %%A circular dependency between parts of the object was found.%% |
+| | **[[:develop:api:efl:layout:calc:event:recalc|recalc]]** | %%The layout was recalculated.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] ^^^
+| | **[[:develop:api:efl:ui:focus:manager:event:coords_dirty|coords,dirty]]** | %%Cached relationship calculation results have been invalidated.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:dirty_logic_freeze_changed|dirty_logic_freeze,changed]]** | %%Called when this focus manager is frozen or thawed, even_info being %%''true''%% indicates that it is now frozen, %%''false''%% indicates that it is thawed.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:flush_pre|flush,pre]]** | %%After this event, the manager object will calculate relations in the graph. Can be used to add / remove children in a lazy fashion.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:manager_focus_changed|manager_focus,changed]]** | %%The manager_focus property has changed. The previously focused object is passed as an event argument.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:redirect_changed|redirect,changed]]** | %%Redirect object has changed, the old manager is passed as an event argument.%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:event:theme_changed|theme,changed]]** | %%Called when theme changed%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:scrollable|Efl.Ui.Scrollable]] ^^^
+| | **[[:develop:api:efl:ui:scrollable:event:edge_down|edge,down]]** | %%Called when hitting the bottom edge.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:edge_left|edge,left]]** | %%Called when hitting the left edge.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:edge_right|edge,right]]** | %%Called when hitting the right edge.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:edge_up|edge,up]]** | %%Called when hitting the top edge.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_anim_finished|scroll,anim,finished]]** | %%Called when scroll animation finishes.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_anim_started|scroll,anim,started]]** | %%Called when scroll animation starts.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_changed|scroll,changed]]** | %%Called when scrolling.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_down|scroll,down]]** | %%Called when scrolling downwards.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_drag_finished|scroll,drag,finished]]** | %%Called when scroll drag finishes.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_drag_started|scroll,drag,started]]** | %%Called when scroll drag starts.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_finished|scroll,finished]]** | %%Called when scroll operation finishes.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_left|scroll,left]]** | %%Called when scrolling left.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_right|scroll,right]]** | %%Called when scrolling right.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_started|scroll,started]]** | %%Called when scroll operation starts.%% |
+| | **[[:develop:api:efl:ui:scrollable:event:scroll_up|scroll,up]]** | %%Called when scrolling upwards.%% |
+^ [[:develop:api:efl:ui:scrollbar|Efl.Ui.Scrollbar]] ^^^
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_dragged|bar,dragged]]** | %%Emitted when thumb is dragged.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_hide|bar,hide]]** | %%Emitted when scrollbar is hidden.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_pos_changed|bar,pos,changed]]** | %%Emitted when thumb position has changed.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_pressed|bar,pressed]]** | %%Emitted when thumb is pressed.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_show|bar,show]]** | %%Emitted when scrollbar is shown.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_size_changed|bar,size,changed]]** | %%Emitted when thumb size has changed.%% |
+| | **[[:develop:api:efl:ui:scrollbar:event:bar_unpressed|bar,unpressed]]** | %%Emitted when thumb is unpressed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/scroller/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/scroller/method/constructor.txt
new file mode 100644
index 00000000..44c8d513
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scroller/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Scroller.constructor~~
+====== Efl.Ui.Scroller.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:scroller:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scroller/method/content_unset.txt b/public_html/data/pages/develop/api/efl/ui/scroller/method/content_unset.txt
new file mode 100644
index 00000000..de89749e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scroller/method/content_unset.txt
@@ -0,0 +1,62 @@
+~~Title: Efl.Ui.Scroller.content_unset~~
+====== Efl.Ui.Scroller.content_unset ======
+
+===== Description =====
+
+%%Remove the sub-object currently set as content of this object and return it. This object becomes empty.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:scroller:method:content_unset:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:content:method:content_unset|Efl.Content.content_unset]].//===== Signature =====
+
+
+content_unset @pure_virtual {
+ return: Efl.Gfx.Entity;
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_content_unset(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:content:method:content_unset|Efl.Content.content_unset]]
+ * [[:develop:api:efl:ui:check:method:content_unset|Efl.Ui.Check.content_unset]]
+ * [[:develop:api:efl:ui:win:method:content_unset|Efl.Ui.Win.content_unset]]
+ * [[:develop:api:efl:ui:default_item:method:content_unset|Efl.Ui.Default_Item.content_unset]]
+ * [[:develop:api:efl:ui:win_part:method:content_unset|Efl.Ui.Win_Part.content_unset]]
+ * [[:develop:api:efl:canvas:layout_part_external:method:content_unset|Efl.Canvas.Layout_Part_External.content_unset]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:method:content_unset|Efl.Ui.Navigation_Bar_Part_Back_Button.content_unset]]
+ * [[:develop:api:efl:ui:layout_part_legacy:method:content_unset|Efl.Ui.Layout_Part_Legacy.content_unset]]
+ * [[:develop:api:elm:dayselector:part:method:content_unset|Elm.Dayselector.Part.content_unset]]
+ * [[:develop:api:elm:entry:part:method:content_unset|Elm.Entry.Part.content_unset]]
+ * [[:develop:api:elm:naviframe:part:method:content_unset|Elm.Naviframe.Part.content_unset]]
+ * [[:develop:api:elm:ctxpopup:part:method:content_unset|Elm.Ctxpopup.Part.content_unset]]
+ * [[:develop:api:elm:fileselector:entry:part:method:content_unset|Elm.Fileselector.Entry.Part.content_unset]]
+ * [[:develop:api:elm:popup:part:method:content_unset|Elm.Popup.Part.content_unset]]
+ * [[:develop:api:elm:hover:part:method:content_unset|Elm.Hover.Part.content_unset]]
+ * [[:develop:api:elm:scroller:part:method:content_unset|Elm.Scroller.Part.content_unset]]
+ * [[:develop:api:elm:notify:part:method:content_unset|Elm.Notify.Part.content_unset]]
+ * [[:develop:api:efl:ui:panel:method:content_unset|Efl.Ui.Panel.content_unset]]
+ * [[:develop:api:elm:panel:part:method:content_unset|Elm.Panel.Part.content_unset]]
+ * [[:develop:api:efl:ui:tab_page:method:content_unset|Efl.Ui.Tab_Page.content_unset]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:content_unset|Efl.Ui.List_Placeholder_Item.content_unset]]
+ * [[:develop:api:elm:mapbuf:part:method:content_unset|Elm.Mapbuf.Part.content_unset]]
+ * [[:develop:api:efl:ui:scroller:method:content_unset|Efl.Ui.Scroller.content_unset]]
+ * [[:develop:api:efl:ui:flip_part:method:content_unset|Efl.Ui.Flip_Part.content_unset]]
+ * [[:develop:api:efl:canvas:layout_part_swallow:method:content_unset|Efl.Canvas.Layout_Part_Swallow.content_unset]]
+ * [[:develop:api:efl:ui:pan:method:content_unset|Efl.Ui.Pan.content_unset]]
+ * [[:develop:api:efl:ui:frame:method:content_unset|Efl.Ui.Frame.content_unset]]
+ * [[:develop:api:efl:ui:progressbar:method:content_unset|Efl.Ui.Progressbar.content_unset]]
+ * [[:develop:api:efl:ui:popup:method:content_unset|Efl.Ui.Popup.content_unset]]
+ * [[:develop:api:efl:ui:navigation_layout:method:content_unset|Efl.Ui.Navigation_Layout.content_unset]]
+ * [[:develop:api:elm:flip:part:method:content_unset|Elm.Flip.Part.content_unset]]
+ * [[:develop:api:efl:ui:button:method:content_unset|Efl.Ui.Button.content_unset]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:content_unset|Efl.Canvas.Layout_Part_Invalid.content_unset]]
+ * [[:develop:api:efl:ui:layout_part_content:method:content_unset|Efl.Ui.Layout_Part_Content.content_unset]]
+ * [[:develop:api:efl:ui:navigation_bar_part:method:content_unset|Efl.Ui.Navigation_Bar_Part.content_unset]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scroller/method/destructor.txt b/public_html/data/pages/develop/api/efl/ui/scroller/method/destructor.txt
new file mode 100644
index 00000000..0290b92d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scroller/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Ui.Scroller.destructor~~
+====== Efl.Ui.Scroller.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:scroller:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scroller/method/finalize.txt b/public_html/data/pages/develop/api/efl/ui/scroller/method/finalize.txt
new file mode 100644
index 00000000..2d39daf7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scroller/method/finalize.txt
@@ -0,0 +1,91 @@
+~~Title: Efl.Ui.Scroller.finalize~~
+====== Efl.Ui.Scroller.finalize ======
+
+===== Description =====
+
+%%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+%%Use this method to delay expensive operations until user configuration has finished, to avoid building the object in a "default" state in the constructor, just to have to throw it all away because a user configuration (a property being set, for example) requires a different state. This is the last call inside efl_add() and will set %%[[:develop:api:efl:object:property:finalized|Efl.Object.finalized]]%% to %%''true''%% once it returns. This is an optimization and implementing this method is optional if you already perform all your initialization in the %%[[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]%% method. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:scroller:method:finalize:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:finalize|Efl.Object.finalize]].//===== Signature =====
+
+
+finalize {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_finalize(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]
+ * [[:develop:api:efl:loop_handler:method:finalize|Efl.Loop_Handler.finalize]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:finalize|Efl.Ui.Position_Manager.Grid.finalize]]
+ * [[:develop:api:efl:canvas:layout_part:method:finalize|Efl.Canvas.Layout_Part.finalize]]
+ * [[:develop:api:efl:net:server_udp_client:method:finalize|Efl.Net.Server_Udp_Client.finalize]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:finalize|Efl.Ui.Widget_Part_Bg.finalize]]
+ * [[:develop:api:efl:ui:layout_part_bg:method:finalize|Efl.Ui.Layout_Part_Bg.finalize]]
+ * [[:develop:api:efl:io:buffered_stream:method:finalize|Efl.Io.Buffered_Stream.finalize]]
+ * [[:develop:api:efl:net:dialer_simple:method:finalize|Efl.Net.Dialer_Simple.finalize]]
+ * [[:develop:api:efl:io:file:method:finalize|Efl.Io.File.finalize]]
+ * [[:develop:api:efl:net:server_fd:method:finalize|Efl.Net.Server_Fd.finalize]]
+ * [[:develop:api:efl:io:stderr:method:finalize|Efl.Io.Stderr.finalize]]
+ * [[:develop:api:efl:io:stdin:method:finalize|Efl.Io.Stdin.finalize]]
+ * [[:develop:api:efl:io:stdout:method:finalize|Efl.Io.Stdout.finalize]]
+ * [[:develop:api:efl:net:socket_fd:method:finalize|Efl.Net.Socket_Fd.finalize]]
+ * [[:develop:api:efl:net:socket_ssl:method:finalize|Efl.Net.Socket_Ssl.finalize]]
+ * [[:develop:api:efl:net:dialer_ssl:method:finalize|Efl.Net.Dialer_Ssl.finalize]]
+ * [[:develop:api:efl:canvas:object:method:finalize|Efl.Canvas.Object.finalize]]
+ * [[:develop:api:efl:canvas:image_internal:method:finalize|Efl.Canvas.Image_Internal.finalize]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:finalize|Efl.Ui.Internal.Text.Interactive.finalize]]
+ * [[:develop:api:efl:ui:widget:method:finalize|Efl.Ui.Widget.finalize]]
+ * [[:develop:api:efl:ui:win:method:finalize|Efl.Ui.Win.finalize]]
+ * [[:develop:api:efl:ui:win_socket:method:finalize|Efl.Ui.Win_Socket.finalize]]
+ * [[:develop:api:efl:ui:win_inlined:method:finalize|Efl.Ui.Win_Inlined.finalize]]
+ * [[:develop:api:efl:ui:layout_base:method:finalize|Efl.Ui.Layout_Base.finalize]]
+ * [[:develop:api:efl:ui:text:method:finalize|Efl.Ui.Text.finalize]]
+ * [[:develop:api:efl:ui:tab_bar:method:finalize|Efl.Ui.Tab_Bar.finalize]]
+ * [[:develop:api:efl:ui:item:method:finalize|Efl.Ui.Item.finalize]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:finalize|Efl.Ui.List_Placeholder_Item.finalize]]
+ * [[:develop:api:elm:code_widget:method:finalize|Elm.Code_Widget.finalize]]
+ * [[:develop:api:efl:ui:scroller:method:finalize|Efl.Ui.Scroller.finalize]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:finalize|Efl.Ui.Internal_Text_Scroller.finalize]]
+ * [[:develop:api:efl:ui:collection:method:finalize|Efl.Ui.Collection.finalize]]
+ * [[:develop:api:efl:ui:spotlight:container:method:finalize|Efl.Ui.Spotlight.Container.finalize]]
+ * [[:develop:api:efl:ui:tab_pager:method:finalize|Efl.Ui.Tab_Pager.finalize]]
+ * [[:develop:api:efl:ui:bg:method:finalize|Efl.Ui.Bg.finalize]]
+ * [[:develop:api:efl:canvas:vg:object:method:finalize|Efl.Canvas.Vg.Object.finalize]]
+ * [[:develop:api:efl:loop_timer:method:finalize|Efl.Loop_Timer.finalize]]
+ * [[:develop:api:eldbus:model:method:finalize|Eldbus.Model.finalize]]
+ * [[:develop:api:eldbus:model:proxy:method:finalize|Eldbus.Model.Proxy.finalize]]
+ * [[:develop:api:eldbus:model:arguments:method:finalize|Eldbus.Model.Arguments.finalize]]
+ * [[:develop:api:eldbus:model:method:method:finalize|Eldbus.Model.Method.finalize]]
+ * [[:develop:api:eldbus:model:object:method:finalize|Eldbus.Model.Object.finalize]]
+ * [[:develop:api:efl:composite_model:method:finalize|Efl.Composite_Model.finalize]]
+ * [[:develop:api:efl:container_model:method:finalize|Efl.Container_Model.finalize]]
+ * [[:develop:api:efl:ui:view_model:method:finalize|Efl.Ui.View_Model.finalize]]
+ * [[:develop:api:efl:io:model:method:finalize|Efl.Io.Model.finalize]]
+ * [[:develop:api:efl:net:server_simple:method:finalize|Efl.Net.Server_Simple.finalize]]
+ * [[:develop:api:efl:net:control:manager:method:finalize|Efl.Net.Control.Manager.finalize]]
+ * [[:develop:api:efl:ui:widget_factory:method:finalize|Efl.Ui.Widget_Factory.finalize]]
+ * [[:develop:api:efl:ui:caching_factory:method:finalize|Efl.Ui.Caching_Factory.finalize]]
+ * [[:develop:api:efl:thread:method:finalize|Efl.Thread.finalize]]
+ * [[:develop:api:efl:net:session:method:finalize|Efl.Net.Session.finalize]]
+ * [[:develop:api:efl:io:copier:method:finalize|Efl.Io.Copier.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:finalize|Efl.Ui.Focus.Manager_Calc.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:finalize|Efl.Ui.Focus.Manager_Root_Focus.finalize]]
+ * [[:develop:api:evas:canvas3d:node:method:finalize|Evas.Canvas3D.Node.finalize]]
+ * [[:develop:api:efl:net:ssl:context:method:finalize|Efl.Net.Ssl.Context.finalize]]
+ * [[:develop:api:efl:io:buffer:method:finalize|Efl.Io.Buffer.finalize]]
+ * [[:develop:api:efl:net:ip_address:method:finalize|Efl.Net.Ip_Address.finalize]]
+ * [[:develop:api:efl:io:queue:method:finalize|Efl.Io.Queue.finalize]]
+ * [[:develop:api:ector:renderer:method:finalize|Ector.Renderer.finalize]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scroller/method/focus_manager_create.txt b/public_html/data/pages/develop/api/efl/ui/scroller/method/focus_manager_create.txt
new file mode 100644
index 00000000..7063509f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scroller/method/focus_manager_create.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Scroller.focus_manager_create~~
+====== Efl.Ui.Scroller.focus_manager_create ======
+
+===== Description =====
+
+%%If the widget needs a focus manager, this function will be called.%%
+
+%%It can be used and overridden to inject your own manager or set custom options on the focus manager.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:scroller:method:focus_manager_create:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget_focus_manager:method:focus_manager_create|Efl.Ui.Widget_Focus_Manager.focus_manager_create]].//===== Signature =====
+
+
+focus_manager_create @protected @pure_virtual {
+ params {
+ @in root: Efl.Ui.Focus.Object;
+ }
+ return: Efl.Ui.Focus.Manager;
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Focus_Manager *efl_ui_widget_focus_manager_create(Eo *obj, Efl_Ui_Focus_Object *root);
+
+
+===== Parameters =====
+
+ * **root** //(in)// - %%The logical root object for focus.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget_focus_manager:method:focus_manager_create|Efl.Ui.Widget_Focus_Manager.focus_manager_create]]
+ * [[:develop:api:efl:ui:win:method:focus_manager_create|Efl.Ui.Win.focus_manager_create]]
+ * [[:develop:api:efl:ui:collection_view:method:focus_manager_create|Efl.Ui.Collection_View.focus_manager_create]]
+ * [[:develop:api:efl:ui:scroller:method:focus_manager_create|Efl.Ui.Scroller.focus_manager_create]]
+ * [[:develop:api:efl:ui:collection:method:focus_manager_create|Efl.Ui.Collection.focus_manager_create]]
+ * [[:develop:api:elm:interface_scrollable:method:focus_manager_create|Elm.Interface_Scrollable.focus_manager_create]]
+ * [[:develop:api:efl:ui:focus:layer:method:focus_manager_create|Efl.Ui.Focus.Layer.focus_manager_create]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scroller/method/focus_state_apply.txt b/public_html/data/pages/develop/api/efl/ui/scroller/method/focus_state_apply.txt
new file mode 100644
index 00000000..9c66406e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scroller/method/focus_state_apply.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Scroller.focus_state_apply~~
+====== Efl.Ui.Scroller.focus_state_apply ======
+
+===== Description =====
+
+%%Apply a new focus state on the widget.%%
+
+%%This method is called internally by %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%%. Override it to change how a widget interacts with its focus manager. If a widget desires to change the applied configuration, it has to modify %%''configured_state''%% in addition to any internal changes.%%
+
+%%The default implementation (when this method is not overridden) applies %%''configured_state''%% using the %%''manager''%% contained inside.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:scroller:method:focus_state_apply:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:focus_state_apply|Efl.Ui.Widget.focus_state_apply]].//===== Signature =====
+
+
+focus_state_apply @protected {
+ params {
+ @in current_state: Efl.Ui.Widget_Focus_State;
+ @inout configured_state: Efl.Ui.Widget_Focus_State;
+ @in redirect: Efl.Ui.Widget;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_focus_state_apply(Eo *obj, Efl_Ui_Widget_Focus_State current_state, Efl_Ui_Widget_Focus_State configured_state, Efl_Ui_Widget *redirect);
+
+
+===== Parameters =====
+
+ * **current_state** //(in)// - %%The current focus configuration of the widget.%%
+ * **configured_state** //(inout)// - %%The new configuration being set on the widget.%%
+ * **redirect** //(in)// - %%A redirect object if there is any%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:focus_state_apply|Efl.Ui.Widget.focus_state_apply]]
+ * [[:develop:api:efl:ui:collection_view:method:focus_state_apply|Efl.Ui.Collection_View.focus_state_apply]]
+ * [[:develop:api:efl:ui:scroller:method:focus_state_apply|Efl.Ui.Scroller.focus_state_apply]]
+ * [[:develop:api:efl:ui:collection:method:focus_state_apply|Efl.Ui.Collection.focus_state_apply]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scroller/method/group_calculate.txt b/public_html/data/pages/develop/api/efl/ui/scroller/method/group_calculate.txt
new file mode 100644
index 00000000..b81dbbc6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scroller/method/group_calculate.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Ui.Scroller.group_calculate~~
+====== Efl.Ui.Scroller.group_calculate ======
+
+===== Description =====
+
+%%Triggers an immediate recalculation of this object's geometry.%%
+
+%%This will also reset the flag %%[[:develop:api:efl:canvas:group:property:group_need_recalculate|Efl.Canvas.Group.group_need_recalculate]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:scroller:method:group_calculate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:group_calculate|Efl.Canvas.Group.group_calculate]].//===== Signature =====
+
+
+group_calculate {}
+
+
+===== C signature =====
+
+
+void efl_canvas_group_calculate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:group:method:group_calculate|Efl.Canvas.Group.group_calculate]]
+ * [[:develop:api:efl:canvas:event_grabber:method:group_calculate|Efl.Canvas.Event_Grabber.group_calculate]]
+ * [[:develop:api:efl:canvas:layout:method:group_calculate|Efl.Canvas.Layout.group_calculate]]
+ * [[:develop:api:efl:ui:widget:method:group_calculate|Efl.Ui.Widget.group_calculate]]
+ * [[:develop:api:efl:ui:table:method:group_calculate|Efl.Ui.Table.group_calculate]]
+ * [[:develop:api:efl:ui:box:method:group_calculate|Efl.Ui.Box.group_calculate]]
+ * [[:develop:api:efl:ui:layout_base:method:group_calculate|Efl.Ui.Layout_Base.group_calculate]]
+ * [[:develop:api:efl:ui:clock:method:group_calculate|Efl.Ui.Clock.group_calculate]]
+ * [[:develop:api:efl:ui:text:method:group_calculate|Efl.Ui.Text.group_calculate]]
+ * [[:develop:api:efl:ui:panel:method:group_calculate|Efl.Ui.Panel.group_calculate]]
+ * [[:develop:api:efl:ui:layout:method:group_calculate|Efl.Ui.Layout.group_calculate]]
+ * [[:develop:api:efl:ui:textpath:method:group_calculate|Efl.Ui.Textpath.group_calculate]]
+ * [[:develop:api:efl:ui:scroller:method:group_calculate|Efl.Ui.Scroller.group_calculate]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:group_calculate|Efl.Ui.Internal_Text_Scroller.group_calculate]]
+ * [[:develop:api:efl:ui:panes:method:group_calculate|Efl.Ui.Panes.group_calculate]]
+ * [[:develop:api:efl:ui:calendar:method:group_calculate|Efl.Ui.Calendar.group_calculate]]
+ * [[:develop:api:efl:ui:frame:method:group_calculate|Efl.Ui.Frame.group_calculate]]
+ * [[:develop:api:efl:ui:popup:method:group_calculate|Efl.Ui.Popup.group_calculate]]
+ * [[:develop:api:efl:ui:video:method:group_calculate|Efl.Ui.Video.group_calculate]]
+ * [[:develop:api:efl:ui:relative_layout:method:group_calculate|Efl.Ui.Relative_Layout.group_calculate]]
+ * [[:develop:api:efl:ui:pan:method:group_calculate|Efl.Ui.Pan.group_calculate]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:group_calculate|Efl.Ui.Image_Zoomable_Pan.group_calculate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scroller/method/theme_apply.txt b/public_html/data/pages/develop/api/efl/ui/scroller/method/theme_apply.txt
new file mode 100644
index 00000000..5ba74c76
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scroller/method/theme_apply.txt
@@ -0,0 +1,55 @@
+~~Title: Efl.Ui.Scroller.theme_apply~~
+====== Efl.Ui.Scroller.theme_apply ======
+
+===== Description =====
+
+%%Virtual function called when the widget needs to re-apply its theme.%%
+
+%%This may be called when the object is first created, or whenever the widget is modified in any way that may require a reload of the theme. This may include but is not limited to scale, theme, or mirrored mode changes.%%
+
+
+theme_apply @protected {
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_widget_theme_apply(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:theme_apply|Efl.Ui.Widget.theme_apply]]
+ * [[:develop:api:efl:ui:win:method:theme_apply|Efl.Ui.Win.theme_apply]]
+ * [[:develop:api:efl:ui:flip:method:theme_apply|Efl.Ui.Flip.theme_apply]]
+ * [[:develop:api:efl:ui:image:method:theme_apply|Efl.Ui.Image.theme_apply]]
+ * [[:develop:api:efl:ui:image_zoomable:method:theme_apply|Efl.Ui.Image_Zoomable.theme_apply]]
+ * [[:develop:api:efl:ui:layout_base:method:theme_apply|Efl.Ui.Layout_Base.theme_apply]]
+ * [[:develop:api:efl:ui:slider:method:theme_apply|Efl.Ui.Slider.theme_apply]]
+ * [[:develop:api:efl:ui:check:method:theme_apply|Efl.Ui.Check.theme_apply]]
+ * [[:develop:api:efl:ui:radio:method:theme_apply|Efl.Ui.Radio.theme_apply]]
+ * [[:develop:api:efl:ui:clock:method:theme_apply|Efl.Ui.Clock.theme_apply]]
+ * [[:develop:api:efl:ui:text:method:theme_apply|Efl.Ui.Text.theme_apply]]
+ * [[:develop:api:efl:ui:spin_button:method:theme_apply|Efl.Ui.Spin_Button.theme_apply]]
+ * [[:develop:api:efl:ui:collection_view:method:theme_apply|Efl.Ui.Collection_View.theme_apply]]
+ * [[:develop:api:efl:ui:panel:method:theme_apply|Efl.Ui.Panel.theme_apply]]
+ * [[:develop:api:efl:ui:slider_interval:method:theme_apply|Efl.Ui.Slider_Interval.theme_apply]]
+ * [[:develop:api:elm:code_widget:method:theme_apply|Elm.Code_Widget.theme_apply]]
+ * [[:develop:api:efl:ui:textpath:method:theme_apply|Efl.Ui.Textpath.theme_apply]]
+ * [[:develop:api:efl:ui:scroller:method:theme_apply|Efl.Ui.Scroller.theme_apply]]
+ * [[:develop:api:efl:ui:collection:method:theme_apply|Efl.Ui.Collection.theme_apply]]
+ * [[:develop:api:efl:ui:panes:method:theme_apply|Efl.Ui.Panes.theme_apply]]
+ * [[:develop:api:efl:ui:calendar:method:theme_apply|Efl.Ui.Calendar.theme_apply]]
+ * [[:develop:api:efl:ui:progressbar:method:theme_apply|Efl.Ui.Progressbar.theme_apply]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scroller/method/widget_input_event_handler.txt b/public_html/data/pages/develop/api/efl/ui/scroller/method/widget_input_event_handler.txt
new file mode 100644
index 00000000..7d698b2d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scroller/method/widget_input_event_handler.txt
@@ -0,0 +1,57 @@
+~~Title: Efl.Ui.Scroller.widget_input_event_handler~~
+====== Efl.Ui.Scroller.widget_input_event_handler ======
+
+===== Description =====
+
+%%Virtual function handling input events on the widget.%%
+
+%%This method should return %%''true''%% if the event has been processed. Only key down, key up and pointer wheel events will be propagated through this function.%%
+
+%%It is common for the event to be also marked as processed as in %%[[:develop:api:efl:input:event:property:processed|Efl.Input.Event.processed]]%%, if this operation was successful. This makes sure other widgets will not also process this input event.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:scroller:method:widget_input_event_handler:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:widget_input_event_handler|Efl.Ui.Widget.widget_input_event_handler]].//===== Signature =====
+
+
+widget_input_event_handler @protected {
+ params {
+ @in eo_event: const(event);
+ @in source: Efl.Canvas.Object;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_input_event_handler(Eo *obj, const Efl_Event *eo_event, Efl_Canvas_Object *source);
+
+
+===== Parameters =====
+
+ * **eo_event** //(in)// - %%EO event struct with an Efl.Input.Event as info.%%
+ * **source** //(in)// - %%Source object where the event originated. Often same as this.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:widget_input_event_handler|Efl.Ui.Widget.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:win:method:widget_input_event_handler|Efl.Ui.Win.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:image:method:widget_input_event_handler|Efl.Ui.Image.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:image_zoomable:method:widget_input_event_handler|Efl.Ui.Image_Zoomable.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:slider:method:widget_input_event_handler|Efl.Ui.Slider.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:check:method:widget_input_event_handler|Efl.Ui.Check.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:radio:method:widget_input_event_handler|Efl.Ui.Radio.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:spin_button:method:widget_input_event_handler|Efl.Ui.Spin_Button.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:panel:method:widget_input_event_handler|Efl.Ui.Panel.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:item:method:widget_input_event_handler|Efl.Ui.Item.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:slider_interval:method:widget_input_event_handler|Efl.Ui.Slider_Interval.widget_input_event_handler]]
+ * [[:develop:api:elm:code_widget:method:widget_input_event_handler|Elm.Code_Widget.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:tags:method:widget_input_event_handler|Efl.Ui.Tags.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:scroller:method:widget_input_event_handler|Efl.Ui.Scroller.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:calendar:method:widget_input_event_handler|Efl.Ui.Calendar.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:video:method:widget_input_event_handler|Efl.Ui.Video.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:button:method:widget_input_event_handler|Efl.Ui.Button.widget_input_event_handler]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scroller/property/content.txt b/public_html/data/pages/develop/api/efl/ui/scroller/property/content.txt
new file mode 100644
index 00000000..ffc7efec
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scroller/property/content.txt
@@ -0,0 +1,80 @@
+~~Title: Efl.Ui.Scroller.content~~
+====== Efl.Ui.Scroller.content ======
+
+===== Description =====
+
+%%Sub-object currently set as this object's single content.%%
+
+%%If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid %%''content''%% is set the object will become empty (it will have no sub-object).%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:scroller:property:content:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **content** - %%The sub-object.%%
+
+//Overridden from [[:develop:api:efl:content:property:content|Efl.Content.content]] **(get, set)**.//===== Signature =====
+
+
+@property content @pure_virtual {
+ get {}
+ set {
+ return: bool;
+ }
+ values {
+ content: Efl.Gfx.Entity;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_content_get(const Eo *obj);
+Eina_Bool efl_content_set(Eo *obj, Efl_Gfx_Entity *content);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:content:property:content|Efl.Content.content]]
+ * [[:develop:api:efl:ui:check:property:content|Efl.Ui.Check.content]]
+ * [[:develop:api:efl:ui:win:property:content|Efl.Ui.Win.content]]
+ * [[:develop:api:efl:ui:default_item:property:content|Efl.Ui.Default_Item.content]]
+ * [[:develop:api:efl:ui:win_part:property:content|Efl.Ui.Win_Part.content]]
+ * [[:develop:api:efl:canvas:layout_part_external:property:content|Efl.Canvas.Layout_Part_External.content]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:property:content|Efl.Ui.Navigation_Bar_Part_Back_Button.content]]
+ * [[:develop:api:efl:ui:layout_part_legacy:property:content|Efl.Ui.Layout_Part_Legacy.content]]
+ * [[:develop:api:elm:dayselector:part:property:content|Elm.Dayselector.Part.content]]
+ * [[:develop:api:elm:entry:part:property:content|Elm.Entry.Part.content]]
+ * [[:develop:api:elm:naviframe:part:property:content|Elm.Naviframe.Part.content]]
+ * [[:develop:api:elm:ctxpopup:part:property:content|Elm.Ctxpopup.Part.content]]
+ * [[:develop:api:elm:fileselector:entry:part:property:content|Elm.Fileselector.Entry.Part.content]]
+ * [[:develop:api:elm:popup:part:property:content|Elm.Popup.Part.content]]
+ * [[:develop:api:elm:hover:part:property:content|Elm.Hover.Part.content]]
+ * [[:develop:api:elm:scroller:part:property:content|Elm.Scroller.Part.content]]
+ * [[:develop:api:elm:player:part:property:content|Elm.Player.Part.content]]
+ * [[:develop:api:elm:notify:part:property:content|Elm.Notify.Part.content]]
+ * [[:develop:api:efl:ui:panel:property:content|Efl.Ui.Panel.content]]
+ * [[:develop:api:elm:panel:part:property:content|Elm.Panel.Part.content]]
+ * [[:develop:api:efl:ui:tab_page:property:content|Efl.Ui.Tab_Page.content]]
+ * [[:develop:api:efl:ui:list_placeholder_item:property:content|Efl.Ui.List_Placeholder_Item.content]]
+ * [[:develop:api:elm:mapbuf:part:property:content|Elm.Mapbuf.Part.content]]
+ * [[:develop:api:efl:ui:scroller:property:content|Efl.Ui.Scroller.content]]
+ * [[:develop:api:efl:ui:flip_part:property:content|Efl.Ui.Flip_Part.content]]
+ * [[:develop:api:efl:canvas:layout_part_swallow:property:content|Efl.Canvas.Layout_Part_Swallow.content]]
+ * [[:develop:api:efl:ui:pan:property:content|Efl.Ui.Pan.content]]
+ * [[:develop:api:efl:ui:frame:property:content|Efl.Ui.Frame.content]]
+ * [[:develop:api:efl:ui:progressbar:property:content|Efl.Ui.Progressbar.content]]
+ * [[:develop:api:efl:ui:popup:property:content|Efl.Ui.Popup.content]]
+ * [[:develop:api:efl:ui:navigation_layout:property:content|Efl.Ui.Navigation_Layout.content]]
+ * [[:develop:api:elm:flip:part:property:content|Elm.Flip.Part.content]]
+ * [[:develop:api:efl:ui:button:property:content|Efl.Ui.Button.content]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:content|Efl.Canvas.Layout_Part_Invalid.content]]
+ * [[:develop:api:efl:ui:layout_part_content:property:content|Efl.Ui.Layout_Part_Content.content]]
+ * [[:develop:api:efl:ui:progressbar_legacy_part:property:content|Efl.Ui.Progressbar_Legacy_Part.content]]
+ * [[:develop:api:efl:ui:check_legacy_part:property:content|Efl.Ui.Check_Legacy_Part.content]]
+ * [[:develop:api:efl:ui:button_legacy_part:property:content|Efl.Ui.Button_Legacy_Part.content]]
+ * [[:develop:api:efl:ui:navigation_bar_part:property:content|Efl.Ui.Navigation_Bar_Part.content]]
+ * [[:develop:api:efl:ui:radio_legacy_part:property:content|Efl.Ui.Radio_Legacy_Part.content]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/scroller/property/match_content.txt b/public_html/data/pages/develop/api/efl/ui/scroller/property/match_content.txt
new file mode 100644
index 00000000..1f4c3d73
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/scroller/property/match_content.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Ui.Scroller.match_content~~
+====== Efl.Ui.Scroller.match_content ======
+
+===== Values =====
+
+ * **w** - %%Whether to limit the minimum horizontal size.%%
+ * **h** - %%Whether to limit the minimum vertical size.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:scroller:property:match_content:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:scrollable:property:match_content|Efl.Ui.Scrollable.match_content]] **(set)**.//===== Signature =====
+
+
+@property match_content @pure_virtual {
+ set {}
+}
+
+
+===== C signature =====
+
+
+void efl_ui_scrollable_match_content_set(Eo *obj, Eina_Bool w, Eina_Bool h);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:scrollable:property:match_content|Efl.Ui.Scrollable.match_content]]
+ * [[:develop:api:efl:ui:collection_view:property:match_content|Efl.Ui.Collection_View.match_content]]
+ * [[:develop:api:efl:ui:scroller:property:match_content|Efl.Ui.Scroller.match_content]]
+ * [[:develop:api:efl:ui:collection:property:match_content|Efl.Ui.Collection.match_content]]
+ * [[:develop:api:efl:ui:scroll:manager:property:match_content|Efl.Ui.Scroll.Manager.match_content]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/selectable.txt b/public_html/data/pages/develop/api/efl/ui/selectable.txt
new file mode 100644
index 00000000..9f9ae3d2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/selectable.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Ui.Selectable~~
+====== Efl.Ui.Selectable (interface) ======
+
+===== Description =====
+
+%%Selectable interface for UI objects%%
+
+%%An object implementing this interface can be selected. When the selected property of this object changes, the %%[[:develop:api:efl:ui:selectable:event:selected,changed|Efl.Ui.Selectable.selected,changed]]%% event is emitted.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:selectable:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:ui:selectable:property:selected|selected]]** //**(get, set)**//\\
+> %%The selected state of this object%%
+
+Eina_Bool efl_ui_selectable_selected_get(const Eo *obj);
+void efl_ui_selectable_selected_set(Eo *obj, Eina_Bool selected);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:ui:selectable:event:selected_changed|selected,changed]]**\\
+> %%Called when the selected state has changed.%%
+
+EFL_UI_EVENT_SELECTED_CHANGED(Eina_Bool)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/ui/selectable/event/selected_changed.txt b/public_html/data/pages/develop/api/efl/ui/selectable/event/selected_changed.txt
new file mode 100644
index 00000000..cedcebc7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/selectable/event/selected_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Selectable: selected,changed~~
+
+===== Description =====
+
+%%Called when the selected state has changed.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:selectable:event:selected_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+selected,changed: bool;
+
+
+===== C information =====
+
+
+EFL_UI_EVENT_SELECTED_CHANGED(Eina_Bool)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_event_selected_changed(void *data, const Efl_Event *event)
+{
+ Eina_Bool info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_EVENT_SELECTED_CHANGED, on_efl_ui_event_selected_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/selectable/property/selected.txt b/public_html/data/pages/develop/api/efl/ui/selectable/property/selected.txt
new file mode 100644
index 00000000..ac623039
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/selectable/property/selected.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Selectable.selected~~
+====== Efl.Ui.Selectable.selected ======
+
+===== Description =====
+
+%%The selected state of this object%%
+
+%%A change to this property emits the changed event.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:selectable:property:selected:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **selected** - %%The selected state of this object.%%
+
+===== Signature =====
+
+
+@property selected @pure_virtual {
+ get {}
+ set {}
+ values {
+ selected: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_selectable_selected_get(const Eo *obj);
+void efl_ui_selectable_selected_set(Eo *obj, Eina_Bool selected);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:selectable:property:selected|Efl.Ui.Selectable.selected]]
+ * [[:develop:api:efl:ui:check:property:selected|Efl.Ui.Check.selected]]
+ * [[:develop:api:efl:ui:radio:property:selected|Efl.Ui.Radio.selected]]
+ * [[:develop:api:efl:ui:select_model:property:selected|Efl.Ui.Select_Model.selected]]
+ * [[:develop:api:efl:ui:item:property:selected|Efl.Ui.Item.selected]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/single_selectable.txt b/public_html/data/pages/develop/api/efl/ui/single_selectable.txt
new file mode 100644
index 00000000..9558aa84
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/single_selectable.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Single_Selectable~~
+====== Efl.Ui.Single_Selectable (interface) ======
+
+===== Description =====
+
+%%Interface for getting access to a single selected item in the implementor.%%
+
+%%The implementor is free to allow a specific number of selectables being selected or not. This interface just covers always the latest selected selectable.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:single_selectable:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:ui:single_selectable:property:fallback_selection|fallback_selection]]** //**(get, set)**//\\
+> %%A object that will be selected in case nothing is selected%%
+
+Efl_Ui_Selectable *efl_ui_selectable_fallback_selection_get(const Eo *obj);
+void efl_ui_selectable_fallback_selection_set(Eo *obj, Efl_Ui_Selectable *fallback);
+
+\\
+**[[:develop:api:efl:ui:single_selectable:property:last_selected|last_selected]]** //**(get)**//\\
+>
+
+Efl_Ui_Selectable *efl_ui_selectable_last_selected_get(const Eo *obj);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:ui:single_selectable:event:selection_changed|selection_changed]]**\\
+> %%Emitted when there is a change in the selection state. This event will collect all the item selection change events that are happening within one loop iteration. This means, you will only get this event once, even if a lot of items have changed. If you are interested in detailed changes, subscribe to the individual %%[[:develop:api:efl:ui:selectable:event:selected,changed|Efl.Ui.Selectable.selected,changed]]%% events of each item.%%
+
+EFL_UI_SELECTABLE_EVENT_SELECTION_CHANGED(void)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/ui/single_selectable/event/selection_changed.txt b/public_html/data/pages/develop/api/efl/ui/single_selectable/event/selection_changed.txt
new file mode 100644
index 00000000..6ee68ed9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/single_selectable/event/selection_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Single_Selectable: selection_changed~~
+
+===== Description =====
+
+%%Emitted when there is a change in the selection state. This event will collect all the item selection change events that are happening within one loop iteration. This means, you will only get this event once, even if a lot of items have changed. If you are interested in detailed changes, subscribe to the individual %%[[:develop:api:efl:ui:selectable:event:selected,changed|Efl.Ui.Selectable.selected,changed]]%% events of each item.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:single_selectable:event:selection_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+selection_changed;
+
+
+===== C information =====
+
+
+EFL_UI_SELECTABLE_EVENT_SELECTION_CHANGED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_selectable_event_selection_changed(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_SELECTABLE_EVENT_SELECTION_CHANGED, on_efl_ui_selectable_event_selection_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/single_selectable/property/fallback_selection.txt b/public_html/data/pages/develop/api/efl/ui/single_selectable/property/fallback_selection.txt
new file mode 100644
index 00000000..3db41761
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/single_selectable/property/fallback_selection.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Ui.Single_Selectable.fallback_selection~~
+====== Efl.Ui.Single_Selectable.fallback_selection ======
+
+===== Description =====
+
+%%A object that will be selected in case nothing is selected%%
+
+%%A object set to this property will be selected instead of no item being selected. Which means, there will be always at least one element selected. If this property is %%''NULL''%%, the state of "no item is selected" can be reached.%%
+
+%%Setting this property as a result of selection events results in undefined behavior.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:single_selectable:property:fallback_selection:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **fallback** - No description supplied.
+
+===== Signature =====
+
+
+@property fallback_selection @pure_virtual {
+ get {}
+ set {}
+ values {
+ fallback: Efl.Ui.Selectable;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Selectable *efl_ui_selectable_fallback_selection_get(const Eo *obj);
+void efl_ui_selectable_fallback_selection_set(Eo *obj, Efl_Ui_Selectable *fallback);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:single_selectable:property:fallback_selection|Efl.Ui.Single_Selectable.fallback_selection]]
+ * [[:develop:api:efl:ui:collection:property:fallback_selection|Efl.Ui.Collection.fallback_selection]]
+ * [[:develop:api:efl:ui:select_model:property:fallback_selection|Efl.Ui.Select_Model.fallback_selection]]
+ * [[:develop:api:efl:ui:tab_bar:property:fallback_selection|Efl.Ui.Tab_Bar.fallback_selection]]
+ * [[:develop:api:efl:ui:radio_group_impl:property:fallback_selection|Efl.Ui.Radio_Group_Impl.fallback_selection]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/single_selectable/property/last_selected.txt b/public_html/data/pages/develop/api/efl/ui/single_selectable/property/last_selected.txt
new file mode 100644
index 00000000..9cbec439
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/single_selectable/property/last_selected.txt
@@ -0,0 +1,35 @@
+~~Title: Efl.Ui.Single_Selectable.last_selected~~
+====== Efl.Ui.Single_Selectable.last_selected ======
+
+===== Values =====
+
+ * **selectable** - %%The latest selected item.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:single_selectable:property:last_selected:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property last_selected @pure_virtual {
+ get {}
+ values {
+ selectable: Efl.Ui.Selectable;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Selectable *efl_ui_selectable_last_selected_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:single_selectable:property:last_selected|Efl.Ui.Single_Selectable.last_selected]]
+ * [[:develop:api:efl:ui:collection:property:last_selected|Efl.Ui.Collection.last_selected]]
+ * [[:develop:api:efl:ui:select_model:property:last_selected|Efl.Ui.Select_Model.last_selected]]
+ * [[:develop:api:efl:ui:tab_bar:property:last_selected|Efl.Ui.Tab_Bar.last_selected]]
+ * [[:develop:api:efl:ui:radio_group_impl:property:last_selected|Efl.Ui.Radio_Group_Impl.last_selected]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/slider.txt b/public_html/data/pages/develop/api/efl/ui/slider.txt
new file mode 100644
index 00000000..cba027f8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/slider.txt
@@ -0,0 +1,487 @@
+~~Title: Efl.Ui.Slider~~
+====== Efl.Ui.Slider (class) ======
+
+===== Description =====
+
+%%Elementary slider class%%
+
+%%This lets the UI user select a numerical value inside the %%[[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]%% limits. The current value can be retrieved using the %%[[:develop:api:efl:ui:range_interactive|Efl.Ui.Range_Interactive]]%% interface. Events monitoring its changes are also available in that interface. The visual representation of min and max can be swapped using %%[[:develop:api:efl:ui:layout_orientable:property:orientation|Efl.Ui.Layout_Orientable.orientation]]%%. Normally the minimum of %%[[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]%% is shown on the left side, the max on the right side.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:slider:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)// => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)//
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] //(interface)//
+ * [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] //(interface)//
+ * [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] //(interface)//
+ * [[:develop:api:efl:layout:group|Efl.Layout.Group]] //(interface)//
+ * [[:develop:api:efl:ui:range_interactive|Efl.Ui.Range_Interactive]] //(interface)//
+ * [[:develop:api:efl:ui:range_display|Efl.Ui.Range_Display]] //(interface)//
+ * [[:develop:api:efl:ui:layout_orientable|Efl.Ui.Layout_Orientable]] //(interface)//
+ * [[:develop:api:efl:access:value|Efl.Access.Value]] //(interface)//
+ * [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]] //(mixin)//
+ * [[:develop:api:efl:access:action|Efl.Access.Action]] //(mixin)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:slider:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:slider:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:slider:property:orientation|orientation]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:layout_orientable|Efl.Ui.Layout_Orientable]]]//\\
+> %%Control the direction of a given widget.%%
+
+Efl_Ui_Layout_Orientation efl_ui_layout_orientation_get(const Eo *obj);
+void efl_ui_layout_orientation_set(Eo *obj, Efl_Ui_Layout_Orientation dir);
+
+\\
+**[[:develop:api:efl:ui:slider:property:range_limits|range_limits]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:range_display|Efl.Ui.Range_Display]]]//\\
+> %%Set the minimum and maximum values for given range widget.%%
+
+void efl_ui_range_limits_get(const Eo *obj, double *min, double *max);
+void efl_ui_range_limits_set(Eo *obj, double min, double max);
+
+\\
+**[[:develop:api:efl:ui:slider:property:range_step|range_step]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:range_interactive|Efl.Ui.Range_Interactive]]]//\\
+> %%Control the step used to increment or decrement values for given widget.%%
+
+double efl_ui_range_step_get(const Eo *obj);
+void efl_ui_range_step_set(Eo *obj, double step);
+
+\\
+**[[:develop:api:efl:ui:slider:property:range_value|range_value]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:range_display|Efl.Ui.Range_Display]]]//\\
+> %%Control the value (position) of the widget within its valid range.%%
+
+double efl_ui_range_value_get(const Eo *obj);
+void efl_ui_range_value_set(Eo *obj, double val);
+
+\\
+**[[:develop:api:efl:ui:slider:property:elm_actions|elm_actions]]** //**(get)**// ''protected''// [Overridden from [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]]]//\\
+>
+
+const Efl_Access_Action_Data *efl_access_widget_action_elm_actions_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:slider:property:increment|increment]]** //**(get)**// ''protected''// [Overridden from [[:develop:api:efl:access:value|Efl.Access.Value]]]//\\
+>
+
+double efl_access_value_increment_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:slider:method:on_access_activate|on_access_activate]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Hook function called when widget is activated through accessibility.%%
+
+Eina_Bool efl_ui_widget_on_access_activate(Eo *obj, Efl_Ui_Activate act);
+
+\\
+**[[:develop:api:efl:ui:slider:method:on_focus_update|on_focus_update]]** ''protected''// [Overridden from [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]]]//\\
+> %%Virtual function handling focus in/out events on the widget.%%
+
+Eina_Bool efl_ui_focus_object_on_focus_update(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:slider:property:range|range]]** //**(get)**// ''protected''// [Overridden from [[:develop:api:efl:access:value|Efl.Access.Value]]]//\\
+>
+
+void efl_access_value_range_get(const Eo *obj, double *lower_limit, double *upper_limit, const char **description);
+
+\\
+**[[:develop:api:efl:ui:slider:method:theme_apply|theme_apply]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Virtual function called when the widget needs to re-apply its theme.%%
+
+Eina_Error efl_ui_widget_theme_apply(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:slider:property:value_and_text|value_and_text]]** //**(get, set)**// ''protected''// [Overridden from [[:develop:api:efl:access:value|Efl.Access.Value]]]//\\
+> %%Value and text displayed bye accessible widget.%%
+
+void efl_access_value_and_text_get(const Eo *obj, double *value, const char **text);
+Eina_Bool efl_access_value_and_text_set(Eo *obj, double value, const char *text);
+
+\\
+**[[:develop:api:efl:ui:slider:method:widget_input_event_handler|widget_input_event_handler]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Virtual function handling input events on the widget.%%
+
+Eina_Bool efl_ui_widget_input_event_handler(Eo *obj, const Efl_Event *eo_event, Efl_Canvas_Object *source);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:action|Efl.Access.Action]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:action:property:action_localized_name|action_localized_name]]** //**(get)**// | |
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:action_description|action_description]]** //**(get, set)**// | %%Action description for given id%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:method:action_do|action_do]]** | %%Performs action on given widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:method:action_keybinding_get|action_keybinding_get]]** | %%Gets configured keybinding for specific action and widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:action_name|action_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:actions|actions]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:property:automatic_theme_rotation|automatic_theme_rotation]]** //**(get, set)**// | %%This flag tells if this object will automatically mirror the rotation changes of the window to this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**// | %%Whether this object updates its size hints automatically.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_freeze|calc_freeze]]** | %%Freezes the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_parts_extends|calc_parts_extends]]** | %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_size_min|calc_size_min]]** | %%Calculates the minimum required size for a given layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_thaw|calc_thaw]]** | %%Thaws the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:layout_base:method:factory_bind|factory_bind]]** | %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:finger_size_multiplier|finger_size_multiplier]]** //**(get, set)**// | %%Set a multiplier for applying finger size to the layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:group_calculate|group_calculate]]** | %%Triggers an immediate recalculation of this object's geometry.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:group_data|group_data]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_max|group_size_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_min|group_size_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:l10n_text|l10n_text]]** //**(get, set)**// | %%A unique string to be translated.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:message_send|message_send]]** | %%Sends an (Edje) message to a given Edje object%% |
+| | **[[:develop:api:efl:ui:layout_base:property:part_exist|part_exist]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_add|signal_callback_add]]** | %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_del|signal_callback_del]]** | %%Removes a signal-triggered callback from an object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_emit|signal_emit]]** | %%Sends/emits an Edje signal to this layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_process|signal_process]]** | %%Processes an object's messages and signals queue.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:theme|theme]]** //**(get, set)**// | %%The theme of this widget, defines which edje group will be used.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:theme_rotation_apply|theme_rotation_apply]]** | %%Apply a new rotation value to this object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:calc_force|calc_force]]** | %%Forces a Size/Geometry calculation.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:part_get|part_get]]** | %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:property:position|position]]** //**(get, set)**// | %%The 2D position of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:size|size]]** //**(get, set)**// | %%The 2D size of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| | **[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+
+===== Events =====
+
+**[[:develop:api:efl:ui:slider:event:slider_drag_start|slider,drag,start]]**\\
+> %%Called when a slider drag operation has started. This means a %%''press''%% event has been received on the slider thumb but not the %%''unpress''%%.%%
+
+EFL_UI_SLIDER_EVENT_SLIDER_DRAG_START(void)
+
+\\ **[[:develop:api:efl:ui:slider:event:slider_drag_stop|slider,drag,stop]]**\\
+> %%Called when a slider drag operation has finished. This means an %%''unpress''%% event has been received on the slider thumb.%%
+
+EFL_UI_SLIDER_EVENT_SLIDER_DRAG_STOP(void)
+
+\\ ==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] ^^^
+| | **[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]** | %%A circular dependency between parts of the object was found.%% |
+| | **[[:develop:api:efl:layout:calc:event:recalc|recalc]]** | %%The layout was recalculated.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:event:theme_changed|theme,changed]]** | %%Called when theme changed%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:range_display|Efl.Ui.Range_Display]] ^^^
+| | **[[:develop:api:efl:ui:range_display:event:changed|changed]]** | %%Emitted when the %%[[:develop:api:efl:ui:range_display:property:range_value|Efl.Ui.Range_Display.range_value]]%% is getting changed.%% |
+| | **[[:develop:api:efl:ui:range_display:event:max_reached|max,reached]]** | %%Emitted when the %%''range_value''%% has reached the maximum of %%[[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]%%.%% |
+| | **[[:develop:api:efl:ui:range_display:event:min_reached|min,reached]]** | %%Emitted when the %%[[:develop:api:efl:ui:range_display:property:range_value|Efl.Ui.Range_Display.range_value]]%% has reached the minimum of %%[[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]%%.%% |
+^ [[:develop:api:efl:ui:range_interactive|Efl.Ui.Range_Interactive]] ^^^
+| | **[[:develop:api:efl:ui:range_interactive:event:steady|steady]]** | %%Called when the widget's value has changed and has remained unchanged for 0.2s. This allows filtering out unwanted "noise" from the widget if you are only interested in its final position. Use this event instead of %%[[:develop:api:efl:ui:range_display:event:changed|Efl.Ui.Range_Display.changed]]%% if you are going to perform a costly operation on its handler.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/slider/event/slider_drag_start.txt b/public_html/data/pages/develop/api/efl/ui/slider/event/slider_drag_start.txt
new file mode 100644
index 00000000..4eb85787
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/slider/event/slider_drag_start.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Slider: slider,drag,start~~
+
+===== Description =====
+
+%%Called when a slider drag operation has started. This means a %%''press''%% event has been received on the slider thumb but not the %%''unpress''%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:slider:event:slider_drag_start:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+slider,drag,start;
+
+
+===== C information =====
+
+
+EFL_UI_SLIDER_EVENT_SLIDER_DRAG_START(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_slider_event_slider_drag_start(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_SLIDER_EVENT_SLIDER_DRAG_START, on_efl_ui_slider_event_slider_drag_start, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/slider/event/slider_drag_stop.txt b/public_html/data/pages/develop/api/efl/ui/slider/event/slider_drag_stop.txt
new file mode 100644
index 00000000..447c2d0c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/slider/event/slider_drag_stop.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Slider: slider,drag,stop~~
+
+===== Description =====
+
+%%Called when a slider drag operation has finished. This means an %%''unpress''%% event has been received on the slider thumb.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:slider:event:slider_drag_stop:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+slider,drag,stop;
+
+
+===== C information =====
+
+
+EFL_UI_SLIDER_EVENT_SLIDER_DRAG_STOP(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_slider_event_slider_drag_stop(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_SLIDER_EVENT_SLIDER_DRAG_STOP, on_efl_ui_slider_event_slider_drag_stop, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/slider/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/slider/method/constructor.txt
new file mode 100644
index 00000000..0b33d5f4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/slider/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Slider.constructor~~
+====== Efl.Ui.Slider.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:slider:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/slider/method/destructor.txt b/public_html/data/pages/develop/api/efl/ui/slider/method/destructor.txt
new file mode 100644
index 00000000..b5777939
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/slider/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Ui.Slider.destructor~~
+====== Efl.Ui.Slider.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:slider:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/slider/method/on_access_activate.txt b/public_html/data/pages/develop/api/efl/ui/slider/method/on_access_activate.txt
new file mode 100644
index 00000000..0641d54a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/slider/method/on_access_activate.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Slider.on_access_activate~~
+====== Efl.Ui.Slider.on_access_activate ======
+
+===== Description =====
+
+%%Hook function called when widget is activated through accessibility.%%
+
+%%This meant to be overridden by subclasses to support accessibility. This is an unstable API.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:slider:method:on_access_activate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:on_access_activate|Efl.Ui.Widget.on_access_activate]].//===== Signature =====
+
+
+on_access_activate @beta @protected {
+ params {
+ @in act: Efl.Ui.Activate;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_on_access_activate(Eo *obj, Efl_Ui_Activate act);
+
+
+===== Parameters =====
+
+ * **act** //(in)// - %%Type of activation.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:on_access_activate|Efl.Ui.Widget.on_access_activate]]
+ * [[:develop:api:efl:ui:slider:method:on_access_activate|Efl.Ui.Slider.on_access_activate]]
+ * [[:develop:api:efl:ui:check:method:on_access_activate|Efl.Ui.Check.on_access_activate]]
+ * [[:develop:api:efl:ui:radio:method:on_access_activate|Efl.Ui.Radio.on_access_activate]]
+ * [[:develop:api:efl:ui:text:method:on_access_activate|Efl.Ui.Text.on_access_activate]]
+ * [[:develop:api:efl:ui:slider_interval:method:on_access_activate|Efl.Ui.Slider_Interval.on_access_activate]]
+ * [[:develop:api:efl:ui:button:method:on_access_activate|Efl.Ui.Button.on_access_activate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/slider/method/on_focus_update.txt b/public_html/data/pages/develop/api/efl/ui/slider/method/on_focus_update.txt
new file mode 100644
index 00000000..ae57c9f2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/slider/method/on_focus_update.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.Slider.on_focus_update~~
+====== Efl.Ui.Slider.on_focus_update ======
+
+===== Description =====
+
+%%Virtual function handling focus in/out events on the widget.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:slider:method:on_focus_update:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:on_focus_update|Efl.Ui.Focus.Object.on_focus_update]].//===== Signature =====
+
+
+on_focus_update @protected {
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_focus_object_on_focus_update(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:object:method:on_focus_update|Efl.Ui.Focus.Object.on_focus_update]]
+ * [[:develop:api:efl:ui:widget:method:on_focus_update|Efl.Ui.Widget.on_focus_update]]
+ * [[:develop:api:efl:ui:win:method:on_focus_update|Efl.Ui.Win.on_focus_update]]
+ * [[:develop:api:efl:ui:image_zoomable:method:on_focus_update|Efl.Ui.Image_Zoomable.on_focus_update]]
+ * [[:develop:api:efl:ui:layout_base:method:on_focus_update|Efl.Ui.Layout_Base.on_focus_update]]
+ * [[:develop:api:efl:ui:slider:method:on_focus_update|Efl.Ui.Slider.on_focus_update]]
+ * [[:develop:api:efl:ui:text:method:on_focus_update|Efl.Ui.Text.on_focus_update]]
+ * [[:develop:api:efl:ui:spin_button:method:on_focus_update|Efl.Ui.Spin_Button.on_focus_update]]
+ * [[:develop:api:efl:ui:calendar:method:on_focus_update|Efl.Ui.Calendar.on_focus_update]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/slider/method/theme_apply.txt b/public_html/data/pages/develop/api/efl/ui/slider/method/theme_apply.txt
new file mode 100644
index 00000000..355fdcc1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/slider/method/theme_apply.txt
@@ -0,0 +1,55 @@
+~~Title: Efl.Ui.Slider.theme_apply~~
+====== Efl.Ui.Slider.theme_apply ======
+
+===== Description =====
+
+%%Virtual function called when the widget needs to re-apply its theme.%%
+
+%%This may be called when the object is first created, or whenever the widget is modified in any way that may require a reload of the theme. This may include but is not limited to scale, theme, or mirrored mode changes.%%
+
+
+theme_apply @protected {
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_widget_theme_apply(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:theme_apply|Efl.Ui.Widget.theme_apply]]
+ * [[:develop:api:efl:ui:win:method:theme_apply|Efl.Ui.Win.theme_apply]]
+ * [[:develop:api:efl:ui:flip:method:theme_apply|Efl.Ui.Flip.theme_apply]]
+ * [[:develop:api:efl:ui:image:method:theme_apply|Efl.Ui.Image.theme_apply]]
+ * [[:develop:api:efl:ui:image_zoomable:method:theme_apply|Efl.Ui.Image_Zoomable.theme_apply]]
+ * [[:develop:api:efl:ui:layout_base:method:theme_apply|Efl.Ui.Layout_Base.theme_apply]]
+ * [[:develop:api:efl:ui:slider:method:theme_apply|Efl.Ui.Slider.theme_apply]]
+ * [[:develop:api:efl:ui:check:method:theme_apply|Efl.Ui.Check.theme_apply]]
+ * [[:develop:api:efl:ui:radio:method:theme_apply|Efl.Ui.Radio.theme_apply]]
+ * [[:develop:api:efl:ui:clock:method:theme_apply|Efl.Ui.Clock.theme_apply]]
+ * [[:develop:api:efl:ui:text:method:theme_apply|Efl.Ui.Text.theme_apply]]
+ * [[:develop:api:efl:ui:spin_button:method:theme_apply|Efl.Ui.Spin_Button.theme_apply]]
+ * [[:develop:api:efl:ui:collection_view:method:theme_apply|Efl.Ui.Collection_View.theme_apply]]
+ * [[:develop:api:efl:ui:panel:method:theme_apply|Efl.Ui.Panel.theme_apply]]
+ * [[:develop:api:efl:ui:slider_interval:method:theme_apply|Efl.Ui.Slider_Interval.theme_apply]]
+ * [[:develop:api:elm:code_widget:method:theme_apply|Elm.Code_Widget.theme_apply]]
+ * [[:develop:api:efl:ui:textpath:method:theme_apply|Efl.Ui.Textpath.theme_apply]]
+ * [[:develop:api:efl:ui:scroller:method:theme_apply|Efl.Ui.Scroller.theme_apply]]
+ * [[:develop:api:efl:ui:collection:method:theme_apply|Efl.Ui.Collection.theme_apply]]
+ * [[:develop:api:efl:ui:panes:method:theme_apply|Efl.Ui.Panes.theme_apply]]
+ * [[:develop:api:efl:ui:calendar:method:theme_apply|Efl.Ui.Calendar.theme_apply]]
+ * [[:develop:api:efl:ui:progressbar:method:theme_apply|Efl.Ui.Progressbar.theme_apply]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/slider/method/widget_input_event_handler.txt b/public_html/data/pages/develop/api/efl/ui/slider/method/widget_input_event_handler.txt
new file mode 100644
index 00000000..54f5fe45
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/slider/method/widget_input_event_handler.txt
@@ -0,0 +1,57 @@
+~~Title: Efl.Ui.Slider.widget_input_event_handler~~
+====== Efl.Ui.Slider.widget_input_event_handler ======
+
+===== Description =====
+
+%%Virtual function handling input events on the widget.%%
+
+%%This method should return %%''true''%% if the event has been processed. Only key down, key up and pointer wheel events will be propagated through this function.%%
+
+%%It is common for the event to be also marked as processed as in %%[[:develop:api:efl:input:event:property:processed|Efl.Input.Event.processed]]%%, if this operation was successful. This makes sure other widgets will not also process this input event.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:slider:method:widget_input_event_handler:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:widget_input_event_handler|Efl.Ui.Widget.widget_input_event_handler]].//===== Signature =====
+
+
+widget_input_event_handler @protected {
+ params {
+ @in eo_event: const(event);
+ @in source: Efl.Canvas.Object;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_input_event_handler(Eo *obj, const Efl_Event *eo_event, Efl_Canvas_Object *source);
+
+
+===== Parameters =====
+
+ * **eo_event** //(in)// - %%EO event struct with an Efl.Input.Event as info.%%
+ * **source** //(in)// - %%Source object where the event originated. Often same as this.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:widget_input_event_handler|Efl.Ui.Widget.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:win:method:widget_input_event_handler|Efl.Ui.Win.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:image:method:widget_input_event_handler|Efl.Ui.Image.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:image_zoomable:method:widget_input_event_handler|Efl.Ui.Image_Zoomable.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:slider:method:widget_input_event_handler|Efl.Ui.Slider.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:check:method:widget_input_event_handler|Efl.Ui.Check.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:radio:method:widget_input_event_handler|Efl.Ui.Radio.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:spin_button:method:widget_input_event_handler|Efl.Ui.Spin_Button.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:panel:method:widget_input_event_handler|Efl.Ui.Panel.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:item:method:widget_input_event_handler|Efl.Ui.Item.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:slider_interval:method:widget_input_event_handler|Efl.Ui.Slider_Interval.widget_input_event_handler]]
+ * [[:develop:api:elm:code_widget:method:widget_input_event_handler|Elm.Code_Widget.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:tags:method:widget_input_event_handler|Efl.Ui.Tags.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:scroller:method:widget_input_event_handler|Efl.Ui.Scroller.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:calendar:method:widget_input_event_handler|Efl.Ui.Calendar.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:video:method:widget_input_event_handler|Efl.Ui.Video.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:button:method:widget_input_event_handler|Efl.Ui.Button.widget_input_event_handler]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/slider/property/elm_actions.txt b/public_html/data/pages/develop/api/efl/ui/slider/property/elm_actions.txt
new file mode 100644
index 00000000..15408601
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/slider/property/elm_actions.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Slider.elm_actions~~
+====== Efl.Ui.Slider.elm_actions ======
+
+===== Values =====
+
+ * **actions** - %%NULL-terminated array of Efl.Access.Action_Data.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:slider:property:elm_actions:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:access:widget:action:property:elm_actions|Efl.Access.Widget.Action.elm_actions]] **(get)**.//===== Signature =====
+
+
+@property elm_actions @beta @pure_virtual {
+ get @protected {}
+ values {
+ actions: ptr(const(Efl.Access.Action_Data));
+ }
+}
+
+
+===== C signature =====
+
+
+const Efl_Access_Action_Data *efl_access_widget_action_elm_actions_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:widget:action:property:elm_actions|Efl.Access.Widget.Action.elm_actions]]
+ * [[:develop:api:efl:ui:slider:property:elm_actions|Efl.Ui.Slider.elm_actions]]
+ * [[:develop:api:efl:ui:check:property:elm_actions|Efl.Ui.Check.elm_actions]]
+ * [[:develop:api:efl:ui:radio:property:elm_actions|Efl.Ui.Radio.elm_actions]]
+ * [[:develop:api:efl:ui:win:property:elm_actions|Efl.Ui.Win.elm_actions]]
+ * [[:develop:api:efl:ui:spin_button:property:elm_actions|Efl.Ui.Spin_Button.elm_actions]]
+ * [[:develop:api:efl:ui:panel:property:elm_actions|Efl.Ui.Panel.elm_actions]]
+ * [[:develop:api:efl:ui:slider_interval:property:elm_actions|Efl.Ui.Slider_Interval.elm_actions]]
+ * [[:develop:api:efl:ui:image:property:elm_actions|Efl.Ui.Image.elm_actions]]
+ * [[:develop:api:efl:ui:image_zoomable:property:elm_actions|Efl.Ui.Image_Zoomable.elm_actions]]
+ * [[:develop:api:efl:ui:calendar:property:elm_actions|Efl.Ui.Calendar.elm_actions]]
+ * [[:develop:api:efl:ui:video:property:elm_actions|Efl.Ui.Video.elm_actions]]
+ * [[:develop:api:efl:ui:button:property:elm_actions|Efl.Ui.Button.elm_actions]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/slider/property/increment.txt b/public_html/data/pages/develop/api/efl/ui/slider/property/increment.txt
new file mode 100644
index 00000000..8d94610a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/slider/property/increment.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Ui.Slider.increment~~
+====== Efl.Ui.Slider.increment ======
+
+===== Values =====
+
+ * **increment** - %%Minimal incrementation value%%
+
+
+\\ {{page>:develop:api-include:efl:ui:slider:property:increment:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:access:value:property:increment|Efl.Access.Value.increment]] **(get)**.//===== Signature =====
+
+
+@property increment @beta @pure_virtual {
+ get @protected {}
+ values {
+ increment: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_access_value_increment_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:value:property:increment|Efl.Access.Value.increment]]
+ * [[:develop:api:efl:ui:slider:property:increment|Efl.Ui.Slider.increment]]
+ * [[:develop:api:efl:ui:spin_button:property:increment|Efl.Ui.Spin_Button.increment]]
+ * [[:develop:api:efl:ui:slider_interval:property:increment|Efl.Ui.Slider_Interval.increment]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/slider/property/orientation.txt b/public_html/data/pages/develop/api/efl/ui/slider/property/orientation.txt
new file mode 100644
index 00000000..ff719bf4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/slider/property/orientation.txt
@@ -0,0 +1,56 @@
+~~Title: Efl.Ui.Slider.orientation~~
+====== Efl.Ui.Slider.orientation ======
+
+===== Description =====
+
+%%Control the direction of a given widget.%%
+
+%%Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.%%
+
+%%Mirroring as defined in %%[[:develop:api:efl:ui:i18n|Efl.Ui.I18n]]%% can invert the %%''horizontal''%% direction: it is %%''ltr''%% by default, but becomes %%''rtl''%% if the object is mirrored.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:slider:property:orientation:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **dir** - %%Direction of the widget.%%
+
+//Overridden from [[:develop:api:efl:ui:layout_orientable:property:orientation|Efl.Ui.Layout_Orientable.orientation]] **(get, set)**.//===== Signature =====
+
+
+@property orientation @pure_virtual {
+ get {}
+ set {}
+ values {
+ dir: Efl.Ui.Layout_Orientation;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Layout_Orientation efl_ui_layout_orientation_get(const Eo *obj);
+void efl_ui_layout_orientation_set(Eo *obj, Efl_Ui_Layout_Orientation dir);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:layout_orientable:property:orientation|Efl.Ui.Layout_Orientable.orientation]]
+ * [[:develop:api:efl:ui:slider:property:orientation|Efl.Ui.Slider.orientation]]
+ * [[:develop:api:efl:ui:layout_orientable_readonly:property:orientation|Efl.Ui.Layout_Orientable_Readonly.orientation]]
+ * [[:develop:api:efl:canvas:layout_part_box:property:orientation|Efl.Canvas.Layout_Part_Box.orientation]]
+ * [[:develop:api:efl:ui:layout_part_box:property:orientation|Efl.Ui.Layout_Part_Box.orientation]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:orientation|Efl.Canvas.Layout_Part_Invalid.orientation]]
+ * [[:develop:api:efl:ui:collection_view:property:orientation|Efl.Ui.Collection_View.orientation]]
+ * [[:develop:api:efl:ui:table:property:orientation|Efl.Ui.Table.orientation]]
+ * [[:develop:api:efl:ui:box:property:orientation|Efl.Ui.Box.orientation]]
+ * [[:develop:api:efl:ui:slider_interval:property:orientation|Efl.Ui.Slider_Interval.orientation]]
+ * [[:develop:api:efl:ui:collection:property:orientation|Efl.Ui.Collection.orientation]]
+ * [[:develop:api:efl:ui:panes:property:orientation|Efl.Ui.Panes.orientation]]
+ * [[:develop:api:efl:ui:progressbar:property:orientation|Efl.Ui.Progressbar.orientation]]
+ * [[:develop:api:efl:ui:spin_button:property:orientation|Efl.Ui.Spin_Button.orientation]]
+ * [[:develop:api:efl:ui:position_manager:grid:property:orientation|Efl.Ui.Position_Manager.Grid.orientation]]
+ * [[:develop:api:efl:ui:position_manager:list:property:orientation|Efl.Ui.Position_Manager.List.orientation]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/slider/property/range.txt b/public_html/data/pages/develop/api/efl/ui/slider/property/range.txt
new file mode 100644
index 00000000..c088bbf8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/slider/property/range.txt
@@ -0,0 +1,38 @@
+~~Title: Efl.Ui.Slider.range~~
+====== Efl.Ui.Slider.range ======
+
+===== Values =====
+
+ * **lower_limit** - %%Lower limit of the range%%
+ * **upper_limit** - %%Upper limit of the range%%
+ * **description** - %%Description of the range%%
+
+
+\\ {{page>:develop:api-include:efl:ui:slider:property:range:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:access:value:property:range|Efl.Access.Value.range]] **(get)**.//===== Signature =====
+
+
+@property range @beta @pure_virtual {
+ get @protected {}
+ values {
+ lower_limit: double;
+ upper_limit: double;
+ description: string;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_access_value_range_get(const Eo *obj, double *lower_limit, double *upper_limit, const char **description);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:value:property:range|Efl.Access.Value.range]]
+ * [[:develop:api:efl:ui:slider:property:range|Efl.Ui.Slider.range]]
+ * [[:develop:api:efl:ui:spin_button:property:range|Efl.Ui.Spin_Button.range]]
+ * [[:develop:api:efl:ui:slider_interval:property:range|Efl.Ui.Slider_Interval.range]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/slider/property/range_limits.txt b/public_html/data/pages/develop/api/efl/ui/slider/property/range_limits.txt
new file mode 100644
index 00000000..a8c6467a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/slider/property/range_limits.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Ui.Slider.range_limits~~
+====== Efl.Ui.Slider.range_limits ======
+
+===== Description =====
+
+%%Set the minimum and maximum values for given range widget.%%
+
+%%If the current value is less than %%''min''%%, it will be updated to %%''min''%%. If it is bigger then %%''max''%%, will be updated to %%''max''%%. The resulting value can be obtained with %%[[:develop:api:efl:ui:range_display:property:range_value|Efl.Ui.Range_Display.range_value.get]]%%.%%
+
+%%The default minimum and maximum values may be different for each class.%%
+
+
+@property range_limits @pure_virtual {
+ get {}
+ set {}
+ values {
+ min: double;
+ max: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_range_limits_get(const Eo *obj, double *min, double *max);
+void efl_ui_range_limits_set(Eo *obj, double min, double max);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]
+ * [[:develop:api:efl:ui:spin:property:range_limits|Efl.Ui.Spin.range_limits]]
+ * [[:develop:api:efl:ui:progressbar_part:property:range_limits|Efl.Ui.Progressbar_Part.range_limits]]
+ * [[:develop:api:efl:ui:slider:property:range_limits|Efl.Ui.Slider.range_limits]]
+ * [[:develop:api:efl:ui:slider_interval:property:range_limits|Efl.Ui.Slider_Interval.range_limits]]
+ * [[:develop:api:efl:ui:progressbar:property:range_limits|Efl.Ui.Progressbar.range_limits]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/slider/property/range_step.txt b/public_html/data/pages/develop/api/efl/ui/slider/property/range_step.txt
new file mode 100644
index 00000000..a3e37c68
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/slider/property/range_step.txt
@@ -0,0 +1,48 @@
+~~Title: Efl.Ui.Slider.range_step~~
+====== Efl.Ui.Slider.range_step ======
+
+===== Description =====
+
+%%Control the step used to increment or decrement values for given widget.%%
+
+%%This value will be incremented or decremented to the displayed value.%%
+
+%%By default step value is equal to 1.%%
+
+
+@property range_step @pure_virtual {
+ get {}
+ set {}
+ values {
+ step: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_ui_range_step_get(const Eo *obj);
+void efl_ui_range_step_set(Eo *obj, double step);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:range_interactive:property:range_step|Efl.Ui.Range_Interactive.range_step]]
+ * [[:develop:api:efl:ui:slider:property:range_step|Efl.Ui.Slider.range_step]]
+ * [[:develop:api:efl:ui:slider_interval:property:range_step|Efl.Ui.Slider_Interval.range_step]]
+ * [[:develop:api:efl:ui:spin_button:property:range_step|Efl.Ui.Spin_Button.range_step]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/slider/property/range_value.txt b/public_html/data/pages/develop/api/efl/ui/slider/property/range_value.txt
new file mode 100644
index 00000000..ff1da592
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/slider/property/range_value.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Ui.Slider.range_value~~
+====== Efl.Ui.Slider.range_value ======
+
+===== Description =====
+
+%%Control the value (position) of the widget within its valid range.%%
+
+%%Values outside the limits defined in %%[[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]%% are ignored and an error is printed.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:slider:property:range_value:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **val** - %%The range value (must be within the bounds of %%[[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]%%).%%
+
+//Overridden from [[:develop:api:efl:ui:range_display:property:range_value|Efl.Ui.Range_Display.range_value]] **(get, set)**.//===== Signature =====
+
+
+@property range_value @pure_virtual {
+ get {}
+ set {}
+ values {
+ val: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_ui_range_value_get(const Eo *obj);
+void efl_ui_range_value_set(Eo *obj, double val);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:range_display:property:range_value|Efl.Ui.Range_Display.range_value]]
+ * [[:develop:api:efl:ui:spin:property:range_value|Efl.Ui.Spin.range_value]]
+ * [[:develop:api:efl:ui:spin_button:property:range_value|Efl.Ui.Spin_Button.range_value]]
+ * [[:develop:api:efl:ui:progressbar_part:property:range_value|Efl.Ui.Progressbar_Part.range_value]]
+ * [[:develop:api:efl:ui:slider:property:range_value|Efl.Ui.Slider.range_value]]
+ * [[:develop:api:efl:ui:slider_interval:property:range_value|Efl.Ui.Slider_Interval.range_value]]
+ * [[:develop:api:efl:ui:progressbar:property:range_value|Efl.Ui.Progressbar.range_value]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/slider/property/value_and_text.txt b/public_html/data/pages/develop/api/efl/ui/slider/property/value_and_text.txt
new file mode 100644
index 00000000..5d8ee9e6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/slider/property/value_and_text.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Slider.value_and_text~~
+====== Efl.Ui.Slider.value_and_text ======
+
+===== Description =====
+
+%%Value and text displayed bye accessible widget.%%
+{{page>:develop:api-include:efl:ui:slider:property:value_and_text:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **value** - %%Value of widget casted to floating point number.%%
+ * **text** - %%string describing value in given context eg. small, enough%%
+
+//Overridden from [[:develop:api:efl:access:value:property:value_and_text|Efl.Access.Value.value_and_text]] **(get, set)**.//===== Signature =====
+
+
+@property value_and_text @beta @protected @pure_virtual {
+ get {}
+ set {
+ return: bool;
+ }
+ values {
+ value: double;
+ text: string;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_access_value_and_text_get(const Eo *obj, double *value, const char **text);
+Eina_Bool efl_access_value_and_text_set(Eo *obj, double value, const char *text);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:value:property:value_and_text|Efl.Access.Value.value_and_text]]
+ * [[:develop:api:efl:ui:slider:property:value_and_text|Efl.Ui.Slider.value_and_text]]
+ * [[:develop:api:efl:ui:spin_button:property:value_and_text|Efl.Ui.Spin_Button.value_and_text]]
+ * [[:develop:api:efl:ui:slider_interval:property:value_and_text|Efl.Ui.Slider_Interval.value_and_text]]
+ * [[:develop:api:efl:ui:progressbar:property:value_and_text|Efl.Ui.Progressbar.value_and_text]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/spin.txt b/public_html/data/pages/develop/api/efl/ui/spin.txt
new file mode 100644
index 00000000..cda8428a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/spin.txt
@@ -0,0 +1,432 @@
+~~Title: Efl.Ui.Spin~~
+====== Efl.Ui.Spin (class) ======
+
+===== Description =====
+
+%%A Spin.%%
+
+%%This is a widget which allows the user to increase or decrease a numeric value using arrow buttons. It's a basic type of widget for choosing and displaying values.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:spin:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)// => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)//
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] //(interface)//
+ * [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] //(interface)//
+ * [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] //(interface)//
+ * [[:develop:api:efl:layout:group|Efl.Layout.Group]] //(interface)//
+ * [[:develop:api:efl:ui:range_display|Efl.Ui.Range_Display]] //(interface)//
+ * [[:develop:api:efl:ui:format|Efl.Ui.Format]] //(mixin)//
+ * [[:develop:api:efl:access:value|Efl.Access.Value]] //(interface)//
+ * [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]] //(mixin)//
+ * [[:develop:api:efl:access:action|Efl.Access.Action]] //(mixin)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:spin:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:spin:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:spin:property:range_limits|range_limits]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:range_display|Efl.Ui.Range_Display]]]//\\
+> %%Set the minimum and maximum values for given range widget.%%
+
+void efl_ui_range_limits_get(const Eo *obj, double *min, double *max);
+void efl_ui_range_limits_set(Eo *obj, double min, double max);
+
+\\
+**[[:develop:api:efl:ui:spin:property:range_value|range_value]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:range_display|Efl.Ui.Range_Display]]]//\\
+> %%Control the value (position) of the widget within its valid range.%%
+
+double efl_ui_range_value_get(const Eo *obj);
+void efl_ui_range_value_set(Eo *obj, double val);
+
+\\
+**[[:develop:api:efl:ui:spin:method:apply_formatted_value|apply_formatted_value]]** ''protected''// [Overridden from [[:develop:api:efl:ui:format|Efl.Ui.Format]]]//\\
+> %%Internal method to be implemented by widgets including this mixin.%%
+
+void efl_ui_format_apply_formatted_value(Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:action|Efl.Access.Action]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:action:property:action_localized_name|action_localized_name]]** //**(get)**// | |
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:access:value|Efl.Access.Value]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:value:property:increment|increment]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:value:property:range|range]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:value:property:value_and_text|value_and_text]]** //**(get, set)**// | %%Value and text displayed bye accessible widget.%% |
+^ [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:action_description|action_description]]** //**(get, set)**// | %%Action description for given id%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:method:action_do|action_do]]** | %%Performs action on given widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:method:action_keybinding_get|action_keybinding_get]]** | %%Gets configured keybinding for specific action and widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:action_name|action_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:actions|actions]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:elm_actions|elm_actions]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:format|Efl.Ui.Format]] ^^^
+| | **[[:develop:api:efl:ui:format:property:format_func|format_func]]** //**(get, set)**// | %%User-provided function which takes care of converting an %%[[:develop:api:eina:value|Eina.Value]]%% into a text string. The user is then completely in control of how the string is generated, but it is the most cumbersome method to use. If the conversion fails the other mechanisms will be tried, according to their priorities.%% |
+| | **[[:develop:api:efl:ui:format:property:format_string|format_string]]** //**(get, set)**// | %%A user-provided, string used to format the numerical value.%% |
+| | **[[:develop:api:efl:ui:format:property:format_values|format_values]]** //**(get, set)**// | %%User-provided list of values which are to be rendered using specific text strings. This is more convenient to use than %%[[:develop:api:efl:ui:format:property:format_func|Efl.Ui.Format.format_func]]%% and is perfectly suited for cases where the strings make more sense than the numerical values. For example, weekday names ("Monday", "Tuesday", ...) are friendlier than numbers 1 to 7. If a value is not found in the list, the other mechanisms will be tried according to their priorities. List members do not need to be in any particular order. They are sorted internally for performance reasons.%% |
+| ''protected'' | **[[:develop:api:efl:ui:format:method:decimal_places_get|decimal_places_get]]** | %%Internal method to be used by widgets including this mixin. It can only be used when a %%[[:develop:api:efl:ui:format:property:format_string|Efl.Ui.Format.format_string]]%% has been supplied, and it returns the number of decimal places that the format string will produce for floating point values.%% |
+| ''protected'' | **[[:develop:api:efl:ui:format:method:formatted_value_get|formatted_value_get]]** | %%Internal method to be used by widgets including this mixin to perform the conversion from the internal numerical value into the text representation (Users of these widgets do not need to call this method).%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:property:automatic_theme_rotation|automatic_theme_rotation]]** //**(get, set)**// | %%This flag tells if this object will automatically mirror the rotation changes of the window to this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**// | %%Whether this object updates its size hints automatically.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_freeze|calc_freeze]]** | %%Freezes the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_parts_extends|calc_parts_extends]]** | %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_size_min|calc_size_min]]** | %%Calculates the minimum required size for a given layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_thaw|calc_thaw]]** | %%Thaws the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:layout_base:method:factory_bind|factory_bind]]** | %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:finger_size_multiplier|finger_size_multiplier]]** //**(get, set)**// | %%Set a multiplier for applying finger size to the layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:group_calculate|group_calculate]]** | %%Triggers an immediate recalculation of this object's geometry.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:group_data|group_data]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_max|group_size_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_min|group_size_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:l10n_text|l10n_text]]** //**(get, set)**// | %%A unique string to be translated.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:message_send|message_send]]** | %%Sends an (Edje) message to a given Edje object%% |
+| | **[[:develop:api:efl:ui:layout_base:property:part_exist|part_exist]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_add|signal_callback_add]]** | %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_del|signal_callback_del]]** | %%Removes a signal-triggered callback from an object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_emit|signal_emit]]** | %%Sends/emits an Edje signal to this layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_process|signal_process]]** | %%Processes an object's messages and signals queue.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:theme|theme]]** //**(get, set)**// | %%The theme of this widget, defines which edje group will be used.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:theme_rotation_apply|theme_rotation_apply]]** | %%Apply a new rotation value to this object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:calc_force|calc_force]]** | %%Forces a Size/Geometry calculation.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:on_focus_update|on_focus_update]]** | %%Virtual function handling focus in/out events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:part_get|part_get]]** | %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:theme_apply|theme_apply]]** | %%Virtual function called when the widget needs to re-apply its theme.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:property:position|position]]** //**(get, set)**// | %%The 2D position of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:size|size]]** //**(get, set)**// | %%The 2D size of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| | **[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_input_event_handler|widget_input_event_handler]]** | %%Virtual function handling input events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] ^^^
+| | **[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]** | %%A circular dependency between parts of the object was found.%% |
+| | **[[:develop:api:efl:layout:calc:event:recalc|recalc]]** | %%The layout was recalculated.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:event:theme_changed|theme,changed]]** | %%Called when theme changed%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:range_display|Efl.Ui.Range_Display]] ^^^
+| | **[[:develop:api:efl:ui:range_display:event:changed|changed]]** | %%Emitted when the %%[[:develop:api:efl:ui:range_display:property:range_value|Efl.Ui.Range_Display.range_value]]%% is getting changed.%% |
+| | **[[:develop:api:efl:ui:range_display:event:max_reached|max,reached]]** | %%Emitted when the %%''range_value''%% has reached the maximum of %%[[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]%%.%% |
+| | **[[:develop:api:efl:ui:range_display:event:min_reached|min,reached]]** | %%Emitted when the %%[[:develop:api:efl:ui:range_display:property:range_value|Efl.Ui.Range_Display.range_value]]%% has reached the minimum of %%[[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]%%.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/spin/method/apply_formatted_value.txt b/public_html/data/pages/develop/api/efl/ui/spin/method/apply_formatted_value.txt
new file mode 100644
index 00000000..e50e75fe
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/spin/method/apply_formatted_value.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Ui.Spin.apply_formatted_value~~
+====== Efl.Ui.Spin.apply_formatted_value ======
+
+===== Description =====
+
+%%Internal method to be implemented by widgets including this mixin.%%
+
+%%The mixin will call this method to signal the widget that the formatting has changed and therefore the current value should be converted and rendered again. Widgets must typically call %%[[:develop:api:efl:ui:format:method:formatted_value_get|Efl.Ui.Format.formatted_value_get]]%% and display the returned string. This is something they are already doing (whenever the value changes, for example) so there should be no extra code written to implement this method.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:spin:method:apply_formatted_value:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:format:method:apply_formatted_value|Efl.Ui.Format.apply_formatted_value]].//===== Signature =====
+
+
+apply_formatted_value @protected @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_ui_format_apply_formatted_value(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:format:method:apply_formatted_value|Efl.Ui.Format.apply_formatted_value]]
+ * [[:develop:api:efl:ui:spin:method:apply_formatted_value|Efl.Ui.Spin.apply_formatted_value]]
+ * [[:develop:api:efl:ui:spin_button:method:apply_formatted_value|Efl.Ui.Spin_Button.apply_formatted_value]]
+ * [[:develop:api:efl:ui:tags:method:apply_formatted_value|Efl.Ui.Tags.apply_formatted_value]]
+ * [[:develop:api:efl:ui:calendar:method:apply_formatted_value|Efl.Ui.Calendar.apply_formatted_value]]
+ * [[:develop:api:efl:ui:progressbar:method:apply_formatted_value|Efl.Ui.Progressbar.apply_formatted_value]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/spin/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/spin/method/constructor.txt
new file mode 100644
index 00000000..44464c54
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/spin/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Spin.constructor~~
+====== Efl.Ui.Spin.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:spin:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/spin/method/destructor.txt b/public_html/data/pages/develop/api/efl/ui/spin/method/destructor.txt
new file mode 100644
index 00000000..79686ed3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/spin/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Ui.Spin.destructor~~
+====== Efl.Ui.Spin.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:spin:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/spin/property/range_limits.txt b/public_html/data/pages/develop/api/efl/ui/spin/property/range_limits.txt
new file mode 100644
index 00000000..4f19cc24
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/spin/property/range_limits.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Ui.Spin.range_limits~~
+====== Efl.Ui.Spin.range_limits ======
+
+===== Description =====
+
+%%Set the minimum and maximum values for given range widget.%%
+
+%%If the current value is less than %%''min''%%, it will be updated to %%''min''%%. If it is bigger then %%''max''%%, will be updated to %%''max''%%. The resulting value can be obtained with %%[[:develop:api:efl:ui:range_display:property:range_value|Efl.Ui.Range_Display.range_value.get]]%%.%%
+
+%%The default minimum and maximum values may be different for each class.%%
+
+
+@property range_limits @pure_virtual {
+ get {}
+ set {}
+ values {
+ min: double;
+ max: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_range_limits_get(const Eo *obj, double *min, double *max);
+void efl_ui_range_limits_set(Eo *obj, double min, double max);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]
+ * [[:develop:api:efl:ui:spin:property:range_limits|Efl.Ui.Spin.range_limits]]
+ * [[:develop:api:efl:ui:progressbar_part:property:range_limits|Efl.Ui.Progressbar_Part.range_limits]]
+ * [[:develop:api:efl:ui:slider:property:range_limits|Efl.Ui.Slider.range_limits]]
+ * [[:develop:api:efl:ui:slider_interval:property:range_limits|Efl.Ui.Slider_Interval.range_limits]]
+ * [[:develop:api:efl:ui:progressbar:property:range_limits|Efl.Ui.Progressbar.range_limits]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/spin/property/range_value.txt b/public_html/data/pages/develop/api/efl/ui/spin/property/range_value.txt
new file mode 100644
index 00000000..4fd82f6c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/spin/property/range_value.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Ui.Spin.range_value~~
+====== Efl.Ui.Spin.range_value ======
+
+===== Description =====
+
+%%Control the value (position) of the widget within its valid range.%%
+
+%%Values outside the limits defined in %%[[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]%% are ignored and an error is printed.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:spin:property:range_value:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **val** - %%The range value (must be within the bounds of %%[[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]%%).%%
+
+//Overridden from [[:develop:api:efl:ui:range_display:property:range_value|Efl.Ui.Range_Display.range_value]] **(get, set)**.//===== Signature =====
+
+
+@property range_value @pure_virtual {
+ get {}
+ set {}
+ values {
+ val: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_ui_range_value_get(const Eo *obj);
+void efl_ui_range_value_set(Eo *obj, double val);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:range_display:property:range_value|Efl.Ui.Range_Display.range_value]]
+ * [[:develop:api:efl:ui:spin:property:range_value|Efl.Ui.Spin.range_value]]
+ * [[:develop:api:efl:ui:spin_button:property:range_value|Efl.Ui.Spin_Button.range_value]]
+ * [[:develop:api:efl:ui:progressbar_part:property:range_value|Efl.Ui.Progressbar_Part.range_value]]
+ * [[:develop:api:efl:ui:slider:property:range_value|Efl.Ui.Slider.range_value]]
+ * [[:develop:api:efl:ui:slider_interval:property:range_value|Efl.Ui.Slider_Interval.range_value]]
+ * [[:develop:api:efl:ui:progressbar:property:range_value|Efl.Ui.Progressbar.range_value]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/spin_button.txt b/public_html/data/pages/develop/api/efl/ui/spin_button.txt
new file mode 100644
index 00000000..0275defc
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/spin_button.txt
@@ -0,0 +1,505 @@
+~~Title: Efl.Ui.Spin_Button~~
+====== Efl.Ui.Spin_Button (class) ======
+
+===== Description =====
+
+%%A Button Spin.%%
+
+%%This is a widget which allows the user to increase or decrease numeric values using the arrow buttons or to edit values directly by clicking over them and inputting new ones.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:spin_button:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:spin|Efl.Ui.Spin]] //(class)// => [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)// => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:spin|Efl.Ui.Spin]] //(class)//
+ * [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)//
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] //(interface)//
+ * [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] //(interface)//
+ * [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] //(interface)//
+ * [[:develop:api:efl:layout:group|Efl.Layout.Group]] //(interface)//
+ * [[:develop:api:efl:ui:range_display|Efl.Ui.Range_Display]] //(interface)//
+ * [[:develop:api:efl:ui:format|Efl.Ui.Format]] //(mixin)//
+ * [[:develop:api:efl:access:value|Efl.Access.Value]] //(interface)//
+ * [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]] //(mixin)//
+ * [[:develop:api:efl:access:action|Efl.Access.Action]] //(mixin)//
+ * [[:develop:api:efl:ui:focus:composition|Efl.Ui.Focus.Composition]] //(mixin)//
+ * [[:develop:api:efl:ui:layout_orientable|Efl.Ui.Layout_Orientable]] //(interface)//
+ * [[:develop:api:efl:ui:range_interactive|Efl.Ui.Range_Interactive]] //(interface)//
+ * [[:develop:api:efl:ui:range_display|Efl.Ui.Range_Display]] //(interface)//
+ * [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]] //(mixin)//
+ * [[:develop:api:efl:access:action|Efl.Access.Action]] //(mixin)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:spin_button:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:spin_button:property:direct_text_input|direct_text_input]]** //**(get, set)**//\\
+> %%Control whether the spin can be directly edited by the user.%%
+
+Eina_Bool efl_ui_spin_button_direct_text_input_get(const Eo *obj);
+void efl_ui_spin_button_direct_text_input_set(Eo *obj, Eina_Bool direct_text_input);
+
+\\
+**[[:develop:api:efl:ui:spin_button:property:i18n_name|i18n_name]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:access:object|Efl.Access.Object]]]//\\
+> %%Accessible name of the object.%%
+
+const char *efl_access_object_i18n_name_get(const Eo *obj);
+void efl_access_object_i18n_name_set(Eo *obj, const char *i18n_name);
+
+\\
+**[[:develop:api:efl:ui:spin_button:property:orientation|orientation]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:layout_orientable|Efl.Ui.Layout_Orientable]]]//\\
+> %%Control the direction of a given widget.%%
+
+Efl_Ui_Layout_Orientation efl_ui_layout_orientation_get(const Eo *obj);
+void efl_ui_layout_orientation_set(Eo *obj, Efl_Ui_Layout_Orientation dir);
+
+\\
+**[[:develop:api:efl:ui:spin_button:property:range_step|range_step]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:range_interactive|Efl.Ui.Range_Interactive]]]//\\
+> %%Control the step used to increment or decrement values for given widget.%%
+
+double efl_ui_range_step_get(const Eo *obj);
+void efl_ui_range_step_set(Eo *obj, double step);
+
+\\
+**[[:develop:api:efl:ui:spin_button:property:range_value|range_value]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:range_display|Efl.Ui.Range_Display]]]//\\
+> %%Control the value (position) of the widget within its valid range.%%
+
+double efl_ui_range_value_get(const Eo *obj);
+void efl_ui_range_value_set(Eo *obj, double val);
+
+\\
+**[[:develop:api:efl:ui:spin_button:property:wraparound|wraparound]]** //**(get, set)**//\\
+> %%Control whether the spin should circulate value when it reaches its minimum or maximum value.%%
+
+Eina_Bool efl_ui_spin_button_wraparound_get(const Eo *obj);
+void efl_ui_spin_button_wraparound_set(Eo *obj, Eina_Bool circulate);
+
+\\
+**[[:develop:api:efl:ui:spin_button:method:apply_formatted_value|apply_formatted_value]]** ''protected''// [Overridden from [[:develop:api:efl:ui:format|Efl.Ui.Format]]]//\\
+> %%Internal method to be implemented by widgets including this mixin.%%
+
+void efl_ui_format_apply_formatted_value(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:spin_button:property:elm_actions|elm_actions]]** //**(get)**// ''protected''// [Overridden from [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]]]//\\
+>
+
+const Efl_Access_Action_Data *efl_access_widget_action_elm_actions_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:spin_button:property:increment|increment]]** //**(get)**// ''protected''// [Overridden from [[:develop:api:efl:access:value|Efl.Access.Value]]]//\\
+>
+
+double efl_access_value_increment_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:spin_button:method:on_focus_update|on_focus_update]]** ''protected''// [Overridden from [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]]]//\\
+> %%Virtual function handling focus in/out events on the widget.%%
+
+Eina_Bool efl_ui_focus_object_on_focus_update(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:spin_button:property:range|range]]** //**(get)**// ''protected''// [Overridden from [[:develop:api:efl:access:value|Efl.Access.Value]]]//\\
+>
+
+void efl_access_value_range_get(const Eo *obj, double *lower_limit, double *upper_limit, const char **description);
+
+\\
+**[[:develop:api:efl:ui:spin_button:method:theme_apply|theme_apply]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Virtual function called when the widget needs to re-apply its theme.%%
+
+Eina_Error efl_ui_widget_theme_apply(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:spin_button:property:value_and_text|value_and_text]]** //**(get, set)**// ''protected''// [Overridden from [[:develop:api:efl:access:value|Efl.Access.Value]]]//\\
+> %%Value and text displayed bye accessible widget.%%
+
+void efl_access_value_and_text_get(const Eo *obj, double *value, const char **text);
+Eina_Bool efl_access_value_and_text_set(Eo *obj, double value, const char *text);
+
+\\
+**[[:develop:api:efl:ui:spin_button:method:widget_input_event_handler|widget_input_event_handler]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Virtual function handling input events on the widget.%%
+
+Eina_Bool efl_ui_widget_input_event_handler(Eo *obj, const Efl_Event *eo_event, Efl_Canvas_Object *source);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:action|Efl.Access.Action]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:action:property:action_localized_name|action_localized_name]]** //**(get)**// | |
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:action_description|action_description]]** //**(get, set)**// | %%Action description for given id%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:method:action_do|action_do]]** | %%Performs action on given widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:method:action_keybinding_get|action_keybinding_get]]** | %%Gets configured keybinding for specific action and widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:action_name|action_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:actions|actions]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:composition|Efl.Ui.Focus.Composition]] ^^^
+| ''protected'' | **[[:develop:api:efl:ui:focus:composition:property:composition_elements|composition_elements]]** //**(get, set)**// | %%Set the order of elements that will be used for composition%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:composition:method:dirty|dirty]]** | %%Mark this widget as dirty, the children can be considered to be changed after that call%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:composition:property:logical_mode|logical_mode]]** //**(get, set)**// | %%Set to true if all children should be registered as logicals%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:composition:method:prepare|prepare]]** | %%A call to prepare the children of this element, called if marked as dirty%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:format|Efl.Ui.Format]] ^^^
+| | **[[:develop:api:efl:ui:format:property:format_func|format_func]]** //**(get, set)**// | %%User-provided function which takes care of converting an %%[[:develop:api:eina:value|Eina.Value]]%% into a text string. The user is then completely in control of how the string is generated, but it is the most cumbersome method to use. If the conversion fails the other mechanisms will be tried, according to their priorities.%% |
+| | **[[:develop:api:efl:ui:format:property:format_string|format_string]]** //**(get, set)**// | %%A user-provided, string used to format the numerical value.%% |
+| | **[[:develop:api:efl:ui:format:property:format_values|format_values]]** //**(get, set)**// | %%User-provided list of values which are to be rendered using specific text strings. This is more convenient to use than %%[[:develop:api:efl:ui:format:property:format_func|Efl.Ui.Format.format_func]]%% and is perfectly suited for cases where the strings make more sense than the numerical values. For example, weekday names ("Monday", "Tuesday", ...) are friendlier than numbers 1 to 7. If a value is not found in the list, the other mechanisms will be tried according to their priorities. List members do not need to be in any particular order. They are sorted internally for performance reasons.%% |
+| ''protected'' | **[[:develop:api:efl:ui:format:method:decimal_places_get|decimal_places_get]]** | %%Internal method to be used by widgets including this mixin. It can only be used when a %%[[:develop:api:efl:ui:format:property:format_string|Efl.Ui.Format.format_string]]%% has been supplied, and it returns the number of decimal places that the format string will produce for floating point values.%% |
+| ''protected'' | **[[:develop:api:efl:ui:format:method:formatted_value_get|formatted_value_get]]** | %%Internal method to be used by widgets including this mixin to perform the conversion from the internal numerical value into the text representation (Users of these widgets do not need to call this method).%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:property:automatic_theme_rotation|automatic_theme_rotation]]** //**(get, set)**// | %%This flag tells if this object will automatically mirror the rotation changes of the window to this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**// | %%Whether this object updates its size hints automatically.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_freeze|calc_freeze]]** | %%Freezes the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_parts_extends|calc_parts_extends]]** | %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_size_min|calc_size_min]]** | %%Calculates the minimum required size for a given layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_thaw|calc_thaw]]** | %%Thaws the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:layout_base:method:factory_bind|factory_bind]]** | %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:finger_size_multiplier|finger_size_multiplier]]** //**(get, set)**// | %%Set a multiplier for applying finger size to the layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:group_calculate|group_calculate]]** | %%Triggers an immediate recalculation of this object's geometry.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:group_data|group_data]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_max|group_size_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_min|group_size_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:l10n_text|l10n_text]]** //**(get, set)**// | %%A unique string to be translated.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:message_send|message_send]]** | %%Sends an (Edje) message to a given Edje object%% |
+| | **[[:develop:api:efl:ui:layout_base:property:part_exist|part_exist]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_add|signal_callback_add]]** | %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_del|signal_callback_del]]** | %%Removes a signal-triggered callback from an object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_emit|signal_emit]]** | %%Sends/emits an Edje signal to this layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_process|signal_process]]** | %%Processes an object's messages and signals queue.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:theme|theme]]** //**(get, set)**// | %%The theme of this widget, defines which edje group will be used.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:theme_rotation_apply|theme_rotation_apply]]** | %%Apply a new rotation value to this object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:calc_force|calc_force]]** | %%Forces a Size/Geometry calculation.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:part_get|part_get]]** | %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:spin|Efl.Ui.Spin]] ^^^
+| | **[[:develop:api:efl:ui:spin:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| | **[[:develop:api:efl:ui:spin:property:range_limits|range_limits]]** //**(get, set)**// | %%Set the minimum and maximum values for given range widget.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:property:position|position]]** //**(get, set)**// | %%The 2D position of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:size|size]]** //**(get, set)**// | %%The 2D size of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| | **[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] ^^^
+| | **[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]** | %%A circular dependency between parts of the object was found.%% |
+| | **[[:develop:api:efl:layout:calc:event:recalc|recalc]]** | %%The layout was recalculated.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:event:theme_changed|theme,changed]]** | %%Called when theme changed%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:range_display|Efl.Ui.Range_Display]] ^^^
+| | **[[:develop:api:efl:ui:range_display:event:changed|changed]]** | %%Emitted when the %%[[:develop:api:efl:ui:range_display:property:range_value|Efl.Ui.Range_Display.range_value]]%% is getting changed.%% |
+| | **[[:develop:api:efl:ui:range_display:event:max_reached|max,reached]]** | %%Emitted when the %%''range_value''%% has reached the maximum of %%[[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]%%.%% |
+| | **[[:develop:api:efl:ui:range_display:event:min_reached|min,reached]]** | %%Emitted when the %%[[:develop:api:efl:ui:range_display:property:range_value|Efl.Ui.Range_Display.range_value]]%% has reached the minimum of %%[[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]%%.%% |
+^ [[:develop:api:efl:ui:range_interactive|Efl.Ui.Range_Interactive]] ^^^
+| | **[[:develop:api:efl:ui:range_interactive:event:steady|steady]]** | %%Called when the widget's value has changed and has remained unchanged for 0.2s. This allows filtering out unwanted "noise" from the widget if you are only interested in its final position. Use this event instead of %%[[:develop:api:efl:ui:range_display:event:changed|Efl.Ui.Range_Display.changed]]%% if you are going to perform a costly operation on its handler.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/spin_button/method/apply_formatted_value.txt b/public_html/data/pages/develop/api/efl/ui/spin_button/method/apply_formatted_value.txt
new file mode 100644
index 00000000..9132bfb7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/spin_button/method/apply_formatted_value.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Ui.Spin_Button.apply_formatted_value~~
+====== Efl.Ui.Spin_Button.apply_formatted_value ======
+
+===== Description =====
+
+%%Internal method to be implemented by widgets including this mixin.%%
+
+%%The mixin will call this method to signal the widget that the formatting has changed and therefore the current value should be converted and rendered again. Widgets must typically call %%[[:develop:api:efl:ui:format:method:formatted_value_get|Efl.Ui.Format.formatted_value_get]]%% and display the returned string. This is something they are already doing (whenever the value changes, for example) so there should be no extra code written to implement this method.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:spin_button:method:apply_formatted_value:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:spin:method:apply_formatted_value|Efl.Ui.Format.apply_formatted_value]].//===== Signature =====
+
+
+apply_formatted_value @protected @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_ui_format_apply_formatted_value(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:format:method:apply_formatted_value|Efl.Ui.Format.apply_formatted_value]]
+ * [[:develop:api:efl:ui:spin:method:apply_formatted_value|Efl.Ui.Spin.apply_formatted_value]]
+ * [[:develop:api:efl:ui:spin_button:method:apply_formatted_value|Efl.Ui.Spin_Button.apply_formatted_value]]
+ * [[:develop:api:efl:ui:tags:method:apply_formatted_value|Efl.Ui.Tags.apply_formatted_value]]
+ * [[:develop:api:efl:ui:calendar:method:apply_formatted_value|Efl.Ui.Calendar.apply_formatted_value]]
+ * [[:develop:api:efl:ui:progressbar:method:apply_formatted_value|Efl.Ui.Progressbar.apply_formatted_value]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/spin_button/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/spin_button/method/constructor.txt
new file mode 100644
index 00000000..f844d80b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/spin_button/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Spin_Button.constructor~~
+====== Efl.Ui.Spin_Button.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:spin_button:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:spin:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/spin_button/method/on_focus_update.txt b/public_html/data/pages/develop/api/efl/ui/spin_button/method/on_focus_update.txt
new file mode 100644
index 00000000..f57c0e6d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/spin_button/method/on_focus_update.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.Spin_Button.on_focus_update~~
+====== Efl.Ui.Spin_Button.on_focus_update ======
+
+===== Description =====
+
+%%Virtual function handling focus in/out events on the widget.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:spin_button:method:on_focus_update:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:on_focus_update|Efl.Ui.Focus.Object.on_focus_update]].//===== Signature =====
+
+
+on_focus_update @protected {
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_focus_object_on_focus_update(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:object:method:on_focus_update|Efl.Ui.Focus.Object.on_focus_update]]
+ * [[:develop:api:efl:ui:widget:method:on_focus_update|Efl.Ui.Widget.on_focus_update]]
+ * [[:develop:api:efl:ui:win:method:on_focus_update|Efl.Ui.Win.on_focus_update]]
+ * [[:develop:api:efl:ui:image_zoomable:method:on_focus_update|Efl.Ui.Image_Zoomable.on_focus_update]]
+ * [[:develop:api:efl:ui:layout_base:method:on_focus_update|Efl.Ui.Layout_Base.on_focus_update]]
+ * [[:develop:api:efl:ui:slider:method:on_focus_update|Efl.Ui.Slider.on_focus_update]]
+ * [[:develop:api:efl:ui:text:method:on_focus_update|Efl.Ui.Text.on_focus_update]]
+ * [[:develop:api:efl:ui:spin_button:method:on_focus_update|Efl.Ui.Spin_Button.on_focus_update]]
+ * [[:develop:api:efl:ui:calendar:method:on_focus_update|Efl.Ui.Calendar.on_focus_update]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/spin_button/method/theme_apply.txt b/public_html/data/pages/develop/api/efl/ui/spin_button/method/theme_apply.txt
new file mode 100644
index 00000000..0441fb56
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/spin_button/method/theme_apply.txt
@@ -0,0 +1,55 @@
+~~Title: Efl.Ui.Spin_Button.theme_apply~~
+====== Efl.Ui.Spin_Button.theme_apply ======
+
+===== Description =====
+
+%%Virtual function called when the widget needs to re-apply its theme.%%
+
+%%This may be called when the object is first created, or whenever the widget is modified in any way that may require a reload of the theme. This may include but is not limited to scale, theme, or mirrored mode changes.%%
+
+
+theme_apply @protected {
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_widget_theme_apply(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:theme_apply|Efl.Ui.Widget.theme_apply]]
+ * [[:develop:api:efl:ui:win:method:theme_apply|Efl.Ui.Win.theme_apply]]
+ * [[:develop:api:efl:ui:flip:method:theme_apply|Efl.Ui.Flip.theme_apply]]
+ * [[:develop:api:efl:ui:image:method:theme_apply|Efl.Ui.Image.theme_apply]]
+ * [[:develop:api:efl:ui:image_zoomable:method:theme_apply|Efl.Ui.Image_Zoomable.theme_apply]]
+ * [[:develop:api:efl:ui:layout_base:method:theme_apply|Efl.Ui.Layout_Base.theme_apply]]
+ * [[:develop:api:efl:ui:slider:method:theme_apply|Efl.Ui.Slider.theme_apply]]
+ * [[:develop:api:efl:ui:check:method:theme_apply|Efl.Ui.Check.theme_apply]]
+ * [[:develop:api:efl:ui:radio:method:theme_apply|Efl.Ui.Radio.theme_apply]]
+ * [[:develop:api:efl:ui:clock:method:theme_apply|Efl.Ui.Clock.theme_apply]]
+ * [[:develop:api:efl:ui:text:method:theme_apply|Efl.Ui.Text.theme_apply]]
+ * [[:develop:api:efl:ui:spin_button:method:theme_apply|Efl.Ui.Spin_Button.theme_apply]]
+ * [[:develop:api:efl:ui:collection_view:method:theme_apply|Efl.Ui.Collection_View.theme_apply]]
+ * [[:develop:api:efl:ui:panel:method:theme_apply|Efl.Ui.Panel.theme_apply]]
+ * [[:develop:api:efl:ui:slider_interval:method:theme_apply|Efl.Ui.Slider_Interval.theme_apply]]
+ * [[:develop:api:elm:code_widget:method:theme_apply|Elm.Code_Widget.theme_apply]]
+ * [[:develop:api:efl:ui:textpath:method:theme_apply|Efl.Ui.Textpath.theme_apply]]
+ * [[:develop:api:efl:ui:scroller:method:theme_apply|Efl.Ui.Scroller.theme_apply]]
+ * [[:develop:api:efl:ui:collection:method:theme_apply|Efl.Ui.Collection.theme_apply]]
+ * [[:develop:api:efl:ui:panes:method:theme_apply|Efl.Ui.Panes.theme_apply]]
+ * [[:develop:api:efl:ui:calendar:method:theme_apply|Efl.Ui.Calendar.theme_apply]]
+ * [[:develop:api:efl:ui:progressbar:method:theme_apply|Efl.Ui.Progressbar.theme_apply]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/spin_button/method/widget_input_event_handler.txt b/public_html/data/pages/develop/api/efl/ui/spin_button/method/widget_input_event_handler.txt
new file mode 100644
index 00000000..48da436e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/spin_button/method/widget_input_event_handler.txt
@@ -0,0 +1,57 @@
+~~Title: Efl.Ui.Spin_Button.widget_input_event_handler~~
+====== Efl.Ui.Spin_Button.widget_input_event_handler ======
+
+===== Description =====
+
+%%Virtual function handling input events on the widget.%%
+
+%%This method should return %%''true''%% if the event has been processed. Only key down, key up and pointer wheel events will be propagated through this function.%%
+
+%%It is common for the event to be also marked as processed as in %%[[:develop:api:efl:input:event:property:processed|Efl.Input.Event.processed]]%%, if this operation was successful. This makes sure other widgets will not also process this input event.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:spin_button:method:widget_input_event_handler:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:widget_input_event_handler|Efl.Ui.Widget.widget_input_event_handler]].//===== Signature =====
+
+
+widget_input_event_handler @protected {
+ params {
+ @in eo_event: const(event);
+ @in source: Efl.Canvas.Object;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_input_event_handler(Eo *obj, const Efl_Event *eo_event, Efl_Canvas_Object *source);
+
+
+===== Parameters =====
+
+ * **eo_event** //(in)// - %%EO event struct with an Efl.Input.Event as info.%%
+ * **source** //(in)// - %%Source object where the event originated. Often same as this.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:widget_input_event_handler|Efl.Ui.Widget.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:win:method:widget_input_event_handler|Efl.Ui.Win.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:image:method:widget_input_event_handler|Efl.Ui.Image.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:image_zoomable:method:widget_input_event_handler|Efl.Ui.Image_Zoomable.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:slider:method:widget_input_event_handler|Efl.Ui.Slider.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:check:method:widget_input_event_handler|Efl.Ui.Check.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:radio:method:widget_input_event_handler|Efl.Ui.Radio.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:spin_button:method:widget_input_event_handler|Efl.Ui.Spin_Button.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:panel:method:widget_input_event_handler|Efl.Ui.Panel.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:item:method:widget_input_event_handler|Efl.Ui.Item.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:slider_interval:method:widget_input_event_handler|Efl.Ui.Slider_Interval.widget_input_event_handler]]
+ * [[:develop:api:elm:code_widget:method:widget_input_event_handler|Elm.Code_Widget.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:tags:method:widget_input_event_handler|Efl.Ui.Tags.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:scroller:method:widget_input_event_handler|Efl.Ui.Scroller.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:calendar:method:widget_input_event_handler|Efl.Ui.Calendar.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:video:method:widget_input_event_handler|Efl.Ui.Video.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:button:method:widget_input_event_handler|Efl.Ui.Button.widget_input_event_handler]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/spin_button/property/direct_text_input.txt b/public_html/data/pages/develop/api/efl/ui/spin_button/property/direct_text_input.txt
new file mode 100644
index 00000000..340bf8e7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/spin_button/property/direct_text_input.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Spin_Button.direct_text_input~~
+====== Efl.Ui.Spin_Button.direct_text_input ======
+
+===== Description =====
+
+%%Control whether the spin can be directly edited by the user.%%
+
+%%Spin objects can have editing disabled, in which case they can only be changed by using arrows. This is useful for situations where you don't want your users to write their own value. It's especially useful when using special values. The user can see the real values instead of special label when editing.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:spin_button:property:direct_text_input:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **direct_text_input** - %%%%''true''%% to allow users to directly edit the value.%%
+
+===== Signature =====
+
+
+@property direct_text_input @beta {
+ get {}
+ set {}
+ values {
+ direct_text_input: bool (false);
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_spin_button_direct_text_input_get(const Eo *obj);
+void efl_ui_spin_button_direct_text_input_set(Eo *obj, Eina_Bool direct_text_input);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:spin_button:property:direct_text_input|Efl.Ui.Spin_Button.direct_text_input]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/spin_button/property/elm_actions.txt b/public_html/data/pages/develop/api/efl/ui/spin_button/property/elm_actions.txt
new file mode 100644
index 00000000..cadcc390
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/spin_button/property/elm_actions.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Spin_Button.elm_actions~~
+====== Efl.Ui.Spin_Button.elm_actions ======
+
+===== Values =====
+
+ * **actions** - %%NULL-terminated array of Efl.Access.Action_Data.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:spin_button:property:elm_actions:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:access:widget:action:property:elm_actions|Efl.Access.Widget.Action.elm_actions]] **(get)**.//===== Signature =====
+
+
+@property elm_actions @beta @pure_virtual {
+ get @protected {}
+ values {
+ actions: ptr(const(Efl.Access.Action_Data));
+ }
+}
+
+
+===== C signature =====
+
+
+const Efl_Access_Action_Data *efl_access_widget_action_elm_actions_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:widget:action:property:elm_actions|Efl.Access.Widget.Action.elm_actions]]
+ * [[:develop:api:efl:ui:slider:property:elm_actions|Efl.Ui.Slider.elm_actions]]
+ * [[:develop:api:efl:ui:check:property:elm_actions|Efl.Ui.Check.elm_actions]]
+ * [[:develop:api:efl:ui:radio:property:elm_actions|Efl.Ui.Radio.elm_actions]]
+ * [[:develop:api:efl:ui:win:property:elm_actions|Efl.Ui.Win.elm_actions]]
+ * [[:develop:api:efl:ui:spin_button:property:elm_actions|Efl.Ui.Spin_Button.elm_actions]]
+ * [[:develop:api:efl:ui:panel:property:elm_actions|Efl.Ui.Panel.elm_actions]]
+ * [[:develop:api:efl:ui:slider_interval:property:elm_actions|Efl.Ui.Slider_Interval.elm_actions]]
+ * [[:develop:api:efl:ui:image:property:elm_actions|Efl.Ui.Image.elm_actions]]
+ * [[:develop:api:efl:ui:image_zoomable:property:elm_actions|Efl.Ui.Image_Zoomable.elm_actions]]
+ * [[:develop:api:efl:ui:calendar:property:elm_actions|Efl.Ui.Calendar.elm_actions]]
+ * [[:develop:api:efl:ui:video:property:elm_actions|Efl.Ui.Video.elm_actions]]
+ * [[:develop:api:efl:ui:button:property:elm_actions|Efl.Ui.Button.elm_actions]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/spin_button/property/i18n_name.txt b/public_html/data/pages/develop/api/efl/ui/spin_button/property/i18n_name.txt
new file mode 100644
index 00000000..b5fcb3c0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/spin_button/property/i18n_name.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Spin_Button.i18n_name~~
+====== Efl.Ui.Spin_Button.i18n_name ======
+
+===== Description =====
+
+%%Accessible name of the object.%%
+{{page>:develop:api-include:efl:ui:spin_button:property:i18n_name:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **i18n_name** - %%Accessible name%%
+
+//Overridden from [[:develop:api:efl:ui:widget:property:i18n_name|Efl.Access.Object.i18n_name]] **(get)**.//===== Signature =====
+
+
+@property i18n_name @beta {
+ get {}
+ set {}
+ values {
+ i18n_name: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_access_object_i18n_name_get(const Eo *obj);
+void efl_access_object_i18n_name_set(Eo *obj, const char *i18n_name);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:object:property:i18n_name|Efl.Access.Object.i18n_name]]
+ * [[:develop:api:efl:ui:widget:property:i18n_name|Efl.Ui.Widget.i18n_name]]
+ * [[:develop:api:efl:ui:win:property:i18n_name|Efl.Ui.Win.i18n_name]]
+ * [[:develop:api:efl:ui:text:property:i18n_name|Efl.Ui.Text.i18n_name]]
+ * [[:develop:api:efl:ui:spin_button:property:i18n_name|Efl.Ui.Spin_Button.i18n_name]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/spin_button/property/increment.txt b/public_html/data/pages/develop/api/efl/ui/spin_button/property/increment.txt
new file mode 100644
index 00000000..6d1eafad
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/spin_button/property/increment.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Ui.Spin_Button.increment~~
+====== Efl.Ui.Spin_Button.increment ======
+
+===== Values =====
+
+ * **increment** - %%Minimal incrementation value%%
+
+
+\\ {{page>:develop:api-include:efl:ui:spin_button:property:increment:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:access:value:property:increment|Efl.Access.Value.increment]] **(get)**.//===== Signature =====
+
+
+@property increment @beta @pure_virtual {
+ get @protected {}
+ values {
+ increment: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_access_value_increment_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:value:property:increment|Efl.Access.Value.increment]]
+ * [[:develop:api:efl:ui:slider:property:increment|Efl.Ui.Slider.increment]]
+ * [[:develop:api:efl:ui:spin_button:property:increment|Efl.Ui.Spin_Button.increment]]
+ * [[:develop:api:efl:ui:slider_interval:property:increment|Efl.Ui.Slider_Interval.increment]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/spin_button/property/orientation.txt b/public_html/data/pages/develop/api/efl/ui/spin_button/property/orientation.txt
new file mode 100644
index 00000000..d3980649
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/spin_button/property/orientation.txt
@@ -0,0 +1,56 @@
+~~Title: Efl.Ui.Spin_Button.orientation~~
+====== Efl.Ui.Spin_Button.orientation ======
+
+===== Description =====
+
+%%Control the direction of a given widget.%%
+
+%%Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.%%
+
+%%Mirroring as defined in %%[[:develop:api:efl:ui:i18n|Efl.Ui.I18n]]%% can invert the %%''horizontal''%% direction: it is %%''ltr''%% by default, but becomes %%''rtl''%% if the object is mirrored.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:spin_button:property:orientation:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **dir** - %%Direction of the widget.%%
+
+//Overridden from [[:develop:api:efl:ui:layout_orientable:property:orientation|Efl.Ui.Layout_Orientable.orientation]] **(get, set)**.//===== Signature =====
+
+
+@property orientation @pure_virtual {
+ get {}
+ set {}
+ values {
+ dir: Efl.Ui.Layout_Orientation;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Layout_Orientation efl_ui_layout_orientation_get(const Eo *obj);
+void efl_ui_layout_orientation_set(Eo *obj, Efl_Ui_Layout_Orientation dir);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:layout_orientable:property:orientation|Efl.Ui.Layout_Orientable.orientation]]
+ * [[:develop:api:efl:ui:slider:property:orientation|Efl.Ui.Slider.orientation]]
+ * [[:develop:api:efl:ui:layout_orientable_readonly:property:orientation|Efl.Ui.Layout_Orientable_Readonly.orientation]]
+ * [[:develop:api:efl:canvas:layout_part_box:property:orientation|Efl.Canvas.Layout_Part_Box.orientation]]
+ * [[:develop:api:efl:ui:layout_part_box:property:orientation|Efl.Ui.Layout_Part_Box.orientation]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:orientation|Efl.Canvas.Layout_Part_Invalid.orientation]]
+ * [[:develop:api:efl:ui:collection_view:property:orientation|Efl.Ui.Collection_View.orientation]]
+ * [[:develop:api:efl:ui:table:property:orientation|Efl.Ui.Table.orientation]]
+ * [[:develop:api:efl:ui:box:property:orientation|Efl.Ui.Box.orientation]]
+ * [[:develop:api:efl:ui:slider_interval:property:orientation|Efl.Ui.Slider_Interval.orientation]]
+ * [[:develop:api:efl:ui:collection:property:orientation|Efl.Ui.Collection.orientation]]
+ * [[:develop:api:efl:ui:panes:property:orientation|Efl.Ui.Panes.orientation]]
+ * [[:develop:api:efl:ui:progressbar:property:orientation|Efl.Ui.Progressbar.orientation]]
+ * [[:develop:api:efl:ui:spin_button:property:orientation|Efl.Ui.Spin_Button.orientation]]
+ * [[:develop:api:efl:ui:position_manager:grid:property:orientation|Efl.Ui.Position_Manager.Grid.orientation]]
+ * [[:develop:api:efl:ui:position_manager:list:property:orientation|Efl.Ui.Position_Manager.List.orientation]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/spin_button/property/range.txt b/public_html/data/pages/develop/api/efl/ui/spin_button/property/range.txt
new file mode 100644
index 00000000..5c37119d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/spin_button/property/range.txt
@@ -0,0 +1,38 @@
+~~Title: Efl.Ui.Spin_Button.range~~
+====== Efl.Ui.Spin_Button.range ======
+
+===== Values =====
+
+ * **lower_limit** - %%Lower limit of the range%%
+ * **upper_limit** - %%Upper limit of the range%%
+ * **description** - %%Description of the range%%
+
+
+\\ {{page>:develop:api-include:efl:ui:spin_button:property:range:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:access:value:property:range|Efl.Access.Value.range]] **(get)**.//===== Signature =====
+
+
+@property range @beta @pure_virtual {
+ get @protected {}
+ values {
+ lower_limit: double;
+ upper_limit: double;
+ description: string;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_access_value_range_get(const Eo *obj, double *lower_limit, double *upper_limit, const char **description);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:value:property:range|Efl.Access.Value.range]]
+ * [[:develop:api:efl:ui:slider:property:range|Efl.Ui.Slider.range]]
+ * [[:develop:api:efl:ui:spin_button:property:range|Efl.Ui.Spin_Button.range]]
+ * [[:develop:api:efl:ui:slider_interval:property:range|Efl.Ui.Slider_Interval.range]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/spin_button/property/range_step.txt b/public_html/data/pages/develop/api/efl/ui/spin_button/property/range_step.txt
new file mode 100644
index 00000000..03547468
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/spin_button/property/range_step.txt
@@ -0,0 +1,48 @@
+~~Title: Efl.Ui.Spin_Button.range_step~~
+====== Efl.Ui.Spin_Button.range_step ======
+
+===== Description =====
+
+%%Control the step used to increment or decrement values for given widget.%%
+
+%%This value will be incremented or decremented to the displayed value.%%
+
+%%By default step value is equal to 1.%%
+
+
+@property range_step @pure_virtual {
+ get {}
+ set {}
+ values {
+ step: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_ui_range_step_get(const Eo *obj);
+void efl_ui_range_step_set(Eo *obj, double step);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:range_interactive:property:range_step|Efl.Ui.Range_Interactive.range_step]]
+ * [[:develop:api:efl:ui:slider:property:range_step|Efl.Ui.Slider.range_step]]
+ * [[:develop:api:efl:ui:slider_interval:property:range_step|Efl.Ui.Slider_Interval.range_step]]
+ * [[:develop:api:efl:ui:spin_button:property:range_step|Efl.Ui.Spin_Button.range_step]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/spin_button/property/range_value.txt b/public_html/data/pages/develop/api/efl/ui/spin_button/property/range_value.txt
new file mode 100644
index 00000000..3763ca37
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/spin_button/property/range_value.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Ui.Spin_Button.range_value~~
+====== Efl.Ui.Spin_Button.range_value ======
+
+===== Description =====
+
+%%Control the value (position) of the widget within its valid range.%%
+
+%%Values outside the limits defined in %%[[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]%% are ignored and an error is printed.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:spin_button:property:range_value:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **val** - %%The range value (must be within the bounds of %%[[:develop:api:efl:ui:range_display:property:range_limits|Efl.Ui.Range_Display.range_limits]]%%).%%
+
+//Overridden from [[:develop:api:efl:ui:spin:property:range_value|Efl.Ui.Range_Display.range_value]] **(set)**.//===== Signature =====
+
+
+@property range_value @pure_virtual {
+ get {}
+ set {}
+ values {
+ val: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_ui_range_value_get(const Eo *obj);
+void efl_ui_range_value_set(Eo *obj, double val);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:range_display:property:range_value|Efl.Ui.Range_Display.range_value]]
+ * [[:develop:api:efl:ui:spin:property:range_value|Efl.Ui.Spin.range_value]]
+ * [[:develop:api:efl:ui:spin_button:property:range_value|Efl.Ui.Spin_Button.range_value]]
+ * [[:develop:api:efl:ui:progressbar_part:property:range_value|Efl.Ui.Progressbar_Part.range_value]]
+ * [[:develop:api:efl:ui:slider:property:range_value|Efl.Ui.Slider.range_value]]
+ * [[:develop:api:efl:ui:slider_interval:property:range_value|Efl.Ui.Slider_Interval.range_value]]
+ * [[:develop:api:efl:ui:progressbar:property:range_value|Efl.Ui.Progressbar.range_value]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/spin_button/property/value_and_text.txt b/public_html/data/pages/develop/api/efl/ui/spin_button/property/value_and_text.txt
new file mode 100644
index 00000000..7345691f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/spin_button/property/value_and_text.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Spin_Button.value_and_text~~
+====== Efl.Ui.Spin_Button.value_and_text ======
+
+===== Description =====
+
+%%Value and text displayed bye accessible widget.%%
+{{page>:develop:api-include:efl:ui:spin_button:property:value_and_text:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **value** - %%Value of widget casted to floating point number.%%
+ * **text** - %%string describing value in given context eg. small, enough%%
+
+//Overridden from [[:develop:api:efl:access:value:property:value_and_text|Efl.Access.Value.value_and_text]] **(get, set)**.//===== Signature =====
+
+
+@property value_and_text @beta @protected @pure_virtual {
+ get {}
+ set {
+ return: bool;
+ }
+ values {
+ value: double;
+ text: string;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_access_value_and_text_get(const Eo *obj, double *value, const char **text);
+Eina_Bool efl_access_value_and_text_set(Eo *obj, double value, const char *text);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:value:property:value_and_text|Efl.Access.Value.value_and_text]]
+ * [[:develop:api:efl:ui:slider:property:value_and_text|Efl.Ui.Slider.value_and_text]]
+ * [[:develop:api:efl:ui:spin_button:property:value_and_text|Efl.Ui.Spin_Button.value_and_text]]
+ * [[:develop:api:efl:ui:slider_interval:property:value_and_text|Efl.Ui.Slider_Interval.value_and_text]]
+ * [[:develop:api:efl:ui:progressbar:property:value_and_text|Efl.Ui.Progressbar.value_and_text]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/spin_button/property/wraparound.txt b/public_html/data/pages/develop/api/efl/ui/spin_button/property/wraparound.txt
new file mode 100644
index 00000000..a7ebb081
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/spin_button/property/wraparound.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Ui.Spin_Button.wraparound~~
+====== Efl.Ui.Spin_Button.wraparound ======
+
+===== Description =====
+
+%%Control whether the spin should circulate value when it reaches its minimum or maximum value.%%
+
+%%Disabled by default. If disabled, when the user tries to increment the value but displayed value plus step value is bigger than maximum value, the new value will be the maximum value. The same happens when the user tries to decrement it but the value less step is less than minimum value. In this case, the new displayed value will be the minimum value.%%
+
+%%If enabled, when the user tries to increment the value but displayed value plus step value is bigger than maximum value, the new value will become the minimum value. When the user tries to decrement it, if the value minus step is less than minimum value, the new displayed value will be the maximum value.%%
+
+%%E.g.: %%''min''%% = 10 %%''max''%% = 50 %%''step''%% = 20 %%''displayed''%% = 20%%
+
+%%When the user decrements the value (using left or bottom arrow), it will display $50.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:spin_button:property:wraparound:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **circulate** - %%%%''true''%% to enable circulate or %%''false''%% to disable it.%%
+
+===== Signature =====
+
+
+@property wraparound {
+ get {}
+ set {}
+ values {
+ circulate: bool (false);
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_spin_button_wraparound_get(const Eo *obj);
+void efl_ui_spin_button_wraparound_set(Eo *obj, Eina_Bool circulate);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:spin_button:property:wraparound|Efl.Ui.Spin_Button.wraparound]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table.txt b/public_html/data/pages/develop/api/efl/ui/table.txt
new file mode 100644
index 00000000..a52f6a7c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table.txt
@@ -0,0 +1,516 @@
+~~Title: Efl.Ui.Table~~
+====== Efl.Ui.Table (class) ======
+
+===== Description =====
+
+%%Widget container that arranges its elements in a grid.%%
+
+%%The amount of rows and columns can be controlled with %%[[:develop:api:efl:pack_table:property:table_rows|Efl.Pack_Table.table_rows]]%% and %%[[:develop:api:efl:pack_table:property:table_columns|Efl.Pack_Table.table_columns]]%%, and elements can be manually positioned with %%[[:develop:api:efl:pack_table:method:pack_table|Efl.Pack_Table.pack_table]]%%. Additionally, a fill direction can be defined with %%[[:develop:api:efl:ui:layout_orientable:property:orientation|Efl.Ui.Layout_Orientable.orientation]]%% and elements added with %%[[:develop:api:efl:pack:method:pack|Efl.Pack.pack]]%%. Elements are then added following this direction (horizontal or vertical) and when the amount of columns or rows has been reached, a step is taken in the orthogonal direction. In this second case there is no need to define both the amount of columns and rows, as the table will expand as needed. The default fill direction is %%[[:develop:api:efl:ui:layout_orientation|Efl.Ui.Layout_Orientation.horizontal]]%%.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:table:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:pack_table|Efl.Pack_Table]] //(interface)//
+ * [[:develop:api:efl:pack|Efl.Pack]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:pack_layout|Efl.Pack_Layout]] //(interface)//
+ * [[:develop:api:efl:ui:layout_orientable|Efl.Ui.Layout_Orientable]] //(interface)//
+ * [[:develop:api:efl:gfx:arrangement|Efl.Gfx.Arrangement]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:table:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:table:property:content_align|content_align]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:arrangement|Efl.Gfx.Arrangement]]]//\\
+> %%This property determines how contents will be aligned within a container if there is unused space.%%
+
+void efl_gfx_arrangement_content_align_get(const Eo *obj, double *align_horiz, double *align_vert);
+void efl_gfx_arrangement_content_align_set(Eo *obj, double align_horiz, double align_vert);
+
+\\
+**[[:develop:api:efl:ui:table:method:content_count|content_count]]**// [Overridden from [[:develop:api:efl:container|Efl.Container]]]//\\
+> %%Returns the number of contained sub-objects.%%
+
+int efl_content_count(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:table:method:content_iterate|content_iterate]]**// [Overridden from [[:develop:api:efl:container|Efl.Container]]]//\\
+> %%Begin iterating over this object's contents.%%
+
+Eina_Iterator *efl_content_iterate(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:table:property:content_padding|content_padding]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:arrangement|Efl.Gfx.Arrangement]]]//\\
+> %%This property determines the space between a container's content items.%%
+
+void efl_gfx_arrangement_content_padding_get(const Eo *obj, double *pad_horiz, double *pad_vert, Eina_Bool *scalable);
+void efl_gfx_arrangement_content_padding_set(Eo *obj, double pad_horiz, double pad_vert, Eina_Bool scalable);
+
+\\
+**[[:develop:api:efl:ui:table:method:group_calculate|group_calculate]]**// [Overridden from [[:develop:api:efl:canvas:group|Efl.Canvas.Group]]]//\\
+> %%Triggers an immediate recalculation of this object's geometry.%%
+
+void efl_canvas_group_calculate(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:table:property:homogeneous|homogeneous]]** //**(get, set)**//\\
+> %%Control homogeneous mode.%%
+
+void efl_ui_table_homogeneous_get(const Eo *obj, Eina_Bool *homogeneoush, Eina_Bool *homogeneousv);
+void efl_ui_table_homogeneous_set(Eo *obj, Eina_Bool homogeneoush, Eina_Bool homogeneousv);
+
+\\
+**[[:develop:api:efl:ui:table:method:invalidate|invalidate]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to perform special actions when your object loses its parent, if you need to.%%
+
+void efl_invalidate(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:table:property:l10n_text|l10n_text]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]]]//\\
+> %%A unique string to be translated.%%
+
+const char *efl_ui_l10n_text_get(const Eo *obj, const char **domain);
+void efl_ui_l10n_text_set(Eo *obj, const char *label, const char *domain);
+
+\\
+**[[:develop:api:efl:ui:table:property:language|language]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]]]//\\
+> %%The (human) language for this object.%%
+
+const char *efl_ui_language_get(const Eo *obj);
+void efl_ui_language_set(Eo *obj, const char *language);
+
+\\
+**[[:develop:api:efl:ui:table:method:layout_request|layout_request]]**// [Overridden from [[:develop:api:efl:pack_layout|Efl.Pack_Layout]]]//\\
+> %%Requests EFL to recalculate the layout of this object.%%
+
+void efl_pack_layout_request(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:table:property:orientation|orientation]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:layout_orientable|Efl.Ui.Layout_Orientable]]]//\\
+> %%Control the direction of a given widget.%%
+
+Efl_Ui_Layout_Orientation efl_ui_layout_orientation_get(const Eo *obj);
+void efl_ui_layout_orientation_set(Eo *obj, Efl_Ui_Layout_Orientation dir);
+
+\\
+**[[:develop:api:efl:ui:table:method:pack|pack]]**// [Overridden from [[:develop:api:efl:pack|Efl.Pack]]]//\\
+> %%Adds a sub-object to this container.%%
+
+Eina_Bool efl_pack(Eo *obj, Efl_Gfx_Entity *subobj);
+
+\\
+**[[:develop:api:efl:ui:table:method:pack_clear|pack_clear]]**// [Overridden from [[:develop:api:efl:pack|Efl.Pack]]]//\\
+> %%Removes all packed sub-objects and unreferences them.%%
+
+Eina_Bool efl_pack_clear(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:table:method:pack_table|pack_table]]**// [Overridden from [[:develop:api:efl:pack_table|Efl.Pack_Table]]]//\\
+> %%Pack object at a given location in the table.%%
+
+Eina_Bool efl_pack_table(Eo *obj, Efl_Gfx_Entity *subobj, int col, int row, int colspan, int rowspan);
+
+\\
+**[[:develop:api:efl:ui:table:property:position|position]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The 2D position of a canvas object.%%
+
+Eina_Position2D efl_gfx_entity_position_get(const Eo *obj);
+void efl_gfx_entity_position_set(Eo *obj, Eina_Position2D pos);
+
+\\
+**[[:develop:api:efl:ui:table:property:size|size]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The 2D size of a canvas object.%%
+
+Eina_Size2D efl_gfx_entity_size_get(const Eo *obj);
+void efl_gfx_entity_size_set(Eo *obj, Eina_Size2D size);
+
+\\
+**[[:develop:api:efl:ui:table:property:table_cell_column|table_cell_column]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:pack_table|Efl.Pack_Table]]]//\\
+> %%column of the %%''subobj''%% in this container.%%
+
+Eina_Bool efl_pack_table_cell_column_get(const Eo *obj, Efl_Gfx_Entity *subobj, int *col, int *colspan);
+void efl_pack_table_cell_column_set(Eo *obj, Efl_Gfx_Entity *subobj, int col, int colspan);
+
+\\
+**[[:develop:api:efl:ui:table:property:table_cell_row|table_cell_row]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:pack_table|Efl.Pack_Table]]]//\\
+> %%row of the %%''subobj''%% in this container.%%
+
+Eina_Bool efl_pack_table_cell_row_get(const Eo *obj, Efl_Gfx_Entity *subobj, int *row, int *rowspan);
+void efl_pack_table_cell_row_set(Eo *obj, Efl_Gfx_Entity *subobj, int row, int rowspan);
+
+\\
+**[[:develop:api:efl:ui:table:property:table_columns|table_columns]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:pack_table|Efl.Pack_Table]]]//\\
+> %%Specifies the amount of columns the table will have when the fill direction is horizontal. If it is vertical, the amount of columns depends on the amount of cells added and %%[[:develop:api:efl:pack_table:property:table_rows|Efl.Pack_Table.table_rows]]%%.%%
+
+int efl_pack_table_columns_get(const Eo *obj);
+void efl_pack_table_columns_set(Eo *obj, int cols);
+
+\\
+**[[:develop:api:efl:ui:table:method:table_content_get|table_content_get]]**// [Overridden from [[:develop:api:efl:pack_table|Efl.Pack_Table]]]//\\
+> %%Returns a child at a given position, see %%[[:develop:api:efl:pack_table:method:table_contents_get|Efl.Pack_Table.table_contents_get]]%%.%%
+
+Efl_Gfx_Entity *efl_pack_table_content_get(Eo *obj, int col, int row);
+
+\\
+**[[:develop:api:efl:ui:table:method:table_contents_get|table_contents_get]]**// [Overridden from [[:develop:api:efl:pack_table|Efl.Pack_Table]]]//\\
+> %%Returns all objects at a given position in this table.%%
+
+Eina_Iterator *efl_pack_table_contents_get(Eo *obj, int col, int row, Eina_Bool below);
+
+\\
+**[[:develop:api:efl:ui:table:property:table_rows|table_rows]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:pack_table|Efl.Pack_Table]]]//\\
+> %%Specifies the amount of rows the table will have when the fill direction is vertical. If it is horizontal, the amount of rows depends on the amount of cells added and %%[[:develop:api:efl:pack_table:property:table_columns|Efl.Pack_Table.table_columns]]%%.%%
+
+int efl_pack_table_rows_get(const Eo *obj);
+void efl_pack_table_rows_set(Eo *obj, int rows);
+
+\\
+**[[:develop:api:efl:ui:table:property:table_size|table_size]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:pack_table|Efl.Pack_Table]]]//\\
+> %%Combines %%[[:develop:api:efl:pack_table:property:table_columns|Efl.Pack_Table.table_columns]]%% and %%[[:develop:api:efl:pack_table:property:table_rows|Efl.Pack_Table.table_rows]]%%%%
+
+void efl_pack_table_size_get(const Eo *obj, int *cols, int *rows);
+void efl_pack_table_size_set(Eo *obj, int cols, int rows);
+
+\\
+**[[:develop:api:efl:ui:table:method:unpack|unpack]]**// [Overridden from [[:develop:api:efl:pack|Efl.Pack]]]//\\
+> %%Removes an existing sub-object from the container without deleting it.%%
+
+Eina_Bool efl_pack_unpack(Eo *obj, Efl_Gfx_Entity *subobj);
+
+\\
+**[[:develop:api:efl:ui:table:method:unpack_all|unpack_all]]**// [Overridden from [[:develop:api:efl:pack|Efl.Pack]]]//\\
+> %%Removes all packed sub-objects without unreferencing them.%%
+
+Eina_Bool efl_pack_unpack_all(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:table:method:layout_update|layout_update]]** ''protected''// [Overridden from [[:develop:api:efl:pack_layout|Efl.Pack_Layout]]]//\\
+> %%Implementation of this container's layout algorithm.%%
+
+void efl_pack_layout_update(Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:ui:widget:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| | **[[:develop:api:efl:ui:widget:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:widget:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| | **[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_focus_update|on_focus_update]]** | %%Virtual function handling focus in/out events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:part_get|part_get]]** | %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:theme_apply|theme_apply]]** | %%Virtual function called when the widget needs to re-apply its theme.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_input_event_handler|widget_input_event_handler]]** | %%Virtual function handling input events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:pack_layout|Efl.Pack_Layout]] ^^^
+| | **[[:develop:api:efl:pack_layout:event:layout_updated|layout,updated]]** | %%Sent after the layout was updated.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/table/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/table/method/constructor.txt
new file mode 100644
index 00000000..ac4dd955
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Table.constructor~~
+====== Efl.Ui.Table.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:table:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/method/content_count.txt b/public_html/data/pages/develop/api/efl/ui/table/method/content_count.txt
new file mode 100644
index 00000000..30267a4e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/method/content_count.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Table.content_count~~
+====== Efl.Ui.Table.content_count ======
+
+===== Description =====
+
+%%Returns the number of contained sub-objects.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:table:method:content_count:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:container:method:content_count|Efl.Container.content_count]].//===== Signature =====
+
+
+content_count @pure_virtual {
+ return: int;
+}
+
+
+===== C signature =====
+
+
+int efl_content_count(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:container:method:content_count|Efl.Container.content_count]]
+ * [[:develop:api:efl:canvas:layout:method:content_count|Efl.Canvas.Layout.content_count]]
+ * [[:develop:api:efl:ui:tab_bar:method:content_count|Efl.Ui.Tab_Bar.content_count]]
+ * [[:develop:api:efl:ui:table:method:content_count|Efl.Ui.Table.content_count]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:content_count|Efl.Canvas.Layout_Part_Table.content_count]]
+ * [[:develop:api:efl:ui:layout_part_table:method:content_count|Efl.Ui.Layout_Part_Table.content_count]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:content_count|Efl.Canvas.Layout_Part_Invalid.content_count]]
+ * [[:develop:api:efl:ui:flip:method:content_count|Efl.Ui.Flip.content_count]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:content_count|Efl.Canvas.Layout_Part_Box.content_count]]
+ * [[:develop:api:efl:ui:box:method:content_count|Efl.Ui.Box.content_count]]
+ * [[:develop:api:efl:ui:group_item:method:content_count|Efl.Ui.Group_Item.content_count]]
+ * [[:develop:api:efl:ui:collection:method:content_count|Efl.Ui.Collection.content_count]]
+ * [[:develop:api:efl:ui:layout_part_box:method:content_count|Efl.Ui.Layout_Part_Box.content_count]]
+ * [[:develop:api:efl:ui:spotlight:container:method:content_count|Efl.Ui.Spotlight.Container.content_count]]
+ * [[:develop:api:efl:ui:relative_layout:method:content_count|Efl.Ui.Relative_Layout.content_count]]
+ * [[:develop:api:efl:ui:layout_base:method:content_count|Efl.Ui.Layout_Base.content_count]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/method/content_iterate.txt b/public_html/data/pages/develop/api/efl/ui/table/method/content_iterate.txt
new file mode 100644
index 00000000..1485ad43
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/method/content_iterate.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Table.content_iterate~~
+====== Efl.Ui.Table.content_iterate ======
+
+===== Description =====
+
+%%Begin iterating over this object's contents.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:table:method:content_iterate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:container:method:content_iterate|Efl.Container.content_iterate]].//===== Signature =====
+
+
+content_iterate @pure_virtual {
+ return: iterator @no_unused;
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_content_iterate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:container:method:content_iterate|Efl.Container.content_iterate]]
+ * [[:develop:api:efl:canvas:layout:method:content_iterate|Efl.Canvas.Layout.content_iterate]]
+ * [[:develop:api:efl:ui:tab_bar:method:content_iterate|Efl.Ui.Tab_Bar.content_iterate]]
+ * [[:develop:api:efl:ui:table:method:content_iterate|Efl.Ui.Table.content_iterate]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:content_iterate|Efl.Canvas.Layout_Part_Table.content_iterate]]
+ * [[:develop:api:efl:ui:layout_part_table:method:content_iterate|Efl.Ui.Layout_Part_Table.content_iterate]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:content_iterate|Efl.Canvas.Layout_Part_Invalid.content_iterate]]
+ * [[:develop:api:efl:ui:flip:method:content_iterate|Efl.Ui.Flip.content_iterate]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:content_iterate|Efl.Canvas.Layout_Part_Box.content_iterate]]
+ * [[:develop:api:efl:ui:box:method:content_iterate|Efl.Ui.Box.content_iterate]]
+ * [[:develop:api:efl:ui:group_item:method:content_iterate|Efl.Ui.Group_Item.content_iterate]]
+ * [[:develop:api:efl:ui:collection:method:content_iterate|Efl.Ui.Collection.content_iterate]]
+ * [[:develop:api:efl:ui:layout_part_box:method:content_iterate|Efl.Ui.Layout_Part_Box.content_iterate]]
+ * [[:develop:api:efl:ui:spotlight:container:method:content_iterate|Efl.Ui.Spotlight.Container.content_iterate]]
+ * [[:develop:api:efl:ui:relative_layout:method:content_iterate|Efl.Ui.Relative_Layout.content_iterate]]
+ * [[:develop:api:efl:ui:layout_base:method:content_iterate|Efl.Ui.Layout_Base.content_iterate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/method/group_calculate.txt b/public_html/data/pages/develop/api/efl/ui/table/method/group_calculate.txt
new file mode 100644
index 00000000..eccd8303
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/method/group_calculate.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Ui.Table.group_calculate~~
+====== Efl.Ui.Table.group_calculate ======
+
+===== Description =====
+
+%%Triggers an immediate recalculation of this object's geometry.%%
+
+%%This will also reset the flag %%[[:develop:api:efl:canvas:group:property:group_need_recalculate|Efl.Canvas.Group.group_need_recalculate]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:table:method:group_calculate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:group_calculate|Efl.Canvas.Group.group_calculate]].//===== Signature =====
+
+
+group_calculate {}
+
+
+===== C signature =====
+
+
+void efl_canvas_group_calculate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:group:method:group_calculate|Efl.Canvas.Group.group_calculate]]
+ * [[:develop:api:efl:canvas:event_grabber:method:group_calculate|Efl.Canvas.Event_Grabber.group_calculate]]
+ * [[:develop:api:efl:canvas:layout:method:group_calculate|Efl.Canvas.Layout.group_calculate]]
+ * [[:develop:api:efl:ui:widget:method:group_calculate|Efl.Ui.Widget.group_calculate]]
+ * [[:develop:api:efl:ui:table:method:group_calculate|Efl.Ui.Table.group_calculate]]
+ * [[:develop:api:efl:ui:box:method:group_calculate|Efl.Ui.Box.group_calculate]]
+ * [[:develop:api:efl:ui:layout_base:method:group_calculate|Efl.Ui.Layout_Base.group_calculate]]
+ * [[:develop:api:efl:ui:clock:method:group_calculate|Efl.Ui.Clock.group_calculate]]
+ * [[:develop:api:efl:ui:text:method:group_calculate|Efl.Ui.Text.group_calculate]]
+ * [[:develop:api:efl:ui:panel:method:group_calculate|Efl.Ui.Panel.group_calculate]]
+ * [[:develop:api:efl:ui:layout:method:group_calculate|Efl.Ui.Layout.group_calculate]]
+ * [[:develop:api:efl:ui:textpath:method:group_calculate|Efl.Ui.Textpath.group_calculate]]
+ * [[:develop:api:efl:ui:scroller:method:group_calculate|Efl.Ui.Scroller.group_calculate]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:group_calculate|Efl.Ui.Internal_Text_Scroller.group_calculate]]
+ * [[:develop:api:efl:ui:panes:method:group_calculate|Efl.Ui.Panes.group_calculate]]
+ * [[:develop:api:efl:ui:calendar:method:group_calculate|Efl.Ui.Calendar.group_calculate]]
+ * [[:develop:api:efl:ui:frame:method:group_calculate|Efl.Ui.Frame.group_calculate]]
+ * [[:develop:api:efl:ui:popup:method:group_calculate|Efl.Ui.Popup.group_calculate]]
+ * [[:develop:api:efl:ui:video:method:group_calculate|Efl.Ui.Video.group_calculate]]
+ * [[:develop:api:efl:ui:relative_layout:method:group_calculate|Efl.Ui.Relative_Layout.group_calculate]]
+ * [[:develop:api:efl:ui:pan:method:group_calculate|Efl.Ui.Pan.group_calculate]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:group_calculate|Efl.Ui.Image_Zoomable_Pan.group_calculate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/method/invalidate.txt b/public_html/data/pages/develop/api/efl/ui/table/method/invalidate.txt
new file mode 100644
index 00000000..cf7fde24
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/method/invalidate.txt
@@ -0,0 +1,74 @@
+~~Title: Efl.Ui.Table.invalidate~~
+====== Efl.Ui.Table.invalidate ======
+
+===== Description =====
+
+%%Implement this method to perform special actions when your object loses its parent, if you need to.%%
+
+%%It is called when the parent reference is lost or set to %%''NULL''%%. After this call returns, %%[[:develop:api:efl:object:property:invalidated|Efl.Object.invalidated]]%% is set to %%''true''%%. This allows a simpler tear down of complex hierarchies, by performing object destruction in two steps, first all object relationships are broken and then the isolated objects are destroyed. Performing everything in the %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%% can sometimes lead to deadlocks, but implementing this method is optional if this is not your case. When an object with a parent is destroyed, it first receives a call to %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% and then to %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:table:method:invalidate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:invalidate|Efl.Object.invalidate]].//===== Signature =====
+
+
+invalidate {}
+
+
+===== C signature =====
+
+
+void efl_invalidate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]
+ * [[:develop:api:efl:canvas:vg:node:method:invalidate|Efl.Canvas.Vg.Node.invalidate]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:invalidate|Efl.Ui.Position_Manager.Grid.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:manager_scroll:method:invalidate|Efl.Ui.Spotlight.Manager_Scroll.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:manager_stack:method:invalidate|Efl.Ui.Spotlight.Manager_Stack.invalidate]]
+ * [[:develop:api:efl:net:server_udp_client:method:invalidate|Efl.Net.Server_Udp_Client.invalidate]]
+ * [[:develop:api:efl:net:server_windows:method:invalidate|Efl.Net.Server_Windows.invalidate]]
+ * [[:develop:api:efl:io:buffered_stream:method:invalidate|Efl.Io.Buffered_Stream.invalidate]]
+ * [[:develop:api:efl:net:dialer_simple:method:invalidate|Efl.Net.Dialer_Simple.invalidate]]
+ * [[:develop:api:efl:loop_fd:method:invalidate|Efl.Loop_Fd.invalidate]]
+ * [[:develop:api:efl:net:server_ssl:method:invalidate|Efl.Net.Server_Ssl.invalidate]]
+ * [[:develop:api:efl:net:socket_fd:method:invalidate|Efl.Net.Socket_Fd.invalidate]]
+ * [[:develop:api:efl:net:dialer_udp:method:invalidate|Efl.Net.Dialer_Udp.invalidate]]
+ * [[:develop:api:efl:net:dialer_unix:method:invalidate|Efl.Net.Dialer_Unix.invalidate]]
+ * [[:develop:api:efl:net:dialer_tcp:method:invalidate|Efl.Net.Dialer_Tcp.invalidate]]
+ * [[:develop:api:efl:net:socket_ssl:method:invalidate|Efl.Net.Socket_Ssl.invalidate]]
+ * [[:develop:api:efl:net:dialer_ssl:method:invalidate|Efl.Net.Dialer_Ssl.invalidate]]
+ * [[:develop:api:efl:canvas:object:method:invalidate|Efl.Canvas.Object.invalidate]]
+ * [[:develop:api:efl:canvas:layout:method:invalidate|Efl.Canvas.Layout.invalidate]]
+ * [[:develop:api:efl:ui:widget:method:invalidate|Efl.Ui.Widget.invalidate]]
+ * [[:develop:api:efl:ui:table:method:invalidate|Efl.Ui.Table.invalidate]]
+ * [[:develop:api:efl:ui:box:method:invalidate|Efl.Ui.Box.invalidate]]
+ * [[:develop:api:efl:ui:image:method:invalidate|Efl.Ui.Image.invalidate]]
+ * [[:develop:api:efl:ui:layout_base:method:invalidate|Efl.Ui.Layout_Base.invalidate]]
+ * [[:develop:api:efl:ui:collection_view:method:invalidate|Efl.Ui.Collection_View.invalidate]]
+ * [[:develop:api:efl:ui:group_item:method:invalidate|Efl.Ui.Group_Item.invalidate]]
+ * [[:develop:api:efl:ui:collection:method:invalidate|Efl.Ui.Collection.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:container:method:invalidate|Efl.Ui.Spotlight.Container.invalidate]]
+ * [[:develop:api:efl:ui:relative_layout:method:invalidate|Efl.Ui.Relative_Layout.invalidate]]
+ * [[:develop:api:efl:canvas:vg:object:method:invalidate|Efl.Canvas.Vg.Object.invalidate]]
+ * [[:develop:api:efl:loop_model:method:invalidate|Efl.Loop_Model.invalidate]]
+ * [[:develop:api:eldbus:model:method:invalidate|Eldbus.Model.invalidate]]
+ * [[:develop:api:eldbus:model:connection:method:invalidate|Eldbus.Model.Connection.invalidate]]
+ * [[:develop:api:eldbus:model:proxy:method:invalidate|Eldbus.Model.Proxy.invalidate]]
+ * [[:develop:api:eldbus:model:arguments:method:invalidate|Eldbus.Model.Arguments.invalidate]]
+ * [[:develop:api:eldbus:model:signal:method:invalidate|Eldbus.Model.Signal.invalidate]]
+ * [[:develop:api:eldbus:model:object:method:invalidate|Eldbus.Model.Object.invalidate]]
+ * [[:develop:api:efl:composite_model:method:invalidate|Efl.Composite_Model.invalidate]]
+ * [[:develop:api:efl:ui:select_model:method:invalidate|Efl.Ui.Select_Model.invalidate]]
+ * [[:develop:api:efl:io:model:method:invalidate|Efl.Io.Model.invalidate]]
+ * [[:develop:api:efl:net:dialer_websocket:method:invalidate|Efl.Net.Dialer_Websocket.invalidate]]
+ * [[:develop:api:efl:net:server_simple:method:invalidate|Efl.Net.Server_Simple.invalidate]]
+ * [[:develop:api:efl:ui:caching_factory:method:invalidate|Efl.Ui.Caching_Factory.invalidate]]
+ * [[:develop:api:efl:loop:method:invalidate|Efl.Loop.invalidate]]
+ * [[:develop:api:efl:net:dialer_http:method:invalidate|Efl.Net.Dialer_Http.invalidate]]
+ * [[:develop:api:efl:io:copier:method:invalidate|Efl.Io.Copier.invalidate]]
+ * [[:develop:api:efl:ui:position_manager:list:method:invalidate|Efl.Ui.Position_Manager.List.invalidate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/method/layout_request.txt b/public_html/data/pages/develop/api/efl/ui/table/method/layout_request.txt
new file mode 100644
index 00000000..3d19f513
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/method/layout_request.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Ui.Table.layout_request~~
+====== Efl.Ui.Table.layout_request ======
+
+===== Description =====
+
+%%Requests EFL to recalculate the layout of this object.%%
+
+%%Internal layout methods might be called asynchronously.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:table:method:layout_request:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_layout:method:layout_request|Efl.Pack_Layout.layout_request]].//===== Signature =====
+
+
+layout_request @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_pack_layout_request(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_layout:method:layout_request|Efl.Pack_Layout.layout_request]]
+ * [[:develop:api:efl:ui:table:method:layout_request|Efl.Ui.Table.layout_request]]
+ * [[:develop:api:efl:ui:box:method:layout_request|Efl.Ui.Box.layout_request]]
+ * [[:develop:api:efl:ui:relative_layout:method:layout_request|Efl.Ui.Relative_Layout.layout_request]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/method/layout_update.txt b/public_html/data/pages/develop/api/efl/ui/table/method/layout_update.txt
new file mode 100644
index 00000000..d728446d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/method/layout_update.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.Table.layout_update~~
+====== Efl.Ui.Table.layout_update ======
+
+===== Description =====
+
+%%Implementation of this container's layout algorithm.%%
+
+%%EFL will call this function whenever the contents of this container need to be re-laid out on the canvas.%%
+
+%%This can be overridden to implement custom layout behaviors.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:table:method:layout_update:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_layout:method:layout_update|Efl.Pack_Layout.layout_update]].//===== Signature =====
+
+
+layout_update @protected @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_pack_layout_update(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_layout:method:layout_update|Efl.Pack_Layout.layout_update]]
+ * [[:develop:api:efl:ui:table:method:layout_update|Efl.Ui.Table.layout_update]]
+ * [[:develop:api:efl:ui:table_static:method:layout_update|Efl.Ui.Table_Static.layout_update]]
+ * [[:develop:api:efl:ui:box:method:layout_update|Efl.Ui.Box.layout_update]]
+ * [[:develop:api:efl:ui:box_stack:method:layout_update|Efl.Ui.Box_Stack.layout_update]]
+ * [[:develop:api:efl:ui:box_flow:method:layout_update|Efl.Ui.Box_Flow.layout_update]]
+ * [[:develop:api:efl:ui:relative_layout:method:layout_update|Efl.Ui.Relative_Layout.layout_update]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/method/pack.txt b/public_html/data/pages/develop/api/efl/ui/table/method/pack.txt
new file mode 100644
index 00000000..e08ae23e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/method/pack.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Ui.Table.pack~~
+====== Efl.Ui.Table.pack ======
+
+===== Description =====
+
+%%Adds a sub-object to this container.%%
+
+%%Depending on the container this will either fill in the default spot, replacing any already existing element or append to the end of the container if there is no default part.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:table:method:pack:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack:method:pack|Efl.Pack.pack]].//===== Signature =====
+
+
+pack @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack(Eo *obj, Efl_Gfx_Entity *subobj);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%The object to pack.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack:method:pack|Efl.Pack.pack]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack|Efl.Ui.Tab_Bar.pack]]
+ * [[:develop:api:efl:ui:table:method:pack|Efl.Ui.Table.pack]]
+ * [[:develop:api:efl:ui:layout_part_table:method:pack|Efl.Ui.Layout_Part_Table.pack]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack|Efl.Canvas.Layout_Part_Invalid.pack]]
+ * [[:develop:api:efl:ui:flip:method:pack|Efl.Ui.Flip.pack]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack|Efl.Canvas.Layout_Part_Box.pack]]
+ * [[:develop:api:efl:ui:box:method:pack|Efl.Ui.Box.pack]]
+ * [[:develop:api:efl:ui:radio_box:method:pack|Efl.Ui.Radio_Box.pack]]
+ * [[:develop:api:efl:ui:group_item:method:pack|Efl.Ui.Group_Item.pack]]
+ * [[:develop:api:efl:ui:collection:method:pack|Efl.Ui.Collection.pack]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack|Efl.Ui.Layout_Part_Box.pack]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack|Efl.Ui.Spotlight.Container.pack]]
+ * [[:develop:api:efl:ui:relative_layout:method:pack|Efl.Ui.Relative_Layout.pack]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/method/pack_clear.txt b/public_html/data/pages/develop/api/efl/ui/table/method/pack_clear.txt
new file mode 100644
index 00000000..3163e33d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/method/pack_clear.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Table.pack_clear~~
+====== Efl.Ui.Table.pack_clear ======
+
+===== Description =====
+
+%%Removes all packed sub-objects and unreferences them.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:table:method:pack_clear:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack:method:pack_clear|Efl.Pack.pack_clear]].//===== Signature =====
+
+
+pack_clear @pure_virtual {
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_clear(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack:method:pack_clear|Efl.Pack.pack_clear]]
+ * [[:develop:api:efl:ui:tab_bar:method:pack_clear|Efl.Ui.Tab_Bar.pack_clear]]
+ * [[:develop:api:efl:ui:table:method:pack_clear|Efl.Ui.Table.pack_clear]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:pack_clear|Efl.Canvas.Layout_Part_Table.pack_clear]]
+ * [[:develop:api:efl:ui:layout_part_table:method:pack_clear|Efl.Ui.Layout_Part_Table.pack_clear]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_clear|Efl.Canvas.Layout_Part_Invalid.pack_clear]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:pack_clear|Efl.Canvas.Layout_Part_Box.pack_clear]]
+ * [[:develop:api:efl:ui:box:method:pack_clear|Efl.Ui.Box.pack_clear]]
+ * [[:develop:api:efl:ui:radio_box:method:pack_clear|Efl.Ui.Radio_Box.pack_clear]]
+ * [[:develop:api:efl:ui:group_item:method:pack_clear|Efl.Ui.Group_Item.pack_clear]]
+ * [[:develop:api:efl:ui:collection:method:pack_clear|Efl.Ui.Collection.pack_clear]]
+ * [[:develop:api:efl:ui:layout_part_box:method:pack_clear|Efl.Ui.Layout_Part_Box.pack_clear]]
+ * [[:develop:api:efl:ui:spotlight:container:method:pack_clear|Efl.Ui.Spotlight.Container.pack_clear]]
+ * [[:develop:api:efl:ui:tab_pager:method:pack_clear|Efl.Ui.Tab_Pager.pack_clear]]
+ * [[:develop:api:efl:ui:relative_layout:method:pack_clear|Efl.Ui.Relative_Layout.pack_clear]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/method/pack_table.txt b/public_html/data/pages/develop/api/efl/ui/table/method/pack_table.txt
new file mode 100644
index 00000000..5e197f3b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/method/pack_table.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Ui.Table.pack_table~~
+====== Efl.Ui.Table.pack_table ======
+
+===== Description =====
+
+%%Pack object at a given location in the table.%%
+
+%%When this container is deleted, it will request deletion of the given %%''subobj''%%. Use %%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%% to remove %%''subobj''%% from this container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:table:method:pack_table:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_table:method:pack_table|Efl.Pack_Table.pack_table]].//===== Signature =====
+
+
+pack_table @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ @in col: int;
+ @in row: int;
+ @in colspan: int @optional;
+ @in rowspan: int @optional;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_table(Eo *obj, Efl_Gfx_Entity *subobj, int col, int row, int colspan, int rowspan);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%A child object to pack in this table.%%
+ * **col** //(in)// - %%Column number%%
+ * **row** //(in)// - %%Row number%%
+ * **colspan** //(in)// - %%0 means 1, -1 means %%[[:develop:api:efl:pack_table:property:table_columns|Efl.Pack_Table.table_columns]]%%%%
+ * **rowspan** //(in)// - %%0 means 1, -1 means %%[[:develop:api:efl:pack_table:property:table_rows|Efl.Pack_Table.table_rows]]%%%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_table:method:pack_table|Efl.Pack_Table.pack_table]]
+ * [[:develop:api:efl:ui:table:method:pack_table|Efl.Ui.Table.pack_table]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:pack_table|Efl.Canvas.Layout_Part_Table.pack_table]]
+ * [[:develop:api:efl:ui:layout_part_table:method:pack_table|Efl.Ui.Layout_Part_Table.pack_table]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:pack_table|Efl.Canvas.Layout_Part_Invalid.pack_table]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/method/table_content_get.txt b/public_html/data/pages/develop/api/efl/ui/table/method/table_content_get.txt
new file mode 100644
index 00000000..7b5960f3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/method/table_content_get.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Table.table_content_get~~
+====== Efl.Ui.Table.table_content_get ======
+
+===== Description =====
+
+%%Returns a child at a given position, see %%[[:develop:api:efl:pack_table:method:table_contents_get|Efl.Pack_Table.table_contents_get]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:table:method:table_content_get:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_table:method:table_content_get|Efl.Pack_Table.table_content_get]].//===== Signature =====
+
+
+table_content_get @pure_virtual {
+ params {
+ @in col: int;
+ @in row: int;
+ }
+ return: Efl.Gfx.Entity;
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_pack_table_content_get(Eo *obj, int col, int row);
+
+
+===== Parameters =====
+
+ * **col** //(in)// - %%Column number%%
+ * **row** //(in)// - %%Row number%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_table:method:table_content_get|Efl.Pack_Table.table_content_get]]
+ * [[:develop:api:efl:ui:table:method:table_content_get|Efl.Ui.Table.table_content_get]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:table_content_get|Efl.Canvas.Layout_Part_Table.table_content_get]]
+ * [[:develop:api:efl:ui:layout_part_table:method:table_content_get|Efl.Ui.Layout_Part_Table.table_content_get]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:table_content_get|Efl.Canvas.Layout_Part_Invalid.table_content_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/method/table_contents_get.txt b/public_html/data/pages/develop/api/efl/ui/table/method/table_contents_get.txt
new file mode 100644
index 00000000..02e9f56b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/method/table_contents_get.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Table.table_contents_get~~
+====== Efl.Ui.Table.table_contents_get ======
+
+===== Description =====
+
+%%Returns all objects at a given position in this table.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:table:method:table_contents_get:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack_table:method:table_contents_get|Efl.Pack_Table.table_contents_get]].//===== Signature =====
+
+
+table_contents_get @pure_virtual {
+ params {
+ @in col: int;
+ @in row: int;
+ @in below: bool @optional;
+ }
+ return: iterator;
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_pack_table_contents_get(Eo *obj, int col, int row, Eina_Bool below);
+
+
+===== Parameters =====
+
+ * **col** //(in)// - %%Column number%%
+ * **row** //(in)// - %%Row number%%
+ * **below** //(in)// - %%If %%''true''%% get objects spanning over this cell.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_table:method:table_contents_get|Efl.Pack_Table.table_contents_get]]
+ * [[:develop:api:efl:ui:table:method:table_contents_get|Efl.Ui.Table.table_contents_get]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:table_contents_get|Efl.Canvas.Layout_Part_Table.table_contents_get]]
+ * [[:develop:api:efl:ui:layout_part_table:method:table_contents_get|Efl.Ui.Layout_Part_Table.table_contents_get]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:table_contents_get|Efl.Canvas.Layout_Part_Invalid.table_contents_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/method/unpack.txt b/public_html/data/pages/develop/api/efl/ui/table/method/unpack.txt
new file mode 100644
index 00000000..547c7e77
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/method/unpack.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Table.unpack~~
+====== Efl.Ui.Table.unpack ======
+
+===== Description =====
+
+%%Removes an existing sub-object from the container without deleting it.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:table:method:unpack:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]].//===== Signature =====
+
+
+unpack @pure_virtual {
+ params {
+ @in subobj: Efl.Gfx.Entity;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_unpack(Eo *obj, Efl_Gfx_Entity *subobj);
+
+
+===== Parameters =====
+
+ * **subobj** //(in)// - %%The sub-object to unpack.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]
+ * [[:develop:api:efl:ui:tab_bar:method:unpack|Efl.Ui.Tab_Bar.unpack]]
+ * [[:develop:api:efl:ui:table:method:unpack|Efl.Ui.Table.unpack]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:unpack|Efl.Canvas.Layout_Part_Table.unpack]]
+ * [[:develop:api:efl:ui:layout_part_table:method:unpack|Efl.Ui.Layout_Part_Table.unpack]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:unpack|Efl.Canvas.Layout_Part_Invalid.unpack]]
+ * [[:develop:api:efl:ui:flip:method:unpack|Efl.Ui.Flip.unpack]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:unpack|Efl.Canvas.Layout_Part_Box.unpack]]
+ * [[:develop:api:efl:ui:box:method:unpack|Efl.Ui.Box.unpack]]
+ * [[:develop:api:efl:ui:radio_box:method:unpack|Efl.Ui.Radio_Box.unpack]]
+ * [[:develop:api:efl:ui:group_item:method:unpack|Efl.Ui.Group_Item.unpack]]
+ * [[:develop:api:efl:ui:collection:method:unpack|Efl.Ui.Collection.unpack]]
+ * [[:develop:api:efl:ui:layout_part_box:method:unpack|Efl.Ui.Layout_Part_Box.unpack]]
+ * [[:develop:api:efl:ui:spotlight:container:method:unpack|Efl.Ui.Spotlight.Container.unpack]]
+ * [[:develop:api:efl:ui:tab_pager:method:unpack|Efl.Ui.Tab_Pager.unpack]]
+ * [[:develop:api:efl:ui:relative_layout:method:unpack|Efl.Ui.Relative_Layout.unpack]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/method/unpack_all.txt b/public_html/data/pages/develop/api/efl/ui/table/method/unpack_all.txt
new file mode 100644
index 00000000..e1665030
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/method/unpack_all.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.Ui.Table.unpack_all~~
+====== Efl.Ui.Table.unpack_all ======
+
+===== Description =====
+
+%%Removes all packed sub-objects without unreferencing them.%%
+
+%%Use with caution.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:table:method:unpack_all:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:pack:method:unpack_all|Efl.Pack.unpack_all]].//===== Signature =====
+
+
+unpack_all @pure_virtual {
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_unpack_all(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack:method:unpack_all|Efl.Pack.unpack_all]]
+ * [[:develop:api:efl:ui:tab_bar:method:unpack_all|Efl.Ui.Tab_Bar.unpack_all]]
+ * [[:develop:api:efl:ui:table:method:unpack_all|Efl.Ui.Table.unpack_all]]
+ * [[:develop:api:efl:canvas:layout_part_table:method:unpack_all|Efl.Canvas.Layout_Part_Table.unpack_all]]
+ * [[:develop:api:efl:ui:layout_part_table:method:unpack_all|Efl.Ui.Layout_Part_Table.unpack_all]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:unpack_all|Efl.Canvas.Layout_Part_Invalid.unpack_all]]
+ * [[:develop:api:efl:canvas:layout_part_box:method:unpack_all|Efl.Canvas.Layout_Part_Box.unpack_all]]
+ * [[:develop:api:efl:ui:box:method:unpack_all|Efl.Ui.Box.unpack_all]]
+ * [[:develop:api:efl:ui:radio_box:method:unpack_all|Efl.Ui.Radio_Box.unpack_all]]
+ * [[:develop:api:efl:ui:group_item:method:unpack_all|Efl.Ui.Group_Item.unpack_all]]
+ * [[:develop:api:efl:ui:collection:method:unpack_all|Efl.Ui.Collection.unpack_all]]
+ * [[:develop:api:efl:ui:layout_part_box:method:unpack_all|Efl.Ui.Layout_Part_Box.unpack_all]]
+ * [[:develop:api:efl:ui:spotlight:container:method:unpack_all|Efl.Ui.Spotlight.Container.unpack_all]]
+ * [[:develop:api:efl:ui:tab_pager:method:unpack_all|Efl.Ui.Tab_Pager.unpack_all]]
+ * [[:develop:api:efl:ui:relative_layout:method:unpack_all|Efl.Ui.Relative_Layout.unpack_all]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/property/content_align.txt b/public_html/data/pages/develop/api/efl/ui/table/property/content_align.txt
new file mode 100644
index 00000000..0b50c13d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/property/content_align.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Table.content_align~~
+====== Efl.Ui.Table.content_align ======
+
+===== Description =====
+
+%%This property determines how contents will be aligned within a container if there is unused space.%%
+
+%%It is different than the %%[[:develop:api:efl:gfx:hint:property:hint_align|Efl.Gfx.Hint.hint_align]]%% property in that it affects the position of all the contents within the container. For example, if a box widget has extra space on the horizontal axis, this property can be used to align the box's contents to the left or the right side.%%
+
+%%See also %%[[:develop:api:efl:gfx:hint:property:hint_align|Efl.Gfx.Hint.hint_align]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:table:property:content_align:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **align_horiz** - %%Double, ranging from 0.0 to 1.0, where 0.0 is at the start of the horizontal axis and 1.0 is at the end.%%
+ * **align_vert** - %%Double, ranging from 0.0 to 1.0, where 0.0 is at the start of the vertical axis and 1.0 is at the end.%%
+
+//Overridden from [[:develop:api:efl:gfx:arrangement:property:content_align|Efl.Gfx.Arrangement.content_align]] **(get, set)**.//===== Signature =====
+
+
+@property content_align @pure_virtual {
+ get {}
+ set {}
+ values {
+ align_horiz: double (0.500000);
+ align_vert: double (0.500000);
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_arrangement_content_align_get(const Eo *obj, double *align_horiz, double *align_vert);
+void efl_gfx_arrangement_content_align_set(Eo *obj, double align_horiz, double align_vert);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:arrangement:property:content_align|Efl.Gfx.Arrangement.content_align]]
+ * [[:develop:api:efl:ui:table:property:content_align|Efl.Ui.Table.content_align]]
+ * [[:develop:api:efl:ui:box:property:content_align|Efl.Ui.Box.content_align]]
+ * [[:develop:api:efl:ui:image:property:content_align|Efl.Ui.Image.content_align]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/property/content_padding.txt b/public_html/data/pages/develop/api/efl/ui/table/property/content_padding.txt
new file mode 100644
index 00000000..da518cb6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/property/content_padding.txt
@@ -0,0 +1,47 @@
+~~Title: Efl.Ui.Table.content_padding~~
+====== Efl.Ui.Table.content_padding ======
+
+===== Description =====
+
+%%This property determines the space between a container's content items.%%
+
+%%It is different than the %%[[:develop:api:efl:gfx:hint:property:hint_margin|Efl.Gfx.Hint.hint_margin]]%% property in that it is applied to each content item within the container instead of a single item. The calculation for these two properties is cumulative.%%
+
+%%See also %%[[:develop:api:efl:gfx:hint:property:hint_margin|Efl.Gfx.Hint.hint_margin]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:table:property:content_padding:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **pad_horiz** - %%Horizontal padding.%%
+ * **pad_vert** - %%Vertical padding.%%
+ * **scalable** - %%%%''true''%% if scalable.%%
+
+//Overridden from [[:develop:api:efl:gfx:arrangement:property:content_padding|Efl.Gfx.Arrangement.content_padding]] **(get, set)**.//===== Signature =====
+
+
+@property content_padding @beta @pure_virtual {
+ get {}
+ set {}
+ values {
+ pad_horiz: double (0.000000);
+ pad_vert: double (0.000000);
+ scalable: bool (false);
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_arrangement_content_padding_get(const Eo *obj, double *pad_horiz, double *pad_vert, Eina_Bool *scalable);
+void efl_gfx_arrangement_content_padding_set(Eo *obj, double pad_horiz, double pad_vert, Eina_Bool scalable);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:arrangement:property:content_padding|Efl.Gfx.Arrangement.content_padding]]
+ * [[:develop:api:efl:ui:table:property:content_padding|Efl.Ui.Table.content_padding]]
+ * [[:develop:api:efl:ui:box:property:content_padding|Efl.Ui.Box.content_padding]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/property/homogeneous.txt b/public_html/data/pages/develop/api/efl/ui/table/property/homogeneous.txt
new file mode 100644
index 00000000..39805245
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/property/homogeneous.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Table.homogeneous~~
+====== Efl.Ui.Table.homogeneous ======
+
+===== Description =====
+
+%%Control homogeneous mode.%%
+
+%%This will enable the homogeneous mode where cells are of the same weight and of the same min size which is determined by maximum min size of cells.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:table:property:homogeneous:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **homogeneoush** - %%%%''true''%% if the box is homogeneous horizontally, %%''false''%% otherwise%%
+ * **homogeneousv** - %%%%''true''%% if the box is homogeneous vertically, %%''false''%% otherwise%%
+
+===== Signature =====
+
+
+@property homogeneous {
+ get {}
+ set {}
+ values {
+ homogeneoush: bool;
+ homogeneousv: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_table_homogeneous_get(const Eo *obj, Eina_Bool *homogeneoush, Eina_Bool *homogeneousv);
+void efl_ui_table_homogeneous_set(Eo *obj, Eina_Bool homogeneoush, Eina_Bool homogeneousv);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:table:property:homogeneous|Efl.Ui.Table.homogeneous]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/property/l10n_text.txt b/public_html/data/pages/develop/api/efl/ui/table/property/l10n_text.txt
new file mode 100644
index 00000000..633db4e4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/property/l10n_text.txt
@@ -0,0 +1,72 @@
+~~Title: Efl.Ui.Table.l10n_text~~
+====== Efl.Ui.Table.l10n_text ======
+
+===== Description =====
+
+%%A unique string to be translated.%%
+
+%%Often this will be a human-readable string (e.g. in English) but it can also be a unique string identifier that must then be translated to the current locale with %%''dgettext''%%() or any similar mechanism.%%
+
+%%Setting this property will enable translation for this object or part.%%
+
+
+{{page>:develop:api-include:efl:ui:table:property:l10n_text:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+==== Getter ====
+
+ * **domain** - %%A translation domain. If %%''null''%% this means the default domain is used.%%
+==== Setter ====
+
+ * **label** - %%A unique (untranslated) string.%%
+ * **domain** - %%A translation domain. If %%''null''%% this uses the default domain (eg. set by %%''textdomain''%%()).%%
+==== Setter ====
+
+%%Sets the new untranslated string and domain for this object.%%
+{{page>:develop:api-include:efl:ui:table:property:l10n_text:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:l10n:property:l10n_text|Efl.Ui.L10n.l10n_text]] **(get, set)**.//===== Signature =====
+
+
+@property l10n_text @pure_virtual {
+ get {
+ values {
+ domain: string @optional;
+ }
+ return: string;
+ }
+ set {
+ values {
+ label: string;
+ domain: string @optional;
+ }
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_ui_l10n_text_get(const Eo *obj, const char **domain);
+void efl_ui_l10n_text_set(Eo *obj, const char *label, const char *domain);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:l10n:property:l10n_text|Efl.Ui.L10n.l10n_text]]
+ * [[:develop:api:efl:ui:default_item:property:l10n_text|Efl.Ui.Default_Item.l10n_text]]
+ * [[:develop:api:efl:ui:layout_part_legacy:property:l10n_text|Efl.Ui.Layout_Part_Legacy.l10n_text]]
+ * [[:develop:api:elm:notify:part:property:l10n_text|Elm.Notify.Part.l10n_text]]
+ * [[:develop:api:efl:ui:layout_part_text:property:l10n_text|Efl.Ui.Layout_Part_Text.l10n_text]]
+ * [[:develop:api:efl:ui:win:property:l10n_text|Efl.Ui.Win.l10n_text]]
+ * [[:develop:api:efl:ui:table:property:l10n_text|Efl.Ui.Table.l10n_text]]
+ * [[:develop:api:efl:ui:box:property:l10n_text|Efl.Ui.Box.l10n_text]]
+ * [[:develop:api:efl:ui:layout_base:property:l10n_text|Efl.Ui.Layout_Base.l10n_text]]
+ * [[:develop:api:efl:ui:check:property:l10n_text|Efl.Ui.Check.l10n_text]]
+ * [[:develop:api:efl:ui:frame:property:l10n_text|Efl.Ui.Frame.l10n_text]]
+ * [[:develop:api:efl:ui:progressbar:property:l10n_text|Efl.Ui.Progressbar.l10n_text]]
+ * [[:develop:api:efl:ui:button:property:l10n_text|Efl.Ui.Button.l10n_text]]
+ * [[:develop:api:efl:ui:navigation_bar:property:l10n_text|Efl.Ui.Navigation_Bar.l10n_text]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/property/language.txt b/public_html/data/pages/develop/api/efl/ui/table/property/language.txt
new file mode 100644
index 00000000..8e1207a9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/property/language.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Table.language~~
+====== Efl.Ui.Table.language ======
+
+===== Description =====
+
+%%The (human) language for this object.%%
+{{page>:develop:api-include:efl:ui:table:property:language:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **language** - %%The current language.%%
+
+//Overridden from [[:develop:api:efl:ui:i18n:property:language|Efl.Ui.I18n.language]] **(get, set)**.//===== Signature =====
+
+
+@property language @pure_virtual {
+ get {}
+ set {}
+ values {
+ language: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_ui_language_get(const Eo *obj);
+void efl_ui_language_set(Eo *obj, const char *language);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:i18n:property:language|Efl.Ui.I18n.language]]
+ * [[:develop:api:efl:canvas:layout:property:language|Efl.Canvas.Layout.language]]
+ * [[:develop:api:efl:ui:win:property:language|Efl.Ui.Win.language]]
+ * [[:develop:api:efl:ui:table:property:language|Efl.Ui.Table.language]]
+ * [[:develop:api:efl:ui:box:property:language|Efl.Ui.Box.language]]
+ * [[:develop:api:efl:ui:layout_base:property:language|Efl.Ui.Layout_Base.language]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/property/orientation.txt b/public_html/data/pages/develop/api/efl/ui/table/property/orientation.txt
new file mode 100644
index 00000000..9bf2a31a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/property/orientation.txt
@@ -0,0 +1,56 @@
+~~Title: Efl.Ui.Table.orientation~~
+====== Efl.Ui.Table.orientation ======
+
+===== Description =====
+
+%%Control the direction of a given widget.%%
+
+%%Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.%%
+
+%%Mirroring as defined in %%[[:develop:api:efl:ui:i18n|Efl.Ui.I18n]]%% can invert the %%''horizontal''%% direction: it is %%''ltr''%% by default, but becomes %%''rtl''%% if the object is mirrored.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:table:property:orientation:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **dir** - %%Direction of the widget.%%
+
+//Overridden from [[:develop:api:efl:ui:layout_orientable:property:orientation|Efl.Ui.Layout_Orientable.orientation]] **(get, set)**.//===== Signature =====
+
+
+@property orientation @pure_virtual {
+ get {}
+ set {}
+ values {
+ dir: Efl.Ui.Layout_Orientation;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Layout_Orientation efl_ui_layout_orientation_get(const Eo *obj);
+void efl_ui_layout_orientation_set(Eo *obj, Efl_Ui_Layout_Orientation dir);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:layout_orientable:property:orientation|Efl.Ui.Layout_Orientable.orientation]]
+ * [[:develop:api:efl:ui:slider:property:orientation|Efl.Ui.Slider.orientation]]
+ * [[:develop:api:efl:ui:layout_orientable_readonly:property:orientation|Efl.Ui.Layout_Orientable_Readonly.orientation]]
+ * [[:develop:api:efl:canvas:layout_part_box:property:orientation|Efl.Canvas.Layout_Part_Box.orientation]]
+ * [[:develop:api:efl:ui:layout_part_box:property:orientation|Efl.Ui.Layout_Part_Box.orientation]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:orientation|Efl.Canvas.Layout_Part_Invalid.orientation]]
+ * [[:develop:api:efl:ui:collection_view:property:orientation|Efl.Ui.Collection_View.orientation]]
+ * [[:develop:api:efl:ui:table:property:orientation|Efl.Ui.Table.orientation]]
+ * [[:develop:api:efl:ui:box:property:orientation|Efl.Ui.Box.orientation]]
+ * [[:develop:api:efl:ui:slider_interval:property:orientation|Efl.Ui.Slider_Interval.orientation]]
+ * [[:develop:api:efl:ui:collection:property:orientation|Efl.Ui.Collection.orientation]]
+ * [[:develop:api:efl:ui:panes:property:orientation|Efl.Ui.Panes.orientation]]
+ * [[:develop:api:efl:ui:progressbar:property:orientation|Efl.Ui.Progressbar.orientation]]
+ * [[:develop:api:efl:ui:spin_button:property:orientation|Efl.Ui.Spin_Button.orientation]]
+ * [[:develop:api:efl:ui:position_manager:grid:property:orientation|Efl.Ui.Position_Manager.Grid.orientation]]
+ * [[:develop:api:efl:ui:position_manager:list:property:orientation|Efl.Ui.Position_Manager.List.orientation]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/property/position.txt b/public_html/data/pages/develop/api/efl/ui/table/property/position.txt
new file mode 100644
index 00000000..e59bb59e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/property/position.txt
@@ -0,0 +1,76 @@
+~~Title: Efl.Ui.Table.position~~
+====== Efl.Ui.Table.position ======
+
+===== Description =====
+
+%%The 2D position of a canvas object.%%
+
+%%The position is absolute, in pixels, relative to the top-left corner of the window, within its border decorations (application space).%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:table:property:position:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **pos** - %%A 2D coordinate in pixel units.%%
+==== Getter ====
+
+%%Retrieves the position of the given canvas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:table:property:position:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Moves the given canvas object to the given location inside its canvas' viewport. If unchanged this call may be entirely skipped, but if changed this will trigger move events, as well as potential pointer,in or pointer,out events.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:table:property:position:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:widget:property:position|Efl.Gfx.Entity.position]] **(set)**.//===== Signature =====
+
+
+@property position @pure_virtual {
+ get {}
+ set {}
+ values {
+ pos: Eina.Position2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Position2D efl_gfx_entity_position_get(const Eo *obj);
+void efl_gfx_entity_position_set(Eo *obj, Eina_Position2D pos);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:position|Efl.Gfx.Entity.position]]
+ * [[:develop:api:efl:canvas:vg:node:property:position|Efl.Canvas.Vg.Node.position]]
+ * [[:develop:api:efl:ui:win:property:position|Efl.Ui.Win.position]]
+ * [[:develop:api:efl:ui:image:property:position|Efl.Ui.Image.position]]
+ * [[:develop:api:efl:ui:image_zoomable:property:position|Efl.Ui.Image_Zoomable.position]]
+ * [[:develop:api:efl:ui:widget:property:position|Efl.Ui.Widget.position]]
+ * [[:develop:api:efl:ui:table:property:position|Efl.Ui.Table.position]]
+ * [[:develop:api:efl:ui:box:property:position|Efl.Ui.Box.position]]
+ * [[:develop:api:efl:ui:animation_view:property:position|Efl.Ui.Animation_View.position]]
+ * [[:develop:api:efl:ui:text:property:position|Efl.Ui.Text.position]]
+ * [[:develop:api:efl:ui:textpath:property:position|Efl.Ui.Textpath.position]]
+ * [[:develop:api:efl:ui:popup:property:position|Efl.Ui.Popup.position]]
+ * [[:develop:api:efl:ui:relative_layout:property:position|Efl.Ui.Relative_Layout.position]]
+ * [[:develop:api:efl:canvas:object:property:position|Efl.Canvas.Object.position]]
+ * [[:develop:api:efl:canvas:group:property:position|Efl.Canvas.Group.position]]
+ * [[:develop:api:efl:canvas:video:property:position|Efl.Canvas.Video.position]]
+ * [[:develop:api:efl:canvas:event_grabber:property:position|Efl.Canvas.Event_Grabber.position]]
+ * [[:develop:api:efl:canvas:layout:property:position|Efl.Canvas.Layout.position]]
+ * [[:develop:api:efl:ui:pan:property:position|Efl.Ui.Pan.position]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:property:position|Efl.Ui.Image_Zoomable_Pan.position]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/property/size.txt b/public_html/data/pages/develop/api/efl/ui/table/property/size.txt
new file mode 100644
index 00000000..fa0893fc
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/property/size.txt
@@ -0,0 +1,76 @@
+~~Title: Efl.Ui.Table.size~~
+====== Efl.Ui.Table.size ======
+
+===== Description =====
+
+%%The 2D size of a canvas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:table:property:size:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **size** - %%A 2D size in pixel units.%%
+==== Getter ====
+
+%%Retrieves the (rectangular) size of the given Evas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:table:property:size:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Changes the size of the given object.%%
+
+%%Note that setting the actual size of an object might be the job of its container, so this function might have no effect. Look at %%[[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]%% instead, when manipulating widgets.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:table:property:size:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:widget:property:size|Efl.Gfx.Entity.size]] **(set)**.//===== Signature =====
+
+
+@property size @pure_virtual {
+ get {}
+ set {}
+ values {
+ size: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_entity_size_get(const Eo *obj);
+void efl_gfx_entity_size_set(Eo *obj, Eina_Size2D size);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:size|Efl.Gfx.Entity.size]]
+ * [[:develop:api:efl:canvas:vg:node:property:size|Efl.Canvas.Vg.Node.size]]
+ * [[:develop:api:efl:ui:win:property:size|Efl.Ui.Win.size]]
+ * [[:develop:api:efl:ui:image:property:size|Efl.Ui.Image.size]]
+ * [[:develop:api:efl:ui:image_zoomable:property:size|Efl.Ui.Image_Zoomable.size]]
+ * [[:develop:api:efl:ui:widget:property:size|Efl.Ui.Widget.size]]
+ * [[:develop:api:efl:ui:table:property:size|Efl.Ui.Table.size]]
+ * [[:develop:api:efl:ui:box:property:size|Efl.Ui.Box.size]]
+ * [[:develop:api:efl:ui:animation_view:property:size|Efl.Ui.Animation_View.size]]
+ * [[:develop:api:efl:ui:text:property:size|Efl.Ui.Text.size]]
+ * [[:develop:api:efl:ui:panel:property:size|Efl.Ui.Panel.size]]
+ * [[:develop:api:efl:ui:textpath:property:size|Efl.Ui.Textpath.size]]
+ * [[:develop:api:efl:ui:popup:property:size|Efl.Ui.Popup.size]]
+ * [[:develop:api:efl:ui:relative_layout:property:size|Efl.Ui.Relative_Layout.size]]
+ * [[:develop:api:efl:canvas:object:property:size|Efl.Canvas.Object.size]]
+ * [[:develop:api:efl:canvas:video:property:size|Efl.Canvas.Video.size]]
+ * [[:develop:api:efl:canvas:event_grabber:property:size|Efl.Canvas.Event_Grabber.size]]
+ * [[:develop:api:efl:canvas:layout:property:size|Efl.Canvas.Layout.size]]
+ * [[:develop:api:efl:ui:pan:property:size|Efl.Ui.Pan.size]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:property:size|Efl.Ui.Image_Zoomable_Pan.size]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/property/table_cell_column.txt b/public_html/data/pages/develop/api/efl/ui/table/property/table_cell_column.txt
new file mode 100644
index 00000000..02e41057
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/property/table_cell_column.txt
@@ -0,0 +1,51 @@
+~~Title: Efl.Ui.Table.table_cell_column~~
+====== Efl.Ui.Table.table_cell_column ======
+
+===== Description =====
+
+%%column of the %%''subobj''%% in this container.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:table:property:table_cell_column:description&nouser&nolink&nodate}}
+
+===== Keys =====
+
+ * **subobj** - %%Child object%%
+===== Values =====
+
+ * **col** - %%Column number%%
+ * **colspan** - %%Column span%%
+
+//Overridden from [[:develop:api:efl:pack_table:property:table_cell_column|Efl.Pack_Table.table_cell_column]] **(get, set)**.//===== Signature =====
+
+
+@property table_cell_column @pure_virtual {
+ get {
+ return: bool;
+ }
+ set {}
+ keys {
+ subobj: Efl.Gfx.Entity;
+ }
+ values {
+ col: int;
+ colspan: int;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_table_cell_column_get(const Eo *obj, Efl_Gfx_Entity *subobj, int *col, int *colspan);
+void efl_pack_table_cell_column_set(Eo *obj, Efl_Gfx_Entity *subobj, int col, int colspan);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_table:property:table_cell_column|Efl.Pack_Table.table_cell_column]]
+ * [[:develop:api:efl:ui:table:property:table_cell_column|Efl.Ui.Table.table_cell_column]]
+ * [[:develop:api:efl:canvas:layout_part_table:property:table_cell_column|Efl.Canvas.Layout_Part_Table.table_cell_column]]
+ * [[:develop:api:efl:ui:layout_part_table:property:table_cell_column|Efl.Ui.Layout_Part_Table.table_cell_column]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:table_cell_column|Efl.Canvas.Layout_Part_Invalid.table_cell_column]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/property/table_cell_row.txt b/public_html/data/pages/develop/api/efl/ui/table/property/table_cell_row.txt
new file mode 100644
index 00000000..c1f9ded7
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/property/table_cell_row.txt
@@ -0,0 +1,51 @@
+~~Title: Efl.Ui.Table.table_cell_row~~
+====== Efl.Ui.Table.table_cell_row ======
+
+===== Description =====
+
+%%row of the %%''subobj''%% in this container.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:table:property:table_cell_row:description&nouser&nolink&nodate}}
+
+===== Keys =====
+
+ * **subobj** - %%Child object%%
+===== Values =====
+
+ * **row** - %%Row number%%
+ * **rowspan** - %%Row span%%
+
+//Overridden from [[:develop:api:efl:pack_table:property:table_cell_row|Efl.Pack_Table.table_cell_row]] **(get, set)**.//===== Signature =====
+
+
+@property table_cell_row @pure_virtual {
+ get {
+ return: bool;
+ }
+ set {}
+ keys {
+ subobj: Efl.Gfx.Entity;
+ }
+ values {
+ row: int;
+ rowspan: int;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_pack_table_cell_row_get(const Eo *obj, Efl_Gfx_Entity *subobj, int *row, int *rowspan);
+void efl_pack_table_cell_row_set(Eo *obj, Efl_Gfx_Entity *subobj, int row, int rowspan);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_table:property:table_cell_row|Efl.Pack_Table.table_cell_row]]
+ * [[:develop:api:efl:ui:table:property:table_cell_row|Efl.Ui.Table.table_cell_row]]
+ * [[:develop:api:efl:canvas:layout_part_table:property:table_cell_row|Efl.Canvas.Layout_Part_Table.table_cell_row]]
+ * [[:develop:api:efl:ui:layout_part_table:property:table_cell_row|Efl.Ui.Layout_Part_Table.table_cell_row]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:table_cell_row|Efl.Canvas.Layout_Part_Invalid.table_cell_row]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/property/table_columns.txt b/public_html/data/pages/develop/api/efl/ui/table/property/table_columns.txt
new file mode 100644
index 00000000..2f8ff313
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/property/table_columns.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Table.table_columns~~
+====== Efl.Ui.Table.table_columns ======
+
+===== Description =====
+
+%%Specifies the amount of columns the table will have when the fill direction is horizontal. If it is vertical, the amount of columns depends on the amount of cells added and %%[[:develop:api:efl:pack_table:property:table_rows|Efl.Pack_Table.table_rows]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:table:property:table_columns:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **cols** - %%Amount of columns.%%
+
+//Overridden from [[:develop:api:efl:pack_table:property:table_columns|Efl.Pack_Table.table_columns]] **(get, set)**.//===== Signature =====
+
+
+@property table_columns @pure_virtual {
+ get {}
+ set {}
+ values {
+ cols: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_pack_table_columns_get(const Eo *obj);
+void efl_pack_table_columns_set(Eo *obj, int cols);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_table:property:table_columns|Efl.Pack_Table.table_columns]]
+ * [[:develop:api:efl:ui:table:property:table_columns|Efl.Ui.Table.table_columns]]
+ * [[:develop:api:efl:canvas:layout_part_table:property:table_columns|Efl.Canvas.Layout_Part_Table.table_columns]]
+ * [[:develop:api:efl:ui:layout_part_table:property:table_columns|Efl.Ui.Layout_Part_Table.table_columns]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:table_columns|Efl.Canvas.Layout_Part_Invalid.table_columns]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/property/table_rows.txt b/public_html/data/pages/develop/api/efl/ui/table/property/table_rows.txt
new file mode 100644
index 00000000..9a05266e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/property/table_rows.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Table.table_rows~~
+====== Efl.Ui.Table.table_rows ======
+
+===== Description =====
+
+%%Specifies the amount of rows the table will have when the fill direction is vertical. If it is horizontal, the amount of rows depends on the amount of cells added and %%[[:develop:api:efl:pack_table:property:table_columns|Efl.Pack_Table.table_columns]]%%.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:table:property:table_rows:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **rows** - %%Amount of rows.%%
+
+//Overridden from [[:develop:api:efl:pack_table:property:table_rows|Efl.Pack_Table.table_rows]] **(get, set)**.//===== Signature =====
+
+
+@property table_rows @pure_virtual {
+ get {}
+ set {}
+ values {
+ rows: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_pack_table_rows_get(const Eo *obj);
+void efl_pack_table_rows_set(Eo *obj, int rows);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_table:property:table_rows|Efl.Pack_Table.table_rows]]
+ * [[:develop:api:efl:ui:table:property:table_rows|Efl.Ui.Table.table_rows]]
+ * [[:develop:api:efl:canvas:layout_part_table:property:table_rows|Efl.Canvas.Layout_Part_Table.table_rows]]
+ * [[:develop:api:efl:ui:layout_part_table:property:table_rows|Efl.Ui.Layout_Part_Table.table_rows]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:table_rows|Efl.Canvas.Layout_Part_Invalid.table_rows]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/table/property/table_size.txt b/public_html/data/pages/develop/api/efl/ui/table/property/table_size.txt
new file mode 100644
index 00000000..2106f1d9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/table/property/table_size.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Table.table_size~~
+====== Efl.Ui.Table.table_size ======
+
+===== Description =====
+
+%%Combines %%[[:develop:api:efl:pack_table:property:table_columns|Efl.Pack_Table.table_columns]]%% and %%[[:develop:api:efl:pack_table:property:table_rows|Efl.Pack_Table.table_rows]]%%%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:table:property:table_size:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **cols** - %%Number of columns%%
+ * **rows** - %%Number of rows%%
+
+//Overridden from [[:develop:api:efl:pack_table:property:table_size|Efl.Pack_Table.table_size]] **(get, set)**.//===== Signature =====
+
+
+@property table_size @pure_virtual {
+ get {}
+ set {}
+ values {
+ cols: int;
+ rows: int;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_pack_table_size_get(const Eo *obj, int *cols, int *rows);
+void efl_pack_table_size_set(Eo *obj, int cols, int rows);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:pack_table:property:table_size|Efl.Pack_Table.table_size]]
+ * [[:develop:api:efl:ui:table:property:table_size|Efl.Ui.Table.table_size]]
+ * [[:develop:api:efl:canvas:layout_part_table:property:table_size|Efl.Canvas.Layout_Part_Table.table_size]]
+ * [[:develop:api:efl:ui:layout_part_table:property:table_size|Efl.Ui.Layout_Part_Table.table_size]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:table_size|Efl.Canvas.Layout_Part_Invalid.table_size]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/timepicker.txt b/public_html/data/pages/develop/api/efl/ui/timepicker.txt
new file mode 100644
index 00000000..b85b3248
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/timepicker.txt
@@ -0,0 +1,403 @@
+~~Title: Efl.Ui.Timepicker~~
+====== Efl.Ui.Timepicker (class) ======
+
+===== Description =====
+
+%%Timepicker widget%%
+
+%%This is a widget which allows the user to pick a time using internal spinner. User can use the internal spinner to select hour, minute, AM/PM or user can input value using internal entry.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:timepicker:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)// => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] //(class)//
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:container|Efl.Container]] //(interface)//
+ * [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] //(interface)//
+ * [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] //(interface)//
+ * [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] //(interface)//
+ * [[:develop:api:efl:layout:group|Efl.Layout.Group]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:timepicker:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:timepicker:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:timepicker:property:is_24hour|is_24hour]]** //**(get, set)**//\\
+> %%Control if the Timepicker displays 24 hour time or 12 hour time including AM/PM button.%%
+
+Eina_Bool efl_ui_timepicker_is_24hour_get(const Eo *obj);
+void efl_ui_timepicker_is_24hour_set(Eo *obj, Eina_Bool is_24hour);
+
+\\
+**[[:develop:api:efl:ui:timepicker:property:time|time]]** //**(get, set)**//\\
+> %%The current value of time%%
+
+void efl_ui_timepicker_time_get(const Eo *obj, int *hour, int *min);
+void efl_ui_timepicker_time_set(Eo *obj, int hour, int min);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:property:automatic_theme_rotation|automatic_theme_rotation]]** //**(get, set)**// | %%This flag tells if this object will automatically mirror the rotation changes of the window to this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:calc_auto_update_hints|calc_auto_update_hints]]** //**(get, set)**// | %%Whether this object updates its size hints automatically.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_freeze|calc_freeze]]** | %%Freezes the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_parts_extends|calc_parts_extends]]** | %%Calculates the geometry of the region, relative to a given layout object's area, occupied by all parts in the object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_size_min|calc_size_min]]** | %%Calculates the minimum required size for a given layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:calc_thaw|calc_thaw]]** | %%Thaws the layout object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:layout_base:method:factory_bind|factory_bind]]** | %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:finger_size_multiplier|finger_size_multiplier]]** //**(get, set)**// | %%Set a multiplier for applying finger size to the layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:group_calculate|group_calculate]]** | %%Triggers an immediate recalculation of this object's geometry.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:group_data|group_data]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_max|group_size_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:property:group_size_min|group_size_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:l10n_text|l10n_text]]** //**(get, set)**// | %%A unique string to be translated.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:message_send|message_send]]** | %%Sends an (Edje) message to a given Edje object%% |
+| | **[[:develop:api:efl:ui:layout_base:property:part_exist|part_exist]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:layout_base:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_add|signal_callback_add]]** | %%Adds a callback for an arriving Edje signal, emitted by a given Edje object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_callback_del|signal_callback_del]]** | %%Removes a signal-triggered callback from an object.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_emit|signal_emit]]** | %%Sends/emits an Edje signal to this layout.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:signal_process|signal_process]]** | %%Processes an object's messages and signals queue.%% |
+| | **[[:develop:api:efl:ui:layout_base:property:theme|theme]]** //**(get, set)**// | %%The theme of this widget, defines which edje group will be used.%% |
+| | **[[:develop:api:efl:ui:layout_base:method:theme_rotation_apply|theme_rotation_apply]]** | %%Apply a new rotation value to this object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:calc_force|calc_force]]** | %%Forces a Size/Geometry calculation.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:on_focus_update|on_focus_update]]** | %%Virtual function handling focus in/out events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:part_get|part_get]]** | %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:theme_apply|theme_apply]]** | %%Virtual function called when the widget needs to re-apply its theme.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:layout_base:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| ''protected set'' | **[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// | %%Whether the widget is currently focused or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**// | %%Accessible name of the object.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:property:position|position]]** //**(get, set)**// | %%The 2D position of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:size|size]]** //**(get, set)**// | %%The 2D size of a canvas object.%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| | **[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**// | %%The visibility of a canvas object.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_input_event_handler|widget_input_event_handler]]** | %%Virtual function handling input events on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+
+===== Events =====
+
+**[[:develop:api:efl:ui:timepicker:event:time_changed|time,changed]]**\\
+> %%Called when time is changed%%
+
+EFL_UI_TIMEPICKER_EVENT_TIME_CHANGED(void)
+
+\\ ==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:container|Efl.Container]] ^^^
+| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
+| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] ^^^
+| | **[[:develop:api:efl:layout:calc:event:circular_dependency|circular,dependency]]** | %%A circular dependency between parts of the object was found.%% |
+| | **[[:develop:api:efl:layout:calc:event:recalc|recalc]]** | %%The layout was recalculated.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] ^^^
+| | **[[:develop:api:efl:ui:layout_base:event:theme_changed|theme,changed]]** | %%Called when theme changed%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/timepicker/event/time_changed.txt b/public_html/data/pages/develop/api/efl/ui/timepicker/event/time_changed.txt
new file mode 100644
index 00000000..7716db20
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/timepicker/event/time_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Timepicker: time,changed~~
+
+===== Description =====
+
+%%Called when time is changed%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:timepicker:event:time_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+time,changed;
+
+
+===== C information =====
+
+
+EFL_UI_TIMEPICKER_EVENT_TIME_CHANGED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_timepicker_event_time_changed(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_TIMEPICKER_EVENT_TIME_CHANGED, on_efl_ui_timepicker_event_time_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/timepicker/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/timepicker/method/constructor.txt
new file mode 100644
index 00000000..e041cb33
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/timepicker/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Timepicker.constructor~~
+====== Efl.Ui.Timepicker.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:timepicker:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/timepicker/method/destructor.txt b/public_html/data/pages/develop/api/efl/ui/timepicker/method/destructor.txt
new file mode 100644
index 00000000..2ca76839
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/timepicker/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Ui.Timepicker.destructor~~
+====== Efl.Ui.Timepicker.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:timepicker:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/timepicker/property/is_24hour.txt b/public_html/data/pages/develop/api/efl/ui/timepicker/property/is_24hour.txt
new file mode 100644
index 00000000..92565121
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/timepicker/property/is_24hour.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Timepicker.is_24hour~~
+====== Efl.Ui.Timepicker.is_24hour ======
+
+===== Description =====
+
+%%Control if the Timepicker displays 24 hour time or 12 hour time including AM/PM button.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:timepicker:property:is_24hour:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **is_24hour** - %%%%''true''%% to display the 24 hour time, %%''false''%% to display 12 hour time including AM/PM label.%%
+
+===== Signature =====
+
+
+@property is_24hour {
+ get {}
+ set {}
+ values {
+ is_24hour: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_timepicker_is_24hour_get(const Eo *obj);
+void efl_ui_timepicker_is_24hour_set(Eo *obj, Eina_Bool is_24hour);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:timepicker:property:is_24hour|Efl.Ui.Timepicker.is_24hour]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/timepicker/property/time.txt b/public_html/data/pages/develop/api/efl/ui/timepicker/property/time.txt
new file mode 100644
index 00000000..0f47d9a8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/timepicker/property/time.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Timepicker.time~~
+====== Efl.Ui.Timepicker.time ======
+
+===== Description =====
+
+%%The current value of time%%
+
+%%%%''hour''%%: Hour. The hour value is in terms of 24 hour format from 0 to 23.%%
+
+%%%%''min''%%: Minute. The minute range is from 0 to 59.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:timepicker:property:time:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **hour** - %%The hour value from 0 to 23.%%
+ * **min** - %%The minute value from 0 to 59.%%
+
+===== Signature =====
+
+
+@property time {
+ get {}
+ set {}
+ values {
+ hour: int;
+ min: int;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_timepicker_time_get(const Eo *obj, int *hour, int *min);
+void efl_ui_timepicker_time_set(Eo *obj, int hour, int min);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:timepicker:property:time|Efl.Ui.Timepicker.time]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/view.txt b/public_html/data/pages/develop/api/efl/ui/view.txt
new file mode 100644
index 00000000..82197d21
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/view.txt
@@ -0,0 +1,29 @@
+~~Title: Efl.Ui.View~~
+====== Efl.Ui.View (interface) ======
+
+===== Description =====
+
+%%Efl UI view interface.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:view:description&nouser&nolink&nodate}}
+
+===== Members =====
+
+**[[:develop:api:efl:ui:view:property:model|model]]** //**(get, set)**//\\
+> %%Model that is/will be%%
+
+Efl_Model *efl_ui_view_model_get(const Eo *obj);
+void efl_ui_view_model_set(Eo *obj, Efl_Model *model);
+
+\\
+
+===== Events =====
+
+**[[:develop:api:efl:ui:view:event:model_changed|model,changed]]**\\
+> %%Event dispatched when a new model is set.%%
+
+EFL_UI_VIEW_EVENT_MODEL_CHANGED(Efl_Model_Changed_Event)
+
+\\
\ No newline at end of file
diff --git a/public_html/data/pages/develop/api/efl/ui/view/event/model_changed.txt b/public_html/data/pages/develop/api/efl/ui/view/event/model_changed.txt
new file mode 100644
index 00000000..267eaadc
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/view/event/model_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.View: model,changed~~
+
+===== Description =====
+
+%%Event dispatched when a new model is set.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:view:event:model_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+model,changed: Efl.Model_Changed_Event;
+
+
+===== C information =====
+
+
+EFL_UI_VIEW_EVENT_MODEL_CHANGED(Efl_Model_Changed_Event)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_view_event_model_changed(void *data, const Efl_Event *event)
+{
+ Efl_Model_Changed_Event info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_VIEW_EVENT_MODEL_CHANGED, on_efl_ui_view_event_model_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/view/property/model.txt b/public_html/data/pages/develop/api/efl/ui/view/property/model.txt
new file mode 100644
index 00000000..50e847a0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/view/property/model.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.View.model~~
+====== Efl.Ui.View.model ======
+
+===== Description =====
+
+%%Model that is/will be%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:view:property:model:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **model** - %%Efl model%%
+
+===== Signature =====
+
+
+@property model @pure_virtual {
+ get {}
+ set {}
+ values {
+ model: Efl.Model;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Model *efl_ui_view_model_get(const Eo *obj);
+void efl_ui_view_model_set(Eo *obj, Efl_Model *model);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:view:property:model|Efl.Ui.View.model]]
+ * [[:develop:api:efl:composite_model:property:model|Efl.Composite_Model.model]]
+ * [[:develop:api:efl:ui:widget:property:model|Efl.Ui.Widget.model]]
+ * [[:develop:api:efl:model_provider:property:model|Efl.Model_Provider.model]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/view_model.txt b/public_html/data/pages/develop/api/efl/ui/view_model.txt
new file mode 100644
index 00000000..bad57322
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/view_model.txt
@@ -0,0 +1,172 @@
+~~Title: Efl.Ui.View_Model~~
+====== Efl.Ui.View_Model (class) ======
+
+===== Description =====
+
+%%Efl model providing helpers for custom properties used when linking a model to a view and you need to generate/adapt values for display.%%
+
+%%There is two ways to use this class, you can either inherit from it and have a custom constructor for example. Or you can just instantiate it and manually define your property on it via callbacks.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:view_model:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:composite_model|Efl.Composite_Model]] //(class)// => [[:develop:api:efl:loop_model|Efl.Loop_Model]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:composite_model|Efl.Composite_Model]] //(class)//
+ * [[:develop:api:efl:loop_model|Efl.Loop_Model]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:model|Efl.Model]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:view_model:property:children_bind|children_bind]]** //**(get, set)**//\\
+> %%Define if we will intercept all children object reference and bind them through the ViewModel with the same property logic as this one. Be careful of recursivity.%%
+
+Eina_Bool efl_ui_view_model_children_bind_get(const Eo *obj);
+void efl_ui_view_model_children_bind_set(Eo *obj, Eina_Bool enable);
+
+\\
+**[[:develop:api:efl:ui:view_model:method:children_slice_get|children_slice_get]]**// [Overridden from [[:develop:api:efl:model|Efl.Model]]]//\\
+> %%Get children slice OR full range.%%
+
+Eina_Future *efl_model_children_slice_get(Eo *obj, unsigned int start, unsigned int count);
+
+\\
+**[[:develop:api:efl:ui:view_model:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:view_model:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:view_model:method:finalize|finalize]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+Efl_Object *efl_finalize(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:view_model:property:properties|properties]]** //**(get)**//// [Overridden from [[:develop:api:efl:model|Efl.Model]]]//\\
+>
+
+Eina_Iterator *efl_model_properties_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:view_model:property:property|property]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:model|Efl.Model]]]//\\
+> %%No description supplied.%%
+
+Eina_Value *efl_model_property_get(const Eo *obj, const char *property);
+Eina_Future *efl_model_property_set(Eo *obj, const char *property, Eina_Value *value);
+
+\\
+**[[:develop:api:efl:ui:view_model:method:property_bind|property_bind]]**\\
+> %%Automatically update the field for the event %%[[:develop:api:efl:model:event:properties,changed|Efl.Model.properties,changed]]%% to include property that are impacted with change in a property from the composited model.%%
+
+void efl_ui_view_model_property_bind(Eo *obj, const char *source, const char *destination);
+
+\\
+**[[:develop:api:efl:ui:view_model:method:property_logic_add|property_logic_add]]**\\
+> %%Add callbacks that will be triggered when someone ask for the specified property name when getting or setting a property.%%
+
+Eina_Error efl_ui_view_model_property_logic_add(Eo *obj, const char *property, EflUiViewModelPropertyGet get, EflUiViewModelPropertySet set, Eina_Iterator *binded);
+
+\\
+**[[:develop:api:efl:ui:view_model:method:property_logic_del|property_logic_del]]**\\
+> %%Delete previously added callbacks that were triggered when someone asked for the specified property name when getting or setting a property.%%
+
+Eina_Error efl_ui_view_model_property_logic_del(Eo *obj, const char *property);
+
+\\
+**[[:develop:api:efl:ui:view_model:method:property_string_add|property_string_add]]**\\
+> %%Adds a synthetic string property, generated from a %%''definition''%% string and other properties in the model.%%
+
+Eina_Error efl_ui_view_model_property_string_add(Eo *obj, const char *name, const char *definition, const char *not_ready, const char *on_error);
+
+\\
+**[[:develop:api:efl:ui:view_model:method:property_string_del|property_string_del]]**\\
+> %%Delete a synthetic property previously defined by %%[[:develop:api:efl:ui:view_model:method:property_string_add|Efl.Ui.View_Model.property_string_add]]%%.%%
+
+Eina_Error efl_ui_view_model_property_string_del(Eo *obj, const char *name);
+
+\\
+**[[:develop:api:efl:ui:view_model:method:property_unbind|property_unbind]]**\\
+> %%Stop automatically updating the field for the event %%[[:develop:api:efl:model:event:properties,changed|Efl.Model.properties,changed]]%% to include property that are impacted with change in a property from the composited model.%%
+
+void efl_ui_view_model_property_unbind(Eo *obj, const char *source, const char *destination);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:composite_model|Efl.Composite_Model]] ^^^
+| | **[[:develop:api:efl:composite_model:method:child_add|child_add]]** | %%Add a new child.%% |
+| | **[[:develop:api:efl:composite_model:method:child_del|child_del]]** | %%Remove a child.%% |
+| | **[[:develop:api:efl:composite_model:property:children_count|children_count]]** //**(get)**// | |
+| | **[[:develop:api:efl:composite_model:property:index|index]]** //**(get, set)**// | %%Position of this object in the parent model.%% |
+| | **[[:develop:api:efl:composite_model:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:composite_model:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:loop_model|Efl.Loop_Model]] ^^^
+| | **[[:develop:api:efl:loop_model:method:property_ready_get|property_ready_get]]** | %%Get a future value when it changes to something that is not error:EAGAIN%% |
+| | **[[:develop:api:efl:loop_model:method:volatile_make|volatile_make]]** | %%To be called when a Child model is created by %%[[:develop:api:efl:model:method:children_slice_get|Efl.Model.children_slice_get]]%% by the one creating the child object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:model|Efl.Model]] ^^^
+| | **[[:develop:api:efl:model:event:child_added|child,added]]** | %%Event dispatched when new child is added.%% |
+| | **[[:develop:api:efl:model:event:child_removed|child,removed]]** | %%Event dispatched when child is removed.%% |
+| | **[[:develop:api:efl:model:event:children_count_changed|children,count,changed]]** | %%Event dispatched when children count is finished.%% |
+| | **[[:develop:api:efl:model:event:properties_changed|properties,changed]]** | %%Event dispatched when properties list is available.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/view_model/method/children_slice_get.txt b/public_html/data/pages/develop/api/efl/ui/view_model/method/children_slice_get.txt
new file mode 100644
index 00000000..cd9cf509
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/view_model/method/children_slice_get.txt
@@ -0,0 +1,61 @@
+~~Title: Efl.Ui.View_Model.children_slice_get~~
+====== Efl.Ui.View_Model.children_slice_get ======
+
+===== Description =====
+
+%%Get children slice OR full range.%%
+
+%%%%[[:develop:api:efl:model:method:children_slice_get|Efl.Model.children_slice_get]]%% behaves in two different ways, it may provide the slice if %%''count''%% is non-zero OR full range otherwise.%%
+
+%%Since 'slice' is a range, for example if we have 20 children a slice could be the range from 3(start) with 4(count), see:%%
+
+%%child 0 [no] child 1 [no] child 2 [no] child 3 [yes] child 4 [yes] child 5 [yes] child 6 [yes] child 7 [no]%%
+
+%%Optionally the user can call %%[[:develop:api:efl:model:property:children_count|Efl.Model.children_count.get]]%% to know the number of children so a valid range can be known in advance.%%
+
+%%See %%[[:develop:api:efl:model:property:children_count|Efl.Model.children_count.get]]%%%%
+
+
+children_slice_get @pure_virtual {
+ params {
+ @in start: uint;
+ @in count: uint;
+ }
+ return: future>;
+}
+
+
+===== C signature =====
+
+
+Eina_Future *efl_model_children_slice_get(Eo *obj, unsigned int start, unsigned int count);
+
+
+===== Parameters =====
+
+ * **start** //(in)// - %%Range begin - start from here.%%
+ * **count** //(in)// - %%Range size. If count is 0, start is ignored.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:model:method:children_slice_get|Efl.Model.children_slice_get]]
+ * [[:develop:api:efl:mono_model_internal:method:children_slice_get|Efl.Mono_Model_Internal.children_slice_get]]
+ * [[:develop:api:eldbus:model:method:children_slice_get|Eldbus.Model.children_slice_get]]
+ * [[:develop:api:eldbus:model:connection:method:children_slice_get|Eldbus.Model.Connection.children_slice_get]]
+ * [[:develop:api:eldbus:model:proxy:method:children_slice_get|Eldbus.Model.Proxy.children_slice_get]]
+ * [[:develop:api:eldbus:model:object:method:children_slice_get|Eldbus.Model.Object.children_slice_get]]
+ * [[:develop:api:efl:composite_model:method:children_slice_get|Efl.Composite_Model.children_slice_get]]
+ * [[:develop:api:efl:ui:view_model:method:children_slice_get|Efl.Ui.View_Model.children_slice_get]]
+ * [[:develop:api:efl:filter_model:method:children_slice_get|Efl.Filter_Model.children_slice_get]]
+ * [[:develop:api:efl:io:model:method:children_slice_get|Efl.Io.Model.children_slice_get]]
+ * [[:develop:api:efl:generic_model:method:children_slice_get|Efl.Generic_Model.children_slice_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/view_model/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/view_model/method/constructor.txt
new file mode 100644
index 00000000..b3f4a5b9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/view_model/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.View_Model.constructor~~
+====== Efl.Ui.View_Model.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:view_model:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/view_model/method/destructor.txt b/public_html/data/pages/develop/api/efl/ui/view_model/method/destructor.txt
new file mode 100644
index 00000000..1ed3d8a5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/view_model/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Ui.View_Model.destructor~~
+====== Efl.Ui.View_Model.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:view_model:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:composite_model:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/view_model/method/finalize.txt b/public_html/data/pages/develop/api/efl/ui/view_model/method/finalize.txt
new file mode 100644
index 00000000..302755fd
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/view_model/method/finalize.txt
@@ -0,0 +1,91 @@
+~~Title: Efl.Ui.View_Model.finalize~~
+====== Efl.Ui.View_Model.finalize ======
+
+===== Description =====
+
+%%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+%%Use this method to delay expensive operations until user configuration has finished, to avoid building the object in a "default" state in the constructor, just to have to throw it all away because a user configuration (a property being set, for example) requires a different state. This is the last call inside efl_add() and will set %%[[:develop:api:efl:object:property:finalized|Efl.Object.finalized]]%% to %%''true''%% once it returns. This is an optimization and implementing this method is optional if you already perform all your initialization in the %%[[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]%% method. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:view_model:method:finalize:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:composite_model:method:finalize|Efl.Object.finalize]].//===== Signature =====
+
+
+finalize {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_finalize(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]
+ * [[:develop:api:efl:loop_handler:method:finalize|Efl.Loop_Handler.finalize]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:finalize|Efl.Ui.Position_Manager.Grid.finalize]]
+ * [[:develop:api:efl:canvas:layout_part:method:finalize|Efl.Canvas.Layout_Part.finalize]]
+ * [[:develop:api:efl:net:server_udp_client:method:finalize|Efl.Net.Server_Udp_Client.finalize]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:finalize|Efl.Ui.Widget_Part_Bg.finalize]]
+ * [[:develop:api:efl:ui:layout_part_bg:method:finalize|Efl.Ui.Layout_Part_Bg.finalize]]
+ * [[:develop:api:efl:io:buffered_stream:method:finalize|Efl.Io.Buffered_Stream.finalize]]
+ * [[:develop:api:efl:net:dialer_simple:method:finalize|Efl.Net.Dialer_Simple.finalize]]
+ * [[:develop:api:efl:io:file:method:finalize|Efl.Io.File.finalize]]
+ * [[:develop:api:efl:net:server_fd:method:finalize|Efl.Net.Server_Fd.finalize]]
+ * [[:develop:api:efl:io:stderr:method:finalize|Efl.Io.Stderr.finalize]]
+ * [[:develop:api:efl:io:stdin:method:finalize|Efl.Io.Stdin.finalize]]
+ * [[:develop:api:efl:io:stdout:method:finalize|Efl.Io.Stdout.finalize]]
+ * [[:develop:api:efl:net:socket_fd:method:finalize|Efl.Net.Socket_Fd.finalize]]
+ * [[:develop:api:efl:net:socket_ssl:method:finalize|Efl.Net.Socket_Ssl.finalize]]
+ * [[:develop:api:efl:net:dialer_ssl:method:finalize|Efl.Net.Dialer_Ssl.finalize]]
+ * [[:develop:api:efl:canvas:object:method:finalize|Efl.Canvas.Object.finalize]]
+ * [[:develop:api:efl:canvas:image_internal:method:finalize|Efl.Canvas.Image_Internal.finalize]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:finalize|Efl.Ui.Internal.Text.Interactive.finalize]]
+ * [[:develop:api:efl:ui:widget:method:finalize|Efl.Ui.Widget.finalize]]
+ * [[:develop:api:efl:ui:win:method:finalize|Efl.Ui.Win.finalize]]
+ * [[:develop:api:efl:ui:win_socket:method:finalize|Efl.Ui.Win_Socket.finalize]]
+ * [[:develop:api:efl:ui:win_inlined:method:finalize|Efl.Ui.Win_Inlined.finalize]]
+ * [[:develop:api:efl:ui:layout_base:method:finalize|Efl.Ui.Layout_Base.finalize]]
+ * [[:develop:api:efl:ui:text:method:finalize|Efl.Ui.Text.finalize]]
+ * [[:develop:api:efl:ui:tab_bar:method:finalize|Efl.Ui.Tab_Bar.finalize]]
+ * [[:develop:api:efl:ui:item:method:finalize|Efl.Ui.Item.finalize]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:finalize|Efl.Ui.List_Placeholder_Item.finalize]]
+ * [[:develop:api:elm:code_widget:method:finalize|Elm.Code_Widget.finalize]]
+ * [[:develop:api:efl:ui:scroller:method:finalize|Efl.Ui.Scroller.finalize]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:finalize|Efl.Ui.Internal_Text_Scroller.finalize]]
+ * [[:develop:api:efl:ui:collection:method:finalize|Efl.Ui.Collection.finalize]]
+ * [[:develop:api:efl:ui:spotlight:container:method:finalize|Efl.Ui.Spotlight.Container.finalize]]
+ * [[:develop:api:efl:ui:tab_pager:method:finalize|Efl.Ui.Tab_Pager.finalize]]
+ * [[:develop:api:efl:ui:bg:method:finalize|Efl.Ui.Bg.finalize]]
+ * [[:develop:api:efl:canvas:vg:object:method:finalize|Efl.Canvas.Vg.Object.finalize]]
+ * [[:develop:api:efl:loop_timer:method:finalize|Efl.Loop_Timer.finalize]]
+ * [[:develop:api:eldbus:model:method:finalize|Eldbus.Model.finalize]]
+ * [[:develop:api:eldbus:model:proxy:method:finalize|Eldbus.Model.Proxy.finalize]]
+ * [[:develop:api:eldbus:model:arguments:method:finalize|Eldbus.Model.Arguments.finalize]]
+ * [[:develop:api:eldbus:model:method:method:finalize|Eldbus.Model.Method.finalize]]
+ * [[:develop:api:eldbus:model:object:method:finalize|Eldbus.Model.Object.finalize]]
+ * [[:develop:api:efl:composite_model:method:finalize|Efl.Composite_Model.finalize]]
+ * [[:develop:api:efl:container_model:method:finalize|Efl.Container_Model.finalize]]
+ * [[:develop:api:efl:ui:view_model:method:finalize|Efl.Ui.View_Model.finalize]]
+ * [[:develop:api:efl:io:model:method:finalize|Efl.Io.Model.finalize]]
+ * [[:develop:api:efl:net:server_simple:method:finalize|Efl.Net.Server_Simple.finalize]]
+ * [[:develop:api:efl:net:control:manager:method:finalize|Efl.Net.Control.Manager.finalize]]
+ * [[:develop:api:efl:ui:widget_factory:method:finalize|Efl.Ui.Widget_Factory.finalize]]
+ * [[:develop:api:efl:ui:caching_factory:method:finalize|Efl.Ui.Caching_Factory.finalize]]
+ * [[:develop:api:efl:thread:method:finalize|Efl.Thread.finalize]]
+ * [[:develop:api:efl:net:session:method:finalize|Efl.Net.Session.finalize]]
+ * [[:develop:api:efl:io:copier:method:finalize|Efl.Io.Copier.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:finalize|Efl.Ui.Focus.Manager_Calc.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:finalize|Efl.Ui.Focus.Manager_Root_Focus.finalize]]
+ * [[:develop:api:evas:canvas3d:node:method:finalize|Evas.Canvas3D.Node.finalize]]
+ * [[:develop:api:efl:net:ssl:context:method:finalize|Efl.Net.Ssl.Context.finalize]]
+ * [[:develop:api:efl:io:buffer:method:finalize|Efl.Io.Buffer.finalize]]
+ * [[:develop:api:efl:net:ip_address:method:finalize|Efl.Net.Ip_Address.finalize]]
+ * [[:develop:api:efl:io:queue:method:finalize|Efl.Io.Queue.finalize]]
+ * [[:develop:api:ector:renderer:method:finalize|Ector.Renderer.finalize]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/view_model/method/property_bind.txt b/public_html/data/pages/develop/api/efl/ui/view_model/method/property_bind.txt
new file mode 100644
index 00000000..7afb0f4e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/view_model/method/property_bind.txt
@@ -0,0 +1,38 @@
+~~Title: Efl.Ui.View_Model.property_bind~~
+====== Efl.Ui.View_Model.property_bind ======
+
+===== Description =====
+
+%%Automatically update the field for the event %%[[:develop:api:efl:model:event:properties,changed|Efl.Model.properties,changed]]%% to include property that are impacted with change in a property from the composited model.%%
+
+%%The source doesn't have to be provided at this point by the composited model.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:view_model:method:property_bind:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+property_bind {
+ params {
+ @in source: string;
+ @in destination: string;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_view_model_property_bind(Eo *obj, const char *source, const char *destination);
+
+
+===== Parameters =====
+
+ * **source** //(in)// - %%Property name in the composited model.%%
+ * **destination** //(in)// - %%Property name in the %%[[:develop:api:efl:ui:view_model|Efl.Ui.View_Model]]%%%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:view_model:method:property_bind|Efl.Ui.View_Model.property_bind]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/view_model/method/property_logic_add.txt b/public_html/data/pages/develop/api/efl/ui/view_model/method/property_logic_add.txt
new file mode 100644
index 00000000..2e139589
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/view_model/method/property_logic_add.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Ui.View_Model.property_logic_add~~
+====== Efl.Ui.View_Model.property_logic_add ======
+
+===== Description =====
+
+%%Add callbacks that will be triggered when someone ask for the specified property name when getting or setting a property.%%
+
+%%A get or set should at least be provided for this call to succeed.%%
+
+%%See %%[[:develop:api:efl:ui:view_model:method:property_logic_del|Efl.Ui.View_Model.property_logic_del]]%%%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:view_model:method:property_logic_add:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+property_logic_add @beta {
+ params {
+ @in property: string;
+ @in get: EflUiViewModelPropertyGet;
+ @in set: EflUiViewModelPropertySet;
+ @in binded: iterator;
+ }
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_view_model_property_logic_add(Eo *obj, const char *property, EflUiViewModelPropertyGet get, EflUiViewModelPropertySet set, Eina_Iterator *binded);
+
+
+===== Parameters =====
+
+ * **property** //(in)// - %%The property to bind on to.%%
+ * **get** //(in)// - %%Define the get callback called when the %%[[:develop:api:efl:model:property:property|Efl.Model.property.get]]%% is called with the above property name.%%
+ * **set** //(in)// - %%Define the set callback called when the %%[[:develop:api:efl:model:property:property|Efl.Model.property.set]]%% is called with the above property name.%%
+ * **binded** //(in)// - %%Iterator of property name to bind with this defined property see %%[[:develop:api:efl:ui:view_model:method:property_bind|Efl.Ui.View_Model.property_bind]]%%.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:view_model:method:property_logic_add|Efl.Ui.View_Model.property_logic_add]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/view_model/method/property_logic_del.txt b/public_html/data/pages/develop/api/efl/ui/view_model/method/property_logic_del.txt
new file mode 100644
index 00000000..8baa9420
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/view_model/method/property_logic_del.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.View_Model.property_logic_del~~
+====== Efl.Ui.View_Model.property_logic_del ======
+
+===== Description =====
+
+%%Delete previously added callbacks that were triggered when someone asked for the specified property name when getting or setting a property.%%
+
+%%A get or set should at least be provided for this call to succeed.%%
+
+%%See %%[[:develop:api:efl:ui:view_model:method:property_logic_add|Efl.Ui.View_Model.property_logic_add]]%%%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:view_model:method:property_logic_del:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+property_logic_del @beta {
+ params {
+ @in property: string;
+ }
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_view_model_property_logic_del(Eo *obj, const char *property);
+
+
+===== Parameters =====
+
+ * **property** //(in)// - %%The property to bind on to.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:view_model:method:property_logic_del|Efl.Ui.View_Model.property_logic_del]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/view_model/method/property_string_add.txt b/public_html/data/pages/develop/api/efl/ui/view_model/method/property_string_add.txt
new file mode 100644
index 00000000..9f57ff49
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/view_model/method/property_string_add.txt
@@ -0,0 +1,47 @@
+~~Title: Efl.Ui.View_Model.property_string_add~~
+====== Efl.Ui.View_Model.property_string_add ======
+
+===== Description =====
+
+%%Adds a synthetic string property, generated from a %%''definition''%% string and other properties in the model.%%
+
+%%The %%''definition''%% string, similar to how %%''printf''%% works, contains ${} placeholders that are replaced by the actual value of the property inside the placeholder tags when the synthetic property is retrieved. For example, a numeric property %%''length''%% might be strange to use as a label, since it will only display a number. However, a synthetic string can be generated with the definition "Length ${length}." which renders more nicely and does not require any more code by the user of the property.%%
+
+%%%%''not_ready''%% and %%''on_error''%% strings can be given to be used when the data is not ready or there is some error, respectively. These strings do accept placeholder tags.%%
+
+%%See %%[[:develop:api:efl:ui:view_model:method:property_string_del|Efl.Ui.View_Model.property_string_del]]%%%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:view_model:method:property_string_add:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+property_string_add {
+ params {
+ @in name: string;
+ @in definition: string;
+ @in not_ready: string;
+ @in on_error: string;
+ }
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_view_model_property_string_add(Eo *obj, const char *name, const char *definition, const char *not_ready, const char *on_error);
+
+
+===== Parameters =====
+
+ * **name** //(in)// - %%The name for the new synthetic property.%%
+ * **definition** //(in)// - %%The definition string for the new synthetic property.%%
+ * **not_ready** //(in)// - %%The text to be used if any of the properties used in %%''definition''%% is not ready yet. If set to %%''null''%%, no check against EAGAIN will be done.%%
+ * **on_error** //(in)// - %%The text to be used if any of the properties used in %%''definition''%% is in error. It takes precedence over %%''not_ready''%%. If set to %%''null''%%, no error checks are performed.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:view_model:method:property_string_add|Efl.Ui.View_Model.property_string_add]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/view_model/method/property_string_del.txt b/public_html/data/pages/develop/api/efl/ui/view_model/method/property_string_del.txt
new file mode 100644
index 00000000..5aab6b35
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/view_model/method/property_string_del.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.View_Model.property_string_del~~
+====== Efl.Ui.View_Model.property_string_del ======
+
+===== Description =====
+
+%%Delete a synthetic property previously defined by %%[[:develop:api:efl:ui:view_model:method:property_string_add|Efl.Ui.View_Model.property_string_add]]%%.%%
+
+%%See %%[[:develop:api:efl:ui:view_model:method:property_string_add|Efl.Ui.View_Model.property_string_add]]%%%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:view_model:method:property_string_del:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+property_string_del {
+ params {
+ @in name: string;
+ }
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_view_model_property_string_del(Eo *obj, const char *name);
+
+
+===== Parameters =====
+
+ * **name** //(in)// - %%The name of the synthetic property to delete.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:view_model:method:property_string_del|Efl.Ui.View_Model.property_string_del]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/view_model/method/property_unbind.txt b/public_html/data/pages/develop/api/efl/ui/view_model/method/property_unbind.txt
new file mode 100644
index 00000000..8c5e2e9e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/view_model/method/property_unbind.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.View_Model.property_unbind~~
+====== Efl.Ui.View_Model.property_unbind ======
+
+===== Description =====
+
+%%Stop automatically updating the field for the event %%[[:develop:api:efl:model:event:properties,changed|Efl.Model.properties,changed]]%% to include property that are impacted with change in a property from the composited model.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:view_model:method:property_unbind:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+property_unbind {
+ params {
+ @in source: string;
+ @in destination: string;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_view_model_property_unbind(Eo *obj, const char *source, const char *destination);
+
+
+===== Parameters =====
+
+ * **source** //(in)// - %%Property name in the composited model.%%
+ * **destination** //(in)// - %%Property name in the %%[[:develop:api:efl:ui:view_model|Efl.Ui.View_Model]]%%%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:view_model:method:property_unbind|Efl.Ui.View_Model.property_unbind]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/view_model/property/children_bind.txt b/public_html/data/pages/develop/api/efl/ui/view_model/property/children_bind.txt
new file mode 100644
index 00000000..6b07ee74
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/view_model/property/children_bind.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.View_Model.children_bind~~
+====== Efl.Ui.View_Model.children_bind ======
+
+===== Description =====
+
+%%Define if we will intercept all children object reference and bind them through the ViewModel with the same property logic as this one. Be careful of recursivity.%%
+
+%%This can only be applied at construction time.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:view_model:property:children_bind:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **enable** - %%Do you automatically bind children. Default to true.%%
+
+===== Signature =====
+
+
+@property children_bind {
+ get {}
+ set {}
+ values {
+ enable: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_view_model_children_bind_get(const Eo *obj);
+void efl_ui_view_model_children_bind_set(Eo *obj, Eina_Bool enable);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:view_model:property:children_bind|Efl.Ui.View_Model.children_bind]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/view_model/property/properties.txt b/public_html/data/pages/develop/api/efl/ui/view_model/property/properties.txt
new file mode 100644
index 00000000..4107175a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/view_model/property/properties.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.Ui.View_Model.properties~~
+====== Efl.Ui.View_Model.properties ======
+
+===== Values =====
+
+ * **properties** - %%Array of current properties%%
+
+
+\\ {{page>:develop:api-include:efl:ui:view_model:property:properties:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:composite_model:property:properties|Efl.Model.properties]] **(get)**.//===== Signature =====
+
+
+@property properties @pure_virtual {
+ get {}
+ values {
+ properties: iterator;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_model_properties_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:model:property:properties|Efl.Model.properties]]
+ * [[:develop:api:efl:mono_model_internal_child:property:properties|Efl.Mono_Model_Internal_Child.properties]]
+ * [[:develop:api:efl:mono_model_internal:property:properties|Efl.Mono_Model_Internal.properties]]
+ * [[:develop:api:eldbus:model:property:properties|Eldbus.Model.properties]]
+ * [[:develop:api:eldbus:model:proxy:property:properties|Eldbus.Model.Proxy.properties]]
+ * [[:develop:api:eldbus:model:arguments:property:properties|Eldbus.Model.Arguments.properties]]
+ * [[:develop:api:efl:composite_model:property:properties|Efl.Composite_Model.properties]]
+ * [[:develop:api:efl:boolean_model:property:properties|Efl.Boolean_Model.properties]]
+ * [[:develop:api:efl:ui:select_model:property:properties|Efl.Ui.Select_Model.properties]]
+ * [[:develop:api:efl:container_model:property:properties|Efl.Container_Model.properties]]
+ * [[:develop:api:efl:ui:view_model:property:properties|Efl.Ui.View_Model.properties]]
+ * [[:develop:api:efl:ui:size_model:property:properties|Efl.Ui.Size_Model.properties]]
+ * [[:develop:api:efl:io:model:property:properties|Efl.Io.Model.properties]]
+ * [[:develop:api:efl:generic_model:property:properties|Efl.Generic_Model.properties]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/view_model/property/property.txt b/public_html/data/pages/develop/api/efl/ui/view_model/property/property.txt
new file mode 100644
index 00000000..3a10a562
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/view_model/property/property.txt
@@ -0,0 +1,91 @@
+~~Title: Efl.Ui.View_Model.property~~
+====== Efl.Ui.View_Model.property ======
+
+===== Description =====
+
+%%No description supplied.%%
+
+//Since 1.23//
+
+
+{{page>:develop:api-include:efl:ui:view_model:property:property:description&nouser&nolink&nodate}}
+
+===== Keys =====
+
+ * **property** - %%Property name%%
+===== Values =====
+
+ * **value** - %%Property value%%
+==== Getter ====
+
+%%Retrieve the value of a given property name.%%
+
+%%At this point the caller is free to get values from properties. The event %%[[:develop:api:efl:model:event:properties,changed|Efl.Model.properties,changed]]%% may be raised to notify listeners of the property/value.%%
+
+%%See %%[[:develop:api:efl:model:property:properties|Efl.Model.properties.get]]%%, %%[[:develop:api:efl:model:event:properties,changed|Efl.Model.properties,changed]]%%%%
+
+//Since 1.23//
+
+
+{{page>:develop:api-include:efl:ui:view_model:property:property:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Set a property value of a given property name.%%
+
+%%The caller must first read %%[[:develop:api:efl:model:property:properties|Efl.Model.properties]]%% to obtain the list of available properties before being able to access them through %%[[:develop:api:efl:model:property:property|Efl.Model.property]]%%. This function sets a new property value into given property name. Once the operation is completed the concrete implementation should raise %%[[:develop:api:efl:model:event:properties,changed|Efl.Model.properties,changed]]%% event in order to notify listeners of the new value of the property.%%
+
+%%If the model doesn't have the property then there are two possibilities, either raise an error or create the new property in model%%
+
+%%See %%[[:develop:api:efl:model:property:property|Efl.Model.property.get]]%%, %%[[:develop:api:efl:model:event:properties,changed|Efl.Model.properties,changed]]%%%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:view_model:property:property:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:composite_model:property:property|Efl.Model.property]] **(get, set)**.//===== Signature =====
+
+
+@property property @pure_virtual {
+ get {}
+ set {
+ return: future;
+ }
+ keys {
+ property: string;
+ }
+ values {
+ value: any_value_ref;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Value *efl_model_property_get(const Eo *obj, const char *property);
+Eina_Future *efl_model_property_set(Eo *obj, const char *property, Eina_Value *value);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:model:property:property|Efl.Model.property]]
+ * [[:develop:api:efl:mono_model_internal_child:property:property|Efl.Mono_Model_Internal_Child.property]]
+ * [[:develop:api:efl:mono_model_internal:property:property|Efl.Mono_Model_Internal.property]]
+ * [[:develop:api:efl:loop_model:property:property|Efl.Loop_Model.property]]
+ * [[:develop:api:eldbus:model:property:property|Eldbus.Model.property]]
+ * [[:develop:api:eldbus:model:proxy:property:property|Eldbus.Model.Proxy.property]]
+ * [[:develop:api:eldbus:model:arguments:property:property|Eldbus.Model.Arguments.property]]
+ * [[:develop:api:efl:composite_model:property:property|Efl.Composite_Model.property]]
+ * [[:develop:api:efl:boolean_model:property:property|Efl.Boolean_Model.property]]
+ * [[:develop:api:efl:ui:select_model:property:property|Efl.Ui.Select_Model.property]]
+ * [[:develop:api:efl:ui:state_model:property:property|Efl.Ui.State_Model.property]]
+ * [[:develop:api:efl:container_model:property:property|Efl.Container_Model.property]]
+ * [[:develop:api:efl:ui:view_model:property:property|Efl.Ui.View_Model.property]]
+ * [[:develop:api:efl:ui:homogeneous_model:property:property|Efl.Ui.Homogeneous_Model.property]]
+ * [[:develop:api:efl:ui:exact_model:property:property|Efl.Ui.Exact_Model.property]]
+ * [[:develop:api:efl:ui:average_model:property:property|Efl.Ui.Average_Model.property]]
+ * [[:develop:api:efl:filter_model:property:property|Efl.Filter_Model.property]]
+ * [[:develop:api:efl:io:model:property:property|Efl.Io.Model.property]]
+ * [[:develop:api:efl:generic_model:property:property|Efl.Generic_Model.property]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget.txt b/public_html/data/pages/develop/api/efl/ui/widget.txt
new file mode 100644
index 00000000..c7315be4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget.txt
@@ -0,0 +1,648 @@
+~~Title: Efl.Ui.Widget~~
+====== Efl.Ui.Widget (class) ======
+
+===== Description =====
+
+%%Base class for all Efl.Ui.* widgets%%
+
+%%The class here is designed in a way that widgets can be expressed as a tree. The parent relation in the tree can be fetched via %%[[:develop:api:efl:ui:widget:property:widget_parent|Efl.Ui.Widget.widget_parent]]%% . The parent relation should never be modified directly, instead you should use the APIs of the widgets (Typically %%[[:develop:api:efl:pack_linear|Efl.Pack_Linear]]%%, %%[[:develop:api:efl:pack_table|Efl.Pack_Table]]%% or %%[[:develop:api:efl:content|Efl.Content]]%%).%%
+
+%%Properties implemented here should be treated with extra care, some are defined for the sub-tree, others are defined for the widget itself, additional information for this can be fetched from the documentation in the implements section.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:widget:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**//\\
+> %%Accessibility information.%%
+
+const char *efl_ui_widget_access_info_get(const Eo *obj);
+void efl_ui_widget_access_info_set(Eo *obj, const char *txt);
+
+\\
+**[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:canvas:object|Efl.Canvas.Object]]]//\\
+> %%Clip one object to another.%%
+
+Efl_Canvas_Object *efl_canvas_object_clipper_get(const Eo *obj);
+void efl_canvas_object_clipper_set(Eo *obj, Efl_Canvas_Object *clipper);
+
+\\
+**[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:color|Efl.Gfx.Color]]]//\\
+> %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%%
+
+void efl_gfx_color_get(const Eo *obj, int *r, int *g, int *b, int *a);
+void efl_gfx_color_set(Eo *obj, int r, int g, int b, int a);
+
+\\
+**[[:develop:api:efl:ui:widget:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**//\\
+> %%The cursor to be shown when mouse is over the object%%
+
+const char *efl_ui_widget_cursor_get(const Eo *obj);
+Eina_Bool efl_ui_widget_cursor_set(Eo *obj, const char *cursor);
+
+\\
+**[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**//\\
+> %%A different style for the cursor.%%
+
+const char *efl_ui_widget_cursor_style_get(const Eo *obj);
+Eina_Bool efl_ui_widget_cursor_style_set(Eo *obj, const char *style);
+
+\\
+**[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**//\\
+> %%Whether the cursor may be looked in the theme or not.%%
+
+Eina_Bool efl_ui_widget_cursor_theme_search_enabled_get(const Eo *obj);
+Eina_Bool efl_ui_widget_cursor_theme_search_enabled_set(Eo *obj, Eina_Bool allow);
+
+\\
+**[[:develop:api:efl:ui:widget:method:debug_name_override|debug_name_override]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Build a read-only name for this object used for debugging.%%
+
+void efl_debug_name_override(Eo *obj, Eina_Strbuf *sb);
+
+\\
+**[[:develop:api:efl:ui:widget:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget:property:disabled|disabled]]** //**(get, set)**//\\
+> %%Whether the widget is enabled (accepts and reacts to user inputs).%%
+
+Eina_Bool efl_ui_widget_disabled_get(const Eo *obj);
+void efl_ui_widget_disabled_set(Eo *obj, Eina_Bool disabled);
+
+\\
+**[[:develop:api:efl:ui:widget:method:finalize|finalize]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+Efl_Object *efl_finalize(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget:property:focus|focus]]** //**(get, set)**// ''protected set''// [Overridden from [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]]]//\\
+> %%Whether the widget is currently focused or not.%%
+
+Eina_Bool efl_ui_focus_object_focus_get(const Eo *obj);
+void efl_ui_focus_object_focus_set(Eo *obj, Eina_Bool focus);
+
+\\
+**[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**//\\
+> %%The ability for a widget to be focused.%%
+
+Eina_Bool efl_ui_widget_focus_allow_get(const Eo *obj);
+void efl_ui_widget_focus_allow_set(Eo *obj, Eina_Bool can_focus);
+
+\\
+**[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**//// [Overridden from [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]]]//\\
+>
+
+Eina_Rect efl_ui_focus_object_focus_geometry_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**//// [Overridden from [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]]]//\\
+>
+
+Efl_Ui_Focus_Manager *efl_ui_focus_object_focus_manager_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**//\\
+> %%The widget's focus move policy.%%
+
+Efl_Ui_Focus_Move_Policy efl_ui_widget_focus_move_policy_get(const Eo *obj);
+void efl_ui_widget_focus_move_policy_set(Eo *obj, Efl_Ui_Focus_Move_Policy policy);
+
+\\
+**[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**//\\
+> %%Control the widget's focus_move_policy mode setting.%%
+
+Eina_Bool efl_ui_widget_focus_move_policy_automatic_get(const Eo *obj);
+void efl_ui_widget_focus_move_policy_automatic_set(Eo *obj, Eina_Bool automatic);
+
+\\
+**[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**//// [Overridden from [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]]]//\\
+>
+
+Efl_Ui_Focus_Object *efl_ui_focus_object_focus_parent_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget:method:group_calculate|group_calculate]]**// [Overridden from [[:develop:api:efl:canvas:group|Efl.Canvas.Group]]]//\\
+> %%Triggers an immediate recalculation of this object's geometry.%%
+
+void efl_canvas_group_calculate(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]**// [Overridden from [[:develop:api:efl:canvas:group|Efl.Canvas.Group]]]//\\
+> %%Set a canvas object as a member of a given group (or smart object).%%
+
+void efl_canvas_group_member_add(Eo *obj, Efl_Canvas_Object *sub_obj);
+
+\\
+**[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]**// [Overridden from [[:develop:api:efl:canvas:group|Efl.Canvas.Group]]]//\\
+> %%Removes a member object from a given smart object.%%
+
+void efl_canvas_group_member_remove(Eo *obj, Efl_Canvas_Object *sub_obj);
+
+\\
+**[[:develop:api:efl:ui:widget:property:i18n_name|i18n_name]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:access:object|Efl.Access.Object]]]//\\
+> %%Accessible name of the object.%%
+
+const char *efl_access_object_i18n_name_get(const Eo *obj);
+void efl_access_object_i18n_name_set(Eo *obj, const char *i18n_name);
+
+\\
+**[[:develop:api:efl:ui:widget:method:invalidate|invalidate]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to perform special actions when your object loses its parent, if you need to.%%
+
+void efl_invalidate(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]]]//\\
+> %%Whether this object should be mirrored.%%
+
+Eina_Bool efl_ui_mirrored_get(const Eo *obj);
+void efl_ui_mirrored_set(Eo *obj, Eina_Bool rtl);
+
+\\
+**[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]]]//\\
+> %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%%
+
+Eina_Bool efl_ui_mirrored_automatic_get(const Eo *obj);
+void efl_ui_mirrored_automatic_set(Eo *obj, Eina_Bool automatic);
+
+\\
+**[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:view|Efl.Ui.View]]]//\\
+> %%Model that is/will be%%
+
+Efl_Model *efl_ui_view_model_get(const Eo *obj);
+void efl_ui_view_model_set(Eo *obj, Efl_Model *model);
+
+\\
+**[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:canvas:object|Efl.Canvas.Object]]]//\\
+> %%Disables all rendering on the canvas.%%
+
+Eina_Bool efl_canvas_object_no_render_get(const Eo *obj);
+void efl_canvas_object_no_render_set(Eo *obj, Eina_Bool enable);
+
+\\
+**[[:develop:api:efl:ui:widget:property:position|position]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The 2D position of a canvas object.%%
+
+Eina_Position2D efl_gfx_entity_position_get(const Eo *obj);
+void efl_gfx_entity_position_set(Eo *obj, Eina_Position2D pos);
+
+\\
+**[[:develop:api:efl:ui:widget:method:property_bind|property_bind]]**// [Overridden from [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]]]//\\
+> %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%%
+
+Eina_Error efl_ui_property_bind(Eo *obj, const char *key, const char *property);
+
+\\
+**[[:develop:api:efl:ui:widget:method:provider_find|provider_find]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Searches upwards in the object tree for a provider which knows the given class/interface.%%
+
+Efl_Object *efl_provider_find(const Eo *obj, const Efl_Class *klass);
+
+\\
+**[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The scaling factor of an object.%%
+
+double efl_gfx_entity_scale_get(const Eo *obj);
+void efl_gfx_entity_scale_set(Eo *obj, double scale);
+
+\\
+**[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]**\\
+> %%Pop scroller freeze%%
+
+void efl_ui_widget_scroll_freeze_pop(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]**\\
+> %%Push scroller freeze%%
+
+void efl_ui_widget_scroll_freeze_push(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]**\\
+> %%Pop scroller hold%%
+
+void efl_ui_widget_scroll_hold_pop(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]**\\
+> %%Push scroll hold%%
+
+void efl_ui_widget_scroll_hold_push(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget:property:size|size]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The 2D size of a canvas object.%%
+
+Eina_Size2D efl_gfx_entity_size_get(const Eo *obj);
+void efl_gfx_entity_size_set(Eo *obj, Eina_Size2D size);
+
+\\
+**[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**//\\
+> %%The widget style to use.%%
+
+const char *efl_ui_widget_style_get(const Eo *obj);
+Eina_Error efl_ui_widget_style_set(Eo *obj, const char *style);
+
+\\
+**[[:develop:api:efl:ui:widget:property:visible|visible]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The visibility of a canvas object.%%
+
+Eina_Bool efl_gfx_entity_visible_get(const Eo *obj);
+void efl_gfx_entity_visible_set(Eo *obj, Eina_Bool v);
+
+\\
+**[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// ''protected''// [Overridden from [[:develop:api:efl:access:object|Efl.Access.Object]]]//\\
+>
+
+Eina_List *efl_access_object_access_children_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// ''protected''// [Overridden from [[:develop:api:efl:access:object|Efl.Access.Object]]]//\\
+>
+
+Eina_List *efl_access_object_attributes_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** ''protected''// [Overridden from [[:develop:api:efl:access:component|Efl.Access.Component]]]//\\
+> %%Focuses accessible widget.%%
+
+Eina_Bool efl_access_component_focus_grab(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// ''protected''\\
+>
+
+Eina_Rect efl_ui_widget_focus_highlight_geometry_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** ''protected''\\
+> %%Apply a new focus state on the widget.%%
+
+Eina_Bool efl_ui_widget_focus_state_apply(Eo *obj, Efl_Ui_Widget_Focus_State current_state, Efl_Ui_Widget_Focus_State configured_state, Efl_Ui_Widget *redirect);
+
+\\
+**[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// ''protected''\\
+>
+
+Eina_Rect efl_ui_widget_interest_region_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** ''protected''\\
+> %%Hook function called when widget is activated through accessibility.%%
+
+Eina_Bool efl_ui_widget_on_access_activate(Eo *obj, Efl_Ui_Activate act);
+
+\\
+**[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** ''protected''\\
+> %%Hook function called when accessibility is changed on the widget.%%
+
+void efl_ui_widget_on_access_update(Eo *obj, Eina_Bool enable);
+
+\\
+**[[:develop:api:efl:ui:widget:method:on_focus_update|on_focus_update]]** ''protected''// [Overridden from [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]]]//\\
+> %%Virtual function handling focus in/out events on the widget.%%
+
+Eina_Bool efl_ui_focus_object_on_focus_update(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget:method:part_get|part_get]]** ''protected''// [Overridden from [[:develop:api:efl:part|Efl.Part]]]//\\
+> %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%%
+
+Efl_Object *efl_part_get(const Eo *obj, const char *name);
+
+\\
+**[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// ''protected''\\
+>
+
+void efl_ui_widget_resize_object_set(Eo *obj, Efl_Canvas_Object *sobj);
+
+\\
+**[[:develop:api:efl:ui:widget:property:state_set|state_set]]** //**(get)**// ''protected''// [Overridden from [[:develop:api:efl:access:object|Efl.Access.Object]]]//\\
+>
+
+Efl_Access_State_Set efl_access_object_state_set_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget:method:theme_apply|theme_apply]]** ''protected''\\
+> %%Virtual function called when the widget needs to re-apply its theme.%%
+
+Eina_Error efl_ui_widget_theme_apply(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** ''protected''// [Overridden from [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]]]//\\
+> %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%%
+
+void efl_ui_l10n_translation_update(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget:method:widget_input_event_handler|widget_input_event_handler]]** ''protected''\\
+> %%Virtual function handling input events on the widget.%%
+
+Eina_Bool efl_ui_widget_input_event_handler(Eo *obj, const Efl_Event *eo_event, Efl_Canvas_Object *source);
+
+\\
+**[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// ''protected''\\
+> %%The internal parent of this widget.%%
+
+Efl_Ui_Widget *efl_ui_widget_parent_get(const Eo *obj);
+void efl_ui_widget_parent_set(Eo *obj, Efl_Ui_Widget *parent);
+
+\\
+**[[:develop:api:efl:ui:widget:method:widget_sub_object_add|widget_sub_object_add]]** ''protected''\\
+> %%Virtual function customizing sub objects being added.%%
+
+Eina_Bool efl_ui_widget_sub_object_add(Eo *obj, Efl_Canvas_Object *sub_obj);
+
+\\
+**[[:develop:api:efl:ui:widget:method:widget_sub_object_del|widget_sub_object_del]]** ''protected''\\
+> %%Virtual function customizing sub objects being removed.%%
+
+Eina_Bool efl_ui_widget_sub_object_del(Eo *obj, Efl_Canvas_Object *sub_obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:extents|extents]]** //**(get, set)**// | %%Geometry of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_aspect|hint_aspect]]** //**(get, set)**// | %%Defines the aspect ratio to respect when scaling this object.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_max|hint_size_max]]** //**(get, set)**// | %%Hints on the object's maximum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_weight|hint_weight]]** //**(get, set)**// | %%Hints for an object's weight.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:lower_to_bottom|lower_to_bottom]]** | %%Lower %%''obj''%% to the bottom of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_inside|pointer_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:method:raise_to_top|raise_to_top]]** | %%Raise %%''obj''%% to the top of its layer.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] ^^^
+| | **[[:develop:api:efl:ui:i18n:property:language|language]]** //**(get, set)**// | %%The (human) language for this object.%% |
+^ [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] ^^^
+| | **[[:develop:api:efl:ui:l10n:property:l10n_text|l10n_text]]** //**(get, set)**// | %%A unique string to be translated.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+
+===== Events =====
+
+**[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]**\\
+> %%Called when accessibility changed%%
+
+EFL_UI_WIDGET_EVENT_ACCESS_CHANGED(void, @beta)
+
+\\ **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]**\\
+> %%Called when widget language changed%%
+
+EFL_UI_WIDGET_EVENT_LANGUAGE_CHANGED(void, @beta)
+
+\\ ==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/event/access_changed.txt b/public_html/data/pages/develop/api/efl/ui/widget/event/access_changed.txt
new file mode 100644
index 00000000..23b6ce72
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/event/access_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Widget: access,changed~~
+
+===== Description =====
+
+%%Called when accessibility changed%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:widget:event:access_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+access,changed @beta;
+
+
+===== C information =====
+
+
+EFL_UI_WIDGET_EVENT_ACCESS_CHANGED(void, @beta)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_widget_event_access_changed(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_WIDGET_EVENT_ACCESS_CHANGED, on_efl_ui_widget_event_access_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/event/language_changed.txt b/public_html/data/pages/develop/api/efl/ui/widget/event/language_changed.txt
new file mode 100644
index 00000000..fa627909
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/event/language_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Widget: language,changed~~
+
+===== Description =====
+
+%%Called when widget language changed%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:widget:event:language_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+language,changed @beta;
+
+
+===== C information =====
+
+
+EFL_UI_WIDGET_EVENT_LANGUAGE_CHANGED(void, @beta)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_widget_event_language_changed(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_WIDGET_EVENT_LANGUAGE_CHANGED, on_efl_ui_widget_event_language_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/constructor.txt
new file mode 100644
index 00000000..98c24012
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Widget.constructor~~
+====== Efl.Ui.Widget.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:canvas:group:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/debug_name_override.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/debug_name_override.txt
new file mode 100644
index 00000000..50695e26
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/debug_name_override.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Widget.debug_name_override~~
+====== Efl.Ui.Widget.debug_name_override ======
+
+===== Description =====
+
+%%Build a read-only name for this object used for debugging.%%
+
+%%Multiple calls using efl_super() can be chained in order to build the entire debug name, from parent to child classes. In C the usual way to build the string is as follows:%%
+
+%%efl_debug_name_override(efl_super(obj, MY_CLASS), sb); eina_strbuf_append_printf(sb, "new_information");%%
+
+%%Usually more debug information should be added to %%''sb''%% after calling the super function.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:method:debug_name_override:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:canvas:group:method:debug_name_override|Efl.Object.debug_name_override]].//===== Signature =====
+
+
+debug_name_override {
+ params {
+ @in sb: strbuf;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_debug_name_override(Eo *obj, Eina_Strbuf *sb);
+
+
+===== Parameters =====
+
+ * **sb** //(in)// - %%A string buffer, must not be %%''null''%%.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:debug_name_override|Efl.Object.debug_name_override]]
+ * [[:develop:api:efl:canvas:object:method:debug_name_override|Efl.Canvas.Object.debug_name_override]]
+ * [[:develop:api:efl:canvas:image_internal:method:debug_name_override|Efl.Canvas.Image_Internal.debug_name_override]]
+ * [[:develop:api:efl:canvas:group:method:debug_name_override|Efl.Canvas.Group.debug_name_override]]
+ * [[:develop:api:efl:canvas:layout:method:debug_name_override|Efl.Canvas.Layout.debug_name_override]]
+ * [[:develop:api:efl:ui:widget:method:debug_name_override|Efl.Ui.Widget.debug_name_override]]
+ * [[:develop:api:efl:ui:win:method:debug_name_override|Efl.Ui.Win.debug_name_override]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/destructor.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/destructor.txt
new file mode 100644
index 00000000..d65b0827
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Ui.Widget.destructor~~
+====== Efl.Ui.Widget.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:canvas:group:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/finalize.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/finalize.txt
new file mode 100644
index 00000000..62f111c4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/finalize.txt
@@ -0,0 +1,91 @@
+~~Title: Efl.Ui.Widget.finalize~~
+====== Efl.Ui.Widget.finalize ======
+
+===== Description =====
+
+%%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+%%Use this method to delay expensive operations until user configuration has finished, to avoid building the object in a "default" state in the constructor, just to have to throw it all away because a user configuration (a property being set, for example) requires a different state. This is the last call inside efl_add() and will set %%[[:develop:api:efl:object:property:finalized|Efl.Object.finalized]]%% to %%''true''%% once it returns. This is an optimization and implementing this method is optional if you already perform all your initialization in the %%[[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]%% method. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:method:finalize:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:canvas:object:method:finalize|Efl.Object.finalize]].//===== Signature =====
+
+
+finalize {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_finalize(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]
+ * [[:develop:api:efl:loop_handler:method:finalize|Efl.Loop_Handler.finalize]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:finalize|Efl.Ui.Position_Manager.Grid.finalize]]
+ * [[:develop:api:efl:canvas:layout_part:method:finalize|Efl.Canvas.Layout_Part.finalize]]
+ * [[:develop:api:efl:net:server_udp_client:method:finalize|Efl.Net.Server_Udp_Client.finalize]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:finalize|Efl.Ui.Widget_Part_Bg.finalize]]
+ * [[:develop:api:efl:ui:layout_part_bg:method:finalize|Efl.Ui.Layout_Part_Bg.finalize]]
+ * [[:develop:api:efl:io:buffered_stream:method:finalize|Efl.Io.Buffered_Stream.finalize]]
+ * [[:develop:api:efl:net:dialer_simple:method:finalize|Efl.Net.Dialer_Simple.finalize]]
+ * [[:develop:api:efl:io:file:method:finalize|Efl.Io.File.finalize]]
+ * [[:develop:api:efl:net:server_fd:method:finalize|Efl.Net.Server_Fd.finalize]]
+ * [[:develop:api:efl:io:stderr:method:finalize|Efl.Io.Stderr.finalize]]
+ * [[:develop:api:efl:io:stdin:method:finalize|Efl.Io.Stdin.finalize]]
+ * [[:develop:api:efl:io:stdout:method:finalize|Efl.Io.Stdout.finalize]]
+ * [[:develop:api:efl:net:socket_fd:method:finalize|Efl.Net.Socket_Fd.finalize]]
+ * [[:develop:api:efl:net:socket_ssl:method:finalize|Efl.Net.Socket_Ssl.finalize]]
+ * [[:develop:api:efl:net:dialer_ssl:method:finalize|Efl.Net.Dialer_Ssl.finalize]]
+ * [[:develop:api:efl:canvas:object:method:finalize|Efl.Canvas.Object.finalize]]
+ * [[:develop:api:efl:canvas:image_internal:method:finalize|Efl.Canvas.Image_Internal.finalize]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:finalize|Efl.Ui.Internal.Text.Interactive.finalize]]
+ * [[:develop:api:efl:ui:widget:method:finalize|Efl.Ui.Widget.finalize]]
+ * [[:develop:api:efl:ui:win:method:finalize|Efl.Ui.Win.finalize]]
+ * [[:develop:api:efl:ui:win_socket:method:finalize|Efl.Ui.Win_Socket.finalize]]
+ * [[:develop:api:efl:ui:win_inlined:method:finalize|Efl.Ui.Win_Inlined.finalize]]
+ * [[:develop:api:efl:ui:layout_base:method:finalize|Efl.Ui.Layout_Base.finalize]]
+ * [[:develop:api:efl:ui:text:method:finalize|Efl.Ui.Text.finalize]]
+ * [[:develop:api:efl:ui:tab_bar:method:finalize|Efl.Ui.Tab_Bar.finalize]]
+ * [[:develop:api:efl:ui:item:method:finalize|Efl.Ui.Item.finalize]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:finalize|Efl.Ui.List_Placeholder_Item.finalize]]
+ * [[:develop:api:elm:code_widget:method:finalize|Elm.Code_Widget.finalize]]
+ * [[:develop:api:efl:ui:scroller:method:finalize|Efl.Ui.Scroller.finalize]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:finalize|Efl.Ui.Internal_Text_Scroller.finalize]]
+ * [[:develop:api:efl:ui:collection:method:finalize|Efl.Ui.Collection.finalize]]
+ * [[:develop:api:efl:ui:spotlight:container:method:finalize|Efl.Ui.Spotlight.Container.finalize]]
+ * [[:develop:api:efl:ui:tab_pager:method:finalize|Efl.Ui.Tab_Pager.finalize]]
+ * [[:develop:api:efl:ui:bg:method:finalize|Efl.Ui.Bg.finalize]]
+ * [[:develop:api:efl:canvas:vg:object:method:finalize|Efl.Canvas.Vg.Object.finalize]]
+ * [[:develop:api:efl:loop_timer:method:finalize|Efl.Loop_Timer.finalize]]
+ * [[:develop:api:eldbus:model:method:finalize|Eldbus.Model.finalize]]
+ * [[:develop:api:eldbus:model:proxy:method:finalize|Eldbus.Model.Proxy.finalize]]
+ * [[:develop:api:eldbus:model:arguments:method:finalize|Eldbus.Model.Arguments.finalize]]
+ * [[:develop:api:eldbus:model:method:method:finalize|Eldbus.Model.Method.finalize]]
+ * [[:develop:api:eldbus:model:object:method:finalize|Eldbus.Model.Object.finalize]]
+ * [[:develop:api:efl:composite_model:method:finalize|Efl.Composite_Model.finalize]]
+ * [[:develop:api:efl:container_model:method:finalize|Efl.Container_Model.finalize]]
+ * [[:develop:api:efl:ui:view_model:method:finalize|Efl.Ui.View_Model.finalize]]
+ * [[:develop:api:efl:io:model:method:finalize|Efl.Io.Model.finalize]]
+ * [[:develop:api:efl:net:server_simple:method:finalize|Efl.Net.Server_Simple.finalize]]
+ * [[:develop:api:efl:net:control:manager:method:finalize|Efl.Net.Control.Manager.finalize]]
+ * [[:develop:api:efl:ui:widget_factory:method:finalize|Efl.Ui.Widget_Factory.finalize]]
+ * [[:develop:api:efl:ui:caching_factory:method:finalize|Efl.Ui.Caching_Factory.finalize]]
+ * [[:develop:api:efl:thread:method:finalize|Efl.Thread.finalize]]
+ * [[:develop:api:efl:net:session:method:finalize|Efl.Net.Session.finalize]]
+ * [[:develop:api:efl:io:copier:method:finalize|Efl.Io.Copier.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:finalize|Efl.Ui.Focus.Manager_Calc.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:finalize|Efl.Ui.Focus.Manager_Root_Focus.finalize]]
+ * [[:develop:api:evas:canvas3d:node:method:finalize|Evas.Canvas3D.Node.finalize]]
+ * [[:develop:api:efl:net:ssl:context:method:finalize|Efl.Net.Ssl.Context.finalize]]
+ * [[:develop:api:efl:io:buffer:method:finalize|Efl.Io.Buffer.finalize]]
+ * [[:develop:api:efl:net:ip_address:method:finalize|Efl.Net.Ip_Address.finalize]]
+ * [[:develop:api:efl:io:queue:method:finalize|Efl.Io.Queue.finalize]]
+ * [[:develop:api:ector:renderer:method:finalize|Ector.Renderer.finalize]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/focus_grab.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/focus_grab.txt
new file mode 100644
index 00000000..5b4a07fc
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/focus_grab.txt
@@ -0,0 +1,27 @@
+~~Title: Efl.Ui.Widget.focus_grab~~
+====== Efl.Ui.Widget.focus_grab ======
+
+===== Description =====
+
+%%Focuses accessible widget.%%
+{{page>:develop:api-include:efl:ui:widget:method:focus_grab:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:access:component:method:focus_grab|Efl.Access.Component.focus_grab]].//===== Signature =====
+
+
+focus_grab @beta @protected {
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_access_component_focus_grab(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:component:method:focus_grab|Efl.Access.Component.focus_grab]]
+ * [[:develop:api:efl:ui:widget:method:focus_grab|Efl.Ui.Widget.focus_grab]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/focus_state_apply.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/focus_state_apply.txt
new file mode 100644
index 00000000..2657e4ba
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/focus_state_apply.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Widget.focus_state_apply~~
+====== Efl.Ui.Widget.focus_state_apply ======
+
+===== Description =====
+
+%%Apply a new focus state on the widget.%%
+
+%%This method is called internally by %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%%. Override it to change how a widget interacts with its focus manager. If a widget desires to change the applied configuration, it has to modify %%''configured_state''%% in addition to any internal changes.%%
+
+%%The default implementation (when this method is not overridden) applies %%''configured_state''%% using the %%''manager''%% contained inside.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:method:focus_state_apply:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+focus_state_apply @protected {
+ params {
+ @in current_state: Efl.Ui.Widget_Focus_State;
+ @inout configured_state: Efl.Ui.Widget_Focus_State;
+ @in redirect: Efl.Ui.Widget;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_focus_state_apply(Eo *obj, Efl_Ui_Widget_Focus_State current_state, Efl_Ui_Widget_Focus_State configured_state, Efl_Ui_Widget *redirect);
+
+
+===== Parameters =====
+
+ * **current_state** //(in)// - %%The current focus configuration of the widget.%%
+ * **configured_state** //(inout)// - %%The new configuration being set on the widget.%%
+ * **redirect** //(in)// - %%A redirect object if there is any%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:focus_state_apply|Efl.Ui.Widget.focus_state_apply]]
+ * [[:develop:api:efl:ui:collection_view:method:focus_state_apply|Efl.Ui.Collection_View.focus_state_apply]]
+ * [[:develop:api:efl:ui:scroller:method:focus_state_apply|Efl.Ui.Scroller.focus_state_apply]]
+ * [[:develop:api:efl:ui:collection:method:focus_state_apply|Efl.Ui.Collection.focus_state_apply]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/group_calculate.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/group_calculate.txt
new file mode 100644
index 00000000..66c04470
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/group_calculate.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Ui.Widget.group_calculate~~
+====== Efl.Ui.Widget.group_calculate ======
+
+===== Description =====
+
+%%Triggers an immediate recalculation of this object's geometry.%%
+
+%%This will also reset the flag %%[[:develop:api:efl:canvas:group:property:group_need_recalculate|Efl.Canvas.Group.group_need_recalculate]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:method:group_calculate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:canvas:group:method:group_calculate|Efl.Canvas.Group.group_calculate]].//===== Signature =====
+
+
+group_calculate {}
+
+
+===== C signature =====
+
+
+void efl_canvas_group_calculate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:group:method:group_calculate|Efl.Canvas.Group.group_calculate]]
+ * [[:develop:api:efl:canvas:event_grabber:method:group_calculate|Efl.Canvas.Event_Grabber.group_calculate]]
+ * [[:develop:api:efl:canvas:layout:method:group_calculate|Efl.Canvas.Layout.group_calculate]]
+ * [[:develop:api:efl:ui:widget:method:group_calculate|Efl.Ui.Widget.group_calculate]]
+ * [[:develop:api:efl:ui:table:method:group_calculate|Efl.Ui.Table.group_calculate]]
+ * [[:develop:api:efl:ui:box:method:group_calculate|Efl.Ui.Box.group_calculate]]
+ * [[:develop:api:efl:ui:layout_base:method:group_calculate|Efl.Ui.Layout_Base.group_calculate]]
+ * [[:develop:api:efl:ui:clock:method:group_calculate|Efl.Ui.Clock.group_calculate]]
+ * [[:develop:api:efl:ui:text:method:group_calculate|Efl.Ui.Text.group_calculate]]
+ * [[:develop:api:efl:ui:panel:method:group_calculate|Efl.Ui.Panel.group_calculate]]
+ * [[:develop:api:efl:ui:layout:method:group_calculate|Efl.Ui.Layout.group_calculate]]
+ * [[:develop:api:efl:ui:textpath:method:group_calculate|Efl.Ui.Textpath.group_calculate]]
+ * [[:develop:api:efl:ui:scroller:method:group_calculate|Efl.Ui.Scroller.group_calculate]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:group_calculate|Efl.Ui.Internal_Text_Scroller.group_calculate]]
+ * [[:develop:api:efl:ui:panes:method:group_calculate|Efl.Ui.Panes.group_calculate]]
+ * [[:develop:api:efl:ui:calendar:method:group_calculate|Efl.Ui.Calendar.group_calculate]]
+ * [[:develop:api:efl:ui:frame:method:group_calculate|Efl.Ui.Frame.group_calculate]]
+ * [[:develop:api:efl:ui:popup:method:group_calculate|Efl.Ui.Popup.group_calculate]]
+ * [[:develop:api:efl:ui:video:method:group_calculate|Efl.Ui.Video.group_calculate]]
+ * [[:develop:api:efl:ui:relative_layout:method:group_calculate|Efl.Ui.Relative_Layout.group_calculate]]
+ * [[:develop:api:efl:ui:pan:method:group_calculate|Efl.Ui.Pan.group_calculate]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:group_calculate|Efl.Ui.Image_Zoomable_Pan.group_calculate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/group_member_add.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/group_member_add.txt
new file mode 100644
index 00000000..ed139876
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/group_member_add.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Widget.group_member_add~~
+====== Efl.Ui.Widget.group_member_add ======
+
+===== Description =====
+
+%%Set a canvas object as a member of a given group (or smart object).%%
+
+%%Members will automatically be stacked and layered together with the smart object. The various stacking functions will operate on members relative to the other members instead of the entire canvas, since they now live on an exclusive layer (see %%[[:develop:api:efl:gfx:stack:method:stack_above|Efl.Gfx.Stack.stack_above]]%%(), for more details).%%
+
+%%Subclasses inheriting from this one may override this function to ensure the proper stacking of special objects, such as clippers, event rectangles, etc...%%
+
+%%See also %%[[:develop:api:efl:canvas:group:method:group_member_remove|Efl.Canvas.Group.group_member_remove]]%%. See also %%[[:develop:api:efl:canvas:group:method:group_member_is|Efl.Canvas.Group.group_member_is]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:method:group_member_add:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]].//===== Signature =====
+
+
+group_member_add {
+ params {
+ @in sub_obj: Efl.Canvas.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_canvas_group_member_add(Eo *obj, Efl_Canvas_Object *sub_obj);
+
+
+===== Parameters =====
+
+ * **sub_obj** //(in)// - %%The member object.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]
+ * [[:develop:api:efl:canvas:event_grabber:method:group_member_add|Efl.Canvas.Event_Grabber.group_member_add]]
+ * [[:develop:api:efl:ui:widget:method:group_member_add|Efl.Ui.Widget.group_member_add]]
+ * [[:develop:api:efl:ui:image:method:group_member_add|Efl.Ui.Image.group_member_add]]
+ * [[:develop:api:efl:ui:image_zoomable:method:group_member_add|Efl.Ui.Image_Zoomable.group_member_add]]
+ * [[:develop:api:efl:ui:text:method:group_member_add|Efl.Ui.Text.group_member_add]]
+ * [[:develop:api:efl:ui:panel:method:group_member_add|Efl.Ui.Panel.group_member_add]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/group_member_remove.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/group_member_remove.txt
new file mode 100644
index 00000000..5f12c723
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/group_member_remove.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Widget.group_member_remove~~
+====== Efl.Ui.Widget.group_member_remove ======
+
+===== Description =====
+
+%%Removes a member object from a given smart object.%%
+
+%%This removes a member object from a smart object, if it was added to any. The object will still be on the canvas, but no longer associated with whichever smart object it was associated with.%%
+
+%%See also %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%. See also %%[[:develop:api:efl:canvas:group:method:group_member_is|Efl.Canvas.Group.group_member_is]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:method:group_member_remove:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:canvas:group:method:group_member_remove|Efl.Canvas.Group.group_member_remove]].//===== Signature =====
+
+
+group_member_remove {
+ params {
+ @in sub_obj: Efl.Canvas.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_canvas_group_member_remove(Eo *obj, Efl_Canvas_Object *sub_obj);
+
+
+===== Parameters =====
+
+ * **sub_obj** //(in)// - %%The member object to remove.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:group:method:group_member_remove|Efl.Canvas.Group.group_member_remove]]
+ * [[:develop:api:efl:canvas:event_grabber:method:group_member_remove|Efl.Canvas.Event_Grabber.group_member_remove]]
+ * [[:develop:api:efl:ui:widget:method:group_member_remove|Efl.Ui.Widget.group_member_remove]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/invalidate.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/invalidate.txt
new file mode 100644
index 00000000..14c49f04
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/invalidate.txt
@@ -0,0 +1,74 @@
+~~Title: Efl.Ui.Widget.invalidate~~
+====== Efl.Ui.Widget.invalidate ======
+
+===== Description =====
+
+%%Implement this method to perform special actions when your object loses its parent, if you need to.%%
+
+%%It is called when the parent reference is lost or set to %%''NULL''%%. After this call returns, %%[[:develop:api:efl:object:property:invalidated|Efl.Object.invalidated]]%% is set to %%''true''%%. This allows a simpler tear down of complex hierarchies, by performing object destruction in two steps, first all object relationships are broken and then the isolated objects are destroyed. Performing everything in the %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%% can sometimes lead to deadlocks, but implementing this method is optional if this is not your case. When an object with a parent is destroyed, it first receives a call to %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% and then to %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:method:invalidate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:canvas:object:method:invalidate|Efl.Object.invalidate]].//===== Signature =====
+
+
+invalidate {}
+
+
+===== C signature =====
+
+
+void efl_invalidate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]
+ * [[:develop:api:efl:canvas:vg:node:method:invalidate|Efl.Canvas.Vg.Node.invalidate]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:invalidate|Efl.Ui.Position_Manager.Grid.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:manager_scroll:method:invalidate|Efl.Ui.Spotlight.Manager_Scroll.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:manager_stack:method:invalidate|Efl.Ui.Spotlight.Manager_Stack.invalidate]]
+ * [[:develop:api:efl:net:server_udp_client:method:invalidate|Efl.Net.Server_Udp_Client.invalidate]]
+ * [[:develop:api:efl:net:server_windows:method:invalidate|Efl.Net.Server_Windows.invalidate]]
+ * [[:develop:api:efl:io:buffered_stream:method:invalidate|Efl.Io.Buffered_Stream.invalidate]]
+ * [[:develop:api:efl:net:dialer_simple:method:invalidate|Efl.Net.Dialer_Simple.invalidate]]
+ * [[:develop:api:efl:loop_fd:method:invalidate|Efl.Loop_Fd.invalidate]]
+ * [[:develop:api:efl:net:server_ssl:method:invalidate|Efl.Net.Server_Ssl.invalidate]]
+ * [[:develop:api:efl:net:socket_fd:method:invalidate|Efl.Net.Socket_Fd.invalidate]]
+ * [[:develop:api:efl:net:dialer_udp:method:invalidate|Efl.Net.Dialer_Udp.invalidate]]
+ * [[:develop:api:efl:net:dialer_unix:method:invalidate|Efl.Net.Dialer_Unix.invalidate]]
+ * [[:develop:api:efl:net:dialer_tcp:method:invalidate|Efl.Net.Dialer_Tcp.invalidate]]
+ * [[:develop:api:efl:net:socket_ssl:method:invalidate|Efl.Net.Socket_Ssl.invalidate]]
+ * [[:develop:api:efl:net:dialer_ssl:method:invalidate|Efl.Net.Dialer_Ssl.invalidate]]
+ * [[:develop:api:efl:canvas:object:method:invalidate|Efl.Canvas.Object.invalidate]]
+ * [[:develop:api:efl:canvas:layout:method:invalidate|Efl.Canvas.Layout.invalidate]]
+ * [[:develop:api:efl:ui:widget:method:invalidate|Efl.Ui.Widget.invalidate]]
+ * [[:develop:api:efl:ui:table:method:invalidate|Efl.Ui.Table.invalidate]]
+ * [[:develop:api:efl:ui:box:method:invalidate|Efl.Ui.Box.invalidate]]
+ * [[:develop:api:efl:ui:image:method:invalidate|Efl.Ui.Image.invalidate]]
+ * [[:develop:api:efl:ui:layout_base:method:invalidate|Efl.Ui.Layout_Base.invalidate]]
+ * [[:develop:api:efl:ui:collection_view:method:invalidate|Efl.Ui.Collection_View.invalidate]]
+ * [[:develop:api:efl:ui:group_item:method:invalidate|Efl.Ui.Group_Item.invalidate]]
+ * [[:develop:api:efl:ui:collection:method:invalidate|Efl.Ui.Collection.invalidate]]
+ * [[:develop:api:efl:ui:spotlight:container:method:invalidate|Efl.Ui.Spotlight.Container.invalidate]]
+ * [[:develop:api:efl:ui:relative_layout:method:invalidate|Efl.Ui.Relative_Layout.invalidate]]
+ * [[:develop:api:efl:canvas:vg:object:method:invalidate|Efl.Canvas.Vg.Object.invalidate]]
+ * [[:develop:api:efl:loop_model:method:invalidate|Efl.Loop_Model.invalidate]]
+ * [[:develop:api:eldbus:model:method:invalidate|Eldbus.Model.invalidate]]
+ * [[:develop:api:eldbus:model:connection:method:invalidate|Eldbus.Model.Connection.invalidate]]
+ * [[:develop:api:eldbus:model:proxy:method:invalidate|Eldbus.Model.Proxy.invalidate]]
+ * [[:develop:api:eldbus:model:arguments:method:invalidate|Eldbus.Model.Arguments.invalidate]]
+ * [[:develop:api:eldbus:model:signal:method:invalidate|Eldbus.Model.Signal.invalidate]]
+ * [[:develop:api:eldbus:model:object:method:invalidate|Eldbus.Model.Object.invalidate]]
+ * [[:develop:api:efl:composite_model:method:invalidate|Efl.Composite_Model.invalidate]]
+ * [[:develop:api:efl:ui:select_model:method:invalidate|Efl.Ui.Select_Model.invalidate]]
+ * [[:develop:api:efl:io:model:method:invalidate|Efl.Io.Model.invalidate]]
+ * [[:develop:api:efl:net:dialer_websocket:method:invalidate|Efl.Net.Dialer_Websocket.invalidate]]
+ * [[:develop:api:efl:net:server_simple:method:invalidate|Efl.Net.Server_Simple.invalidate]]
+ * [[:develop:api:efl:ui:caching_factory:method:invalidate|Efl.Ui.Caching_Factory.invalidate]]
+ * [[:develop:api:efl:loop:method:invalidate|Efl.Loop.invalidate]]
+ * [[:develop:api:efl:net:dialer_http:method:invalidate|Efl.Net.Dialer_Http.invalidate]]
+ * [[:develop:api:efl:io:copier:method:invalidate|Efl.Io.Copier.invalidate]]
+ * [[:develop:api:efl:ui:position_manager:list:method:invalidate|Efl.Ui.Position_Manager.List.invalidate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/on_access_activate.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/on_access_activate.txt
new file mode 100644
index 00000000..aac8ce51
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/on_access_activate.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Widget.on_access_activate~~
+====== Efl.Ui.Widget.on_access_activate ======
+
+===== Description =====
+
+%%Hook function called when widget is activated through accessibility.%%
+
+%%This meant to be overridden by subclasses to support accessibility. This is an unstable API.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:method:on_access_activate:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+on_access_activate @beta @protected {
+ params {
+ @in act: Efl.Ui.Activate;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_on_access_activate(Eo *obj, Efl_Ui_Activate act);
+
+
+===== Parameters =====
+
+ * **act** //(in)// - %%Type of activation.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:on_access_activate|Efl.Ui.Widget.on_access_activate]]
+ * [[:develop:api:efl:ui:slider:method:on_access_activate|Efl.Ui.Slider.on_access_activate]]
+ * [[:develop:api:efl:ui:check:method:on_access_activate|Efl.Ui.Check.on_access_activate]]
+ * [[:develop:api:efl:ui:radio:method:on_access_activate|Efl.Ui.Radio.on_access_activate]]
+ * [[:develop:api:efl:ui:text:method:on_access_activate|Efl.Ui.Text.on_access_activate]]
+ * [[:develop:api:efl:ui:slider_interval:method:on_access_activate|Efl.Ui.Slider_Interval.on_access_activate]]
+ * [[:develop:api:efl:ui:button:method:on_access_activate|Efl.Ui.Button.on_access_activate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/on_access_update.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/on_access_update.txt
new file mode 100644
index 00000000..6ec56c1d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/on_access_update.txt
@@ -0,0 +1,38 @@
+~~Title: Efl.Ui.Widget.on_access_update~~
+====== Efl.Ui.Widget.on_access_update ======
+
+===== Description =====
+
+%%Hook function called when accessibility is changed on the widget.%%
+
+%%This meant to be overridden by subclasses to support accessibility. This is an unstable API.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:method:on_access_update:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+on_access_update @beta @protected {
+ params {
+ @in enable: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_widget_on_access_update(Eo *obj, Eina_Bool enable);
+
+
+===== Parameters =====
+
+ * **enable** //(in)// - %%%%''true''%% if accessibility is enabled.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:on_access_update|Efl.Ui.Widget.on_access_update]]
+ * [[:develop:api:efl:ui:panel:method:on_access_update|Efl.Ui.Panel.on_access_update]]
+ * [[:develop:api:efl:ui:calendar:method:on_access_update|Efl.Ui.Calendar.on_access_update]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/on_focus_update.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/on_focus_update.txt
new file mode 100644
index 00000000..26f1b210
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/on_focus_update.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.Widget.on_focus_update~~
+====== Efl.Ui.Widget.on_focus_update ======
+
+===== Description =====
+
+%%Virtual function handling focus in/out events on the widget.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:method:on_focus_update:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:focus:object:method:on_focus_update|Efl.Ui.Focus.Object.on_focus_update]].//===== Signature =====
+
+
+on_focus_update @protected {
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_focus_object_on_focus_update(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:object:method:on_focus_update|Efl.Ui.Focus.Object.on_focus_update]]
+ * [[:develop:api:efl:ui:widget:method:on_focus_update|Efl.Ui.Widget.on_focus_update]]
+ * [[:develop:api:efl:ui:win:method:on_focus_update|Efl.Ui.Win.on_focus_update]]
+ * [[:develop:api:efl:ui:image_zoomable:method:on_focus_update|Efl.Ui.Image_Zoomable.on_focus_update]]
+ * [[:develop:api:efl:ui:layout_base:method:on_focus_update|Efl.Ui.Layout_Base.on_focus_update]]
+ * [[:develop:api:efl:ui:slider:method:on_focus_update|Efl.Ui.Slider.on_focus_update]]
+ * [[:develop:api:efl:ui:text:method:on_focus_update|Efl.Ui.Text.on_focus_update]]
+ * [[:develop:api:efl:ui:spin_button:method:on_focus_update|Efl.Ui.Spin_Button.on_focus_update]]
+ * [[:develop:api:efl:ui:calendar:method:on_focus_update|Efl.Ui.Calendar.on_focus_update]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/part_get.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/part_get.txt
new file mode 100644
index 00000000..4b76e2d9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/part_get.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Widget.part_get~~
+====== Efl.Ui.Widget.part_get ======
+
+===== Description =====
+
+%%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:method:part_get:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:part:method:part_get|Efl.Part.part_get]].//===== Signature =====
+
+
+part_get @protected @const @pure_virtual {
+ params {
+ @in name: string;
+ }
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_part_get(const Eo *obj, const char *name);
+
+
+===== Parameters =====
+
+ * **name** //(in)// - %%The part name.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:part:method:part_get|Efl.Part.part_get]]
+ * [[:develop:api:efl:canvas:layout:method:part_get|Efl.Canvas.Layout.part_get]]
+ * [[:develop:api:efl:ui:widget:method:part_get|Efl.Ui.Widget.part_get]]
+ * [[:develop:api:efl:ui:win:method:part_get|Efl.Ui.Win.part_get]]
+ * [[:develop:api:efl:ui:flip:method:part_get|Efl.Ui.Flip.part_get]]
+ * [[:develop:api:efl:ui:layout_base:method:part_get|Efl.Ui.Layout_Base.part_get]]
+ * [[:develop:api:efl:ui:text:method:part_get|Efl.Ui.Text.part_get]]
+ * [[:develop:api:efl:ui:default_item:method:part_get|Efl.Ui.Default_Item.part_get]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:part_get|Efl.Ui.List_Placeholder_Item.part_get]]
+ * [[:develop:api:efl:ui:textpath:method:part_get|Efl.Ui.Textpath.part_get]]
+ * [[:develop:api:efl:ui:panes:method:part_get|Efl.Ui.Panes.part_get]]
+ * [[:develop:api:efl:ui:progressbar:method:part_get|Efl.Ui.Progressbar.part_get]]
+ * [[:develop:api:efl:ui:popup:method:part_get|Efl.Ui.Popup.part_get]]
+ * [[:develop:api:efl:ui:alert_popup:method:part_get|Efl.Ui.Alert_Popup.part_get]]
+ * [[:develop:api:efl:ui:navigation_bar:method:part_get|Efl.Ui.Navigation_Bar.part_get]]
+ * [[:develop:api:efl:ui:widget_factory:method:part_get|Efl.Ui.Widget_Factory.part_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/property_bind.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/property_bind.txt
new file mode 100644
index 00000000..5cfee902
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/property_bind.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Widget.property_bind~~
+====== Efl.Ui.Widget.property_bind ======
+
+===== Description =====
+
+%%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:widget:method:property_bind:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]].//===== Signature =====
+
+
+property_bind @pure_virtual {
+ params {
+ @in key: string;
+ @in property: string;
+ }
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_property_bind(Eo *obj, const char *key, const char *property);
+
+
+===== Parameters =====
+
+ * **key** //(in)// - %%key string for bind model property data%%
+ * **property** //(in)// - %%Model property name%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]
+ * [[:develop:api:efl:ui:widget_factory:method:property_bind|Efl.Ui.Widget_Factory.property_bind]]
+ * [[:develop:api:efl:ui:caching_factory:method:property_bind|Efl.Ui.Caching_Factory.property_bind]]
+ * [[:develop:api:efl:ui:image_factory:method:property_bind|Efl.Ui.Image_Factory.property_bind]]
+ * [[:develop:api:efl:ui:layout_factory:method:property_bind|Efl.Ui.Layout_Factory.property_bind]]
+ * [[:develop:api:efl:ui:widget_part:method:property_bind|Efl.Ui.Widget_Part.property_bind]]
+ * [[:develop:api:efl:ui:widget:method:property_bind|Efl.Ui.Widget.property_bind]]
+ * [[:develop:api:efl:ui:image:method:property_bind|Efl.Ui.Image.property_bind]]
+ * [[:develop:api:efl:ui:layout_base:method:property_bind|Efl.Ui.Layout_Base.property_bind]]
+ * [[:develop:api:efl:ui:property_bind_part:method:property_bind|Efl.Ui.Property_Bind_Part.property_bind]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/provider_find.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/provider_find.txt
new file mode 100644
index 00000000..336b6150
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/provider_find.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Widget.provider_find~~
+====== Efl.Ui.Widget.provider_find ======
+
+===== Description =====
+
+%%Searches upwards in the object tree for a provider which knows the given class/interface.%%
+
+%%The object from the provider will then be returned. The base implementation calls the provider_find function on the object parent, and returns its result. If no parent is present %%''NULL''%% is returned. Each implementation has to support this function by overriding it and returning itself if the interface matches the parameter. If this is not done the class cannot be found up in the object tree.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:method:provider_find:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:canvas:object:method:provider_find|Efl.Object.provider_find]].//===== Signature =====
+
+
+provider_find @const {
+ params {
+ @in klass: const(Efl.Class);
+ }
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_provider_find(const Eo *obj, const Efl_Class *klass);
+
+
+===== Parameters =====
+
+ * **klass** //(in)// - %%The class identifier to search for.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]
+ * [[:develop:api:efl:canvas:object:method:provider_find|Efl.Canvas.Object.provider_find]]
+ * [[:develop:api:efl:ui:widget:method:provider_find|Efl.Ui.Widget.provider_find]]
+ * [[:develop:api:efl:ui:win:method:provider_find|Efl.Ui.Win.provider_find]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:provider_find|Efl.Ui.Focus.Manager_Calc.provider_find]]
+ * [[:develop:api:evas:canvas3d:object:method:provider_find|Evas.Canvas3D.Object.provider_find]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/scroll_freeze_pop.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/scroll_freeze_pop.txt
new file mode 100644
index 00000000..c9541614
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/scroll_freeze_pop.txt
@@ -0,0 +1,26 @@
+~~Title: Efl.Ui.Widget.scroll_freeze_pop~~
+====== Efl.Ui.Widget.scroll_freeze_pop ======
+
+===== Description =====
+
+%%Pop scroller freeze%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:method:scroll_freeze_pop:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+scroll_freeze_pop @beta {}
+
+
+===== C signature =====
+
+
+void efl_ui_widget_scroll_freeze_pop(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:scroll_freeze_pop|Efl.Ui.Widget.scroll_freeze_pop]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/scroll_freeze_push.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/scroll_freeze_push.txt
new file mode 100644
index 00000000..087a3de4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/scroll_freeze_push.txt
@@ -0,0 +1,26 @@
+~~Title: Efl.Ui.Widget.scroll_freeze_push~~
+====== Efl.Ui.Widget.scroll_freeze_push ======
+
+===== Description =====
+
+%%Push scroller freeze%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:method:scroll_freeze_push:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+scroll_freeze_push @beta {}
+
+
+===== C signature =====
+
+
+void efl_ui_widget_scroll_freeze_push(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:scroll_freeze_push|Efl.Ui.Widget.scroll_freeze_push]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/scroll_hold_pop.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/scroll_hold_pop.txt
new file mode 100644
index 00000000..0d78caa4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/scroll_hold_pop.txt
@@ -0,0 +1,26 @@
+~~Title: Efl.Ui.Widget.scroll_hold_pop~~
+====== Efl.Ui.Widget.scroll_hold_pop ======
+
+===== Description =====
+
+%%Pop scroller hold%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:method:scroll_hold_pop:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+scroll_hold_pop @beta {}
+
+
+===== C signature =====
+
+
+void efl_ui_widget_scroll_hold_pop(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:scroll_hold_pop|Efl.Ui.Widget.scroll_hold_pop]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/scroll_hold_push.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/scroll_hold_push.txt
new file mode 100644
index 00000000..0bf0d67b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/scroll_hold_push.txt
@@ -0,0 +1,26 @@
+~~Title: Efl.Ui.Widget.scroll_hold_push~~
+====== Efl.Ui.Widget.scroll_hold_push ======
+
+===== Description =====
+
+%%Push scroll hold%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:method:scroll_hold_push:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+scroll_hold_push @beta {}
+
+
+===== C signature =====
+
+
+void efl_ui_widget_scroll_hold_push(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:scroll_hold_push|Efl.Ui.Widget.scroll_hold_push]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/theme_apply.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/theme_apply.txt
new file mode 100644
index 00000000..0c718c70
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/theme_apply.txt
@@ -0,0 +1,55 @@
+~~Title: Efl.Ui.Widget.theme_apply~~
+====== Efl.Ui.Widget.theme_apply ======
+
+===== Description =====
+
+%%Virtual function called when the widget needs to re-apply its theme.%%
+
+%%This may be called when the object is first created, or whenever the widget is modified in any way that may require a reload of the theme. This may include but is not limited to scale, theme, or mirrored mode changes.%%
+
+
+theme_apply @protected {
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_widget_theme_apply(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:theme_apply|Efl.Ui.Widget.theme_apply]]
+ * [[:develop:api:efl:ui:win:method:theme_apply|Efl.Ui.Win.theme_apply]]
+ * [[:develop:api:efl:ui:flip:method:theme_apply|Efl.Ui.Flip.theme_apply]]
+ * [[:develop:api:efl:ui:image:method:theme_apply|Efl.Ui.Image.theme_apply]]
+ * [[:develop:api:efl:ui:image_zoomable:method:theme_apply|Efl.Ui.Image_Zoomable.theme_apply]]
+ * [[:develop:api:efl:ui:layout_base:method:theme_apply|Efl.Ui.Layout_Base.theme_apply]]
+ * [[:develop:api:efl:ui:slider:method:theme_apply|Efl.Ui.Slider.theme_apply]]
+ * [[:develop:api:efl:ui:check:method:theme_apply|Efl.Ui.Check.theme_apply]]
+ * [[:develop:api:efl:ui:radio:method:theme_apply|Efl.Ui.Radio.theme_apply]]
+ * [[:develop:api:efl:ui:clock:method:theme_apply|Efl.Ui.Clock.theme_apply]]
+ * [[:develop:api:efl:ui:text:method:theme_apply|Efl.Ui.Text.theme_apply]]
+ * [[:develop:api:efl:ui:spin_button:method:theme_apply|Efl.Ui.Spin_Button.theme_apply]]
+ * [[:develop:api:efl:ui:collection_view:method:theme_apply|Efl.Ui.Collection_View.theme_apply]]
+ * [[:develop:api:efl:ui:panel:method:theme_apply|Efl.Ui.Panel.theme_apply]]
+ * [[:develop:api:efl:ui:slider_interval:method:theme_apply|Efl.Ui.Slider_Interval.theme_apply]]
+ * [[:develop:api:elm:code_widget:method:theme_apply|Elm.Code_Widget.theme_apply]]
+ * [[:develop:api:efl:ui:textpath:method:theme_apply|Efl.Ui.Textpath.theme_apply]]
+ * [[:develop:api:efl:ui:scroller:method:theme_apply|Efl.Ui.Scroller.theme_apply]]
+ * [[:develop:api:efl:ui:collection:method:theme_apply|Efl.Ui.Collection.theme_apply]]
+ * [[:develop:api:efl:ui:panes:method:theme_apply|Efl.Ui.Panes.theme_apply]]
+ * [[:develop:api:efl:ui:calendar:method:theme_apply|Efl.Ui.Calendar.theme_apply]]
+ * [[:develop:api:efl:ui:progressbar:method:theme_apply|Efl.Ui.Progressbar.theme_apply]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/translation_update.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/translation_update.txt
new file mode 100644
index 00000000..8e38a47f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/translation_update.txt
@@ -0,0 +1,28 @@
+~~Title: Efl.Ui.Widget.translation_update~~
+====== Efl.Ui.Widget.translation_update ======
+
+===== Description =====
+
+%%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:method:translation_update:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:l10n:method:translation_update|Efl.Ui.L10n.translation_update]].//===== Signature =====
+
+
+translation_update @protected @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_ui_l10n_translation_update(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:l10n:method:translation_update|Efl.Ui.L10n.translation_update]]
+ * [[:develop:api:efl:ui:widget:method:translation_update|Efl.Ui.Widget.translation_update]]
+ * [[:develop:api:efl:ui:clock:method:translation_update|Efl.Ui.Clock.translation_update]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/widget_input_event_handler.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/widget_input_event_handler.txt
new file mode 100644
index 00000000..6db48345
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/widget_input_event_handler.txt
@@ -0,0 +1,57 @@
+~~Title: Efl.Ui.Widget.widget_input_event_handler~~
+====== Efl.Ui.Widget.widget_input_event_handler ======
+
+===== Description =====
+
+%%Virtual function handling input events on the widget.%%
+
+%%This method should return %%''true''%% if the event has been processed. Only key down, key up and pointer wheel events will be propagated through this function.%%
+
+%%It is common for the event to be also marked as processed as in %%[[:develop:api:efl:input:event:property:processed|Efl.Input.Event.processed]]%%, if this operation was successful. This makes sure other widgets will not also process this input event.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:method:widget_input_event_handler:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+widget_input_event_handler @protected {
+ params {
+ @in eo_event: const(event);
+ @in source: Efl.Canvas.Object;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_input_event_handler(Eo *obj, const Efl_Event *eo_event, Efl_Canvas_Object *source);
+
+
+===== Parameters =====
+
+ * **eo_event** //(in)// - %%EO event struct with an Efl.Input.Event as info.%%
+ * **source** //(in)// - %%Source object where the event originated. Often same as this.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:widget_input_event_handler|Efl.Ui.Widget.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:win:method:widget_input_event_handler|Efl.Ui.Win.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:image:method:widget_input_event_handler|Efl.Ui.Image.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:image_zoomable:method:widget_input_event_handler|Efl.Ui.Image_Zoomable.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:slider:method:widget_input_event_handler|Efl.Ui.Slider.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:check:method:widget_input_event_handler|Efl.Ui.Check.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:radio:method:widget_input_event_handler|Efl.Ui.Radio.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:spin_button:method:widget_input_event_handler|Efl.Ui.Spin_Button.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:panel:method:widget_input_event_handler|Efl.Ui.Panel.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:item:method:widget_input_event_handler|Efl.Ui.Item.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:slider_interval:method:widget_input_event_handler|Efl.Ui.Slider_Interval.widget_input_event_handler]]
+ * [[:develop:api:elm:code_widget:method:widget_input_event_handler|Elm.Code_Widget.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:tags:method:widget_input_event_handler|Efl.Ui.Tags.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:scroller:method:widget_input_event_handler|Efl.Ui.Scroller.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:calendar:method:widget_input_event_handler|Efl.Ui.Calendar.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:video:method:widget_input_event_handler|Efl.Ui.Video.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:button:method:widget_input_event_handler|Efl.Ui.Button.widget_input_event_handler]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/widget_sub_object_add.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/widget_sub_object_add.txt
new file mode 100644
index 00000000..94889ab0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/widget_sub_object_add.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Widget.widget_sub_object_add~~
+====== Efl.Ui.Widget.widget_sub_object_add ======
+
+===== Description =====
+
+%%Virtual function customizing sub objects being added.%%
+
+%%When a widget is added as a sub-object of another widget (like list elements inside a list container, for example) some of its properties are automatically adapted to the parent's current values (like focus, access, theme, scale, mirror, scrollable child get, translate, display mode set, tree dump). Override this method if you want to customize differently sub-objects being added to this object.%%
+
+%%Sub objects can be any canvas object, not necessarily widgets.%%
+
+%%See also %%[[:develop:api:efl:ui:widget:property:widget_parent|Efl.Ui.Widget.widget_parent]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:method:widget_sub_object_add:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+widget_sub_object_add @protected {
+ params {
+ @in sub_obj: Efl.Canvas.Object;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_sub_object_add(Eo *obj, Efl_Canvas_Object *sub_obj);
+
+
+===== Parameters =====
+
+ * **sub_obj** //(in)// - %%Sub object to be added. Not necessarily a widget itself.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:widget_sub_object_add|Efl.Ui.Widget.widget_sub_object_add]]
+ * [[:develop:api:efl:ui:flip:method:widget_sub_object_add|Efl.Ui.Flip.widget_sub_object_add]]
+ * [[:develop:api:efl:ui:layout_base:method:widget_sub_object_add|Efl.Ui.Layout_Base.widget_sub_object_add]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/method/widget_sub_object_del.txt b/public_html/data/pages/develop/api/efl/ui/widget/method/widget_sub_object_del.txt
new file mode 100644
index 00000000..41337bf1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/method/widget_sub_object_del.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Widget.widget_sub_object_del~~
+====== Efl.Ui.Widget.widget_sub_object_del ======
+
+===== Description =====
+
+%%Virtual function customizing sub objects being removed.%%
+
+%%When a widget is removed as a sub-object from another widget (%%[[:develop:api:efl:pack:method:unpack|Efl.Pack.unpack]]%%, %%[[:develop:api:efl:content:method:content_unset|Efl.Content.content_unset]]%%, for example) some of its properties are automatically adjusted.(like focus, access, tree dump) Override this method if you want to customize differently sub-objects being removed to this object.%%
+
+%%Sub objects can be any canvas object, not necessarily widgets.%%
+
+%%See also %%[[:develop:api:efl:ui:widget:property:widget_parent|Efl.Ui.Widget.widget_parent]]%% and %%[[:develop:api:efl:ui:widget:method:widget_sub_object_add|Efl.Ui.Widget.widget_sub_object_add]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:method:widget_sub_object_del:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+widget_sub_object_del @protected {
+ params {
+ @in sub_obj: Efl.Canvas.Object;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_sub_object_del(Eo *obj, Efl_Canvas_Object *sub_obj);
+
+
+===== Parameters =====
+
+ * **sub_obj** //(in)// - %%Sub object to be removed. Should be a child of this widget.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:widget_sub_object_del|Efl.Ui.Widget.widget_sub_object_del]]
+ * [[:develop:api:efl:ui:flip:method:widget_sub_object_del|Efl.Ui.Flip.widget_sub_object_del]]
+ * [[:develop:api:efl:ui:layout_base:method:widget_sub_object_del|Efl.Ui.Layout_Base.widget_sub_object_del]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/access_children.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/access_children.txt
new file mode 100644
index 00000000..8c6c5f7c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/access_children.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.Ui.Widget.access_children~~
+====== Efl.Ui.Widget.access_children ======
+
+===== Values =====
+
+ * **children** - %%List of widget's children%%
+
+
+\\ {{page>:develop:api-include:efl:ui:widget:property:access_children:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:access:object:property:access_children|Efl.Access.Object.access_children]] **(get)**.//===== Signature =====
+
+
+@property access_children @beta {
+ get @protected {}
+ values {
+ children: list;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_List *efl_access_object_access_children_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:object:property:access_children|Efl.Access.Object.access_children]]
+ * [[:develop:api:efl:ui:widget:property:access_children|Efl.Ui.Widget.access_children]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/access_info.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/access_info.txt
new file mode 100644
index 00000000..922765c5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/access_info.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Widget.access_info~~
+====== Efl.Ui.Widget.access_info ======
+
+===== Description =====
+
+%%Accessibility information.%%
+
+%%This is a replacement string to be read by the accessibility text-to-speech engine, if accessibility is enabled by configuration. This will take precedence over the default text for this object, which means for instance that the label of a button won't be read out loud, instead %%''txt''%% will be read out.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:property:access_info:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **txt** - %%Accessibility text description.%%
+
+===== Signature =====
+
+
+@property access_info @beta {
+ get {}
+ set {}
+ values {
+ txt: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_ui_widget_access_info_get(const Eo *obj);
+void efl_ui_widget_access_info_set(Eo *obj, const char *txt);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:property:access_info|Efl.Ui.Widget.access_info]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/attributes.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/attributes.txt
new file mode 100644
index 00000000..36118f50
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/attributes.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.Ui.Widget.attributes~~
+====== Efl.Ui.Widget.attributes ======
+
+===== Values =====
+
+ * **attributes** - %%List of object attributes. Must be freed by the user%%
+
+
+\\ {{page>:develop:api-include:efl:ui:widget:property:attributes:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:access:object:property:attributes|Efl.Access.Object.attributes]] **(get)**.//===== Signature =====
+
+
+@property attributes @beta {
+ get @protected {}
+ values {
+ attributes: list;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_List *efl_access_object_attributes_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:object:property:attributes|Efl.Access.Object.attributes]]
+ * [[:develop:api:efl:ui:widget:property:attributes|Efl.Ui.Widget.attributes]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/clipper.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/clipper.txt
new file mode 100644
index 00000000..738a8380
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/clipper.txt
@@ -0,0 +1,58 @@
+~~Title: Efl.Ui.Widget.clipper~~
+====== Efl.Ui.Widget.clipper ======
+
+===== Description =====
+
+%%Clip one object to another.%%
+
+%%This property will clip the object %%''obj''%% to the area occupied by the object %%''clip''%%. This means the object %%''obj''%% will only be visible within the area occupied by the clipping object (%%''clip''%%).%%
+
+%%The color of the object being clipped will be multiplied by the color of the clipping one, so the resulting color for the former will be "RESULT = (OBJ * CLIP) / (255 * 255)", per color element (red, green, blue and alpha).%%
+
+%%Clipping is recursive, so clipping objects may be clipped by others, and their color will in term be multiplied. You may not set up circular clipping lists (i.e. object 1 clips object 2, which clips object 1): the behavior of Evas is undefined in this case.%%
+
+%%Objects which do not clip others are visible in the canvas as normal; those that clip one or more objects become invisible themselves, only affecting what they clip. If an object ceases to have other objects being clipped by it, it will become visible again.%%
+
+%%The visibility of an object affects the objects that are clipped by it, so if the object clipping others is not shown (as in %%[[:develop:api:efl:gfx:entity:property:visible|Efl.Gfx.Entity.visible]]%%), the objects clipped by it will not be shown either.%%
+
+%%If %%''obj''%% was being clipped by another object when this function is called, it gets implicitly removed from the old clipper's domain and is made now to be clipped by its new clipper.%%
+
+%%If %%''clip''%% is %%''null''%%, this call will disable clipping for the object i.e. its visibility and color get detached from the previous clipper. If it wasn't, this has no effect.%%
+
+
+@property clipper {
+ get {}
+ set {}
+ values {
+ clipper: Efl.Canvas.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Canvas_Object *efl_canvas_object_clipper_get(const Eo *obj);
+void efl_canvas_object_clipper_set(Eo *obj, Efl_Canvas_Object *clipper);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:property:clipper|Efl.Canvas.Object.clipper]]
+ * [[:develop:api:efl:canvas:group:property:clipper|Efl.Canvas.Group.clipper]]
+ * [[:develop:api:efl:ui:widget:property:clipper|Efl.Ui.Widget.clipper]]
+ * [[:develop:api:efl:ui:image:property:clipper|Efl.Ui.Image.clipper]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/color.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/color.txt
new file mode 100644
index 00000000..32668a69
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/color.txt
@@ -0,0 +1,69 @@
+~~Title: Efl.Ui.Widget.color~~
+====== Efl.Ui.Widget.color ======
+
+===== Description =====
+
+%%The general/main color of the given Evas object.%%
+
+%%Represents the main color's RGB component (and alpha channel) values, which range from 0 to 255. For the alpha channel, which defines the object's transparency level, 0 means totally transparent, while 255 means opaque. These color values are premultiplied by the alpha value.%%
+
+%%Usually you'll use this attribute for text and rectangle objects, where the main color is the only color. If set for objects which themselves have colors, like the images one, those colors get modulated by this one.%%
+
+%%All newly created Evas rectangles get the default color values of 255 255 255 255 (opaque white).%%
+
+%%When reading this property, use %%''NULL''%% pointers on the components you're not interested in and they'll be ignored by the function.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:widget:property:color:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **r** - No description supplied.
+ * **g** - No description supplied.
+ * **b** - No description supplied.
+ * **a** - No description supplied.
+==== Setter ====
+
+%%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:property:color:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:canvas:group:property:color|Efl.Gfx.Color.color]] **(set)**.//===== Signature =====
+
+
+@property color @pure_virtual {
+ get {}
+ set {}
+ values {
+ r: int;
+ g: int;
+ b: int;
+ a: int;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_color_get(const Eo *obj, int *r, int *g, int *b, int *a);
+void efl_gfx_color_set(Eo *obj, int r, int g, int b, int a);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:color:property:color|Efl.Gfx.Color.color]]
+ * [[:develop:api:efl:canvas:vg:node:property:color|Efl.Canvas.Vg.Node.color]]
+ * [[:develop:api:efl:ui:win_part:property:color|Efl.Ui.Win_Part.color]]
+ * [[:develop:api:efl:ui:widget_part_shadow:property:color|Efl.Ui.Widget_Part_Shadow.color]]
+ * [[:develop:api:efl:canvas:object:property:color|Efl.Canvas.Object.color]]
+ * [[:develop:api:efl:canvas:group:property:color|Efl.Canvas.Group.color]]
+ * [[:develop:api:efl:ui:widget:property:color|Efl.Ui.Widget.color]]
+ * [[:develop:api:efl:ui:image:property:color|Efl.Ui.Image.color]]
+ * [[:develop:api:efl:ui:bg:property:color|Efl.Ui.Bg.color]]
+ * [[:develop:api:efl:ui:widget_part_bg:property:color|Efl.Ui.Widget_Part_Bg.color]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/cursor.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/cursor.txt
new file mode 100644
index 00000000..c16b3432
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/cursor.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Ui.Widget.cursor~~
+====== Efl.Ui.Widget.cursor ======
+
+===== Description =====
+
+%%The cursor to be shown when mouse is over the object%%
+
+%%This is the cursor that will be displayed when mouse is over the object. The object can have only one cursor set to it so if %%[[:develop:api:efl:ui:widget:property:cursor|Efl.Ui.Widget.cursor.set]]%% is called twice for an object, the previous set will be unset.%%
+
+%%If using X cursors, a definition of all the valid cursor names is listed on Elementary_Cursors.h. If an invalid name is set the default cursor will be used.%%
+
+%%If %%''cursor''%% is set to %%''null''%% it will be reset to the default one.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:property:cursor:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **cursor** - %%The cursor name, defined either by the display system or the theme.%%
+
+===== Signature =====
+
+
+@property cursor @beta {
+ get {}
+ set {
+ return: bool;
+ }
+ values {
+ cursor: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_ui_widget_cursor_get(const Eo *obj);
+Eina_Bool efl_ui_widget_cursor_set(Eo *obj, const char *cursor);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:property:cursor|Efl.Ui.Widget.cursor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/cursor_style.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/cursor_style.txt
new file mode 100644
index 00000000..1936bbcc
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/cursor_style.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Widget.cursor_style~~
+====== Efl.Ui.Widget.cursor_style ======
+
+===== Description =====
+
+%%A different style for the cursor.%%
+
+%%This only makes sense if theme cursors are used. The cursor should be set with %%[[:develop:api:efl:ui:widget:property:cursor|Efl.Ui.Widget.cursor.set]]%% first before setting its style with this property.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:property:cursor_style:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **style** - %%A specific style to use, e.g. default, transparent, ....%%
+
+===== Signature =====
+
+
+@property cursor_style @beta {
+ get {}
+ set {
+ return: bool;
+ }
+ values {
+ style: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_ui_widget_cursor_style_get(const Eo *obj);
+Eina_Bool efl_ui_widget_cursor_style_set(Eo *obj, const char *style);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:property:cursor_style|Efl.Ui.Widget.cursor_style]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/cursor_theme_search_enabled.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/cursor_theme_search_enabled.txt
new file mode 100644
index 00000000..4c870b0c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/cursor_theme_search_enabled.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Widget.cursor_theme_search_enabled~~
+====== Efl.Ui.Widget.cursor_theme_search_enabled ======
+
+===== Description =====
+
+%%Whether the cursor may be looked in the theme or not.%%
+
+%%If %%''false''%%, the cursor may only come from the render engine, i.e. from the display manager.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:property:cursor_theme_search_enabled:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **allow** - %%Whether to use theme cursors.%%
+
+===== Signature =====
+
+
+@property cursor_theme_search_enabled @beta {
+ get {}
+ set {
+ return: bool;
+ }
+ values {
+ allow: bool (true);
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_cursor_theme_search_enabled_get(const Eo *obj);
+Eina_Bool efl_ui_widget_cursor_theme_search_enabled_set(Eo *obj, Eina_Bool allow);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|Efl.Ui.Widget.cursor_theme_search_enabled]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/disabled.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/disabled.txt
new file mode 100644
index 00000000..6320954c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/disabled.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Widget.disabled~~
+====== Efl.Ui.Widget.disabled ======
+
+===== Description =====
+
+%%Whether the widget is enabled (accepts and reacts to user inputs).%%
+
+%%Each widget may handle the disabled state differently, but overall disabled widgets shall not respond to any input events. This is %%''false''%% by default, meaning the widget is enabled.%%
+
+%%Disabling a widget will disable all its children recursively, but only this widget will be marked as disabled internally.%%
+
+%%This will return %%''true''%% if any widget in the parent hierarchy is disabled. Re-enabling that parent may in turn change the disabled state of this widget.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:property:disabled:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **disabled** - %%%%''true''%% if the widget is disabled.%%
+
+===== Signature =====
+
+
+@property disabled {
+ get {}
+ set {}
+ values {
+ disabled: bool (false);
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_disabled_get(const Eo *obj);
+void efl_ui_widget_disabled_set(Eo *obj, Eina_Bool disabled);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:property:disabled|Efl.Ui.Widget.disabled]]
+ * [[:develop:api:efl:ui:layout_base:property:disabled|Efl.Ui.Layout_Base.disabled]]
+ * [[:develop:api:efl:ui:text:property:disabled|Efl.Ui.Text.disabled]]
+ * [[:develop:api:efl:ui:panel:property:disabled|Efl.Ui.Panel.disabled]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/focus.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/focus.txt
new file mode 100644
index 00000000..712bfee6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/focus.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Ui.Widget.focus~~
+====== Efl.Ui.Widget.focus ======
+
+===== Description =====
+
+%%Whether the widget is currently focused or not.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:widget:property:focus:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **focus** - %%The focused state of the object.%%
+==== Setter ====
+
+%%This is called by the manager and should never be called by anyone else.%%
+
+%%The function emits the focus state events, if focus is different to the previous state.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:property:focus:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:focus:object:property:focus|Efl.Ui.Focus.Object.focus]] **(set)**.//===== Signature =====
+
+
+@property focus {
+ get {}
+ set @protected {}
+ values {
+ focus: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_focus_object_focus_get(const Eo *obj);
+void efl_ui_focus_object_focus_set(Eo *obj, Eina_Bool focus);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:object:property:focus|Efl.Ui.Focus.Object.focus]]
+ * [[:develop:api:efl:ui:widget:property:focus|Efl.Ui.Widget.focus]]
+ * [[:develop:api:efl:ui:win:property:focus|Efl.Ui.Win.focus]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:property:focus|Efl.Ui.Focus.Composition_Adapter.focus]]
+ * [[:develop:api:efl:ui:calendar_item:property:focus|Efl.Ui.Calendar_Item.focus]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/focus_allow.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/focus_allow.txt
new file mode 100644
index 00000000..7ca7c15f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/focus_allow.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Ui.Widget.focus_allow~~
+====== Efl.Ui.Widget.focus_allow ======
+
+===== Description =====
+
+%%The ability for a widget to be focused.%%
+
+%%Unfocusable objects do nothing when programmatically focused. The nearest focusable parent object the one really getting focus. Also, when they receive mouse input, they will get the event, but not take away the focus from where it was previously.%%
+
+
+@property focus_allow {
+ get {}
+ set {}
+ values {
+ can_focus: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_focus_allow_get(const Eo *obj);
+void efl_ui_widget_focus_allow_set(Eo *obj, Eina_Bool can_focus);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:property:focus_allow|Efl.Ui.Widget.focus_allow]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/focus_geometry.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/focus_geometry.txt
new file mode 100644
index 00000000..0458ca09
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/focus_geometry.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Ui.Widget.focus_geometry~~
+====== Efl.Ui.Widget.focus_geometry ======
+
+===== Values =====
+
+ * **rect** - %%The geometry to use.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:widget:property:focus_geometry:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:focus:object:property:focus_geometry|Efl.Ui.Focus.Object.focus_geometry]] **(get)**.//===== Signature =====
+
+
+@property focus_geometry {
+ get {}
+ values {
+ rect: Eina.Rect;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Rect efl_ui_focus_object_focus_geometry_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:object:property:focus_geometry|Efl.Ui.Focus.Object.focus_geometry]]
+ * [[:develop:api:efl:ui:widget:property:focus_geometry|Efl.Ui.Widget.focus_geometry]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:property:focus_geometry|Efl.Ui.Focus.Composition_Adapter.focus_geometry]]
+ * [[:develop:api:efl:ui:calendar_item:property:focus_geometry|Efl.Ui.Calendar_Item.focus_geometry]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/focus_highlight_geometry.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/focus_highlight_geometry.txt
new file mode 100644
index 00000000..f9538372
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/focus_highlight_geometry.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Ui.Widget.focus_highlight_geometry~~
+====== Efl.Ui.Widget.focus_highlight_geometry ======
+
+===== Values =====
+
+ * **region** - %%The rectangle area.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:widget:property:focus_highlight_geometry:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property focus_highlight_geometry {
+ get @protected {}
+ values {
+ region: Eina.Rect;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Rect efl_ui_widget_focus_highlight_geometry_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:property:focus_highlight_geometry|Efl.Ui.Widget.focus_highlight_geometry]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/focus_manager.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/focus_manager.txt
new file mode 100644
index 00000000..2a3b90e6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/focus_manager.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Ui.Widget.focus_manager~~
+====== Efl.Ui.Widget.focus_manager ======
+
+===== Values =====
+
+ * **manager** - %%The manager object.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:widget:property:focus_manager:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:focus:object:property:focus_manager|Efl.Ui.Focus.Object.focus_manager]] **(get)**.//===== Signature =====
+
+
+@property focus_manager {
+ get {}
+ values {
+ manager: Efl.Ui.Focus.Manager;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Focus_Manager *efl_ui_focus_object_focus_manager_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:object:property:focus_manager|Efl.Ui.Focus.Object.focus_manager]]
+ * [[:develop:api:efl:ui:widget:property:focus_manager|Efl.Ui.Widget.focus_manager]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:property:focus_manager|Efl.Ui.Focus.Composition_Adapter.focus_manager]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/focus_move_policy.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/focus_move_policy.txt
new file mode 100644
index 00000000..b52b9a28
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/focus_move_policy.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Widget.focus_move_policy~~
+====== Efl.Ui.Widget.focus_move_policy ======
+
+===== Description =====
+
+%%The widget's focus move policy.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:property:focus_move_policy:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **policy** - %%Focus move policy%%
+
+===== Signature =====
+
+
+@property focus_move_policy @beta {
+ get {}
+ set {}
+ values {
+ policy: Efl.Ui.Focus.Move_Policy;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Focus_Move_Policy efl_ui_widget_focus_move_policy_get(const Eo *obj);
+void efl_ui_widget_focus_move_policy_set(Eo *obj, Efl_Ui_Focus_Move_Policy policy);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:property:focus_move_policy|Efl.Ui.Widget.focus_move_policy]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/focus_move_policy_automatic.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/focus_move_policy_automatic.txt
new file mode 100644
index 00000000..32c0d325
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/focus_move_policy_automatic.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Widget.focus_move_policy_automatic~~
+====== Efl.Ui.Widget.focus_move_policy_automatic ======
+
+===== Description =====
+
+%%Control the widget's focus_move_policy mode setting.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:property:focus_move_policy_automatic:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **automatic** - %%%%''true''%% to follow system focus move policy change, %%''false''%% otherwise%%
+
+===== Signature =====
+
+
+@property focus_move_policy_automatic @beta {
+ get {}
+ set {}
+ values {
+ automatic: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_focus_move_policy_automatic_get(const Eo *obj);
+void efl_ui_widget_focus_move_policy_automatic_set(Eo *obj, Eina_Bool automatic);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|Efl.Ui.Widget.focus_move_policy_automatic]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/focus_parent.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/focus_parent.txt
new file mode 100644
index 00000000..00628c95
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/focus_parent.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Ui.Widget.focus_parent~~
+====== Efl.Ui.Widget.focus_parent ======
+
+===== Values =====
+
+ * **logical_parent** - %%The focus parent.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:widget:property:focus_parent:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:focus:object:property:focus_parent|Efl.Ui.Focus.Object.focus_parent]] **(get)**.//===== Signature =====
+
+
+@property focus_parent {
+ get {}
+ values {
+ logical_parent: Efl.Ui.Focus.Object;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Focus_Object *efl_ui_focus_object_focus_parent_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:object:property:focus_parent|Efl.Ui.Focus.Object.focus_parent]]
+ * [[:develop:api:efl:ui:widget:property:focus_parent|Efl.Ui.Widget.focus_parent]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:property:focus_parent|Efl.Ui.Focus.Composition_Adapter.focus_parent]]
+ * [[:develop:api:efl:ui:calendar_item:property:focus_parent|Efl.Ui.Calendar_Item.focus_parent]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/i18n_name.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/i18n_name.txt
new file mode 100644
index 00000000..bbdce72d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/i18n_name.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Widget.i18n_name~~
+====== Efl.Ui.Widget.i18n_name ======
+
+===== Description =====
+
+%%Accessible name of the object.%%
+{{page>:develop:api-include:efl:ui:widget:property:i18n_name:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **i18n_name** - %%Accessible name%%
+
+//Overridden from [[:develop:api:efl:access:object:property:i18n_name|Efl.Access.Object.i18n_name]] **(get)**.//===== Signature =====
+
+
+@property i18n_name @beta {
+ get {}
+ set {}
+ values {
+ i18n_name: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_access_object_i18n_name_get(const Eo *obj);
+void efl_access_object_i18n_name_set(Eo *obj, const char *i18n_name);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:object:property:i18n_name|Efl.Access.Object.i18n_name]]
+ * [[:develop:api:efl:ui:widget:property:i18n_name|Efl.Ui.Widget.i18n_name]]
+ * [[:develop:api:efl:ui:win:property:i18n_name|Efl.Ui.Win.i18n_name]]
+ * [[:develop:api:efl:ui:text:property:i18n_name|Efl.Ui.Text.i18n_name]]
+ * [[:develop:api:efl:ui:spin_button:property:i18n_name|Efl.Ui.Spin_Button.i18n_name]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/interest_region.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/interest_region.txt
new file mode 100644
index 00000000..50e46cf2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/interest_region.txt
@@ -0,0 +1,33 @@
+~~Title: Efl.Ui.Widget.interest_region~~
+====== Efl.Ui.Widget.interest_region ======
+
+===== Values =====
+
+ * **region** - %%The relative region to show. If width or height is <= 0 it will be ignored, and no action will be taken.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:widget:property:interest_region:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property interest_region {
+ get @protected {}
+ values {
+ region: Eina.Rect;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Rect efl_ui_widget_interest_region_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:property:interest_region|Efl.Ui.Widget.interest_region]]
+ * [[:develop:api:efl:ui:text:property:interest_region|Efl.Ui.Text.interest_region]]
+ * [[:develop:api:efl:ui:panel:property:interest_region|Efl.Ui.Panel.interest_region]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/mirrored.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/mirrored.txt
new file mode 100644
index 00000000..df50d35a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/mirrored.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Widget.mirrored~~
+====== Efl.Ui.Widget.mirrored ======
+
+===== Description =====
+
+%%Whether this object should be mirrored.%%
+
+%%If mirrored, an object is in RTL (right to left) mode instead of LTR (left to right).%%
+
+
+{{page>:develop:api-include:efl:ui:widget:property:mirrored:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **rtl** - %%%%''true''%% for RTL, %%''false''%% for LTR (default).%%
+==== Setter ====
+
+%%This sets the mirror state of the whole sub-tree.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:property:mirrored:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]] **(get, set)**.//===== Signature =====
+
+
+@property mirrored @pure_virtual {
+ get {}
+ set {}
+ values {
+ rtl: bool (false);
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_mirrored_get(const Eo *obj);
+void efl_ui_mirrored_set(Eo *obj, Eina_Bool rtl);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]
+ * [[:develop:api:efl:canvas:layout:property:mirrored|Efl.Canvas.Layout.mirrored]]
+ * [[:develop:api:efl:ui:widget:property:mirrored|Efl.Ui.Widget.mirrored]]
+ * [[:develop:api:efl:ui:panel:property:mirrored|Efl.Ui.Panel.mirrored]]
+ * [[:develop:api:efl:ui:scroll:manager:property:mirrored|Efl.Ui.Scroll.Manager.mirrored]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/mirrored_automatic.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/mirrored_automatic.txt
new file mode 100644
index 00000000..73f15b30
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/mirrored_automatic.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Widget.mirrored_automatic~~
+====== Efl.Ui.Widget.mirrored_automatic ======
+
+===== Description =====
+
+%%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%%
+
+%%If enabled, the system or application configuration will be used to set the value of %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%%.%%
+
+%%This property may be implemented by high-level widgets (in Efl.Ui) but not by low-level widgets (in %%[[:develop:api:efl:canvas:scene|Efl.Canvas.Scene]]%%) as the configuration should affect only high-level widgets.%%
+{{page>:develop:api-include:efl:ui:widget:property:mirrored_automatic:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **automatic** - %%Whether the widget uses automatic mirroring%%
+
+//Overridden from [[:develop:api:efl:ui:i18n:property:mirrored_automatic|Efl.Ui.I18n.mirrored_automatic]] **(get, set)**.//===== Signature =====
+
+
+@property mirrored_automatic @pure_virtual {
+ get {}
+ set {}
+ values {
+ automatic: bool (true);
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_mirrored_automatic_get(const Eo *obj);
+void efl_ui_mirrored_automatic_set(Eo *obj, Eina_Bool automatic);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:i18n:property:mirrored_automatic|Efl.Ui.I18n.mirrored_automatic]]
+ * [[:develop:api:efl:ui:widget:property:mirrored_automatic|Efl.Ui.Widget.mirrored_automatic]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/model.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/model.txt
new file mode 100644
index 00000000..bdc14044
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/model.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Widget.model~~
+====== Efl.Ui.Widget.model ======
+
+===== Description =====
+
+%%Model that is/will be%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:widget:property:model:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **model** - %%Efl model%%
+
+//Overridden from [[:develop:api:efl:ui:view:property:model|Efl.Ui.View.model]] **(get, set)**.//===== Signature =====
+
+
+@property model @pure_virtual {
+ get {}
+ set {}
+ values {
+ model: Efl.Model;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Model *efl_ui_view_model_get(const Eo *obj);
+void efl_ui_view_model_set(Eo *obj, Efl_Model *model);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:view:property:model|Efl.Ui.View.model]]
+ * [[:develop:api:efl:composite_model:property:model|Efl.Composite_Model.model]]
+ * [[:develop:api:efl:ui:widget:property:model|Efl.Ui.Widget.model]]
+ * [[:develop:api:efl:model_provider:property:model|Efl.Model_Provider.model]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/no_render.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/no_render.txt
new file mode 100644
index 00000000..a7415764
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/no_render.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.Ui.Widget.no_render~~
+====== Efl.Ui.Widget.no_render ======
+
+===== Description =====
+
+%%Disables all rendering on the canvas.%%
+
+%%This flag will be used to indicate to Evas that this object should never be rendered on the canvas under any circumstances. In particular, this is useful to avoid drawing clipper objects (or masks) even when they don't clip any object. This can also be used to replace the old source_visible flag with proxy objects.%%
+
+%%This is different to the visible property, as even visible objects marked as "no-render" will never appear on screen. But those objects can still be used as proxy sources or clippers. When hidden, all "no-render" objects will completely disappear from the canvas, and hide their clippees or be invisible when used as proxy sources.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:property:no_render:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **enable** - %%Enable "no-render" mode.%%
+
+//Overridden from [[:develop:api:efl:canvas:group:property:no_render|Efl.Canvas.Object.no_render]] **(set)**.//===== Signature =====
+
+
+@property no_render {
+ get {}
+ set {}
+ values {
+ enable: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_object_no_render_get(const Eo *obj);
+void efl_canvas_object_no_render_set(Eo *obj, Eina_Bool enable);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:object:property:no_render|Efl.Canvas.Object.no_render]]
+ * [[:develop:api:efl:canvas:group:property:no_render|Efl.Canvas.Group.no_render]]
+ * [[:develop:api:efl:canvas:layout:property:no_render|Efl.Canvas.Layout.no_render]]
+ * [[:develop:api:efl:ui:widget:property:no_render|Efl.Ui.Widget.no_render]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/position.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/position.txt
new file mode 100644
index 00000000..9e3a5b60
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/position.txt
@@ -0,0 +1,76 @@
+~~Title: Efl.Ui.Widget.position~~
+====== Efl.Ui.Widget.position ======
+
+===== Description =====
+
+%%The 2D position of a canvas object.%%
+
+%%The position is absolute, in pixels, relative to the top-left corner of the window, within its border decorations (application space).%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:widget:property:position:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **pos** - %%A 2D coordinate in pixel units.%%
+==== Getter ====
+
+%%Retrieves the position of the given canvas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:widget:property:position:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Moves the given canvas object to the given location inside its canvas' viewport. If unchanged this call may be entirely skipped, but if changed this will trigger move events, as well as potential pointer,in or pointer,out events.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:property:position:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:canvas:group:property:position|Efl.Gfx.Entity.position]] **(set)**.//===== Signature =====
+
+
+@property position @pure_virtual {
+ get {}
+ set {}
+ values {
+ pos: Eina.Position2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Position2D efl_gfx_entity_position_get(const Eo *obj);
+void efl_gfx_entity_position_set(Eo *obj, Eina_Position2D pos);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:position|Efl.Gfx.Entity.position]]
+ * [[:develop:api:efl:canvas:vg:node:property:position|Efl.Canvas.Vg.Node.position]]
+ * [[:develop:api:efl:ui:win:property:position|Efl.Ui.Win.position]]
+ * [[:develop:api:efl:ui:image:property:position|Efl.Ui.Image.position]]
+ * [[:develop:api:efl:ui:image_zoomable:property:position|Efl.Ui.Image_Zoomable.position]]
+ * [[:develop:api:efl:ui:widget:property:position|Efl.Ui.Widget.position]]
+ * [[:develop:api:efl:ui:table:property:position|Efl.Ui.Table.position]]
+ * [[:develop:api:efl:ui:box:property:position|Efl.Ui.Box.position]]
+ * [[:develop:api:efl:ui:animation_view:property:position|Efl.Ui.Animation_View.position]]
+ * [[:develop:api:efl:ui:text:property:position|Efl.Ui.Text.position]]
+ * [[:develop:api:efl:ui:textpath:property:position|Efl.Ui.Textpath.position]]
+ * [[:develop:api:efl:ui:popup:property:position|Efl.Ui.Popup.position]]
+ * [[:develop:api:efl:ui:relative_layout:property:position|Efl.Ui.Relative_Layout.position]]
+ * [[:develop:api:efl:canvas:object:property:position|Efl.Canvas.Object.position]]
+ * [[:develop:api:efl:canvas:group:property:position|Efl.Canvas.Group.position]]
+ * [[:develop:api:efl:canvas:video:property:position|Efl.Canvas.Video.position]]
+ * [[:develop:api:efl:canvas:event_grabber:property:position|Efl.Canvas.Event_Grabber.position]]
+ * [[:develop:api:efl:canvas:layout:property:position|Efl.Canvas.Layout.position]]
+ * [[:develop:api:efl:ui:pan:property:position|Efl.Ui.Pan.position]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:property:position|Efl.Ui.Image_Zoomable_Pan.position]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/resize_object.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/resize_object.txt
new file mode 100644
index 00000000..19393207
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/resize_object.txt
@@ -0,0 +1,28 @@
+~~Title: Efl.Ui.Widget.resize_object~~
+====== Efl.Ui.Widget.resize_object ======
+
+===== Values =====
+
+ * **sobj** - %%A canvas object (often a %%[[:develop:api:efl:canvas:layout|Efl.Canvas.Layout]]%% object).%%
+
+
+\\ {{page>:develop:api-include:efl:ui:widget:property:resize_object:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property resize_object {
+ set @protected {}
+}
+
+
+===== C signature =====
+
+
+void efl_ui_widget_resize_object_set(Eo *obj, Efl_Canvas_Object *sobj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:property:resize_object|Efl.Ui.Widget.resize_object]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/scale.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/scale.txt
new file mode 100644
index 00000000..a597d559
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/scale.txt
@@ -0,0 +1,65 @@
+~~Title: Efl.Ui.Widget.scale~~
+====== Efl.Ui.Widget.scale ======
+
+===== Description =====
+
+%%The scaling factor of an object.%%
+
+%%This property is an individual scaling factor on the object (Edje or UI widget). This property (or Edje's global scaling factor, when applicable), will affect this object's part sizes. If scale is not zero, then the individual scaling will override any global scaling set, for the object obj's parts. Set it back to zero to get the effects of the global scaling again.%%
+
+
+@property scale @pure_virtual {
+ get {}
+ set {}
+ values {
+ scale: double (0.000000);
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_gfx_entity_scale_get(const Eo *obj);
+void efl_gfx_entity_scale_set(Eo *obj, double scale);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:scale|Efl.Gfx.Entity.scale]]
+ * [[:develop:api:efl:ui:widget:property:scale|Efl.Ui.Widget.scale]]
+ * [[:develop:api:efl:canvas:object:property:scale|Efl.Canvas.Object.scale]]
+ * [[:develop:api:efl:canvas:text:property:scale|Efl.Canvas.Text.scale]]
+ * [[:develop:api:efl:canvas:layout:property:scale|Efl.Canvas.Layout.scale]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/size.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/size.txt
new file mode 100644
index 00000000..a5f11134
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/size.txt
@@ -0,0 +1,76 @@
+~~Title: Efl.Ui.Widget.size~~
+====== Efl.Ui.Widget.size ======
+
+===== Description =====
+
+%%The 2D size of a canvas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:widget:property:size:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **size** - %%A 2D size in pixel units.%%
+==== Getter ====
+
+%%Retrieves the (rectangular) size of the given Evas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:widget:property:size:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Changes the size of the given object.%%
+
+%%Note that setting the actual size of an object might be the job of its container, so this function might have no effect. Look at %%[[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]%% instead, when manipulating widgets.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:property:size:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:canvas:object:property:size|Efl.Gfx.Entity.size]] **(set)**.//===== Signature =====
+
+
+@property size @pure_virtual {
+ get {}
+ set {}
+ values {
+ size: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_entity_size_get(const Eo *obj);
+void efl_gfx_entity_size_set(Eo *obj, Eina_Size2D size);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:size|Efl.Gfx.Entity.size]]
+ * [[:develop:api:efl:canvas:vg:node:property:size|Efl.Canvas.Vg.Node.size]]
+ * [[:develop:api:efl:ui:win:property:size|Efl.Ui.Win.size]]
+ * [[:develop:api:efl:ui:image:property:size|Efl.Ui.Image.size]]
+ * [[:develop:api:efl:ui:image_zoomable:property:size|Efl.Ui.Image_Zoomable.size]]
+ * [[:develop:api:efl:ui:widget:property:size|Efl.Ui.Widget.size]]
+ * [[:develop:api:efl:ui:table:property:size|Efl.Ui.Table.size]]
+ * [[:develop:api:efl:ui:box:property:size|Efl.Ui.Box.size]]
+ * [[:develop:api:efl:ui:animation_view:property:size|Efl.Ui.Animation_View.size]]
+ * [[:develop:api:efl:ui:text:property:size|Efl.Ui.Text.size]]
+ * [[:develop:api:efl:ui:panel:property:size|Efl.Ui.Panel.size]]
+ * [[:develop:api:efl:ui:textpath:property:size|Efl.Ui.Textpath.size]]
+ * [[:develop:api:efl:ui:popup:property:size|Efl.Ui.Popup.size]]
+ * [[:develop:api:efl:ui:relative_layout:property:size|Efl.Ui.Relative_Layout.size]]
+ * [[:develop:api:efl:canvas:object:property:size|Efl.Canvas.Object.size]]
+ * [[:develop:api:efl:canvas:video:property:size|Efl.Canvas.Video.size]]
+ * [[:develop:api:efl:canvas:event_grabber:property:size|Efl.Canvas.Event_Grabber.size]]
+ * [[:develop:api:efl:canvas:layout:property:size|Efl.Canvas.Layout.size]]
+ * [[:develop:api:efl:ui:pan:property:size|Efl.Ui.Pan.size]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:property:size|Efl.Ui.Image_Zoomable_Pan.size]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/state_set.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/state_set.txt
new file mode 100644
index 00000000..110f7223
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/state_set.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.Widget.state_set~~
+====== Efl.Ui.Widget.state_set ======
+
+===== Values =====
+
+ * **states** - %%Accessible state set%%
+
+
+\\ {{page>:develop:api-include:efl:ui:widget:property:state_set:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:access:object:property:state_set|Efl.Access.Object.state_set]] **(get)**.//===== Signature =====
+
+
+@property state_set @beta {
+ get @protected {}
+ values {
+ states: Efl.Access.State_Set;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Access_State_Set efl_access_object_state_set_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:object:property:state_set|Efl.Access.Object.state_set]]
+ * [[:develop:api:efl:ui:widget:property:state_set|Efl.Ui.Widget.state_set]]
+ * [[:develop:api:efl:ui:win:property:state_set|Efl.Ui.Win.state_set]]
+ * [[:develop:api:efl:ui:check:property:state_set|Efl.Ui.Check.state_set]]
+ * [[:develop:api:efl:ui:radio:property:state_set|Efl.Ui.Radio.state_set]]
+ * [[:develop:api:efl:ui:text:property:state_set|Efl.Ui.Text.state_set]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/style.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/style.txt
new file mode 100644
index 00000000..cc1a1db2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/style.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Widget.style~~
+====== Efl.Ui.Widget.style ======
+
+===== Description =====
+
+%%The widget style to use.%%
+
+%%Styles define different look and feel for widgets, and may provide different parts for layout-based widgets. Styles vary from widget to widget and may be defined by other themes by means of extensions and overlays.%%
+
+%%The style can only be set before %%[[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]%%, which means at construction time of the object (inside %%''efl_add''%% in C).%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:property:style:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **style** - %%Name of the style to use. Refer to each widget's documentation for the available style names, or to the themes in use.%%
+
+===== Signature =====
+
+
+@property style {
+ get {}
+ set {
+ return: Eina.Error;
+ }
+ values {
+ style: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_ui_widget_style_get(const Eo *obj);
+Eina_Error efl_ui_widget_style_set(Eo *obj, const char *style);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:property:style|Efl.Ui.Widget.style]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/visible.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/visible.txt
new file mode 100644
index 00000000..2e5d28a8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/visible.txt
@@ -0,0 +1,72 @@
+~~Title: Efl.Ui.Widget.visible~~
+====== Efl.Ui.Widget.visible ======
+
+===== Description =====
+
+%%The visibility of a canvas object.%%
+
+%%All canvas objects will become visible by default just before render. This means that it is not required to call %%[[:develop:api:efl:gfx:entity:property:visible|Efl.Gfx.Entity.visible.set]]%% after creating an object unless you want to create it without showing it. Note that this behavior is new since 1.21, and only applies to canvas objects created with the EO API (i.e. not the legacy C-only API). Other types of Gfx objects may or may not be visible by default.%%
+
+%%Note that many other parameters can prevent a visible object from actually being "visible" on screen. For instance if its color is fully transparent, or its parent is hidden, or it is clipped out, etc...%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:widget:property:visible:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **v** - %%%%''true''%% if to make the object visible, %%''false''%% otherwise%%
+==== Getter ====
+
+%%Retrieves whether or not the given canvas object is visible.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:widget:property:visible:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Shows or hides this object.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:property:visible:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:canvas:group:property:visible|Efl.Gfx.Entity.visible]] **(set)**.//===== Signature =====
+
+
+@property visible @pure_virtual {
+ get {}
+ set {}
+ values {
+ v: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_gfx_entity_visible_get(const Eo *obj);
+void efl_gfx_entity_visible_set(Eo *obj, Eina_Bool v);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:visible|Efl.Gfx.Entity.visible]]
+ * [[:develop:api:efl:canvas:vg:node:property:visible|Efl.Canvas.Vg.Node.visible]]
+ * [[:develop:api:efl:ui:win:property:visible|Efl.Ui.Win.visible]]
+ * [[:develop:api:efl:ui:image:property:visible|Efl.Ui.Image.visible]]
+ * [[:develop:api:efl:ui:widget:property:visible|Efl.Ui.Widget.visible]]
+ * [[:develop:api:efl:ui:animation_view:property:visible|Efl.Ui.Animation_View.visible]]
+ * [[:develop:api:efl:ui:text:property:visible|Efl.Ui.Text.visible]]
+ * [[:develop:api:efl:ui:popup:property:visible|Efl.Ui.Popup.visible]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:property:visible|Efl.Ui.Navigation_Bar_Part_Back_Button.visible]]
+ * [[:develop:api:efl:canvas:object:property:visible|Efl.Canvas.Object.visible]]
+ * [[:develop:api:efl:canvas:group:property:visible|Efl.Canvas.Group.visible]]
+ * [[:develop:api:efl:canvas:event_grabber:property:visible|Efl.Canvas.Event_Grabber.visible]]
+ * [[:develop:api:efl:canvas:layout:property:visible|Efl.Canvas.Layout.visible]]
+ * [[:develop:api:efl:ui:pan:property:visible|Efl.Ui.Pan.visible]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget/property/widget_parent.txt b/public_html/data/pages/develop/api/efl/ui/widget/property/widget_parent.txt
new file mode 100644
index 00000000..ddd2cb9d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget/property/widget_parent.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Widget.widget_parent~~
+====== Efl.Ui.Widget.widget_parent ======
+
+===== Description =====
+
+%%The internal parent of this widget.%%
+
+%%%%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% objects have a parent hierarchy that may differ slightly from their %%[[:develop:api:efl:object|Efl.Object]]%% or %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% hierarchy. This is meant for internal handling.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget:property:widget_parent:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **parent** - %%Widget parent object%%
+
+===== Signature =====
+
+
+@property widget_parent @protected {
+ get {}
+ set {}
+ values {
+ parent: Efl.Ui.Widget;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Widget *efl_ui_widget_parent_get(const Eo *obj);
+void efl_ui_widget_parent_set(Eo *obj, Efl_Ui_Widget *parent);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:property:widget_parent|Efl.Ui.Widget.widget_parent]]
+ * [[:develop:api:efl:ui:popup:property:widget_parent|Efl.Ui.Popup.widget_parent]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_factory.txt b/public_html/data/pages/develop/api/efl/ui/widget_factory.txt
new file mode 100644
index 00000000..a0f2f0a3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_factory.txt
@@ -0,0 +1,134 @@
+~~Title: Efl.Ui.Widget_Factory~~
+====== Efl.Ui.Widget_Factory (class) ======
+
+===== Description =====
+
+%%Efl Ui Factory that provides %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%%.%%
+
+%%This factory is designed to build %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% and optionally set their %%[[:develop:api:efl:ui:widget:property:style|Efl.Ui.Widget.style]]%% if it was connected with %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% "%%''style''%%".%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:widget_factory:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:ui:factory|Efl.Ui.Factory]] //(interface)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:widget_factory:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget_factory:method:factory_bind|factory_bind]]**// [Overridden from [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]]]//\\
+> %%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%%
+
+Eina_Error efl_ui_factory_bind(Eo *obj, const char *key, Efl_Ui_Factory *factory);
+
+\\
+**[[:develop:api:efl:ui:widget_factory:method:finalize|finalize]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+Efl_Object *efl_finalize(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget_factory:property:item_class|item_class]]** //**(get, set)**//\\
+> %%Define the class of the item returned by this factory.%%
+
+const Efl_Class *efl_ui_widget_factory_item_class_get(const Eo *obj);
+void efl_ui_widget_factory_item_class_set(Eo *obj, const Efl_Class *klass);
+
+\\
+**[[:develop:api:efl:ui:widget_factory:method:property_bind|property_bind]]**// [Overridden from [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]]]//\\
+> %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%%
+
+Eina_Error efl_ui_property_bind(Eo *obj, const char *key, const char *property);
+
+\\
+**[[:develop:api:efl:ui:widget_factory:method:release|release]]**// [Overridden from [[:develop:api:efl:ui:factory|Efl.Ui.Factory]]]//\\
+> %%Release a UI object and disconnect from models.%%
+
+void efl_ui_factory_release(Eo *obj, Eina_Iterator *ui_views);
+
+\\
+**[[:develop:api:efl:ui:widget_factory:method:create|create]]** ''protected''// [Overridden from [[:develop:api:efl:ui:factory|Efl.Ui.Factory]]]//\\
+> %%Create a UI object from the necessary properties in the specified model.%%
+
+Eina_Future *efl_ui_factory_create(Eo *obj, Eina_Iterator *models);
+
+\\
+**[[:develop:api:efl:ui:widget_factory:method:part_get|part_get]]** ''protected''// [Overridden from [[:develop:api:efl:part|Efl.Part]]]//\\
+> %%Get a proxy object referring to a part of an object.%%
+
+Efl_Object *efl_part_get(const Eo *obj, const char *name);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:factory|Efl.Ui.Factory]] ^^^
+| | **[[:develop:api:efl:ui:factory:event:item_building|item,building]]** | %%Event emitted when an item has processed %%[[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]%%, but before all the factory are done building it. Note: If the %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% keeps a cache of objects, this will be called when objects are pulled from the cache.%% |
+| | **[[:develop:api:efl:ui:factory:event:item_constructing|item,constructing]]** | %%Event emitted when an item is under construction (between the %%[[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]%% and %%[[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]%% call on the item). Note: If the %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% keeps a cache of objects, this won't be called when objects are pulled from the cache.%% |
+| | **[[:develop:api:efl:ui:factory:event:item_created|item,created]]** | %%Event emitted when an item has been successfully created by the factory and is about to be used by an %%[[:develop:api:efl:ui:view|Efl.Ui.View]]%%.%% |
+| | **[[:develop:api:efl:ui:factory:event:item_releasing|item,releasing]]** | %%Event emitted when an item is being released by the %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%%. It must be assumed that after this call, the object can be recycles to another %%[[:develop:api:efl:ui:view|Efl.Ui.View]]%% and there can be more than one call for the same item.%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_factory/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/widget_factory/method/constructor.txt
new file mode 100644
index 00000000..7a13c4d1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_factory/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Widget_Factory.constructor~~
+====== Efl.Ui.Widget_Factory.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget_factory:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_factory/method/create.txt b/public_html/data/pages/develop/api/efl/ui/widget_factory/method/create.txt
new file mode 100644
index 00000000..537d8235
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_factory/method/create.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Widget_Factory.create~~
+====== Efl.Ui.Widget_Factory.create ======
+
+===== Description =====
+
+%%Create a UI object from the necessary properties in the specified model.%%
+
+
+create @protected @pure_virtual {
+ params {
+ @in models: iterator;
+ }
+ return: future @no_unused;
+}
+
+
+===== C signature =====
+
+
+Eina_Future *efl_ui_factory_create(Eo *obj, Eina_Iterator *models);
+
+
+===== Parameters =====
+
+ * **models** //(in)// - %%Efl iterator providing the model to be associated to the new item. It should remain valid until the end of the function call.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:factory:method:create|Efl.Ui.Factory.create]]
+ * [[:develop:api:efl:ui:widget_factory:method:create|Efl.Ui.Widget_Factory.create]]
+ * [[:develop:api:efl:ui:caching_factory:method:create|Efl.Ui.Caching_Factory.create]]
+ * [[:develop:api:efl:ui:image_factory:method:create|Efl.Ui.Image_Factory.create]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_factory/method/factory_bind.txt b/public_html/data/pages/develop/api/efl/ui/widget_factory/method/factory_bind.txt
new file mode 100644
index 00000000..f03f305d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_factory/method/factory_bind.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Widget_Factory.factory_bind~~
+====== Efl.Ui.Widget_Factory.factory_bind ======
+
+===== Description =====
+
+%%bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% need to be %%[[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]%% at least once.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:widget_factory:method:factory_bind:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:factory_bind:method:factory_bind|Efl.Ui.Factory_Bind.factory_bind]].//===== Signature =====
+
+
+factory_bind @pure_virtual {
+ params {
+ @in key: string;
+ @in factory: Efl.Ui.Factory;
+ }
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_factory_bind(Eo *obj, const char *key, Efl_Ui_Factory *factory);
+
+
+===== Parameters =====
+
+ * **key** //(in)// - %%Key string for bind model property data%%
+ * **factory** //(in)// - %%%%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%% for create and bind model property data%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:factory_bind:method:factory_bind|Efl.Ui.Factory_Bind.factory_bind]]
+ * [[:develop:api:efl:ui:widget_factory:method:factory_bind|Efl.Ui.Widget_Factory.factory_bind]]
+ * [[:develop:api:efl:ui:layout_factory:method:factory_bind|Efl.Ui.Layout_Factory.factory_bind]]
+ * [[:develop:api:efl:ui:layout_base:method:factory_bind|Efl.Ui.Layout_Base.factory_bind]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_factory/method/finalize.txt b/public_html/data/pages/develop/api/efl/ui/widget_factory/method/finalize.txt
new file mode 100644
index 00000000..c0ccd14c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_factory/method/finalize.txt
@@ -0,0 +1,91 @@
+~~Title: Efl.Ui.Widget_Factory.finalize~~
+====== Efl.Ui.Widget_Factory.finalize ======
+
+===== Description =====
+
+%%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+%%Use this method to delay expensive operations until user configuration has finished, to avoid building the object in a "default" state in the constructor, just to have to throw it all away because a user configuration (a property being set, for example) requires a different state. This is the last call inside efl_add() and will set %%[[:develop:api:efl:object:property:finalized|Efl.Object.finalized]]%% to %%''true''%% once it returns. This is an optimization and implementing this method is optional if you already perform all your initialization in the %%[[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]%% method. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget_factory:method:finalize:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:finalize|Efl.Object.finalize]].//===== Signature =====
+
+
+finalize {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_finalize(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]
+ * [[:develop:api:efl:loop_handler:method:finalize|Efl.Loop_Handler.finalize]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:finalize|Efl.Ui.Position_Manager.Grid.finalize]]
+ * [[:develop:api:efl:canvas:layout_part:method:finalize|Efl.Canvas.Layout_Part.finalize]]
+ * [[:develop:api:efl:net:server_udp_client:method:finalize|Efl.Net.Server_Udp_Client.finalize]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:finalize|Efl.Ui.Widget_Part_Bg.finalize]]
+ * [[:develop:api:efl:ui:layout_part_bg:method:finalize|Efl.Ui.Layout_Part_Bg.finalize]]
+ * [[:develop:api:efl:io:buffered_stream:method:finalize|Efl.Io.Buffered_Stream.finalize]]
+ * [[:develop:api:efl:net:dialer_simple:method:finalize|Efl.Net.Dialer_Simple.finalize]]
+ * [[:develop:api:efl:io:file:method:finalize|Efl.Io.File.finalize]]
+ * [[:develop:api:efl:net:server_fd:method:finalize|Efl.Net.Server_Fd.finalize]]
+ * [[:develop:api:efl:io:stderr:method:finalize|Efl.Io.Stderr.finalize]]
+ * [[:develop:api:efl:io:stdin:method:finalize|Efl.Io.Stdin.finalize]]
+ * [[:develop:api:efl:io:stdout:method:finalize|Efl.Io.Stdout.finalize]]
+ * [[:develop:api:efl:net:socket_fd:method:finalize|Efl.Net.Socket_Fd.finalize]]
+ * [[:develop:api:efl:net:socket_ssl:method:finalize|Efl.Net.Socket_Ssl.finalize]]
+ * [[:develop:api:efl:net:dialer_ssl:method:finalize|Efl.Net.Dialer_Ssl.finalize]]
+ * [[:develop:api:efl:canvas:object:method:finalize|Efl.Canvas.Object.finalize]]
+ * [[:develop:api:efl:canvas:image_internal:method:finalize|Efl.Canvas.Image_Internal.finalize]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:finalize|Efl.Ui.Internal.Text.Interactive.finalize]]
+ * [[:develop:api:efl:ui:widget:method:finalize|Efl.Ui.Widget.finalize]]
+ * [[:develop:api:efl:ui:win:method:finalize|Efl.Ui.Win.finalize]]
+ * [[:develop:api:efl:ui:win_socket:method:finalize|Efl.Ui.Win_Socket.finalize]]
+ * [[:develop:api:efl:ui:win_inlined:method:finalize|Efl.Ui.Win_Inlined.finalize]]
+ * [[:develop:api:efl:ui:layout_base:method:finalize|Efl.Ui.Layout_Base.finalize]]
+ * [[:develop:api:efl:ui:text:method:finalize|Efl.Ui.Text.finalize]]
+ * [[:develop:api:efl:ui:tab_bar:method:finalize|Efl.Ui.Tab_Bar.finalize]]
+ * [[:develop:api:efl:ui:item:method:finalize|Efl.Ui.Item.finalize]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:finalize|Efl.Ui.List_Placeholder_Item.finalize]]
+ * [[:develop:api:elm:code_widget:method:finalize|Elm.Code_Widget.finalize]]
+ * [[:develop:api:efl:ui:scroller:method:finalize|Efl.Ui.Scroller.finalize]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:finalize|Efl.Ui.Internal_Text_Scroller.finalize]]
+ * [[:develop:api:efl:ui:collection:method:finalize|Efl.Ui.Collection.finalize]]
+ * [[:develop:api:efl:ui:spotlight:container:method:finalize|Efl.Ui.Spotlight.Container.finalize]]
+ * [[:develop:api:efl:ui:tab_pager:method:finalize|Efl.Ui.Tab_Pager.finalize]]
+ * [[:develop:api:efl:ui:bg:method:finalize|Efl.Ui.Bg.finalize]]
+ * [[:develop:api:efl:canvas:vg:object:method:finalize|Efl.Canvas.Vg.Object.finalize]]
+ * [[:develop:api:efl:loop_timer:method:finalize|Efl.Loop_Timer.finalize]]
+ * [[:develop:api:eldbus:model:method:finalize|Eldbus.Model.finalize]]
+ * [[:develop:api:eldbus:model:proxy:method:finalize|Eldbus.Model.Proxy.finalize]]
+ * [[:develop:api:eldbus:model:arguments:method:finalize|Eldbus.Model.Arguments.finalize]]
+ * [[:develop:api:eldbus:model:method:method:finalize|Eldbus.Model.Method.finalize]]
+ * [[:develop:api:eldbus:model:object:method:finalize|Eldbus.Model.Object.finalize]]
+ * [[:develop:api:efl:composite_model:method:finalize|Efl.Composite_Model.finalize]]
+ * [[:develop:api:efl:container_model:method:finalize|Efl.Container_Model.finalize]]
+ * [[:develop:api:efl:ui:view_model:method:finalize|Efl.Ui.View_Model.finalize]]
+ * [[:develop:api:efl:io:model:method:finalize|Efl.Io.Model.finalize]]
+ * [[:develop:api:efl:net:server_simple:method:finalize|Efl.Net.Server_Simple.finalize]]
+ * [[:develop:api:efl:net:control:manager:method:finalize|Efl.Net.Control.Manager.finalize]]
+ * [[:develop:api:efl:ui:widget_factory:method:finalize|Efl.Ui.Widget_Factory.finalize]]
+ * [[:develop:api:efl:ui:caching_factory:method:finalize|Efl.Ui.Caching_Factory.finalize]]
+ * [[:develop:api:efl:thread:method:finalize|Efl.Thread.finalize]]
+ * [[:develop:api:efl:net:session:method:finalize|Efl.Net.Session.finalize]]
+ * [[:develop:api:efl:io:copier:method:finalize|Efl.Io.Copier.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:finalize|Efl.Ui.Focus.Manager_Calc.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:finalize|Efl.Ui.Focus.Manager_Root_Focus.finalize]]
+ * [[:develop:api:evas:canvas3d:node:method:finalize|Evas.Canvas3D.Node.finalize]]
+ * [[:develop:api:efl:net:ssl:context:method:finalize|Efl.Net.Ssl.Context.finalize]]
+ * [[:develop:api:efl:io:buffer:method:finalize|Efl.Io.Buffer.finalize]]
+ * [[:develop:api:efl:net:ip_address:method:finalize|Efl.Net.Ip_Address.finalize]]
+ * [[:develop:api:efl:io:queue:method:finalize|Efl.Io.Queue.finalize]]
+ * [[:develop:api:ector:renderer:method:finalize|Ector.Renderer.finalize]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_factory/method/part_get.txt b/public_html/data/pages/develop/api/efl/ui/widget_factory/method/part_get.txt
new file mode 100644
index 00000000..f0ceec23
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_factory/method/part_get.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Widget_Factory.part_get~~
+====== Efl.Ui.Widget_Factory.part_get ======
+
+===== Description =====
+
+%%Get a proxy object referring to a part of an object.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget_factory:method:part_get:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:part:method:part_get|Efl.Part.part_get]].//===== Signature =====
+
+
+part_get @protected @const @pure_virtual {
+ params {
+ @in name: string;
+ }
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_part_get(const Eo *obj, const char *name);
+
+
+===== Parameters =====
+
+ * **name** //(in)// - %%The part name.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:part:method:part_get|Efl.Part.part_get]]
+ * [[:develop:api:efl:canvas:layout:method:part_get|Efl.Canvas.Layout.part_get]]
+ * [[:develop:api:efl:ui:widget:method:part_get|Efl.Ui.Widget.part_get]]
+ * [[:develop:api:efl:ui:win:method:part_get|Efl.Ui.Win.part_get]]
+ * [[:develop:api:efl:ui:flip:method:part_get|Efl.Ui.Flip.part_get]]
+ * [[:develop:api:efl:ui:layout_base:method:part_get|Efl.Ui.Layout_Base.part_get]]
+ * [[:develop:api:efl:ui:text:method:part_get|Efl.Ui.Text.part_get]]
+ * [[:develop:api:efl:ui:default_item:method:part_get|Efl.Ui.Default_Item.part_get]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:part_get|Efl.Ui.List_Placeholder_Item.part_get]]
+ * [[:develop:api:efl:ui:textpath:method:part_get|Efl.Ui.Textpath.part_get]]
+ * [[:develop:api:efl:ui:panes:method:part_get|Efl.Ui.Panes.part_get]]
+ * [[:develop:api:efl:ui:progressbar:method:part_get|Efl.Ui.Progressbar.part_get]]
+ * [[:develop:api:efl:ui:popup:method:part_get|Efl.Ui.Popup.part_get]]
+ * [[:develop:api:efl:ui:alert_popup:method:part_get|Efl.Ui.Alert_Popup.part_get]]
+ * [[:develop:api:efl:ui:navigation_bar:method:part_get|Efl.Ui.Navigation_Bar.part_get]]
+ * [[:develop:api:efl:ui:widget_factory:method:part_get|Efl.Ui.Widget_Factory.part_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_factory/method/property_bind.txt b/public_html/data/pages/develop/api/efl/ui/widget_factory/method/property_bind.txt
new file mode 100644
index 00000000..4a4b7b42
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_factory/method/property_bind.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Widget_Factory.property_bind~~
+====== Efl.Ui.Widget_Factory.property_bind ======
+
+===== Description =====
+
+%%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:widget_factory:method:property_bind:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]].//===== Signature =====
+
+
+property_bind @pure_virtual {
+ params {
+ @in key: string;
+ @in property: string;
+ }
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_property_bind(Eo *obj, const char *key, const char *property);
+
+
+===== Parameters =====
+
+ * **key** //(in)// - %%key string for bind model property data%%
+ * **property** //(in)// - %%Model property name%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]
+ * [[:develop:api:efl:ui:widget_factory:method:property_bind|Efl.Ui.Widget_Factory.property_bind]]
+ * [[:develop:api:efl:ui:caching_factory:method:property_bind|Efl.Ui.Caching_Factory.property_bind]]
+ * [[:develop:api:efl:ui:image_factory:method:property_bind|Efl.Ui.Image_Factory.property_bind]]
+ * [[:develop:api:efl:ui:layout_factory:method:property_bind|Efl.Ui.Layout_Factory.property_bind]]
+ * [[:develop:api:efl:ui:widget_part:method:property_bind|Efl.Ui.Widget_Part.property_bind]]
+ * [[:develop:api:efl:ui:widget:method:property_bind|Efl.Ui.Widget.property_bind]]
+ * [[:develop:api:efl:ui:image:method:property_bind|Efl.Ui.Image.property_bind]]
+ * [[:develop:api:efl:ui:layout_base:method:property_bind|Efl.Ui.Layout_Base.property_bind]]
+ * [[:develop:api:efl:ui:property_bind_part:method:property_bind|Efl.Ui.Property_Bind_Part.property_bind]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_factory/method/release.txt b/public_html/data/pages/develop/api/efl/ui/widget_factory/method/release.txt
new file mode 100644
index 00000000..5dc3ba51
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_factory/method/release.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.Widget_Factory.release~~
+====== Efl.Ui.Widget_Factory.release ======
+
+===== Description =====
+
+%%Release a UI object and disconnect from models.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:widget_factory:method:release:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:factory:method:release|Efl.Ui.Factory.release]].//===== Signature =====
+
+
+release @pure_virtual {
+ params {
+ @in ui_views: iterator;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_factory_release(Eo *obj, Eina_Iterator *ui_views);
+
+
+===== Parameters =====
+
+ * **ui_views** //(in)// - %%Object to remove.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:factory:method:release|Efl.Ui.Factory.release]]
+ * [[:develop:api:efl:ui:widget_factory:method:release|Efl.Ui.Widget_Factory.release]]
+ * [[:develop:api:efl:ui:caching_factory:method:release|Efl.Ui.Caching_Factory.release]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_factory/property/item_class.txt b/public_html/data/pages/develop/api/efl/ui/widget_factory/property/item_class.txt
new file mode 100644
index 00000000..e912c20b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_factory/property/item_class.txt
@@ -0,0 +1,38 @@
+~~Title: Efl.Ui.Widget_Factory.item_class~~
+====== Efl.Ui.Widget_Factory.item_class ======
+
+===== Description =====
+
+%%Define the class of the item returned by this factory.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:widget_factory:property:item_class:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **klass** - %%The class identifier to create item from.%%
+
+===== Signature =====
+
+
+@property item_class {
+ get {}
+ set {}
+ values {
+ klass: const(Efl.Class);
+ }
+}
+
+
+===== C signature =====
+
+
+const Efl_Class *efl_ui_widget_factory_item_class_get(const Eo *obj);
+void efl_ui_widget_factory_item_class_set(Eo *obj, const Efl_Class *klass);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget_factory:property:item_class|Efl.Ui.Widget_Factory.item_class]]
+ * [[:develop:api:efl:ui:caching_factory:property:item_class|Efl.Ui.Caching_Factory.item_class]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_focus_manager.txt b/public_html/data/pages/develop/api/efl/ui/widget_focus_manager.txt
new file mode 100644
index 00000000..c429091c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_focus_manager.txt
@@ -0,0 +1,76 @@
+~~Title: Efl.Ui.Widget_Focus_Manager~~
+====== Efl.Ui.Widget_Focus_Manager (mixin) ======
+
+===== Description =====
+
+%%Helper mixin for widgets which also can act as focus managers.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:widget_focus_manager:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] //(interface)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:widget_focus_manager:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+>
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget_focus_manager:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+>
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget_focus_manager:method:focus_manager_create|focus_manager_create]]** ''protected''\\
+> %%If the widget needs a focus manager, this function will be called.%%
+
+Efl_Ui_Focus_Manager *efl_ui_widget_focus_manager_create(Eo *obj, Efl_Ui_Focus_Object *root);
+
+\\
+**[[:develop:api:efl:ui:widget_focus_manager:method:focus_state_apply|focus_state_apply]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+>
+
+Eina_Bool efl_ui_widget_focus_state_apply(Eo *obj, Efl_Ui_Widget_Focus_State current_state, Efl_Ui_Widget_Focus_State configured_state, Efl_Ui_Widget *redirect);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] ^^^
+| | **[[:develop:api:efl:ui:focus:manager:property:border_elements|border_elements]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:focus:manager:method:dirty_logic_freeze|dirty_logic_freeze]]** | %%Disables the cache invalidation when an object is moved.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:dirty_logic_unfreeze|dirty_logic_unfreeze]]** | %%Enables the cache invalidation when an object is moved.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:fetch|fetch]]** | %%Fetches the data from a registered node.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:logical_end|logical_end]]** | %%Returns the last logical object.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:manager_focus|manager_focus]]** //**(get, set)**// | %%The element which is currently focused by this manager.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:move|move]]** | %%Moves the focus in the given direction to the next regular widget.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:pop_history_stack|pop_history_stack]]** | %%Removes the uppermost history element, and focuses the previous one.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:redirect|redirect]]** //**(get, set)**// | %%Add another manager to serve the move requests.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:request_move|request_move]]** | %%Returns the object in the %%''direction''%% from %%''child''%%.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:request_subchild|request_subchild]]** | %%Returns the widget in the direction next.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:reset_history|reset_history]]** | %%Resets the history stack of this manager object. This means the uppermost element will be unfocused, and all other elements will be removed from the remembered list.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:root|root]]** //**(get, set)**// | %%Root node for all logical sub-trees.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:setup_on_first_touch|setup_on_first_touch]]** | %%Called when this manager is set as redirect.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:viewport_elements|viewport_elements]]** //**(get)**// | |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] ^^^
+| | **[[:develop:api:efl:ui:focus:manager:event:coords_dirty|coords,dirty]]** | %%Cached relationship calculation results have been invalidated.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:dirty_logic_freeze_changed|dirty_logic_freeze,changed]]** | %%Called when this focus manager is frozen or thawed, even_info being %%''true''%% indicates that it is now frozen, %%''false''%% indicates that it is thawed.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:flush_pre|flush,pre]]** | %%After this event, the manager object will calculate relations in the graph. Can be used to add / remove children in a lazy fashion.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:manager_focus_changed|manager_focus,changed]]** | %%The manager_focus property has changed. The previously focused object is passed as an event argument.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:redirect_changed|redirect,changed]]** | %%Redirect object has changed, the old manager is passed as an event argument.%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_focus_manager/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/widget_focus_manager/method/constructor.txt
new file mode 100644
index 00000000..ab84a70f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_focus_manager/method/constructor.txt
@@ -0,0 +1,228 @@
+~~Title: Efl.Ui.Widget_Focus_Manager.constructor~~
+====== Efl.Ui.Widget_Focus_Manager.constructor ======
+
+===== Description =====
+
+No description supplied.
+{{page>:develop:api-include:efl:ui:widget_focus_manager:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget_focus_manager:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_focus_manager/method/destructor.txt b/public_html/data/pages/develop/api/efl/ui/widget_focus_manager/method/destructor.txt
new file mode 100644
index 00000000..41aad6a9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_focus_manager/method/destructor.txt
@@ -0,0 +1,179 @@
+~~Title: Efl.Ui.Widget_Focus_Manager.destructor~~
+====== Efl.Ui.Widget_Focus_Manager.destructor ======
+
+===== Description =====
+
+No description supplied.
+{{page>:develop:api-include:efl:ui:widget_focus_manager:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget_focus_manager:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_focus_manager/method/focus_manager_create.txt b/public_html/data/pages/develop/api/efl/ui/widget_focus_manager/method/focus_manager_create.txt
new file mode 100644
index 00000000..78412427
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_focus_manager/method/focus_manager_create.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Widget_Focus_Manager.focus_manager_create~~
+====== Efl.Ui.Widget_Focus_Manager.focus_manager_create ======
+
+===== Description =====
+
+%%If the widget needs a focus manager, this function will be called.%%
+
+%%It can be used and overridden to inject your own manager or set custom options on the focus manager.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget_focus_manager:method:focus_manager_create:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+focus_manager_create @protected @pure_virtual {
+ params {
+ @in root: Efl.Ui.Focus.Object;
+ }
+ return: Efl.Ui.Focus.Manager;
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Focus_Manager *efl_ui_widget_focus_manager_create(Eo *obj, Efl_Ui_Focus_Object *root);
+
+
+===== Parameters =====
+
+ * **root** //(in)// - %%The logical root object for focus.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget_focus_manager:method:focus_manager_create|Efl.Ui.Widget_Focus_Manager.focus_manager_create]]
+ * [[:develop:api:efl:ui:win:method:focus_manager_create|Efl.Ui.Win.focus_manager_create]]
+ * [[:develop:api:efl:ui:collection_view:method:focus_manager_create|Efl.Ui.Collection_View.focus_manager_create]]
+ * [[:develop:api:efl:ui:scroller:method:focus_manager_create|Efl.Ui.Scroller.focus_manager_create]]
+ * [[:develop:api:efl:ui:collection:method:focus_manager_create|Efl.Ui.Collection.focus_manager_create]]
+ * [[:develop:api:elm:interface_scrollable:method:focus_manager_create|Elm.Interface_Scrollable.focus_manager_create]]
+ * [[:develop:api:efl:ui:focus:layer:method:focus_manager_create|Efl.Ui.Focus.Layer.focus_manager_create]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_focus_manager/method/focus_state_apply.txt b/public_html/data/pages/develop/api/efl/ui/widget_focus_manager/method/focus_state_apply.txt
new file mode 100644
index 00000000..a11cc9f3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_focus_manager/method/focus_state_apply.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Widget_Focus_Manager.focus_state_apply~~
+====== Efl.Ui.Widget_Focus_Manager.focus_state_apply ======
+
+===== Description =====
+
+No description supplied.
+{{page>:develop:api-include:efl:ui:widget_focus_manager:method:focus_state_apply:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget_focus_manager:method:focus_state_apply|Efl.Ui.Widget.focus_state_apply]].//===== Signature =====
+
+
+focus_state_apply @protected {
+ params {
+ @in current_state: Efl.Ui.Widget_Focus_State;
+ @inout configured_state: Efl.Ui.Widget_Focus_State;
+ @in redirect: Efl.Ui.Widget;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_focus_state_apply(Eo *obj, Efl_Ui_Widget_Focus_State current_state, Efl_Ui_Widget_Focus_State configured_state, Efl_Ui_Widget *redirect);
+
+
+===== Parameters =====
+
+ * **current_state** //(in)// - %%The current focus configuration of the widget.%%
+ * **configured_state** //(inout)// - %%The new configuration being set on the widget.%%
+ * **redirect** //(in)// - %%A redirect object if there is any%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:focus_state_apply|Efl.Ui.Widget.focus_state_apply]]
+ * [[:develop:api:efl:ui:collection_view:method:focus_state_apply|Efl.Ui.Collection_View.focus_state_apply]]
+ * [[:develop:api:efl:ui:scroller:method:focus_state_apply|Efl.Ui.Scroller.focus_state_apply]]
+ * [[:develop:api:efl:ui:collection:method:focus_state_apply|Efl.Ui.Collection.focus_state_apply]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_focus_state.txt b/public_html/data/pages/develop/api/efl/ui/widget_focus_state.txt
new file mode 100644
index 00000000..33f1f83b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_focus_state.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Widget_Focus_State~~
+
+===== Description =====
+
+%%All relevant fields needed for the current state of focus registration%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:widget_focus_state:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:ui:widget_focus_state:fields&nouser&nolink&nodate}}
+
+ * **manager** - %%The manager where the widget is registered in%%
+ * **parent** - %%The parent the widget is using as logical parent%%
+ * **logical** - %%%%''true''%% if this is registered as logical currently%%
+
+===== Signature =====
+
+
+struct Efl.Ui.Widget_Focus_State {
+ manager: Efl.Ui.Focus.Manager;
+ parent: Efl.Ui.Focus.Object;
+ logical: bool;
+}
+
+
+===== C signature =====
+
+
+typedef struct _Efl_Ui_Widget_Focus_State {
+ Efl_Ui_Focus_Manager *manager;
+ Efl_Ui_Focus_Object *parent;
+ Eina_Bool logical;
+} Efl_Ui_Widget_Focus_State;
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_part.txt b/public_html/data/pages/develop/api/efl/ui/widget_part.txt
new file mode 100644
index 00000000..35886ca6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_part.txt
@@ -0,0 +1,84 @@
+~~Title: Efl.Ui.Widget_Part~~
+====== Efl.Ui.Widget_Part (class) ======
+
+===== Description =====
+
+%%This is the base class for all "Part" handles in Efl.Ui widgets.%%
+
+%%Since objects of this type are returned by %%[[:develop:api:efl:part:method:part_get|Efl.Part.part_get]]%%, their lifetime is limited to exactly one function call only. Each widget class should expose more specific types for their API-defined parts.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:widget_part:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:widget_part:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget_part:method:property_bind|property_bind]]**// [Overridden from [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]]]//\\
+> %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%%
+
+Eina_Error efl_ui_property_bind(Eo *obj, const char *key, const char *property);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:constructor|constructor]]** | %%Implement this method to provide optional initialization code for your object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_part/method/destructor.txt b/public_html/data/pages/develop/api/efl/ui/widget_part/method/destructor.txt
new file mode 100644
index 00000000..e6239b33
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_part/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Ui.Widget_Part.destructor~~
+====== Efl.Ui.Widget_Part.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget_part:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_part/method/property_bind.txt b/public_html/data/pages/develop/api/efl/ui/widget_part/method/property_bind.txt
new file mode 100644
index 00000000..700f0665
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_part/method/property_bind.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Widget_Part.property_bind~~
+====== Efl.Ui.Widget_Part.property_bind ======
+
+===== Description =====
+
+%%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%%
+
+//Since 1.23//
+{{page>:develop:api-include:efl:ui:widget_part:method:property_bind:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]].//===== Signature =====
+
+
+property_bind @pure_virtual {
+ params {
+ @in key: string;
+ @in property: string;
+ }
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_property_bind(Eo *obj, const char *key, const char *property);
+
+
+===== Parameters =====
+
+ * **key** //(in)// - %%key string for bind model property data%%
+ * **property** //(in)// - %%Model property name%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:property_bind:method:property_bind|Efl.Ui.Property_Bind.property_bind]]
+ * [[:develop:api:efl:ui:widget_factory:method:property_bind|Efl.Ui.Widget_Factory.property_bind]]
+ * [[:develop:api:efl:ui:caching_factory:method:property_bind|Efl.Ui.Caching_Factory.property_bind]]
+ * [[:develop:api:efl:ui:image_factory:method:property_bind|Efl.Ui.Image_Factory.property_bind]]
+ * [[:develop:api:efl:ui:layout_factory:method:property_bind|Efl.Ui.Layout_Factory.property_bind]]
+ * [[:develop:api:efl:ui:widget_part:method:property_bind|Efl.Ui.Widget_Part.property_bind]]
+ * [[:develop:api:efl:ui:widget:method:property_bind|Efl.Ui.Widget.property_bind]]
+ * [[:develop:api:efl:ui:image:method:property_bind|Efl.Ui.Image.property_bind]]
+ * [[:develop:api:efl:ui:layout_base:method:property_bind|Efl.Ui.Layout_Base.property_bind]]
+ * [[:develop:api:efl:ui:property_bind_part:method:property_bind|Efl.Ui.Property_Bind_Part.property_bind]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_part_bg.txt b/public_html/data/pages/develop/api/efl/ui/widget_part_bg.txt
new file mode 100644
index 00000000..d02268a3
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_part_bg.txt
@@ -0,0 +1,148 @@
+~~Title: Efl.Ui.Widget_Part_Bg~~
+====== Efl.Ui.Widget_Part_Bg (class) ======
+
+===== Description =====
+
+%%Elementary widget internal part background class%%
+
+%%This part will proxy the calls on it to the %%[[:develop:api:efl:ui:bg|Efl.Ui.Bg]]%% internal object of this widget. This internal object is stacked below the %%[[:develop:api:efl:ui:widget:property:resize_object|Efl.Ui.Widget.resize_object]]%% and co-located with the widget.%%
+
+%%All %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% objects have this part, allowing the background of the widget to be customized.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:widget_part_bg:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:file|Efl.File]] //(mixin)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:image|Efl.Gfx.Image]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:widget_part_bg:property:color|color]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:color|Efl.Gfx.Color]]]//\\
+> %%The general/main color of the given Evas object.%%
+
+void efl_gfx_color_get(const Eo *obj, int *r, int *g, int *b, int *a);
+void efl_gfx_color_set(Eo *obj, int r, int g, int b, int a);
+
+\\
+**[[:develop:api:efl:ui:widget_part_bg:property:file|file]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:file|Efl.File]]]//\\
+> %%The file path from where an object will fetch the data.%%
+
+const char *efl_file_get(const Eo *obj);
+Eina_Error efl_file_set(Eo *obj, const char *file);
+
+\\
+**[[:develop:api:efl:ui:widget_part_bg:method:finalize|finalize]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+Efl_Object *efl_finalize(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget_part_bg:property:key|key]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:file|Efl.File]]]//\\
+> %%The key which corresponds to the target data within a file.%%
+
+const char *efl_file_key_get(const Eo *obj);
+void efl_file_key_set(Eo *obj, const char *key);
+
+\\
+**[[:develop:api:efl:ui:widget_part_bg:method:load|load]]**// [Overridden from [[:develop:api:efl:file|Efl.File]]]//\\
+> %%Perform all necessary operations to open and load file data into the object using the %%[[:develop:api:efl:file:property:file|Efl.File.file]]%% (or %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap]]%%) and %%[[:develop:api:efl:file:property:key|Efl.File.key]]%% properties.%%
+
+Eina_Error efl_file_load(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:widget_part_bg:property:mmap|mmap]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:file|Efl.File]]]//\\
+> %%The mmaped file from where an object will fetch the real data (it must be an %%[[:develop:api:eina:file|Eina.File]]%%).%%
+
+const Eina_File efl_file_mmap_get(const Eo *obj);
+Eina_Error efl_file_mmap_set(Eo *obj, const Eina_File f);
+
+\\
+**[[:develop:api:efl:ui:widget_part_bg:method:unload|unload]]**// [Overridden from [[:develop:api:efl:file|Efl.File]]]//\\
+> %%Perform all necessary operations to unload file data from the object.%%
+
+void efl_file_unload(Eo *obj);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:file|Efl.File]] ^^^
+| | **[[:develop:api:efl:file:property:loaded|loaded]]** //**(get)**// | |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:image|Efl.Gfx.Image]] ^^^
+| | **[[:develop:api:efl:gfx:image:property:border_insets|border_insets]]** //**(get, set)**// | %%Dimensions of this image's border, a region that does not scale with the center area.%% |
+| | **[[:develop:api:efl:gfx:image:property:border_insets_scale|border_insets_scale]]** //**(get, set)**// | %%Scaling factor applied to the image borders.%% |
+| | **[[:develop:api:efl:gfx:image:property:can_downscale|can_downscale]]** //**(get, set)**// | %%If %%''true''%%, the image may be scaled to a smaller size. If %%''false''%%, the image will never be resized smaller than its native size.%% |
+| | **[[:develop:api:efl:gfx:image:property:can_upscale|can_upscale]]** //**(get, set)**// | %%If %%''true''%%, the image may be scaled to a larger size. If %%''false''%%, the image will never be resized larger than its native size.%% |
+| | **[[:develop:api:efl:gfx:image:property:center_fill_mode|center_fill_mode]]** //**(get, set)**// | %%Specifies how the center part of the object (not the borders) should be drawn when EFL is rendering it.%% |
+| | **[[:develop:api:efl:gfx:image:property:content_hint|content_hint]]** //**(get, set)**// | %%Content hint setting for the image. These hints might be used by EFL to enable optimizations.%% |
+| | **[[:develop:api:efl:gfx:image:property:content_region|content_region]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:image:property:image_load_error|image_load_error]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:image:property:image_size|image_size]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:image:property:ratio|ratio]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:image:property:scale_hint|scale_hint]]** //**(get, set)**// | %%The scale hint of a given image of the canvas.%% |
+| | **[[:develop:api:efl:gfx:image:property:scale_method|scale_method]]** //**(get, set)**// | %%Determine how the image is scaled at render time.%% |
+| | **[[:develop:api:efl:gfx:image:property:smooth_scale|smooth_scale]]** //**(get, set)**// | %%Whether to use high-quality image scaling algorithm for this image.%% |
+| | **[[:develop:api:efl:gfx:image:property:stretch_region|stretch_region]]** //**(get, set)**// | %%This property defines the stretchable pixels region of an image.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:constructor|constructor]]** | %%Implement this method to provide optional initialization code for your object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]] ^^^
+| | **[[:develop:api:efl:ui:widget_part:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| | **[[:develop:api:efl:ui:widget_part:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:gfx:image|Efl.Gfx.Image]] ^^^
+| | **[[:develop:api:efl:gfx:image:event:image_preload_state_changed|image,preload_state,changed]]** | %%If %%''true''%%, image data has been preloaded and can be displayed. If %%''false''%%, the image data has been unloaded and can no longer be displayed.%% |
+| | **[[:develop:api:efl:gfx:image:event:image_resized|image,resized]]** | %%Image was resized (its pixel data). The event data is the image's new size.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_part_bg/method/finalize.txt b/public_html/data/pages/develop/api/efl/ui/widget_part_bg/method/finalize.txt
new file mode 100644
index 00000000..ab8a4fb2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_part_bg/method/finalize.txt
@@ -0,0 +1,91 @@
+~~Title: Efl.Ui.Widget_Part_Bg.finalize~~
+====== Efl.Ui.Widget_Part_Bg.finalize ======
+
+===== Description =====
+
+%%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+%%Use this method to delay expensive operations until user configuration has finished, to avoid building the object in a "default" state in the constructor, just to have to throw it all away because a user configuration (a property being set, for example) requires a different state. This is the last call inside efl_add() and will set %%[[:develop:api:efl:object:property:finalized|Efl.Object.finalized]]%% to %%''true''%% once it returns. This is an optimization and implementing this method is optional if you already perform all your initialization in the %%[[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]%% method. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget_part_bg:method:finalize:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:object:method:finalize|Efl.Object.finalize]].//===== Signature =====
+
+
+finalize {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_finalize(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]
+ * [[:develop:api:efl:loop_handler:method:finalize|Efl.Loop_Handler.finalize]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:finalize|Efl.Ui.Position_Manager.Grid.finalize]]
+ * [[:develop:api:efl:canvas:layout_part:method:finalize|Efl.Canvas.Layout_Part.finalize]]
+ * [[:develop:api:efl:net:server_udp_client:method:finalize|Efl.Net.Server_Udp_Client.finalize]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:finalize|Efl.Ui.Widget_Part_Bg.finalize]]
+ * [[:develop:api:efl:ui:layout_part_bg:method:finalize|Efl.Ui.Layout_Part_Bg.finalize]]
+ * [[:develop:api:efl:io:buffered_stream:method:finalize|Efl.Io.Buffered_Stream.finalize]]
+ * [[:develop:api:efl:net:dialer_simple:method:finalize|Efl.Net.Dialer_Simple.finalize]]
+ * [[:develop:api:efl:io:file:method:finalize|Efl.Io.File.finalize]]
+ * [[:develop:api:efl:net:server_fd:method:finalize|Efl.Net.Server_Fd.finalize]]
+ * [[:develop:api:efl:io:stderr:method:finalize|Efl.Io.Stderr.finalize]]
+ * [[:develop:api:efl:io:stdin:method:finalize|Efl.Io.Stdin.finalize]]
+ * [[:develop:api:efl:io:stdout:method:finalize|Efl.Io.Stdout.finalize]]
+ * [[:develop:api:efl:net:socket_fd:method:finalize|Efl.Net.Socket_Fd.finalize]]
+ * [[:develop:api:efl:net:socket_ssl:method:finalize|Efl.Net.Socket_Ssl.finalize]]
+ * [[:develop:api:efl:net:dialer_ssl:method:finalize|Efl.Net.Dialer_Ssl.finalize]]
+ * [[:develop:api:efl:canvas:object:method:finalize|Efl.Canvas.Object.finalize]]
+ * [[:develop:api:efl:canvas:image_internal:method:finalize|Efl.Canvas.Image_Internal.finalize]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:finalize|Efl.Ui.Internal.Text.Interactive.finalize]]
+ * [[:develop:api:efl:ui:widget:method:finalize|Efl.Ui.Widget.finalize]]
+ * [[:develop:api:efl:ui:win:method:finalize|Efl.Ui.Win.finalize]]
+ * [[:develop:api:efl:ui:win_socket:method:finalize|Efl.Ui.Win_Socket.finalize]]
+ * [[:develop:api:efl:ui:win_inlined:method:finalize|Efl.Ui.Win_Inlined.finalize]]
+ * [[:develop:api:efl:ui:layout_base:method:finalize|Efl.Ui.Layout_Base.finalize]]
+ * [[:develop:api:efl:ui:text:method:finalize|Efl.Ui.Text.finalize]]
+ * [[:develop:api:efl:ui:tab_bar:method:finalize|Efl.Ui.Tab_Bar.finalize]]
+ * [[:develop:api:efl:ui:item:method:finalize|Efl.Ui.Item.finalize]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:finalize|Efl.Ui.List_Placeholder_Item.finalize]]
+ * [[:develop:api:elm:code_widget:method:finalize|Elm.Code_Widget.finalize]]
+ * [[:develop:api:efl:ui:scroller:method:finalize|Efl.Ui.Scroller.finalize]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:finalize|Efl.Ui.Internal_Text_Scroller.finalize]]
+ * [[:develop:api:efl:ui:collection:method:finalize|Efl.Ui.Collection.finalize]]
+ * [[:develop:api:efl:ui:spotlight:container:method:finalize|Efl.Ui.Spotlight.Container.finalize]]
+ * [[:develop:api:efl:ui:tab_pager:method:finalize|Efl.Ui.Tab_Pager.finalize]]
+ * [[:develop:api:efl:ui:bg:method:finalize|Efl.Ui.Bg.finalize]]
+ * [[:develop:api:efl:canvas:vg:object:method:finalize|Efl.Canvas.Vg.Object.finalize]]
+ * [[:develop:api:efl:loop_timer:method:finalize|Efl.Loop_Timer.finalize]]
+ * [[:develop:api:eldbus:model:method:finalize|Eldbus.Model.finalize]]
+ * [[:develop:api:eldbus:model:proxy:method:finalize|Eldbus.Model.Proxy.finalize]]
+ * [[:develop:api:eldbus:model:arguments:method:finalize|Eldbus.Model.Arguments.finalize]]
+ * [[:develop:api:eldbus:model:method:method:finalize|Eldbus.Model.Method.finalize]]
+ * [[:develop:api:eldbus:model:object:method:finalize|Eldbus.Model.Object.finalize]]
+ * [[:develop:api:efl:composite_model:method:finalize|Efl.Composite_Model.finalize]]
+ * [[:develop:api:efl:container_model:method:finalize|Efl.Container_Model.finalize]]
+ * [[:develop:api:efl:ui:view_model:method:finalize|Efl.Ui.View_Model.finalize]]
+ * [[:develop:api:efl:io:model:method:finalize|Efl.Io.Model.finalize]]
+ * [[:develop:api:efl:net:server_simple:method:finalize|Efl.Net.Server_Simple.finalize]]
+ * [[:develop:api:efl:net:control:manager:method:finalize|Efl.Net.Control.Manager.finalize]]
+ * [[:develop:api:efl:ui:widget_factory:method:finalize|Efl.Ui.Widget_Factory.finalize]]
+ * [[:develop:api:efl:ui:caching_factory:method:finalize|Efl.Ui.Caching_Factory.finalize]]
+ * [[:develop:api:efl:thread:method:finalize|Efl.Thread.finalize]]
+ * [[:develop:api:efl:net:session:method:finalize|Efl.Net.Session.finalize]]
+ * [[:develop:api:efl:io:copier:method:finalize|Efl.Io.Copier.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:finalize|Efl.Ui.Focus.Manager_Calc.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:finalize|Efl.Ui.Focus.Manager_Root_Focus.finalize]]
+ * [[:develop:api:evas:canvas3d:node:method:finalize|Evas.Canvas3D.Node.finalize]]
+ * [[:develop:api:efl:net:ssl:context:method:finalize|Efl.Net.Ssl.Context.finalize]]
+ * [[:develop:api:efl:io:buffer:method:finalize|Efl.Io.Buffer.finalize]]
+ * [[:develop:api:efl:net:ip_address:method:finalize|Efl.Net.Ip_Address.finalize]]
+ * [[:develop:api:efl:io:queue:method:finalize|Efl.Io.Queue.finalize]]
+ * [[:develop:api:ector:renderer:method:finalize|Ector.Renderer.finalize]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_part_bg/method/load.txt b/public_html/data/pages/develop/api/efl/ui/widget_part_bg/method/load.txt
new file mode 100644
index 00000000..0cdde51d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_part_bg/method/load.txt
@@ -0,0 +1,48 @@
+~~Title: Efl.Ui.Widget_Part_Bg.load~~
+====== Efl.Ui.Widget_Part_Bg.load ======
+
+===== Description =====
+
+%%Perform all necessary operations to open and load file data into the object using the %%[[:develop:api:efl:file:property:file|Efl.File.file]]%% (or %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap]]%%) and %%[[:develop:api:efl:file:property:key|Efl.File.key]]%% properties.%%
+
+%%In the case where %%[[:develop:api:efl:file:property:file|Efl.File.file.set]]%% has been called on an object, this will internally open the file and call %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap.set]]%% on the object using the opened file handle.%%
+
+%%Calling %%[[:develop:api:efl:file:method:load|Efl.File.load]]%% on an object which has already performed file operations based on the currently set properties will have no effect.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget_part_bg:method:load:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:file:method:load|Efl.File.load]].//===== Signature =====
+
+
+load {
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_file_load(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:method:load|Efl.File.load]]
+ * [[:develop:api:evas:canvas3d:mesh:method:load|Evas.Canvas3D.Mesh.load]]
+ * [[:develop:api:efl:ui:win_part:method:load|Efl.Ui.Win_Part.load]]
+ * [[:develop:api:efl:canvas:video:method:load|Efl.Canvas.Video.load]]
+ * [[:develop:api:efl:ui:text:method:load|Efl.Ui.Text.load]]
+ * [[:develop:api:efl:canvas:image:method:load|Efl.Canvas.Image.load]]
+ * [[:develop:api:efl:canvas:layout:method:load|Efl.Canvas.Layout.load]]
+ * [[:develop:api:efl:ui:layout:method:load|Efl.Ui.Layout.load]]
+ * [[:develop:api:efl:ui:image:method:load|Efl.Ui.Image.load]]
+ * [[:develop:api:efl:ui:image_zoomable:method:load|Efl.Ui.Image_Zoomable.load]]
+ * [[:develop:api:efl:ui:animation_view:method:load|Efl.Ui.Animation_View.load]]
+ * [[:develop:api:evas:canvas3d:texture:method:load|Evas.Canvas3D.Texture.load]]
+ * [[:develop:api:efl:canvas:vg:object:method:load|Efl.Canvas.Vg.Object.load]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:load|Efl.Ui.Widget_Part_Bg.load]]
+ * [[:develop:api:efl:ui:video:method:load|Efl.Ui.Video.load]]
+ * [[:develop:api:efl:ui:popup_part_backwall:method:load|Efl.Ui.Popup_Part_Backwall.load]]
+ * [[:develop:api:efl:ui:bg:method:load|Efl.Ui.Bg.load]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_part_bg/method/unload.txt b/public_html/data/pages/develop/api/efl/ui/widget_part_bg/method/unload.txt
new file mode 100644
index 00000000..c5a48fea
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_part_bg/method/unload.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Widget_Part_Bg.unload~~
+====== Efl.Ui.Widget_Part_Bg.unload ======
+
+===== Description =====
+
+%%Perform all necessary operations to unload file data from the object.%%
+
+%%In the case where %%[[:develop:api:efl:file:property:mmap|Efl.File.mmap.set]]%% has been externally called on an object, the file handle stored in the object will be preserved.%%
+
+%%Calling %%[[:develop:api:efl:file:method:unload|Efl.File.unload]]%% on an object which is not currently loaded will have no effect.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget_part_bg:method:unload:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:file:method:unload|Efl.File.unload]].//===== Signature =====
+
+
+unload {}
+
+
+===== C signature =====
+
+
+void efl_file_unload(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:method:unload|Efl.File.unload]]
+ * [[:develop:api:evas:canvas3d:mesh:method:unload|Evas.Canvas3D.Mesh.unload]]
+ * [[:develop:api:efl:ui:win_part:method:unload|Efl.Ui.Win_Part.unload]]
+ * [[:develop:api:efl:canvas:video:method:unload|Efl.Canvas.Video.unload]]
+ * [[:develop:api:efl:ui:text:method:unload|Efl.Ui.Text.unload]]
+ * [[:develop:api:efl:canvas:image:method:unload|Efl.Canvas.Image.unload]]
+ * [[:develop:api:efl:canvas:layout:method:unload|Efl.Canvas.Layout.unload]]
+ * [[:develop:api:efl:ui:layout:method:unload|Efl.Ui.Layout.unload]]
+ * [[:develop:api:efl:ui:image:method:unload|Efl.Ui.Image.unload]]
+ * [[:develop:api:efl:ui:image_zoomable:method:unload|Efl.Ui.Image_Zoomable.unload]]
+ * [[:develop:api:efl:ui:animation_view:method:unload|Efl.Ui.Animation_View.unload]]
+ * [[:develop:api:evas:canvas3d:texture:method:unload|Evas.Canvas3D.Texture.unload]]
+ * [[:develop:api:efl:canvas:vg:object:method:unload|Efl.Canvas.Vg.Object.unload]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:unload|Efl.Ui.Widget_Part_Bg.unload]]
+ * [[:develop:api:efl:ui:video:method:unload|Efl.Ui.Video.unload]]
+ * [[:develop:api:efl:ui:popup_part_backwall:method:unload|Efl.Ui.Popup_Part_Backwall.unload]]
+ * [[:develop:api:efl:ui:bg:method:unload|Efl.Ui.Bg.unload]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_part_bg/property/color.txt b/public_html/data/pages/develop/api/efl/ui/widget_part_bg/property/color.txt
new file mode 100644
index 00000000..e343bc8f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_part_bg/property/color.txt
@@ -0,0 +1,60 @@
+~~Title: Efl.Ui.Widget_Part_Bg.color~~
+====== Efl.Ui.Widget_Part_Bg.color ======
+
+===== Description =====
+
+%%The general/main color of the given Evas object.%%
+
+%%Represents the main color's RGB component (and alpha channel) values, which range from 0 to 255. For the alpha channel, which defines the object's transparency level, 0 means totally transparent, while 255 means opaque. These color values are premultiplied by the alpha value.%%
+
+%%Usually you'll use this attribute for text and rectangle objects, where the main color is the only color. If set for objects which themselves have colors, like the images one, those colors get modulated by this one.%%
+
+%%All newly created Evas rectangles get the default color values of 255 255 255 255 (opaque white).%%
+
+%%When reading this property, use %%''NULL''%% pointers on the components you're not interested in and they'll be ignored by the function.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget_part_bg:property:color:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **r** - No description supplied.
+ * **g** - No description supplied.
+ * **b** - No description supplied.
+ * **a** - No description supplied.
+
+//Overridden from [[:develop:api:efl:gfx:color:property:color|Efl.Gfx.Color.color]] **(get, set)**.//===== Signature =====
+
+
+@property color @pure_virtual {
+ get {}
+ set {}
+ values {
+ r: int;
+ g: int;
+ b: int;
+ a: int;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_color_get(const Eo *obj, int *r, int *g, int *b, int *a);
+void efl_gfx_color_set(Eo *obj, int r, int g, int b, int a);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:color:property:color|Efl.Gfx.Color.color]]
+ * [[:develop:api:efl:canvas:vg:node:property:color|Efl.Canvas.Vg.Node.color]]
+ * [[:develop:api:efl:ui:win_part:property:color|Efl.Ui.Win_Part.color]]
+ * [[:develop:api:efl:ui:widget_part_shadow:property:color|Efl.Ui.Widget_Part_Shadow.color]]
+ * [[:develop:api:efl:canvas:object:property:color|Efl.Canvas.Object.color]]
+ * [[:develop:api:efl:canvas:group:property:color|Efl.Canvas.Group.color]]
+ * [[:develop:api:efl:ui:widget:property:color|Efl.Ui.Widget.color]]
+ * [[:develop:api:efl:ui:image:property:color|Efl.Ui.Image.color]]
+ * [[:develop:api:efl:ui:bg:property:color|Efl.Ui.Bg.color]]
+ * [[:develop:api:efl:ui:widget_part_bg:property:color|Efl.Ui.Widget_Part_Bg.color]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_part_bg/property/file.txt b/public_html/data/pages/develop/api/efl/ui/widget_part_bg/property/file.txt
new file mode 100644
index 00000000..dfa24f70
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_part_bg/property/file.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Ui.Widget_Part_Bg.file~~
+====== Efl.Ui.Widget_Part_Bg.file ======
+
+===== Description =====
+
+%%The file path from where an object will fetch the data.%%
+
+%%If file is set during object construction, the object will automatically call %%[[:develop:api:efl:file:method:load|Efl.File.load]]%% during the finalize phase of construction.%%
+
+%%You must not modify the strings on the returned pointers.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget_part_bg:property:file:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **file** - %%The file path.%%
+
+//Overridden from [[:develop:api:efl:file:property:file|Efl.File.file]] **(get, set)**.//===== Signature =====
+
+
+@property file {
+ get {}
+ set {
+ return: Eina.Error;
+ }
+ values {
+ file: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_file_get(const Eo *obj);
+Eina_Error efl_file_set(Eo *obj, const char *file);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:property:file|Efl.File.file]]
+ * [[:develop:api:efl:ui:win_part:property:file|Efl.Ui.Win_Part.file]]
+ * [[:develop:api:efl:canvas:video:property:file|Efl.Canvas.Video.file]]
+ * [[:develop:api:efl:ui:text:property:file|Efl.Ui.Text.file]]
+ * [[:develop:api:efl:ui:layout:property:file|Efl.Ui.Layout.file]]
+ * [[:develop:api:efl:ui:image_zoomable:property:file|Efl.Ui.Image_Zoomable.file]]
+ * [[:develop:api:efl:canvas:vg:object:property:file|Efl.Canvas.Vg.Object.file]]
+ * [[:develop:api:efl:ui:widget_part_bg:property:file|Efl.Ui.Widget_Part_Bg.file]]
+ * [[:develop:api:efl:ui:popup_part_backwall:property:file|Efl.Ui.Popup_Part_Backwall.file]]
+ * [[:develop:api:efl:ui:bg:property:file|Efl.Ui.Bg.file]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_part_bg/property/key.txt b/public_html/data/pages/develop/api/efl/ui/widget_part_bg/property/key.txt
new file mode 100644
index 00000000..72d660d0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_part_bg/property/key.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Widget_Part_Bg.key~~
+====== Efl.Ui.Widget_Part_Bg.key ======
+
+===== Description =====
+
+%%The key which corresponds to the target data within a file.%%
+
+%%Some file types can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example %%[[:develop:api:efl:ui:image|Efl.Ui.Image]]%% or %%[[:develop:api:efl:ui:layout|Efl.Ui.Layout]]%%).%%
+
+%%You must not modify the strings on the returned pointers.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget_part_bg:property:key:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **key** - %%The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.%%
+
+//Overridden from [[:develop:api:efl:file:property:key|Efl.File.key]] **(get, set)**.//===== Signature =====
+
+
+@property key {
+ get {}
+ set {}
+ values {
+ key: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_file_key_get(const Eo *obj);
+void efl_file_key_set(Eo *obj, const char *key);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:property:key|Efl.File.key]]
+ * [[:develop:api:efl:ui:win_part:property:key|Efl.Ui.Win_Part.key]]
+ * [[:develop:api:efl:ui:layout:property:key|Efl.Ui.Layout.key]]
+ * [[:develop:api:efl:ui:widget_part_bg:property:key|Efl.Ui.Widget_Part_Bg.key]]
+ * [[:develop:api:efl:ui:popup_part_backwall:property:key|Efl.Ui.Popup_Part_Backwall.key]]
+ * [[:develop:api:efl:ui:bg:property:key|Efl.Ui.Bg.key]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_part_bg/property/mmap.txt b/public_html/data/pages/develop/api/efl/ui/widget_part_bg/property/mmap.txt
new file mode 100644
index 00000000..2a88cc98
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_part_bg/property/mmap.txt
@@ -0,0 +1,44 @@
+~~Title: Efl.Ui.Widget_Part_Bg.mmap~~
+====== Efl.Ui.Widget_Part_Bg.mmap ======
+
+===== Description =====
+
+%%The mmaped file from where an object will fetch the real data (it must be an %%[[:develop:api:eina:file|Eina.File]]%%).%%
+
+%%If mmap is set during object construction, the object will automatically call %%[[:develop:api:efl:file:method:load|Efl.File.load]]%% during the finalize phase of construction.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget_part_bg:property:mmap:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **f** - %%The handle to the %%[[:develop:api:eina:file|Eina.File]]%% that will be used%%
+
+//Overridden from [[:develop:api:efl:file:property:mmap|Efl.File.mmap]] **(get, set)**.//===== Signature =====
+
+
+@property mmap {
+ get {}
+ set {
+ return: Eina.Error;
+ }
+ values {
+ f: const(Eina.File);
+ }
+}
+
+
+===== C signature =====
+
+
+const Eina_File efl_file_mmap_get(const Eo *obj);
+Eina_Error efl_file_mmap_set(Eo *obj, const Eina_File f);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:file:property:mmap|Efl.File.mmap]]
+ * [[:develop:api:efl:ui:layout:property:mmap|Efl.Ui.Layout.mmap]]
+ * [[:develop:api:efl:ui:widget_part_bg:property:mmap|Efl.Ui.Widget_Part_Bg.mmap]]
+ * [[:develop:api:efl:ui:bg:property:mmap|Efl.Ui.Bg.mmap]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_part_shadow.txt b/public_html/data/pages/develop/api/efl/ui/widget_part_shadow.txt
new file mode 100644
index 00000000..350b3c12
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_part_shadow.txt
@@ -0,0 +1,149 @@
+~~Title: Efl.Ui.Widget_Part_Shadow~~
+====== Efl.Ui.Widget_Part_Shadow (class) ======
+
+===== Description =====
+
+%%A drop-shadow or glow effect around any widget.%%
+
+%%A simple drop-shadow effect can be applied to any widget by setting the color and blur radius on this part.%%
+
+%%For instance, a blue glow can be achieved with: obj.shadow().color_set(0, 128, 255, 255); obj.shadow().grow_set(2); obj.shadow().radius_set(3, 3);%%
+
+%%As another example, here's a black drop-shadow: obj.shadow().color_set(0, 0, 0, 255); obj.shadow().grow_set(1); obj.shadow().radius_set(5, 5); obj.shadow().offset_set(5, 5);%%
+
+%%It is also possible to manually specify which %%[[:develop:api:efl:gfx:filter|Efl.Gfx.Filter]]%% program to use.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:efl:ui:widget_part_shadow:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:blur|Efl.Gfx.Blur]] //(interface)//
+ * [[:develop:api:efl:gfx:filter|Efl.Gfx.Filter]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:widget_part_shadow:property:color|color]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:color|Efl.Gfx.Color]]]//\\
+> %%The general/main color of the given Evas object.%%
+
+void efl_gfx_color_get(const Eo *obj, int *r, int *g, int *b, int *a);
+void efl_gfx_color_set(Eo *obj, int r, int g, int b, int a);
+
+\\
+**[[:develop:api:efl:ui:widget_part_shadow:property:filter_data|filter_data]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:filter|Efl.Gfx.Filter]]]//\\
+> %%Extra data used by the filter program.%%
+
+void efl_gfx_filter_data_get(const Eo *obj, const char *name, const char **value, Eina_Bool *execute);
+void efl_gfx_filter_data_set(Eo *obj, const char *name, const char *value, Eina_Bool execute);
+
+\\
+**[[:develop:api:efl:ui:widget_part_shadow:property:filter_padding|filter_padding]]** //**(get)**//// [Overridden from [[:develop:api:efl:gfx:filter|Efl.Gfx.Filter]]]//\\
+>
+
+void efl_gfx_filter_padding_get(const Eo *obj, int *l, int *r, int *t, int *b);
+
+\\
+**[[:develop:api:efl:ui:widget_part_shadow:property:filter_program|filter_program]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:filter|Efl.Gfx.Filter]]]//\\
+> %%A graphical filter program on this object.%%
+
+void efl_gfx_filter_program_get(const Eo *obj, const char **code, const char **name);
+void efl_gfx_filter_program_set(Eo *obj, const char *code, const char *name);
+
+\\
+**[[:develop:api:efl:ui:widget_part_shadow:property:filter_source|filter_source]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:filter|Efl.Gfx.Filter]]]//\\
+> %%Bind an object to use as a mask or texture in a filter program.%%
+
+Efl_Gfx_Entity *efl_gfx_filter_source_get(const Eo *obj, const char *name);
+void efl_gfx_filter_source_set(Eo *obj, const char *name, Efl_Gfx_Entity *source);
+
+\\
+**[[:develop:api:efl:ui:widget_part_shadow:property:filter_state|filter_state]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:filter|Efl.Gfx.Filter]]]//\\
+> %%Set the current state of the filter.%%
+
+void efl_gfx_filter_state_get(const Eo *obj, const char **cur_state, double *cur_val, const char **next_state, double *next_val, double *pos);
+void efl_gfx_filter_state_set(Eo *obj, const char *cur_state, double cur_val, const char *next_state, double next_val, double pos);
+
+\\
+**[[:develop:api:efl:ui:widget_part_shadow:property:grow|grow]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:blur|Efl.Gfx.Blur]]]//\\
+> %%How much the original image should be "grown" before blurring.%%
+
+double efl_gfx_blur_grow_get(const Eo *obj);
+void efl_gfx_blur_grow_set(Eo *obj, double radius);
+
+\\
+**[[:develop:api:efl:ui:widget_part_shadow:property:offset|offset]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:blur|Efl.Gfx.Blur]]]//\\
+> %%An offset relative to the original pixels.%%
+
+void efl_gfx_blur_offset_get(const Eo *obj, double *ox, double *oy);
+void efl_gfx_blur_offset_set(Eo *obj, double ox, double oy);
+
+\\
+**[[:develop:api:efl:ui:widget_part_shadow:property:radius|radius]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:blur|Efl.Gfx.Blur]]]//\\
+> %%The blur radius in pixels.%%
+
+void efl_gfx_blur_radius_get(const Eo *obj, double *rx, double *ry);
+void efl_gfx_blur_radius_set(Eo *obj, double rx, double ry);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:constructor|constructor]]** | %%Implement this method to provide optional initialization code for your object.%% |
+| | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:object:method:finalize|finalize]]** | %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:object:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]] ^^^
+| | **[[:develop:api:efl:ui:widget_part:method:destructor|destructor]]** | %%Implement this method to provide deinitialization code for your object if you need it.%% |
+| | **[[:develop:api:efl:ui:widget_part:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+
+===== Events =====
+
+==== Inherited ====
+
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/color.txt b/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/color.txt
new file mode 100644
index 00000000..229f0d23
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/color.txt
@@ -0,0 +1,60 @@
+~~Title: Efl.Ui.Widget_Part_Shadow.color~~
+====== Efl.Ui.Widget_Part_Shadow.color ======
+
+===== Description =====
+
+%%The general/main color of the given Evas object.%%
+
+%%Represents the main color's RGB component (and alpha channel) values, which range from 0 to 255. For the alpha channel, which defines the object's transparency level, 0 means totally transparent, while 255 means opaque. These color values are premultiplied by the alpha value.%%
+
+%%Usually you'll use this attribute for text and rectangle objects, where the main color is the only color. If set for objects which themselves have colors, like the images one, those colors get modulated by this one.%%
+
+%%All newly created Evas rectangles get the default color values of 255 255 255 255 (opaque white).%%
+
+%%When reading this property, use %%''NULL''%% pointers on the components you're not interested in and they'll be ignored by the function.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:widget_part_shadow:property:color:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **r** - No description supplied.
+ * **g** - No description supplied.
+ * **b** - No description supplied.
+ * **a** - No description supplied.
+
+//Overridden from [[:develop:api:efl:gfx:color:property:color|Efl.Gfx.Color.color]] **(get, set)**.//===== Signature =====
+
+
+@property color @pure_virtual {
+ get {}
+ set {}
+ values {
+ r: int;
+ g: int;
+ b: int;
+ a: int;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_color_get(const Eo *obj, int *r, int *g, int *b, int *a);
+void efl_gfx_color_set(Eo *obj, int r, int g, int b, int a);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:color:property:color|Efl.Gfx.Color.color]]
+ * [[:develop:api:efl:canvas:vg:node:property:color|Efl.Canvas.Vg.Node.color]]
+ * [[:develop:api:efl:ui:win_part:property:color|Efl.Ui.Win_Part.color]]
+ * [[:develop:api:efl:ui:widget_part_shadow:property:color|Efl.Ui.Widget_Part_Shadow.color]]
+ * [[:develop:api:efl:canvas:object:property:color|Efl.Canvas.Object.color]]
+ * [[:develop:api:efl:canvas:group:property:color|Efl.Canvas.Group.color]]
+ * [[:develop:api:efl:ui:widget:property:color|Efl.Ui.Widget.color]]
+ * [[:develop:api:efl:ui:image:property:color|Efl.Ui.Image.color]]
+ * [[:develop:api:efl:ui:bg:property:color|Efl.Ui.Bg.color]]
+ * [[:develop:api:efl:ui:widget_part_bg:property:color|Efl.Ui.Widget_Part_Bg.color]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/filter_data.txt b/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/filter_data.txt
new file mode 100644
index 00000000..66dac20b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/filter_data.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Widget_Part_Shadow.filter_data~~
+====== Efl.Ui.Widget_Part_Shadow.filter_data ======
+
+===== Description =====
+
+%%Extra data used by the filter program.%%
+
+%%Each data element is a string (%%''value''%%) stored as a global variable %%''name''%%. The program is then responsible for conversion to numbers, tables, etc...%%
+
+%%If the %%''execute''%% flag is set, then the %%''value''%% can be complex and run, as if the original Lua program contained a line 'name = value'. This can be used to pass in tables.%%
+{{page>:develop:api-include:efl:ui:widget_part_shadow:property:filter_data:description&nouser&nolink&nodate}}
+
+===== Keys =====
+
+ * **name** - %%Name of the global variable%%
+===== Values =====
+
+ * **value** - %%String value to use as data%%
+ * **execute** - %%If %%''true''%%, execute 'name = value'%%
+
+//Overridden from [[:develop:api:efl:gfx:filter:property:filter_data|Efl.Gfx.Filter.filter_data]] **(get, set)**.//===== Signature =====
+
+
+@property filter_data @pure_virtual {
+ get {}
+ set {}
+ keys {
+ name: string;
+ }
+ values {
+ value: string;
+ execute: bool (false);
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_filter_data_get(const Eo *obj, const char *name, const char **value, Eina_Bool *execute);
+void efl_gfx_filter_data_set(Eo *obj, const char *name, const char *value, Eina_Bool execute);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:filter:property:filter_data|Efl.Gfx.Filter.filter_data]]
+ * [[:develop:api:efl:ui:widget_part_shadow:property:filter_data|Efl.Ui.Widget_Part_Shadow.filter_data]]
+ * [[:develop:api:efl:canvas:filter:internal:property:filter_data|Efl.Canvas.Filter.Internal.filter_data]]
+ * [[:develop:api:efl:canvas:text:property:filter_data|Efl.Canvas.Text.filter_data]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/filter_padding.txt b/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/filter_padding.txt
new file mode 100644
index 00000000..6efbcdff
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/filter_padding.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Widget_Part_Shadow.filter_padding~~
+====== Efl.Ui.Widget_Part_Shadow.filter_padding ======
+
+===== Values =====
+
+ * **l** - %%Padding on the left%%
+ * **r** - %%Padding on the right%%
+ * **t** - %%Padding on the top%%
+ * **b** - %%Padding on the bottom%%
+
+
+\\ {{page>:develop:api-include:efl:ui:widget_part_shadow:property:filter_padding:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:gfx:filter:property:filter_padding|Efl.Gfx.Filter.filter_padding]] **(get)**.//===== Signature =====
+
+
+@property filter_padding @pure_virtual {
+ get {}
+ values {
+ l: int;
+ r: int;
+ t: int;
+ b: int;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_filter_padding_get(const Eo *obj, int *l, int *r, int *t, int *b);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:filter:property:filter_padding|Efl.Gfx.Filter.filter_padding]]
+ * [[:develop:api:efl:ui:widget_part_shadow:property:filter_padding|Efl.Ui.Widget_Part_Shadow.filter_padding]]
+ * [[:develop:api:efl:canvas:filter:internal:property:filter_padding|Efl.Canvas.Filter.Internal.filter_padding]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/filter_program.txt b/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/filter_program.txt
new file mode 100644
index 00000000..1b395cd5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/filter_program.txt
@@ -0,0 +1,47 @@
+~~Title: Efl.Ui.Widget_Part_Shadow.filter_program~~
+====== Efl.Ui.Widget_Part_Shadow.filter_program ======
+
+===== Description =====
+
+%%A graphical filter program on this object.%%
+
+%%Valid for Text and Image objects at the moment.%%
+
+%%The argument passed to this function is a string containing a valid Lua program based on the filters API as described in the "EFL Graphics Filters" reference page.%%
+
+%%Set to %%''null''%% to disable filtering.%%
+{{page>:develop:api-include:efl:ui:widget_part_shadow:property:filter_program:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **code** - %%The Lua program source code.%%
+ * **name** - %%An optional name for this filter.%%
+
+//Overridden from [[:develop:api:efl:gfx:filter:property:filter_program|Efl.Gfx.Filter.filter_program]] **(get, set)**.//===== Signature =====
+
+
+@property filter_program @pure_virtual {
+ get {}
+ set {}
+ values {
+ code: string;
+ name: string @optional;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_filter_program_get(const Eo *obj, const char **code, const char **name);
+void efl_gfx_filter_program_set(Eo *obj, const char *code, const char *name);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:filter:property:filter_program|Efl.Gfx.Filter.filter_program]]
+ * [[:develop:api:efl:ui:widget_part_shadow:property:filter_program|Efl.Ui.Widget_Part_Shadow.filter_program]]
+ * [[:develop:api:efl:canvas:filter:internal:property:filter_program|Efl.Canvas.Filter.Internal.filter_program]]
+ * [[:develop:api:efl:canvas:image_internal:property:filter_program|Efl.Canvas.Image_Internal.filter_program]]
+ * [[:develop:api:efl:canvas:text:property:filter_program|Efl.Canvas.Text.filter_program]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/filter_source.txt b/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/filter_source.txt
new file mode 100644
index 00000000..e9443245
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/filter_source.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Widget_Part_Shadow.filter_source~~
+====== Efl.Ui.Widget_Part_Shadow.filter_source ======
+
+===== Description =====
+
+%%Bind an object to use as a mask or texture in a filter program.%%
+
+%%This will create automatically a new RGBA buffer containing the source object's pixels (as it is rendered).%%
+{{page>:develop:api-include:efl:ui:widget_part_shadow:property:filter_source:description&nouser&nolink&nodate}}
+
+===== Keys =====
+
+ * **name** - %%Buffer name as used in the program.%%
+===== Values =====
+
+ * **source** - %%Object to use as a source of pixels.%%
+
+//Overridden from [[:develop:api:efl:gfx:filter:property:filter_source|Efl.Gfx.Filter.filter_source]] **(get, set)**.//===== Signature =====
+
+
+@property filter_source @pure_virtual {
+ get {}
+ set {}
+ keys {
+ name: string;
+ }
+ values {
+ source: Efl.Gfx.Entity;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_gfx_filter_source_get(const Eo *obj, const char *name);
+void efl_gfx_filter_source_set(Eo *obj, const char *name, Efl_Gfx_Entity *source);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:filter:property:filter_source|Efl.Gfx.Filter.filter_source]]
+ * [[:develop:api:efl:ui:widget_part_shadow:property:filter_source|Efl.Ui.Widget_Part_Shadow.filter_source]]
+ * [[:develop:api:efl:canvas:filter:internal:property:filter_source|Efl.Canvas.Filter.Internal.filter_source]]
+ * [[:develop:api:efl:canvas:text:property:filter_source|Efl.Canvas.Text.filter_source]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/filter_state.txt b/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/filter_state.txt
new file mode 100644
index 00000000..bd2ced53
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/filter_state.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Ui.Widget_Part_Shadow.filter_state~~
+====== Efl.Ui.Widget_Part_Shadow.filter_state ======
+
+===== Description =====
+
+%%Set the current state of the filter.%%
+
+%%This should be used by Edje (EFL's internal layout engine), but could also be used when implementing animations programmatically.%%
+
+%%A full state is defined by two states (name + value): origin state and target state of an ongoing animation, as well as the %%''pos''%% progress (from 0 to 1) of that animation timeline. The second state can be omitted if there is no ongoing animation.%%
+{{page>:develop:api-include:efl:ui:widget_part_shadow:property:filter_state:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **cur_state** - %%Current state of the filter%%
+ * **cur_val** - %%Current value%%
+ * **next_state** - %%Next filter state, optional%%
+ * **next_val** - %%Next value, optional%%
+ * **pos** - %%Position, optional%%
+
+//Overridden from [[:develop:api:efl:gfx:filter:property:filter_state|Efl.Gfx.Filter.filter_state]] **(get, set)**.//===== Signature =====
+
+
+@property filter_state @pure_virtual {
+ get {}
+ set {}
+ values {
+ cur_state: string;
+ cur_val: double;
+ next_state: string @optional;
+ next_val: double @optional;
+ pos: double @optional;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_filter_state_get(const Eo *obj, const char **cur_state, double *cur_val, const char **next_state, double *next_val, double *pos);
+void efl_gfx_filter_state_set(Eo *obj, const char *cur_state, double cur_val, const char *next_state, double next_val, double pos);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:filter:property:filter_state|Efl.Gfx.Filter.filter_state]]
+ * [[:develop:api:efl:ui:widget_part_shadow:property:filter_state|Efl.Ui.Widget_Part_Shadow.filter_state]]
+ * [[:develop:api:efl:canvas:filter:internal:property:filter_state|Efl.Canvas.Filter.Internal.filter_state]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/grow.txt b/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/grow.txt
new file mode 100644
index 00000000..fa5752b0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/grow.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Widget_Part_Shadow.grow~~
+====== Efl.Ui.Widget_Part_Shadow.grow ======
+
+===== Description =====
+
+%%How much the original image should be "grown" before blurring.%%
+
+%%Growing is a combination of blur & color levels adjustment. If the value of grow is positive, the pixels will appear more "fat" or "bold" than the original. If the value is negative, a shrink effect happens instead.%%
+
+%%This is can be used efficiently to create glow effects.%%
+{{page>:develop:api-include:efl:ui:widget_part_shadow:property:grow:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **radius** - %%How much to grow the original pixel data.%%
+
+//Overridden from [[:develop:api:efl:gfx:blur:property:grow|Efl.Gfx.Blur.grow]] **(get, set)**.//===== Signature =====
+
+
+@property grow @pure_virtual {
+ get {}
+ set {}
+ values {
+ radius: double;
+ }
+}
+
+
+===== C signature =====
+
+
+double efl_gfx_blur_grow_get(const Eo *obj);
+void efl_gfx_blur_grow_set(Eo *obj, double radius);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:blur:property:grow|Efl.Gfx.Blur.grow]]
+ * [[:develop:api:efl:ui:widget_part_shadow:property:grow|Efl.Ui.Widget_Part_Shadow.grow]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/offset.txt b/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/offset.txt
new file mode 100644
index 00000000..87bce299
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/offset.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Widget_Part_Shadow.offset~~
+====== Efl.Ui.Widget_Part_Shadow.offset ======
+
+===== Description =====
+
+%%An offset relative to the original pixels.%%
+
+%%This property allows for drop shadow effects.%%
+{{page>:develop:api-include:efl:ui:widget_part_shadow:property:offset:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **ox** - %%Horizontal offset in pixels.%%
+ * **oy** - %%Vertical offset in pixels.%%
+
+//Overridden from [[:develop:api:efl:gfx:blur:property:offset|Efl.Gfx.Blur.offset]] **(get, set)**.//===== Signature =====
+
+
+@property offset @pure_virtual {
+ get {}
+ set {}
+ values {
+ ox: double;
+ oy: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_blur_offset_get(const Eo *obj, double *ox, double *oy);
+void efl_gfx_blur_offset_set(Eo *obj, double ox, double oy);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:blur:property:offset|Efl.Gfx.Blur.offset]]
+ * [[:develop:api:efl:ui:widget_part_shadow:property:offset|Efl.Ui.Widget_Part_Shadow.offset]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/radius.txt b/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/radius.txt
new file mode 100644
index 00000000..9d17f79b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/widget_part_shadow/property/radius.txt
@@ -0,0 +1,38 @@
+~~Title: Efl.Ui.Widget_Part_Shadow.radius~~
+====== Efl.Ui.Widget_Part_Shadow.radius ======
+
+===== Description =====
+
+%%The blur radius in pixels.%%
+{{page>:develop:api-include:efl:ui:widget_part_shadow:property:radius:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **rx** - %%The horizontal blur radius.%%
+ * **ry** - %%The vertical blur radius.%%
+
+//Overridden from [[:develop:api:efl:gfx:blur:property:radius|Efl.Gfx.Blur.radius]] **(get, set)**.//===== Signature =====
+
+
+@property radius @pure_virtual {
+ get {}
+ set {}
+ values {
+ rx: double;
+ ry: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_blur_radius_get(const Eo *obj, double *rx, double *ry);
+void efl_gfx_blur_radius_set(Eo *obj, double rx, double ry);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:blur:property:radius|Efl.Gfx.Blur.radius]]
+ * [[:develop:api:efl:ui:widget_part_shadow:property:radius|Efl.Ui.Widget_Part_Shadow.radius]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win.txt b/public_html/data/pages/develop/api/efl/ui/win.txt
new file mode 100644
index 00000000..49652cb9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win.txt
@@ -0,0 +1,995 @@
+~~Title: Efl.Ui.Win~~
+====== Efl.Ui.Win (class) ======
+
+===== Description =====
+
+%%Efl UI window class.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:win:description&nouser&nolink&nodate}}
+
+===== Inheritance =====
+
+ => [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)// => [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)// => [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)// => [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)//
+++++ Full hierarchy |
+
+ * [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] //(class)//
+ * [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] //(class)//
+ * [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] //(class)//
+ * [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] //(class)//
+ * [[:develop:api:efl:object|Efl.Object]] //(class)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] //(mixin)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] //(interface)//
+ * [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] //(mixin)//
+ * [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] //(interface)//
+ * [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] //(interface)//
+ * [[:develop:api:efl:access:object|Efl.Access.Object]] //(mixin)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:part|Efl.Part]] //(interface)//
+ * [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] //(mixin)//
+ * [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]] //(interface)//
+ * [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]] //(interface)//
+ * [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] //(mixin)//
+ * [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] //(mixin)//
+ * [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] //(interface)//
+ * [[:develop:api:efl:ui:view|Efl.Ui.View]] //(interface)//
+ * [[:develop:api:efl:canvas:scene|Efl.Canvas.Scene]] //(interface)//
+ * [[:develop:api:efl:access:window|Efl.Access.Window]] //(interface)//
+ * [[:develop:api:efl:access:component|Efl.Access.Component]] //(mixin)//
+ * [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] //(interface)//
+ * [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] //(interface)//
+ * [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]] //(mixin)//
+ * [[:develop:api:efl:access:action|Efl.Access.Action]] //(mixin)//
+ * [[:develop:api:efl:content|Efl.Content]] //(interface)//
+ * [[:develop:api:efl:input:state|Efl.Input.State]] //(interface)//
+ * [[:develop:api:efl:input:interface|Efl.Input.Interface]] //(interface)//
+ * [[:develop:api:efl:screen|Efl.Screen]] //(interface)//
+ * [[:develop:api:efl:text|Efl.Text]] //(interface)//
+ * [[:develop:api:efl:ui:widget_focus_manager|Efl.Ui.Widget_Focus_Manager]] //(mixin)//
+ * [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] //(interface)//
+ * [[:develop:api:efl:ui:focus:manager_window_root|Efl.Ui.Focus.Manager_Window_Root]] //(interface)//
+ * [[:develop:api:efl:config|Efl.Config]] //(interface)//
+
+
+++++
+===== Members =====
+
+**[[:develop:api:efl:ui:win:property:accel_preference|accel_preference]]** //**(get, set)**//\\
+> %%The hardware acceleration preference for this window.%%
+
+const char *efl_ui_win_accel_preference_get(const Eo *obj);
+void efl_ui_win_accel_preference_set(Eo *obj, const char *accel);
+
+\\
+**[[:develop:api:efl:ui:win:method:activate|activate]]**\\
+> %%Activate a window object.%%
+
+void efl_ui_win_activate(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:win:property:alpha|alpha]]** //**(get, set)**//\\
+> %%The alpha channel state of a window.%%
+
+Eina_Bool efl_ui_win_alpha_get(const Eo *obj);
+void efl_ui_win_alpha_set(Eo *obj, Eina_Bool alpha);
+
+\\
+**[[:develop:api:efl:ui:win:property:autohide|autohide]]** //**(get, set)**//\\
+> %%Window's autohide state.%%
+
+Eina_Bool efl_ui_win_autohide_get(const Eo *obj);
+void efl_ui_win_autohide_set(Eo *obj, Eina_Bool autohide);
+
+\\
+**[[:develop:api:efl:ui:win:property:borderless|borderless]]** //**(get, set)**//\\
+> %%The borderless state of a window.%%
+
+Eina_Bool efl_ui_win_borderless_get(const Eo *obj);
+void efl_ui_win_borderless_set(Eo *obj, Eina_Bool borderless);
+
+\\
+**[[:develop:api:efl:ui:win:method:center|center]]**\\
+> %%Center a window on the screen.%%
+
+void efl_ui_win_center(Eo *obj, Eina_Bool h, Eina_Bool v);
+
+\\
+**[[:develop:api:efl:ui:win:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide optional initialization code for your object.%%
+
+Efl_Object *efl_constructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:win:property:content|content]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:content|Efl.Content]]]//\\
+> %%Sub-object currently set as this object's single content.%%
+
+Efl_Gfx_Entity *efl_content_get(const Eo *obj);
+Eina_Bool efl_content_set(Eo *obj, Efl_Gfx_Entity *content);
+
+\\
+**[[:develop:api:efl:ui:win:method:content_unset|content_unset]]**// [Overridden from [[:develop:api:efl:content|Efl.Content]]]//\\
+> %%Remove the sub-object currently set as content of this object and return it. This object becomes empty.%%
+
+Efl_Gfx_Entity *efl_content_unset(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:win:method:debug_name_override|debug_name_override]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Build a read-only name for this object used for debugging.%%
+
+void efl_debug_name_override(Eo *obj, Eina_Strbuf *sb);
+
+\\
+**[[:develop:api:efl:ui:win:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to provide deinitialization code for your object if you need it.%%
+
+void efl_destructor(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:win:property:device|device]]** //**(get)**//// [Overridden from [[:develop:api:efl:canvas:scene|Efl.Canvas.Scene]]]//\\
+> %%Get a device by name.%%
+
+Efl_Input_Device *efl_canvas_scene_device_get(const Eo *obj, const char *name);
+
+\\
+**[[:develop:api:efl:ui:win:property:exit_on_all_windows_closed|exit_on_all_windows_closed]]** //**(get, set)**// ''static''\\
+> %%Enable quitting the main loop when all windows are closed.%%
+
+const Eina_Value *efl_ui_win_exit_on_all_windows_closed_get();
+void efl_ui_win_exit_on_all_windows_closed_set(const Eina_Value *exit_code);
+
+\\
+**[[:develop:api:efl:ui:win:property:exit_on_close|exit_on_close]]** //**(get, set)**//\\
+> %%Enable quitting the main loop when this window is closed.%%
+
+const Eina_Value *efl_ui_win_exit_on_close_get(const Eo *obj);
+void efl_ui_win_exit_on_close_set(Eo *obj, const Eina_Value *exit_code);
+
+\\
+**[[:develop:api:efl:ui:win:method:finalize|finalize]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+Efl_Object *efl_finalize(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:win:property:focus|focus]]** //**(get, set)**// ''protected set''// [Overridden from [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]]]//\\
+> %%Whether the widget is currently focused or not.%%
+
+Eina_Bool efl_ui_focus_object_focus_get(const Eo *obj);
+void efl_ui_focus_object_focus_set(Eo *obj, Eina_Bool focus);
+
+\\
+**[[:develop:api:efl:ui:win:property:focus_highlight_animate|focus_highlight_animate]]** //**(get, set)**//\\
+> %%Whether focus highlight should animate or not.%%
+
+Eina_Bool efl_ui_win_focus_highlight_animate_get(const Eo *obj);
+void efl_ui_win_focus_highlight_animate_set(Eo *obj, Eina_Bool animate);
+
+\\
+**[[:develop:api:efl:ui:win:property:focus_highlight_enabled|focus_highlight_enabled]]** //**(get, set)**//\\
+> %%Whether focus highlight is enabled or not on this window, regardless of the global setting.%%
+
+Eina_Bool efl_ui_win_focus_highlight_enabled_get(const Eo *obj);
+void efl_ui_win_focus_highlight_enabled_set(Eo *obj, Eina_Bool enabled);
+
+\\
+**[[:develop:api:efl:ui:win:property:focus_highlight_style|focus_highlight_style]]** //**(get, set)**//\\
+> %%Control the widget focus highlight style.%%
+
+const char *efl_ui_win_focus_highlight_style_get(const Eo *obj);
+Eina_Bool efl_ui_win_focus_highlight_style_set(Eo *obj, const char *style);
+
+\\
+**[[:develop:api:efl:ui:win:property:fullscreen|fullscreen]]** //**(get, set)**//\\
+> %%The fullscreen state of a window.%%
+
+Eina_Bool efl_ui_win_fullscreen_get(const Eo *obj);
+void efl_ui_win_fullscreen_set(Eo *obj, Eina_Bool fullscreen);
+
+\\
+**[[:develop:api:efl:ui:win:method:group_objects_calculate|group_objects_calculate]]**// [Overridden from [[:develop:api:efl:canvas:scene|Efl.Canvas.Scene]]]//\\
+> %%Call user-provided %%''calculate''%% group functions and unset the flag signalling that the object needs to get recalculated to all group objects in the canvas.%%
+
+void efl_canvas_scene_group_objects_calculate(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:win:property:group_objects_calculating|group_objects_calculating]]** //**(get)**//// [Overridden from [[:develop:api:efl:canvas:scene|Efl.Canvas.Scene]]]//\\
+>
+
+Eina_Bool efl_canvas_scene_group_objects_calculating_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:win:property:hint_aspect|hint_aspect]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]]//\\
+> %%Defines the aspect ratio to respect when scaling this object.%%
+
+void efl_gfx_hint_aspect_get(const Eo *obj, Efl_Gfx_Hint_Aspect *mode, Eina_Size2D *sz);
+void efl_gfx_hint_aspect_set(Eo *obj, Efl_Gfx_Hint_Aspect mode, Eina_Size2D sz);
+
+\\
+**[[:develop:api:efl:ui:win:property:hint_base|hint_base]]** //**(get, set)**//\\
+> %%Base size for objects with sizing restrictions.%%
+
+Eina_Size2D efl_ui_win_hint_base_get(const Eo *obj);
+void efl_ui_win_hint_base_set(Eo *obj, Eina_Size2D sz);
+
+\\
+**[[:develop:api:efl:ui:win:property:hint_size_max|hint_size_max]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]]//\\
+> %%Hints on the object's maximum size.%%
+
+Eina_Size2D efl_gfx_hint_size_max_get(const Eo *obj);
+void efl_gfx_hint_size_max_set(Eo *obj, Eina_Size2D sz);
+
+\\
+**[[:develop:api:efl:ui:win:property:hint_step|hint_step]]** //**(get, set)**//\\
+> %%Step size for objects with sizing restrictions.%%
+
+Eina_Size2D efl_ui_win_hint_step_get(const Eo *obj);
+void efl_ui_win_hint_step_set(Eo *obj, Eina_Size2D sz);
+
+\\
+**[[:develop:api:efl:ui:win:property:hint_weight|hint_weight]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]]//\\
+> %%Hints for an object's weight.%%
+
+void efl_gfx_hint_weight_get(const Eo *obj, double *x, double *y);
+void efl_gfx_hint_weight_set(Eo *obj, double x, double y);
+
+\\
+**[[:develop:api:efl:ui:win:property:i18n_name|i18n_name]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:access:object|Efl.Access.Object]]]//\\
+> %%Accessible name of the object.%%
+
+const char *efl_access_object_i18n_name_get(const Eo *obj);
+void efl_access_object_i18n_name_set(Eo *obj, const char *i18n_name);
+
+\\
+**[[:develop:api:efl:ui:win:property:icon_object|icon_object]]** //**(get, set)**//\\
+> %%A window object's icon.%%
+
+const Efl_Canvas_Object *efl_ui_win_icon_object_get(const Eo *obj);
+void efl_ui_win_icon_object_set(Eo *obj, Efl_Canvas_Object *icon);
+
+\\
+**[[:develop:api:efl:ui:win:property:image_max_size|image_max_size]]** //**(get)**//// [Overridden from [[:develop:api:efl:canvas:scene|Efl.Canvas.Scene]]]//\\
+>
+
+Eina_Bool efl_canvas_scene_image_max_size_get(const Eo *obj, Eina_Size2D *max);
+
+\\
+**[[:develop:api:efl:ui:win:property:indicator_mode|indicator_mode]]** //**(get, set)**//\\
+> %%In some environments you may have an indicator that shows battery status, reception, time etc. This is the indicator.%%
+
+Efl_Ui_Win_Indicator_Mode efl_ui_win_indicator_mode_get(const Eo *obj);
+void efl_ui_win_indicator_mode_set(Eo *obj, Efl_Ui_Win_Indicator_Mode type);
+
+\\
+**[[:develop:api:efl:ui:win:property:keyboard_mode|keyboard_mode]]** //**(get, set)**//\\
+> %%The keyboard mode of the window.%%
+
+Efl_Ui_Win_Keyboard_Mode efl_ui_win_keyboard_mode_get(const Eo *obj);
+void efl_ui_win_keyboard_mode_set(Eo *obj, Efl_Ui_Win_Keyboard_Mode mode);
+
+\\
+**[[:develop:api:efl:ui:win:property:l10n_text|l10n_text]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:l10n|Efl.Ui.L10n]]]//\\
+> %%A unique string to be translated.%%
+
+const char *efl_ui_l10n_text_get(const Eo *obj, const char **domain);
+void efl_ui_l10n_text_set(Eo *obj, const char *label, const char *domain);
+
+\\
+**[[:develop:api:efl:ui:win:property:language|language]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:i18n|Efl.Ui.I18n]]]//\\
+> %%The (human) language for this object.%%
+
+const char *efl_ui_language_get(const Eo *obj);
+void efl_ui_language_set(Eo *obj, const char *language);
+
+\\
+**[[:develop:api:efl:ui:win:property:lock_enabled|lock_enabled]]** //**(get)**//// [Overridden from [[:develop:api:efl:input:state|Efl.Input.State]]]//\\
+>
+
+Eina_Bool efl_input_lock_enabled_get(const Eo *obj, Efl_Input_Lock lock, const Efl_Input_Device *seat);
+
+\\
+**[[:develop:api:efl:ui:win:method:lower_to_bottom|lower_to_bottom]]**// [Overridden from [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]]]//\\
+> %%This action is ignored by the Window.%%
+
+void efl_gfx_stack_lower_to_bottom(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:win:property:maximized|maximized]]** //**(get, set)**//\\
+> %%The maximized state of a window.%%
+
+Eina_Bool efl_ui_win_maximized_get(const Eo *obj);
+void efl_ui_win_maximized_set(Eo *obj, Eina_Bool maximized);
+
+\\
+**[[:develop:api:efl:ui:win:property:minimized|minimized]]** //**(get, set)**//\\
+> %%The minimized state of a window.%%
+
+Eina_Bool efl_ui_win_minimized_get(const Eo *obj);
+void efl_ui_win_minimized_set(Eo *obj, Eina_Bool state);
+
+\\
+**[[:develop:api:efl:ui:win:property:modal|modal]]** //**(get, set)**//\\
+> %%The modal state of a window.%%
+
+Efl_Ui_Win_Modal_Mode efl_ui_win_modal_get(const Eo *obj);
+void efl_ui_win_modal_set(Eo *obj, Efl_Ui_Win_Modal_Mode modal);
+
+\\
+**[[:develop:api:efl:ui:win:property:modifier_enabled|modifier_enabled]]** //**(get)**//// [Overridden from [[:develop:api:efl:input:state|Efl.Input.State]]]//\\
+>
+
+Eina_Bool efl_input_modifier_enabled_get(const Eo *obj, Efl_Input_Modifier mod, const Efl_Input_Device *seat);
+
+\\
+**[[:develop:api:efl:ui:win:method:move_resize_start|move_resize_start]]**\\
+> %%Start moving or resizing the window.%%
+
+Eina_Bool efl_ui_win_move_resize_start(Eo *obj, Efl_Ui_Win_Move_Resize_Mode mode);
+
+\\
+**[[:develop:api:efl:ui:win:method:object_top_at_xy_get|object_top_at_xy_get]]**// [Overridden from [[:develop:api:efl:canvas:scene|Efl.Canvas.Scene]]]//\\
+> %%Retrieve the object stacked at the top of a given position in a canvas.%%
+
+Efl_Gfx_Entity *efl_canvas_scene_object_top_at_xy_get(const Eo *obj, Eina_Position2D pos, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects);
+
+\\
+**[[:develop:api:efl:ui:win:method:object_top_in_rectangle_get|object_top_in_rectangle_get]]**// [Overridden from [[:develop:api:efl:canvas:scene|Efl.Canvas.Scene]]]//\\
+> %%Retrieve the canvas object stacked at the top of a given rectangular region in a canvas%%
+
+Efl_Gfx_Entity *efl_canvas_scene_object_top_in_rectangle_get(const Eo *obj, Eina_Rect rect, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects);
+
+\\
+**[[:develop:api:efl:ui:win:method:objects_at_xy_get|objects_at_xy_get]]**// [Overridden from [[:develop:api:efl:canvas:scene|Efl.Canvas.Scene]]]//\\
+> %%Retrieve a list of objects at a given position in a canvas.%%
+
+Eina_Iterator *efl_canvas_scene_objects_at_xy_get(Eo *obj, Eina_Position2D pos, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects);
+
+\\
+**[[:develop:api:efl:ui:win:method:objects_in_rectangle_get|objects_in_rectangle_get]]**// [Overridden from [[:develop:api:efl:canvas:scene|Efl.Canvas.Scene]]]//\\
+> %%Retrieve a list of objects overlapping a given rectangular region in a canvas.%%
+
+Eina_Iterator *efl_canvas_scene_objects_in_rectangle_get(Eo *obj, Eina_Rect rect, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects);
+
+\\
+**[[:develop:api:efl:ui:win:property:pointer_inside|pointer_inside]]** //**(get)**//// [Overridden from [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]]]//\\
+>
+
+Eina_Bool efl_canvas_pointer_inside_get(const Eo *obj, Efl_Input_Device *seat);
+
+\\
+**[[:develop:api:efl:ui:win:method:pointer_iterate|pointer_iterate]]**\\
+> %%Returns an iterator over the current known pointer positions.%%
+
+Eina_Iterator *efl_ui_win_pointer_iterate(const Eo *obj, Eina_Bool hover);
+
+\\
+**[[:develop:api:efl:ui:win:property:pointer_position|pointer_position]]** //**(get)**//// [Overridden from [[:develop:api:efl:canvas:scene|Efl.Canvas.Scene]]]//\\
+>
+
+Eina_Bool efl_canvas_scene_pointer_position_get(const Eo *obj, Efl_Input_Device *seat, Eina_Position2D *pos);
+
+\\
+**[[:develop:api:efl:ui:win:property:position|position]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The 2D position of a canvas object.%%
+
+Eina_Position2D efl_gfx_entity_position_get(const Eo *obj);
+void efl_gfx_entity_position_set(Eo *obj, Eina_Position2D pos);
+
+\\
+**[[:develop:api:efl:ui:win:property:prop_focus_skip|prop_focus_skip]]** //**(set)**//\\
+>
+
+void efl_ui_win_prop_focus_skip_set(Eo *obj, Eina_Bool skip);
+
+\\
+**[[:develop:api:efl:ui:win:method:provider_find|provider_find]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\
+> %%Searches upwards in the object tree for a provider which knows the given class/interface.%%
+
+Efl_Object *efl_provider_find(const Eo *obj, const Efl_Class *klass);
+
+\\
+**[[:develop:api:efl:ui:win:method:raise_to_top|raise_to_top]]**// [Overridden from [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]]]//\\
+> %%Places the window at the top of the stack, so that it's not covered by any other window.%%
+
+void efl_gfx_stack_raise_to_top(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:win:property:screen_constrain|screen_constrain]]** //**(get, set)**//\\
+> %%Constrain the maximum width and height of a window to the width and height of the screen.%%
+
+Eina_Bool efl_ui_win_screen_constrain_get(const Eo *obj);
+void efl_ui_win_screen_constrain_set(Eo *obj, Eina_Bool constrain);
+
+\\
+**[[:develop:api:efl:ui:win:property:screen_dpi|screen_dpi]]** //**(get)**//// [Overridden from [[:develop:api:efl:screen|Efl.Screen]]]//\\
+>
+
+void efl_screen_dpi_get(const Eo *obj, int *xdpi, int *ydpi);
+
+\\
+**[[:develop:api:efl:ui:win:property:screen_rotation|screen_rotation]]** //**(get)**//// [Overridden from [[:develop:api:efl:screen|Efl.Screen]]]//\\
+>
+
+int efl_screen_rotation_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:win:property:screen_scale_factor|screen_scale_factor]]** //**(get)**//// [Overridden from [[:develop:api:efl:screen|Efl.Screen]]]//\\
+>
+
+float efl_screen_scale_factor_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:win:property:screen_size_in_pixels|screen_size_in_pixels]]** //**(get)**//// [Overridden from [[:develop:api:efl:screen|Efl.Screen]]]//\\
+>
+
+Eina_Size2D efl_screen_size_in_pixels_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:win:property:seat|seat]]** //**(get)**//// [Overridden from [[:develop:api:efl:canvas:scene|Efl.Canvas.Scene]]]//\\
+> %%Get a seat by id.%%
+
+Efl_Input_Device *efl_canvas_scene_seat_get(const Eo *obj, int id);
+
+\\
+**[[:develop:api:efl:ui:win:property:seat_default|seat_default]]** //**(get)**//// [Overridden from [[:develop:api:efl:canvas:scene|Efl.Canvas.Scene]]]//\\
+> %%Get the default seat.%%
+
+Efl_Input_Device *efl_canvas_scene_seat_default_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:win:property:size|size]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The 2D size of a canvas object.%%
+
+Eina_Size2D efl_gfx_entity_size_get(const Eo *obj);
+void efl_gfx_entity_size_set(Eo *obj, Eina_Size2D size);
+
+\\
+**[[:develop:api:efl:ui:win:property:stack_base|stack_base]]** //**(get, set)**//\\
+> %%The stack base state of this window%%
+
+Eina_Bool efl_ui_win_stack_base_get(const Eo *obj);
+void efl_ui_win_stack_base_set(Eo *obj, Eina_Bool base);
+
+\\
+**[[:develop:api:efl:ui:win:property:stack_id|stack_id]]** //**(get)**//\\
+>
+
+const char *efl_ui_win_stack_id_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:win:property:stack_master_id|stack_master_id]]** //**(get, set)**//\\
+> %%The window stack ID to use as the master top-level.%%
+
+const char *efl_ui_win_stack_master_id_get(const Eo *obj);
+void efl_ui_win_stack_master_id_set(Eo *obj, const char *id);
+
+\\
+**[[:develop:api:efl:ui:win:method:stack_pop_to|stack_pop_to]]**\\
+> %%Pop (delete) all windows in the stack above this window.%%
+
+void efl_ui_win_stack_pop_to(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:win:property:sticky|sticky]]** //**(get, set)**//\\
+> %%The sticky state of the window.%%
+
+Eina_Bool efl_ui_win_sticky_get(const Eo *obj);
+void efl_ui_win_sticky_set(Eo *obj, Eina_Bool sticky);
+
+\\
+**[[:develop:api:efl:ui:win:property:text|text]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:text|Efl.Text]]]//\\
+> %%The text string to be displayed by the given text object.%%
+
+const char *efl_text_get(const Eo *obj);
+void efl_text_set(Eo *obj, const char *text);
+
+\\
+**[[:develop:api:efl:ui:win:property:urgent|urgent]]** //**(get, set)**//\\
+> %%The urgent state of a window.%%
+
+Efl_Ui_Win_Urgent_Mode efl_ui_win_urgent_get(const Eo *obj);
+void efl_ui_win_urgent_set(Eo *obj, Efl_Ui_Win_Urgent_Mode urgent);
+
+\\
+**[[:develop:api:efl:ui:win:property:visible|visible]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]]]//\\
+> %%The visibility of a canvas object.%%
+
+Eina_Bool efl_gfx_entity_visible_get(const Eo *obj);
+void efl_gfx_entity_visible_set(Eo *obj, Eina_Bool v);
+
+\\
+**[[:develop:api:efl:ui:win:property:win_name|win_name]]** //**(get, set)**//\\
+> %%The window name.%%
+
+const char *efl_ui_win_name_get(const Eo *obj);
+void efl_ui_win_name_set(Eo *obj, const char *name);
+
+\\
+**[[:develop:api:efl:ui:win:property:win_role|win_role]]** //**(get, set)**//\\
+> %%The role of the window.%%
+
+const char *efl_ui_win_role_get(const Eo *obj);
+void efl_ui_win_role_set(Eo *obj, const char *role);
+
+\\
+**[[:develop:api:efl:ui:win:property:win_rotation|win_rotation]]** //**(get, set)**//\\
+> %%The rotation of this window%%
+
+int efl_ui_win_rotation_get(const Eo *obj);
+void efl_ui_win_rotation_set(Eo *obj, int rotation);
+
+\\
+**[[:develop:api:efl:ui:win:property:win_type|win_type]]** //**(get, set)**//\\
+> %%The type of the window.%%
+
+Efl_Ui_Win_Type efl_ui_win_type_get(const Eo *obj);
+void efl_ui_win_type_set(Eo *obj, Efl_Ui_Win_Type type);
+
+\\
+**[[:develop:api:efl:ui:win:property:wm_available_profiles|wm_available_profiles]]** //**(get, set)**//\\
+> %%Available profiles on a window.%%
+
+const Eina_Array *efl_ui_win_wm_available_profiles_get(const Eo *obj);
+void efl_ui_win_wm_available_profiles_set(Eo *obj, const Eina_Array *profiles);
+
+\\
+**[[:develop:api:efl:ui:win:property:wm_available_rotations|wm_available_rotations]]** //**(get, set)**//\\
+> %%Defines which rotations this window supports.%%
+
+Eina_Bool efl_ui_win_wm_available_rotations_get(const Eo *obj, Eina_Bool *allow_0, Eina_Bool *allow_90, Eina_Bool *allow_180, Eina_Bool *allow_270);
+void efl_ui_win_wm_available_rotations_set(Eo *obj, Eina_Bool allow_0, Eina_Bool allow_90, Eina_Bool allow_180, Eina_Bool allow_270);
+
+\\
+**[[:develop:api:efl:ui:win:property:elm_actions|elm_actions]]** //**(get)**// ''protected''// [Overridden from [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]]]//\\
+>
+
+const Efl_Access_Action_Data *efl_access_widget_action_elm_actions_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:win:property:extents|extents]]** //**(get, set)**// ''protected''// [Overridden from [[:develop:api:efl:access:component|Efl.Access.Component]]]//\\
+> %%Geometry of accessible widget.%%
+
+Eina_Rect efl_access_component_extents_get(const Eo *obj, Eina_Bool screen_coords);
+Eina_Bool efl_access_component_extents_set(Eo *obj, Eina_Bool screen_coords, Eina_Rect rect);
+
+\\
+**[[:develop:api:efl:ui:win:method:focus_manager_create|focus_manager_create]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget_focus_manager|Efl.Ui.Widget_Focus_Manager]]]//\\
+> %%If the widget needs a focus manager, this function will be called.%%
+
+Efl_Ui_Focus_Manager *efl_ui_widget_focus_manager_create(Eo *obj, Efl_Ui_Focus_Object *root);
+
+\\
+**[[:develop:api:efl:ui:win:method:on_focus_update|on_focus_update]]** ''protected''// [Overridden from [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]]]//\\
+> %%Virtual function handling focus in/out events on the widget.%%
+
+Eina_Bool efl_ui_focus_object_on_focus_update(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:win:method:part_get|part_get]]** ''protected''// [Overridden from [[:develop:api:efl:part|Efl.Part]]]//\\
+> %%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%%
+
+Efl_Object *efl_part_get(const Eo *obj, const char *name);
+
+\\
+**[[:develop:api:efl:ui:win:property:state_set|state_set]]** //**(get)**// ''protected''// [Overridden from [[:develop:api:efl:access:object|Efl.Access.Object]]]//\\
+>
+
+Efl_Access_State_Set efl_access_object_state_set_get(const Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:win:method:theme_apply|theme_apply]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Virtual function called when the widget needs to re-apply its theme.%%
+
+Eina_Error efl_ui_widget_theme_apply(Eo *obj);
+
+\\
+**[[:develop:api:efl:ui:win:method:widget_input_event_handler|widget_input_event_handler]]** ''protected''// [Overridden from [[:develop:api:efl:ui:widget|Efl.Ui.Widget]]]//\\
+> %%Virtual function handling input events on the widget.%%
+
+Eina_Bool efl_ui_widget_input_event_handler(Eo *obj, const Efl_Event *eo_event, Efl_Canvas_Object *source);
+
+\\
+
+==== Inherited ====
+
+^ [[:develop:api:efl:access:action|Efl.Access.Action]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:action:property:action_localized_name|action_localized_name]]** //**(get)**// | |
+^ [[:develop:api:efl:access:component|Efl.Access.Component]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:component:method:accessible_at_point_get|accessible_at_point_get]]** | %%Gets top component object occupying space at given coordinates.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:method:contains|contains]]** | %%Contains accessible widget%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:screen_position|screen_position]]** //**(get, set)**// | %%Position of accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:component:property:z_order|z_order]]** //**(get)**// | |
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| ''static'' | **[[:develop:api:efl:access:object:property:access_root|access_root]]** //**(get)**// | |
+| | **[[:develop:api:efl:access:object:property:access_type|access_type]]** //**(get, set)**// | %%Type of accessibility object%% |
+| | **[[:develop:api:efl:access:object:method:attribute_append|attribute_append]]** | %%Add key-value pair identifying object extra attributes%% |
+| | **[[:develop:api:efl:access:object:method:attribute_del|attribute_del]]** | %%delete key-value pair identifying object extra attributes when key is given%% |
+| | **[[:develop:api:efl:access:object:method:attributes_clear|attributes_clear]]** | %%Removes all attributes in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:description|description]]** //**(get, set)**// | %%Contextual information about object.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_append|relationship_append]]** | %%Defines the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationship_remove|relationship_remove]]** | %%Removes the relationship between two accessible objects.%% |
+| | **[[:develop:api:efl:access:object:method:relationships_clear|relationships_clear]]** | %%Removes all relationships in accessible object.%% |
+| | **[[:develop:api:efl:access:object:property:role|role]]** //**(get, set)**// | %%The role of the object in accessibility domain.%% |
+| | **[[:develop:api:efl:access:object:property:translation_domain|translation_domain]]** //**(get, set)**// | %%The translation domain of "name" and "description" properties.%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_emit|event_emit]]** | %%Emit event%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_add|event_handler_add]]** | %%Register accessibility event listener%% |
+| ''static'' ''protected'' | **[[:develop:api:efl:access:object:method:event_handler_del|event_handler_del]]** | %%Deregister accessibility event listener%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:index_in_parent|index_in_parent]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:localized_role_name|localized_role_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:object:property:reading_info_type|reading_info_type]]** //**(get, set)**// | %%Reading information of an accessible object.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:method:relations_get|relations_get]]** | %%Gets an all relations between accessible object and other accessible objects.%% |
+| ''protected'' | **[[:develop:api:efl:access:object:property:role_name|role_name]]** //**(get)**// | |
+^ [[:develop:api:efl:access:widget:action|Efl.Access.Widget.Action]] ^^^
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:action_description|action_description]]** //**(get, set)**// | %%Action description for given id%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:method:action_do|action_do]]** | %%Performs action on given widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:method:action_keybinding_get|action_keybinding_get]]** | %%Gets configured keybinding for specific action and widget.%% |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:action_name|action_name]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:access:widget:action:property:actions|actions]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:method:group_change|group_change]]** | %%Marks the object as dirty.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_member_is|group_member_is]]** | %%Finds out if a given object is a member of this group.%% |
+| | **[[:develop:api:efl:canvas:group:method:group_members_iterate|group_members_iterate]]** | %%Returns an iterator over the children of this object, which are canvas objects.%% |
+| | **[[:develop:api:efl:canvas:group:property:group_need_recalculate|group_need_recalculate]]** //**(get, set)**// | %%Indicates that the group's layout needs to be recalculated.%% |
+| | **[[:develop:api:efl:canvas:group:property:paragraph_direction|paragraph_direction]]** //**(get, set)**// | %%This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is %%''inherit''%%.%% |
+| ''protected'' | **[[:develop:api:efl:canvas:group:property:group_clipper|group_clipper]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:property:above|above]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:anti_alias|anti_alias]]** //**(get, set)**// | %%Whether or not the given Evas object is to be drawn anti-aliased.%% |
+| | **[[:develop:api:efl:canvas:object:property:below|below]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:clipped_objects|clipped_objects]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:clipped_objects_count|clipped_objects_count]]** | %%Returns the number of objects clipped by %%''obj''%%%% |
+| | **[[:develop:api:efl:canvas:object:property:coords_inside|coords_inside]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% |
+| | **[[:develop:api:efl:canvas:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% |
+| | **[[:develop:api:efl:canvas:object:property:geometry|geometry]]** //**(get, set)**// | %%Rectangular geometry that combines both position and size.%% |
+| | **[[:develop:api:efl:canvas:object:method:gesture_manager_get|gesture_manager_get]]** | %%Returns current canvas's gesture manager%% |
+| | **[[:develop:api:efl:canvas:object:property:has_fixed_size|has_fixed_size]]** //**(get, set)**// | %%A hint for an object that its size will not change.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_align|hint_align]]** //**(get, set)**// | %%Hints for an object's alignment.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_fill|hint_fill]]** //**(get, set)**// | %%Hints for an object's fill property that used to specify "justify" or "fill" by some users. %%[[:develop:api:efl:gfx:hint:property:hint_fill|Efl.Gfx.Hint.hint_fill]]%% specify whether to fill the space inside the boundaries of a container/manager.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_margin|hint_margin]]** //**(get, set)**// | %%Hints for an object's margin or padding space.%% |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_max|hint_size_combined_max]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_combined_min|hint_size_combined_min]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:hint_size_min|hint_size_min]]** //**(get, set)**// | %%Hints on the object's minimum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_max|hint_size_restricted_max]]** //**(get, set)**// | %%Internal hints for an object's maximum size.%% |
+| ''protected set'' | **[[:develop:api:efl:canvas:object:property:hint_size_restricted_min|hint_size_restricted_min]]** //**(get, set)**// | %%Internal hints for an object's minimum size.%% |
+| | **[[:develop:api:efl:canvas:object:property:key_focus|key_focus]]** //**(get, set)**// | %%Indicates that this object is the keyboard event receiver on its canvas.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_grab|key_grab]]** | %%Requests %%''keyname''%% key events be directed to %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:method:key_ungrab|key_ungrab]]** | %%Removes the grab on %%''keyname''%% key events by %%''obj''%%.%% |
+| | **[[:develop:api:efl:canvas:object:property:layer|layer]]** //**(get, set)**// | %%The layer of its canvas that the given object will be part of.%% |
+| | **[[:develop:api:efl:canvas:object:property:loop|loop]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:property:pass_events|pass_events]]** //**(get, set)**// | %%Whether an Evas object is to pass (ignore) events.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode|pointer_mode]]** //**(get, set)**// | %%Low-level pointer behaviour.%% |
+| | **[[:develop:api:efl:canvas:object:property:pointer_mode_by_device|pointer_mode_by_device]]** //**(get, set)**// | %%Low-level pointer behaviour by device. See %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.get]]%% and %%[[:develop:api:efl:canvas:object:property:pointer_mode|Efl.Canvas.Object.pointer_mode.set]]%% for more explanation.%% |
+| | **[[:develop:api:efl:canvas:object:property:precise_is_inside|precise_is_inside]]** //**(get, set)**// | %%Whether to use precise (usually expensive) point collision detection for a given Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:propagate_events|propagate_events]]** //**(get, set)**// | %%Whether events on a smart object's member should be propagated up to its parent.%% |
+| | **[[:develop:api:efl:canvas:object:property:render_op|render_op]]** //**(get, set)**// | %%Render mode to be used for compositing the Evas object.%% |
+| | **[[:develop:api:efl:canvas:object:property:repeat_events|repeat_events]]** //**(get, set)**// | %%Whether an Evas object is to repeat events to objects below it.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_event_filter|seat_event_filter]]** //**(get, set)**// | %%Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.%% |
+| | **[[:develop:api:efl:canvas:object:property:seat_focus|seat_focus]]** //**(get)**// | |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_add|seat_focus_add]]** | %%Add a seat to the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_check|seat_focus_check]]** | %%Check if this object is focused by a given seat%% |
+| | **[[:develop:api:efl:canvas:object:method:seat_focus_del|seat_focus_del]]** | %%Remove a seat from the focus list.%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_above|stack_above]]** | %%Stack %%''obj''%% immediately %%''above''%%%% |
+| | **[[:develop:api:efl:canvas:object:method:stack_below|stack_below]]** | %%Stack %%''obj''%% immediately %%''below''%%%% |
+| ''protected'' | **[[:develop:api:efl:canvas:object:property:render_parent|render_parent]]** //**(get)**// | |
+^ [[:develop:api:efl:canvas:scene|Efl.Canvas.Scene]] ^^^
+| | **[[:develop:api:efl:canvas:scene:method:seats|seats]]** | %%Iterate over the available input device seats for the canvas.%% |
+^ [[:develop:api:efl:config|Efl.Config]] ^^^
+| | **[[:develop:api:efl:config:property:config|config]]** //**(get, set)**// | %%A generic configuration value, referred to by name.%% |
+^ [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] ^^^
+| | **[[:develop:api:efl:gfx:color:property:color_code|color_code]]** //**(get, set)**// | %%Hexadecimal color code of given Evas object (#RRGGBBAA).%% |
+^ [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] ^^^
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d|lighting_3d]]** | %%Apply a lighting effect on the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:lighting_3d_absolute|lighting_3d_absolute]]** | %%Apply a lighting effect to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_alpha|mapping_alpha]]** //**(get, set)**// | %%Alpha flag for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_clockwise|mapping_clockwise]]** //**(get)**// | |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_color|mapping_color]]** //**(get, set)**// | %%Color of a vertex in the map.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_coord_absolute|mapping_coord_absolute]]** //**(get, set)**// | %%A point's absolute coordinate on the canvas.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_has|mapping_has]]** | %%Read-only property indicating whether an object is mapped.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_point_count|mapping_point_count]]** //**(get, set)**// | %%Number of points of a map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:mapping_reset|mapping_reset]]** | %%Resets the map transformation to its default state.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_smooth|mapping_smooth]]** //**(get, set)**// | %%Smoothing state for map rendering.%% |
+| | **[[:develop:api:efl:gfx:mapping:property:mapping_uv|mapping_uv]]** //**(get, set)**// | %%Map point's U and V texture source point.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d|perspective_3d]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:perspective_3d_absolute|perspective_3d_absolute]]** | %%Apply a perspective transform to the map%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate|rotate]]** | %%Apply a rotation to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d|rotate_3d]]** | %%Rotate the object around 3 axes in 3D.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_3d_absolute|rotate_3d_absolute]]** | %%Rotate the object around 3 axes in 3D, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_absolute|rotate_absolute]]** | %%Apply a rotation to the object, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat|rotate_quat]]** | %%Rotate the object in 3D using a unit quaternion.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:rotate_quat_absolute|rotate_quat_absolute]]** | %%Rotate the object in 3D using a unit quaternion, using absolute coordinates.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:translate|translate]]** | %%Apply a translation to the object using map.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom|zoom]]** | %%Apply a zoom to the object.%% |
+| | **[[:develop:api:efl:gfx:mapping:method:zoom_absolute|zoom_absolute]]** | %%Apply a zoom to the object, using absolute coordinates.%% |
+^ [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] ^^^
+| | **[[:develop:api:efl:loop_consumer:method:future_rejected|future_rejected]]** | %%Creates a new future that is already rejected to a specified error using the %%[[:develop:api:efl:loop_consumer:property:loop|Efl.Loop_Consumer.loop.get]]%%.%% |
+| | **[[:develop:api:efl:loop_consumer:method:future_resolved|future_resolved]]** | %%Creates a new future that is already resolved to a value.%% |
+| | **[[:develop:api:efl:loop_consumer:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% |
+| | **[[:develop:api:efl:loop_consumer:method:promise_new|promise_new]]** | %%Create a new promise with the scheduler coming from the loop provided by this object.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% |
+| | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% |
+| | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% |
+| | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% |
+| | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% |
+| | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% |
+| | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% |
+| | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% |
+| ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | |
+| ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% |
+| | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | |
+| | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% |
+| | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% |
+| | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+| | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:method:drag_action_set|drag_action_set]]** | %%Set the action for the drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_cancel|drag_cancel]]** | %%Cancel the on-going drag%% |
+| | **[[:develop:api:efl:ui:dnd:method:drag_start|drag_start]]** | %%Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_add|drop_target_add]]** | %%Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.%% |
+| | **[[:develop:api:efl:ui:dnd:method:drop_target_del|drop_target_del]]** | %%Delete the dropable status from object%% |
+^ [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] ^^^
+| | **[[:develop:api:efl:ui:focus:manager:property:border_elements|border_elements]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:focus:manager:method:dirty_logic_freeze|dirty_logic_freeze]]** | %%Disables the cache invalidation when an object is moved.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:dirty_logic_unfreeze|dirty_logic_unfreeze]]** | %%Enables the cache invalidation when an object is moved.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:fetch|fetch]]** | %%Fetches the data from a registered node.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:logical_end|logical_end]]** | %%Returns the last logical object.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:manager_focus|manager_focus]]** //**(get, set)**// | %%The element which is currently focused by this manager.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:move|move]]** | %%Moves the focus in the given direction to the next regular widget.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:pop_history_stack|pop_history_stack]]** | %%Removes the uppermost history element, and focuses the previous one.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:redirect|redirect]]** //**(get, set)**// | %%Add another manager to serve the move requests.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:request_move|request_move]]** | %%Returns the object in the %%''direction''%% from %%''child''%%.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:request_subchild|request_subchild]]** | %%Returns the widget in the direction next.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:reset_history|reset_history]]** | %%Resets the history stack of this manager object. This means the uppermost element will be unfocused, and all other elements will be removed from the remembered list.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:root|root]]** //**(get, set)**// | %%Root node for all logical sub-trees.%% |
+| | **[[:develop:api:efl:ui:focus:manager:method:setup_on_first_touch|setup_on_first_touch]]** | %%Called when this manager is set as redirect.%% |
+| | **[[:develop:api:efl:ui:focus:manager:property:viewport_elements|viewport_elements]]** //**(get)**// | |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:method:setup_order|setup_order]]** | %%Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:property:child_focus|child_focus]]** //**(get, set)**// | %%Indicates if a child of this object has focus set to true.%% |
+| ''protected'' | **[[:develop:api:efl:ui:focus:object:method:setup_order_non_recursive|setup_order_non_recursive]]** | %%This is called when %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% is called, but only on the first call, additional recursive calls to %%[[:develop:api:efl:ui:focus:object:method:setup_order|Efl.Ui.Focus.Object.setup_order]]%% will not call this function again.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:method:has_owner|has_owner]]** | %%Determine whether the selection data has owner%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_clear|selection_clear]]** | %%Clear the selection data from the object%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_get|selection_get]]** | %%Get the data from the object that has selection%% |
+| | **[[:develop:api:efl:ui:selection:method:selection_set|selection_set]]** | %%Set the selection data to the object%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:property:access_info|access_info]]** //**(get, set)**// | %%Accessibility information.%% |
+| | **[[:develop:api:efl:ui:widget:property:clipper|clipper]]** //**(get, set)**// | %%Clip one object to another.%% |
+| | **[[:develop:api:efl:ui:widget:property:color|color]]** //**(get, set)**// | %%This will set the color on every object in the sub-tree including those that are not %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%% (like simple %%[[:develop:api:efl:canvas:object|Efl.Canvas.Object]]%% objects that are added via %%[[:develop:api:efl:canvas:group:method:group_member_add|Efl.Canvas.Group.group_member_add]]%%).%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor|cursor]]** //**(get, set)**// | %%The cursor to be shown when mouse is over the object%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_style|cursor_style]]** //**(get, set)**// | %%A different style for the cursor.%% |
+| | **[[:develop:api:efl:ui:widget:property:cursor_theme_search_enabled|cursor_theme_search_enabled]]** //**(get, set)**// | %%Whether the cursor may be looked in the theme or not.%% |
+| | **[[:develop:api:efl:ui:widget:property:disabled|disabled]]** //**(get, set)**// | %%Whether the widget is enabled (accepts and reacts to user inputs).%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_allow|focus_allow]]** //**(get, set)**// | %%The ability for a widget to be focused.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_geometry|focus_geometry]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_manager|focus_manager]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy|focus_move_policy]]** //**(get, set)**// | %%The widget's focus move policy.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_move_policy_automatic|focus_move_policy_automatic]]** //**(get, set)**// | %%Control the widget's focus_move_policy mode setting.%% |
+| | **[[:develop:api:efl:ui:widget:property:focus_parent|focus_parent]]** //**(get)**// | |
+| | **[[:develop:api:efl:ui:widget:method:group_calculate|group_calculate]]** | %%Triggers an immediate recalculation of this object's geometry.%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_add|group_member_add]]** | %%Set a canvas object as a member of a given group (or smart object).%% |
+| | **[[:develop:api:efl:ui:widget:method:group_member_remove|group_member_remove]]** | %%Removes a member object from a given smart object.%% |
+| | **[[:develop:api:efl:ui:widget:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored|mirrored]]** //**(get, set)**// | %%Whether this object should be mirrored.%% |
+| | **[[:develop:api:efl:ui:widget:property:mirrored_automatic|mirrored_automatic]]** //**(get, set)**// | %%Whether the property %%[[:develop:api:efl:ui:i18n:property:mirrored|Efl.Ui.I18n.mirrored]]%% should be set automatically.%% |
+| | **[[:develop:api:efl:ui:widget:property:model|model]]** //**(get, set)**// | %%Model that is/will be%% |
+| | **[[:develop:api:efl:ui:widget:property:no_render|no_render]]** //**(get, set)**// | %%Disables all rendering on the canvas.%% |
+| | **[[:develop:api:efl:ui:widget:method:property_bind|property_bind]]** | %%bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.%% |
+| | **[[:develop:api:efl:ui:widget:property:scale|scale]]** //**(get, set)**// | %%The scaling factor of an object.%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_pop|scroll_freeze_pop]]** | %%Pop scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_freeze_push|scroll_freeze_push]]** | %%Push scroller freeze%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_pop|scroll_hold_pop]]** | %%Pop scroller hold%% |
+| | **[[:develop:api:efl:ui:widget:method:scroll_hold_push|scroll_hold_push]]** | %%Push scroll hold%% |
+| | **[[:develop:api:efl:ui:widget:property:style|style]]** //**(get, set)**// | %%The widget style to use.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:access_children|access_children]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:attributes|attributes]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_grab|focus_grab]]** | %%Focuses accessible widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:focus_highlight_geometry|focus_highlight_geometry]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:focus_state_apply|focus_state_apply]]** | %%Apply a new focus state on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:interest_region|interest_region]]** //**(get)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_activate|on_access_activate]]** | %%Hook function called when widget is activated through accessibility.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:on_access_update|on_access_update]]** | %%Hook function called when accessibility is changed on the widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:resize_object|resize_object]]** //**(set)**// | |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:translation_update|translation_update]]** | %%This implements the calls to %%''gettext''%%() and %%''text_set''%%().%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:property:widget_parent|widget_parent]]** //**(get, set)**// | %%The internal parent of this widget.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_sub_object_add|widget_sub_object_add]]** | %%Virtual function customizing sub objects being added.%% |
+| ''protected'' | **[[:develop:api:efl:ui:widget:method:widget_sub_object_del|widget_sub_object_del]]** | %%Virtual function customizing sub objects being removed.%% |
+
+===== Events =====
+
+**[[:develop:api:efl:ui:win:event:delete_request|delete,request]]**\\
+> %%Called when the window receives a delete request%%
+
+EFL_UI_WIN_EVENT_DELETE_REQUEST(void)
+
+\\ **[[:develop:api:efl:ui:win:event:elm_action_block_menu|elm,action,block_menu]]**\\
+> %%Called when elementary block menu action occurs%%
+
+EFL_UI_WIN_EVENT_ELM_ACTION_BLOCK_MENU(void, @beta)
+
+\\ **[[:develop:api:efl:ui:win:event:fullscreen_changed|fullscreen,changed]]**\\
+> %%Called when window is set to or from fullscreen%%
+
+EFL_UI_WIN_EVENT_FULLSCREEN_CHANGED(Eina_Bool)
+
+\\ **[[:develop:api:efl:ui:win:event:indicator_prop_changed|indicator,prop,changed]]**\\
+> %%Called when indicator is property changed%%
+
+EFL_UI_WIN_EVENT_INDICATOR_PROP_CHANGED(void, @beta)
+
+\\ **[[:develop:api:efl:ui:win:event:maximized_changed|maximized,changed]]**\\
+> %%Called when window is set to or from maximized%%
+
+EFL_UI_WIN_EVENT_MAXIMIZED_CHANGED(Eina_Bool)
+
+\\ **[[:develop:api:efl:ui:win:event:minimized|minimized]]**\\
+> %%Called when window is minimized%%
+
+EFL_UI_WIN_EVENT_MINIMIZED(void)
+
+\\ **[[:develop:api:efl:ui:win:event:normal|normal]]**\\
+> %%Called when window is set to normal state%%
+
+EFL_UI_WIN_EVENT_NORMAL(void)
+
+\\ **[[:develop:api:efl:ui:win:event:pause|pause]]**\\
+> %%Called when the window is not going be displayed for some time%%
+
+EFL_UI_WIN_EVENT_PAUSE(void)
+
+\\ **[[:develop:api:efl:ui:win:event:profile_changed|profile,changed]]**\\
+> %%Called when profile is changed%%
+
+EFL_UI_WIN_EVENT_PROFILE_CHANGED(void, @beta)
+
+\\ **[[:develop:api:efl:ui:win:event:resume|resume]]**\\
+> %%Called before a window is rendered after a pause event%%
+
+EFL_UI_WIN_EVENT_RESUME(void)
+
+\\ **[[:develop:api:efl:ui:win:event:stick|stick]]**\\
+> %%Called when window is set as sticky%%
+
+EFL_UI_WIN_EVENT_STICK(void, @beta)
+
+\\ **[[:develop:api:efl:ui:win:event:theme_changed|theme,changed]]**\\
+> %%Called when theme is changed%%
+
+EFL_UI_WIN_EVENT_THEME_CHANGED(void)
+
+\\ **[[:develop:api:efl:ui:win:event:unstick|unstick]]**\\
+> %%Called when window is no longer set as sticky%%
+
+EFL_UI_WIN_EVENT_UNSTICK(void, @beta)
+
+\\ **[[:develop:api:efl:ui:win:event:win_rotation_changed|win_rotation,changed]]**\\
+> %%Called when window rotation is changed, sends current rotation in degrees%%
+
+EFL_UI_WIN_EVENT_WIN_ROTATION_CHANGED(int)
+
+\\ **[[:develop:api:efl:ui:win:event:withdrawn|withdrawn]]**\\
+> %%Called when window is withdrawn%%
+
+EFL_UI_WIN_EVENT_WITHDRAWN(void, @beta)
+
+\\ **[[:develop:api:efl:ui:win:event:wm_rotation_changed|wm,rotation,changed]]**\\
+> %%Called when window manager rotation is changed%%
+
+EFL_UI_WIN_EVENT_WM_ROTATION_CHANGED(void, @beta)
+
+\\ ==== Inherited ====
+
+^ [[:develop:api:efl:access:object|Efl.Access.Object]] ^^^
+| | **[[:develop:api:efl:access:object:event:active_descendant_changed|active,descendant,changed]]** | %%Called when active state of descendant has changed%% |
+| | **[[:develop:api:efl:access:object:event:added|added]]** | %%Called when item is added%% |
+| | **[[:develop:api:efl:access:object:event:bounds_changed|bounds,changed]]** | %%Called when boundaries have changed%% |
+| | **[[:develop:api:efl:access:object:event:children_changed|children,changed]]** | %%Called when children have changed%% |
+| | **[[:develop:api:efl:access:object:event:property_changed|property,changed]]** | %%Called when property has changed%% |
+| | **[[:develop:api:efl:access:object:event:removed|removed]]** | %%Called when item is removed%% |
+| | **[[:develop:api:efl:access:object:event:state_changed|state,changed]]** | %%Called when state has changed%% |
+| | **[[:develop:api:efl:access:object:event:visible_data_changed|visible,data,changed]]** | %%Called when visibility has changed%% |
+^ [[:develop:api:efl:access:window|Efl.Access.Window]] ^^^
+| | **[[:develop:api:efl:access:window:event:window_activated|window,activated]]** | %%Called when window has been activated. (focused)%% |
+| | **[[:develop:api:efl:access:window:event:window_created|window,created]]** | %%Called when new window has been created.%% |
+| | **[[:develop:api:efl:access:window:event:window_deactivated|window,deactivated]]** | %%Called when window has been deactivated (unfocused).%% |
+| | **[[:develop:api:efl:access:window:event:window_destroyed|window,destroyed]]** | %%Called when window has been destroyed.%% |
+| | **[[:develop:api:efl:access:window:event:window_maximized|window,maximized]]** | %%Called when window has been maximized%% |
+| | **[[:develop:api:efl:access:window:event:window_minimized|window,minimized]]** | %%Called when window has been minimized%% |
+| | **[[:develop:api:efl:access:window:event:window_restored|window,restored]]** | %%Called when window has been restored%% |
+^ [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] ^^^
+| | **[[:develop:api:efl:canvas:group:event:member_added|member,added]]** | %%Called when a member is added to the group.%% |
+| | **[[:develop:api:efl:canvas:group:event:member_removed|member,removed]]** | %%Called when a member is removed from the group.%% |
+^ [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] ^^^
+| | **[[:develop:api:efl:canvas:object:event:animator_tick|animator,tick]]** | %%Animator tick synchronized with screen vsync if possible.%% |
+^ [[:develop:api:efl:canvas:scene|Efl.Canvas.Scene]] ^^^
+| | **[[:develop:api:efl:canvas:scene:event:device_added|device,added]]** | %%Called when input device was added%% |
+| | **[[:develop:api:efl:canvas:scene:event:device_changed|device,changed]]** | %%Called when input device changed%% |
+| | **[[:develop:api:efl:canvas:scene:event:device_removed|device,removed]]** | %%Called when input device was removed%% |
+| | **[[:develop:api:efl:canvas:scene:event:object_focus_in|object,focus,in]]** | %%Called when object got focus%% |
+| | **[[:develop:api:efl:canvas:scene:event:object_focus_out|object,focus,out]]** | %%Called when object lost focus%% |
+| | **[[:develop:api:efl:canvas:scene:event:render_post|render,post]]** | %%Called when post render happens%% |
+| | **[[:develop:api:efl:canvas:scene:event:render_pre|render,pre]]** | %%Called when pre render happens%% |
+| | **[[:develop:api:efl:canvas:scene:event:scene_focus_in|scene,focus,in]]** | %%Called when scene got focus%% |
+| | **[[:develop:api:efl:canvas:scene:event:scene_focus_out|scene,focus,out]]** | %%Called when scene lost focus%% |
+^ [[:develop:api:efl:content|Efl.Content]] ^^^
+| | **[[:develop:api:efl:content:event:content_changed|content,changed]]** | %%Sent after the content is set or unset using the current content object.%% |
+^ [[:develop:api:efl:gesture:events|Efl.Gesture.Events]] ^^^
+| | **[[:develop:api:efl:gesture:events:event:gesture_double_tap|gesture,double_tap]]** | %%Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_flick|gesture,flick]]** | %%Emitted when a Flick gesture has been detected.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_long_tap|gesture,long_tap]]** | %%Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_momentum|gesture,momentum]]** | %%Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_tap|gesture,tap]]** | %%Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a %%[[:develop:api:efl:gesture:events:event:gesture,long_tap|Efl.Gesture.Events.gesture,long_tap]]%% event will be emitted instead.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_triple_tap|gesture,triple_tap]]** | %%Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent %%[[:develop:api:efl:gesture:events:event:gesture,tap|Efl.Gesture.Events.gesture,tap]]%% or %%[[:develop:api:efl:gesture:events:event:gesture,double_tap|Efl.Gesture.Events.gesture,double_tap]]%% events.%% |
+| | **[[:develop:api:efl:gesture:events:event:gesture_zoom|gesture,zoom]]** | %%Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.%% |
+^ [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] ^^^
+| | **[[:develop:api:efl:gfx:entity:event:position_changed|position,changed]]** | %%Object was moved, its position during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:size_changed|size,changed]]** | %%Object was resized, its size during the event is the new one.%% |
+| | **[[:develop:api:efl:gfx:entity:event:visibility_changed|visibility,changed]]** | %%Object's visibility state changed, the event value is the new state.%% |
+^ [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] ^^^
+| | **[[:develop:api:efl:gfx:hint:event:hints_changed|hints,changed]]** | %%Object hints changed.%% |
+^ [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] ^^^
+| | **[[:develop:api:efl:gfx:stack:event:stacking_changed|stacking,changed]]** | %%Object stacking was changed.%% |
+^ [[:develop:api:efl:input:interface|Efl.Input.Interface]] ^^^
+| | **[[:develop:api:efl:input:interface:event:finger_down|finger,down]]** | %%Finger pressed (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_move|finger,move]]** | %%Finger moved (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:finger_up|finger,up]]** | %%Finger released (finger id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:focus_in|focus,in]]** | %%A focus in event.%% |
+| | **[[:develop:api:efl:input:interface:event:focus_out|focus,out]]** | %%A focus out event.%% |
+| | **[[:develop:api:efl:input:interface:event:hold|hold]]** | %%All input events are on hold or resumed.%% |
+| | **[[:develop:api:efl:input:interface:event:key_down|key,down]]** | %%Keyboard key press.%% |
+| | **[[:develop:api:efl:input:interface:event:key_up|key,up]]** | %%Keyboard key release.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_axis|pointer,axis]]** | %%Pen or other axis event update.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_cancel|pointer,cancel]]** | %%Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_down|pointer,down]]** | %%Main pointer button pressed (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_in|pointer,in]]** | %%Pointer entered a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_move|pointer,move]]** | %%Main pointer move (current and previous positions are known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_out|pointer,out]]** | %%Pointer left a window or a widget.%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_up|pointer,up]]** | %%Main pointer button released (button id is known).%% |
+| | **[[:develop:api:efl:input:interface:event:pointer_wheel|pointer,wheel]]** | %%Mouse wheel event.%% |
+^ [[:develop:api:efl:object|Efl.Object]] ^^^
+| | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% |
+| | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% |
+| | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% |
+| | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% |
+| | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% |
+| | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% |
+^ [[:develop:api:efl:ui:dnd|Efl.Ui.Dnd]] ^^^
+| | **[[:develop:api:efl:ui:dnd:event:drag_accept|drag,accept]]** | %%accept drag data%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_done|drag,done]]** | %%drag is done (mouse up)%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_drop|drag,drop]]** | %%called when the drag object dropped on this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_enter|drag,enter]]** | %%called when the drag object enters this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_leave|drag,leave]]** | %%called when the drag object leaves this object%% |
+| | **[[:develop:api:efl:ui:dnd:event:drag_pos|drag,pos]]** | %%called when the drag object changes drag position%% |
+^ [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] ^^^
+| | **[[:develop:api:efl:ui:focus:manager:event:coords_dirty|coords,dirty]]** | %%Cached relationship calculation results have been invalidated.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:dirty_logic_freeze_changed|dirty_logic_freeze,changed]]** | %%Called when this focus manager is frozen or thawed, even_info being %%''true''%% indicates that it is now frozen, %%''false''%% indicates that it is thawed.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:flush_pre|flush,pre]]** | %%After this event, the manager object will calculate relations in the graph. Can be used to add / remove children in a lazy fashion.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:manager_focus_changed|manager_focus,changed]]** | %%The manager_focus property has changed. The previously focused object is passed as an event argument.%% |
+| | **[[:develop:api:efl:ui:focus:manager:event:redirect_changed|redirect,changed]]** | %%Redirect object has changed, the old manager is passed as an event argument.%% |
+^ [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] ^^^
+| | **[[:develop:api:efl:ui:focus:object:event:child_focus_changed|child_focus,changed]]** | %%Emitted if child_focus has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_changed|focus,changed]]** | %%Emitted if the focus state has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_geometry_changed|focus_geometry,changed]]** | %%Emitted if focus geometry of this object has changed.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_manager_changed|focus_manager,changed]]** | %%Emitted when a new manager is the parent for this object.%% |
+| | **[[:develop:api:efl:ui:focus:object:event:focus_parent_changed|focus_parent,changed]]** | %%Emitted when a new logical parent should be used.%% |
+^ [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] ^^^
+| | **[[:develop:api:efl:ui:property_bind:event:properties_changed|properties,changed]]** | %%Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.%% |
+| | **[[:develop:api:efl:ui:property_bind:event:property_bound|property,bound]]** | %%Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.%% |
+^ [[:develop:api:efl:ui:selection|Efl.Ui.Selection]] ^^^
+| | **[[:develop:api:efl:ui:selection:event:wm_selection_changed|wm_selection,changed]]** | %%Called when display server's selection has changed%% |
+^ [[:develop:api:efl:ui:view|Efl.Ui.View]] ^^^
+| | **[[:develop:api:efl:ui:view:event:model_changed|model,changed]]** | %%Event dispatched when a new model is set.%% |
+^ [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] ^^^
+| | **[[:develop:api:efl:ui:widget:event:access_changed|access,changed]]** | %%Called when accessibility changed%% |
+| | **[[:develop:api:efl:ui:widget:event:language_changed|language,changed]]** | %%Called when widget language changed%% |
diff --git a/public_html/data/pages/develop/api/efl/ui/win/event/delete_request.txt b/public_html/data/pages/develop/api/efl/ui/win/event/delete_request.txt
new file mode 100644
index 00000000..07252340
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/event/delete_request.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Win: delete,request~~
+
+===== Description =====
+
+%%Called when the window receives a delete request%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:win:event:delete_request:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+delete,request;
+
+
+===== C information =====
+
+
+EFL_UI_WIN_EVENT_DELETE_REQUEST(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_win_event_delete_request(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_WIN_EVENT_DELETE_REQUEST, on_efl_ui_win_event_delete_request, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/event/elm_action_block_menu.txt b/public_html/data/pages/develop/api/efl/ui/win/event/elm_action_block_menu.txt
new file mode 100644
index 00000000..3bc7689c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/event/elm_action_block_menu.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Win: elm,action,block_menu~~
+
+===== Description =====
+
+%%Called when elementary block menu action occurs%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:win:event:elm_action_block_menu:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+elm,action,block_menu @beta;
+
+
+===== C information =====
+
+
+EFL_UI_WIN_EVENT_ELM_ACTION_BLOCK_MENU(void, @beta)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_win_event_elm_action_block_menu(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_WIN_EVENT_ELM_ACTION_BLOCK_MENU, on_efl_ui_win_event_elm_action_block_menu, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/event/fullscreen_changed.txt b/public_html/data/pages/develop/api/efl/ui/win/event/fullscreen_changed.txt
new file mode 100644
index 00000000..28ac5577
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/event/fullscreen_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Win: fullscreen,changed~~
+
+===== Description =====
+
+%%Called when window is set to or from fullscreen%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:win:event:fullscreen_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+fullscreen,changed: bool;
+
+
+===== C information =====
+
+
+EFL_UI_WIN_EVENT_FULLSCREEN_CHANGED(Eina_Bool)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_win_event_fullscreen_changed(void *data, const Efl_Event *event)
+{
+ Eina_Bool info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_WIN_EVENT_FULLSCREEN_CHANGED, on_efl_ui_win_event_fullscreen_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/event/indicator_prop_changed.txt b/public_html/data/pages/develop/api/efl/ui/win/event/indicator_prop_changed.txt
new file mode 100644
index 00000000..f10b8f7c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/event/indicator_prop_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Win: indicator,prop,changed~~
+
+===== Description =====
+
+%%Called when indicator is property changed%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:win:event:indicator_prop_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+indicator,prop,changed @beta;
+
+
+===== C information =====
+
+
+EFL_UI_WIN_EVENT_INDICATOR_PROP_CHANGED(void, @beta)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_win_event_indicator_prop_changed(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_WIN_EVENT_INDICATOR_PROP_CHANGED, on_efl_ui_win_event_indicator_prop_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/event/maximized_changed.txt b/public_html/data/pages/develop/api/efl/ui/win/event/maximized_changed.txt
new file mode 100644
index 00000000..4101d86b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/event/maximized_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Win: maximized,changed~~
+
+===== Description =====
+
+%%Called when window is set to or from maximized%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:win:event:maximized_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+maximized,changed: bool;
+
+
+===== C information =====
+
+
+EFL_UI_WIN_EVENT_MAXIMIZED_CHANGED(Eina_Bool)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_win_event_maximized_changed(void *data, const Efl_Event *event)
+{
+ Eina_Bool info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_WIN_EVENT_MAXIMIZED_CHANGED, on_efl_ui_win_event_maximized_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/event/minimized.txt b/public_html/data/pages/develop/api/efl/ui/win/event/minimized.txt
new file mode 100644
index 00000000..52dfa50f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/event/minimized.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Win: minimized~~
+
+===== Description =====
+
+%%Called when window is minimized%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:win:event:minimized:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+minimized;
+
+
+===== C information =====
+
+
+EFL_UI_WIN_EVENT_MINIMIZED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_win_event_minimized(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_WIN_EVENT_MINIMIZED, on_efl_ui_win_event_minimized, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/event/normal.txt b/public_html/data/pages/develop/api/efl/ui/win/event/normal.txt
new file mode 100644
index 00000000..b1311529
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/event/normal.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Win: normal~~
+
+===== Description =====
+
+%%Called when window is set to normal state%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:win:event:normal:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+normal;
+
+
+===== C information =====
+
+
+EFL_UI_WIN_EVENT_NORMAL(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_win_event_normal(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_WIN_EVENT_NORMAL, on_efl_ui_win_event_normal, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/event/pause.txt b/public_html/data/pages/develop/api/efl/ui/win/event/pause.txt
new file mode 100644
index 00000000..c491beb5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/event/pause.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Win: pause~~
+
+===== Description =====
+
+%%Called when the window is not going be displayed for some time%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:win:event:pause:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+pause;
+
+
+===== C information =====
+
+
+EFL_UI_WIN_EVENT_PAUSE(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_win_event_pause(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_WIN_EVENT_PAUSE, on_efl_ui_win_event_pause, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/event/profile_changed.txt b/public_html/data/pages/develop/api/efl/ui/win/event/profile_changed.txt
new file mode 100644
index 00000000..f7a81b21
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/event/profile_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Win: profile,changed~~
+
+===== Description =====
+
+%%Called when profile is changed%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:win:event:profile_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+profile,changed @beta;
+
+
+===== C information =====
+
+
+EFL_UI_WIN_EVENT_PROFILE_CHANGED(void, @beta)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_win_event_profile_changed(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_WIN_EVENT_PROFILE_CHANGED, on_efl_ui_win_event_profile_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/event/resume.txt b/public_html/data/pages/develop/api/efl/ui/win/event/resume.txt
new file mode 100644
index 00000000..743fdaaf
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/event/resume.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Win: resume~~
+
+===== Description =====
+
+%%Called before a window is rendered after a pause event%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:win:event:resume:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+resume;
+
+
+===== C information =====
+
+
+EFL_UI_WIN_EVENT_RESUME(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_win_event_resume(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_WIN_EVENT_RESUME, on_efl_ui_win_event_resume, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/event/stick.txt b/public_html/data/pages/develop/api/efl/ui/win/event/stick.txt
new file mode 100644
index 00000000..933c42ae
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/event/stick.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Win: stick~~
+
+===== Description =====
+
+%%Called when window is set as sticky%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:win:event:stick:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+stick @beta;
+
+
+===== C information =====
+
+
+EFL_UI_WIN_EVENT_STICK(void, @beta)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_win_event_stick(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_WIN_EVENT_STICK, on_efl_ui_win_event_stick, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/event/theme_changed.txt b/public_html/data/pages/develop/api/efl/ui/win/event/theme_changed.txt
new file mode 100644
index 00000000..cee45331
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/event/theme_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Win: theme,changed~~
+
+===== Description =====
+
+%%Called when theme is changed%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:win:event:theme_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+theme,changed;
+
+
+===== C information =====
+
+
+EFL_UI_WIN_EVENT_THEME_CHANGED(void)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_win_event_theme_changed(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_WIN_EVENT_THEME_CHANGED, on_efl_ui_win_event_theme_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/event/unstick.txt b/public_html/data/pages/develop/api/efl/ui/win/event/unstick.txt
new file mode 100644
index 00000000..013b5394
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/event/unstick.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Win: unstick~~
+
+===== Description =====
+
+%%Called when window is no longer set as sticky%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:win:event:unstick:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+unstick @beta;
+
+
+===== C information =====
+
+
+EFL_UI_WIN_EVENT_UNSTICK(void, @beta)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_win_event_unstick(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_WIN_EVENT_UNSTICK, on_efl_ui_win_event_unstick, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/event/win_rotation_changed.txt b/public_html/data/pages/develop/api/efl/ui/win/event/win_rotation_changed.txt
new file mode 100644
index 00000000..033a28f0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/event/win_rotation_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Win: win_rotation,changed~~
+
+===== Description =====
+
+%%Called when window rotation is changed, sends current rotation in degrees%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:win:event:win_rotation_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+win_rotation,changed: int;
+
+
+===== C information =====
+
+
+EFL_UI_WIN_EVENT_WIN_ROTATION_CHANGED(int)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_win_event_win_rotation_changed(void *data, const Efl_Event *event)
+{
+ int info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_WIN_EVENT_WIN_ROTATION_CHANGED, on_efl_ui_win_event_win_rotation_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/event/withdrawn.txt b/public_html/data/pages/develop/api/efl/ui/win/event/withdrawn.txt
new file mode 100644
index 00000000..85078ca1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/event/withdrawn.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Win: withdrawn~~
+
+===== Description =====
+
+%%Called when window is withdrawn%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:win:event:withdrawn:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+withdrawn @beta;
+
+
+===== C information =====
+
+
+EFL_UI_WIN_EVENT_WITHDRAWN(void, @beta)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_win_event_withdrawn(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_WIN_EVENT_WITHDRAWN, on_efl_ui_win_event_withdrawn, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/event/wm_rotation_changed.txt b/public_html/data/pages/develop/api/efl/ui/win/event/wm_rotation_changed.txt
new file mode 100644
index 00000000..57ce942c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/event/wm_rotation_changed.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Win: wm,rotation,changed~~
+
+===== Description =====
+
+%%Called when window manager rotation is changed%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:win:event:wm_rotation_changed:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+wm,rotation,changed @beta;
+
+
+===== C information =====
+
+
+EFL_UI_WIN_EVENT_WM_ROTATION_CHANGED(void, @beta)
+
+
+===== C usage =====
+
+
+static void
+on_efl_ui_win_event_wm_rotation_changed(void *data, const Efl_Event *event)
+{
+ void info = event->info;
+ Eo *obj = event->object;
+ Data *d = data;
+
+ /* event hander code */
+}
+
+static void
+setup_event_handler(Eo *obj, Data *d)
+{
+ efl_event_callback_add(obj, EFL_UI_WIN_EVENT_WM_ROTATION_CHANGED, on_efl_ui_win_event_wm_rotation_changed, d);
+}
+
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/method/activate.txt b/public_html/data/pages/develop/api/efl/ui/win/method/activate.txt
new file mode 100644
index 00000000..9cf46e7d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/method/activate.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.Ui.Win.activate~~
+====== Efl.Ui.Win.activate ======
+
+===== Description =====
+
+%%Activate a window object.%%
+
+%%This function sends a request to the Window Manager to activate the window pointed by %%''obj''%%. If honored by the WM, the window will receive the keyboard focus.%%
+
+
+activate {}
+
+
+===== C signature =====
+
+
+void efl_ui_win_activate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:method:activate|Efl.Ui.Win.activate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/method/center.txt b/public_html/data/pages/develop/api/efl/ui/win/method/center.txt
new file mode 100644
index 00000000..908ad3bb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/method/center.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Win.center~~
+====== Efl.Ui.Win.center ======
+
+===== Description =====
+
+%%Center a window on the screen.%%
+
+%%This function centers window %%''obj''%% horizontally and/or vertically based on the values of %%''h''%% and %%''v''%%.%%
+
+
+center @beta {
+ params {
+ @in h: bool;
+ @in v: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_ui_win_center(Eo *obj, Eina_Bool h, Eina_Bool v);
+
+
+===== Parameters =====
+
+ * **h** //(in)// - %%If %%''true''%%, center horizontally. If %%''false''%%, do not change horizontal location.%%
+ * **v** //(in)// - %%If %%''true''%%, center vertically. If %%''false''%%, do not change vertical location.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:method:center|Efl.Ui.Win.center]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/method/constructor.txt b/public_html/data/pages/develop/api/efl/ui/win/method/constructor.txt
new file mode 100644
index 00000000..1da5b321
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/method/constructor.txt
@@ -0,0 +1,232 @@
+~~Title: Efl.Ui.Win.constructor~~
+====== Efl.Ui.Win.constructor ======
+
+===== Description =====
+
+%%Implement this method to provide optional initialization code for your object.%%
+
+%%See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:method:constructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:constructor|Efl.Object.constructor]].//===== Signature =====
+
+
+constructor {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_constructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]
+ * [[:develop:api:efl:loop_handler:method:constructor|Efl.Loop_Handler.constructor]]
+ * [[:develop:api:eio:sentry:method:constructor|Eio.Sentry.constructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:constructor|Efl.Canvas.Vg.Node.constructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:constructor|Efl.Canvas.Vg.Shape.constructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:constructor|Efl.Canvas.Vg.Container.constructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:constructor|Efl.Canvas.Vg.Image.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:constructor|Efl.Canvas.Vg.Gradient_Linear.constructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:constructor|Efl.Canvas.Vg.Gradient_Radial.constructor]]
+ * [[:develop:api:efl:decelerate_interpolator:method:constructor|Efl.Decelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:constructor|Efl.Canvas.Gesture_Zoom.constructor]]
+ * [[:develop:api:efl:canvas:gesture_double_tap:method:constructor|Efl.Canvas.Gesture_Double_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_triple_tap:method:constructor|Efl.Canvas.Gesture_Triple_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_momentum:method:constructor|Efl.Canvas.Gesture_Momentum.constructor]]
+ * [[:develop:api:efl:canvas:gesture_flick:method:constructor|Efl.Canvas.Gesture_Flick.constructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:constructor|Efl.Canvas.Gesture_Long_Tap.constructor]]
+ * [[:develop:api:efl:canvas:gesture_tap:method:constructor|Efl.Canvas.Gesture_Tap.constructor]]
+ * [[:develop:api:efl:ui:theme:method:constructor|Efl.Ui.Theme.constructor]]
+ * [[:develop:api:efl:input:pointer:method:constructor|Efl.Input.Pointer.constructor]]
+ * [[:develop:api:efl:datetime:manager:method:constructor|Efl.Datetime.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:constructor|Efl.Canvas.Gesture_Touch.constructor]]
+ * [[:develop:api:efl:loop_message_handler:method:constructor|Efl.Loop_Message_Handler.constructor]]
+ * [[:develop:api:ecore:event:message:handler:method:constructor|Ecore.Event.Message.Handler.constructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:constructor|Efl.Loop_Message_Future_Handler.constructor]]
+ * [[:develop:api:efl:divisor_interpolator:method:constructor|Efl.Divisor_Interpolator.constructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:constructor|Efl.Ui.Text_Factory.Fallback.constructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:constructor|Efl.Ui.Selection_Manager.constructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:constructor|Efl.Ui.Text_Factory.Images.constructor]]
+ * [[:develop:api:efl:loop_message:method:constructor|Efl.Loop_Message.constructor]]
+ * [[:develop:api:efl:loop_message_future:method:constructor|Efl.Loop_Message_Future.constructor]]
+ * [[:develop:api:ecore:event:message:method:constructor|Ecore.Event.Message.constructor]]
+ * [[:develop:api:efl:input:device:method:constructor|Efl.Input.Device.constructor]]
+ * [[:develop:api:efl:sinusoidal_interpolator:method:constructor|Efl.Sinusoidal_Interpolator.constructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:constructor|Efl.Canvas.Animation_Player.constructor]]
+ * [[:develop:api:efl:cubic_bezier_interpolator:method:constructor|Efl.Cubic_Bezier_Interpolator.constructor]]
+ * [[:develop:api:efl:input:key:method:constructor|Efl.Input.Key.constructor]]
+ * [[:develop:api:ecore:audio:method:constructor|Ecore.Audio.constructor]]
+ * [[:develop:api:ecore:audio:in:method:constructor|Ecore.Audio.In.constructor]]
+ * [[:develop:api:ecore:audio:in:tone:method:constructor|Ecore.Audio.In.Tone.constructor]]
+ * [[:develop:api:ecore:audio:out:method:constructor|Ecore.Audio.Out.constructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:constructor|Ecore.Audio.Out.Wasapi.constructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:constructor|Ecore.Audio.Out.Sndfile.constructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:constructor|Ecore.Audio.Out.Pulse.constructor]]
+ * [[:develop:api:efl:input:hold:method:constructor|Efl.Input.Hold.constructor]]
+ * [[:develop:api:efl:core:env:method:constructor|Efl.Core.Env.constructor]]
+ * [[:develop:api:efl:core:proc_env:method:constructor|Efl.Core.Proc_Env.constructor]]
+ * [[:develop:api:efl:spring_interpolator:method:constructor|Efl.Spring_Interpolator.constructor]]
+ * [[:develop:api:efl:accelerate_interpolator:method:constructor|Efl.Accelerate_Interpolator.constructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:constructor|Efl.Mono_Model_Internal_Child.constructor]]
+ * [[:develop:api:efl:net:server_windows:method:constructor|Efl.Net.Server_Windows.constructor]]
+ * [[:develop:api:efl:mono_model_internal:method:constructor|Efl.Mono_Model_Internal.constructor]]
+ * [[:develop:api:efl:loop_fd:method:constructor|Efl.Loop_Fd.constructor]]
+ * [[:develop:api:efl:io:file:method:constructor|Efl.Io.File.constructor]]
+ * [[:develop:api:efl:net:server_fd:method:constructor|Efl.Net.Server_Fd.constructor]]
+ * [[:develop:api:efl:net:server_ip:method:constructor|Efl.Net.Server_Ip.constructor]]
+ * [[:develop:api:efl:net:server_udp:method:constructor|Efl.Net.Server_Udp.constructor]]
+ * [[:develop:api:efl:net:server_ssl:method:constructor|Efl.Net.Server_Ssl.constructor]]
+ * [[:develop:api:efl:net:socket_fd:method:constructor|Efl.Net.Socket_Fd.constructor]]
+ * [[:develop:api:efl:net:socket_udp:method:constructor|Efl.Net.Socket_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:constructor|Efl.Net.Dialer_Udp.constructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:constructor|Efl.Net.Dialer_Unix.constructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:constructor|Efl.Net.Dialer_Tcp.constructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:constructor|Efl.Net.Socket_Ssl.constructor]]
+ * [[:develop:api:efl:net:dialer_ssl:method:constructor|Efl.Net.Dialer_Ssl.constructor]]
+ * [[:develop:api:efl:canvas:object:method:constructor|Efl.Canvas.Object.constructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:constructor|Efl.Canvas.Image_Internal.constructor]]
+ * [[:develop:api:efl:canvas:snapshot:method:constructor|Efl.Canvas.Snapshot.constructor]]
+ * [[:develop:api:efl:canvas:surface:method:constructor|Efl.Canvas.Surface.constructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:constructor|Efl.Canvas.Surface_Tbm.constructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:constructor|Efl.Canvas.Surface_X11.constructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:constructor|Efl.Canvas.Surface_Wayland.constructor]]
+ * [[:develop:api:efl:canvas:rectangle:method:constructor|Efl.Canvas.Rectangle.constructor]]
+ * [[:develop:api:efl:canvas:text:method:constructor|Efl.Canvas.Text.constructor]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:constructor|Efl.Ui.Internal.Text.Interactive.constructor]]
+ * [[:develop:api:efl:canvas:group:method:constructor|Efl.Canvas.Group.constructor]]
+ * [[:develop:api:efl:canvas:video:method:constructor|Efl.Canvas.Video.constructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:constructor|Efl.Canvas.Event_Grabber.constructor]]
+ * [[:develop:api:efl:canvas:layout:method:constructor|Efl.Canvas.Layout.constructor]]
+ * [[:develop:api:efl:ui:widget:method:constructor|Efl.Ui.Widget.constructor]]
+ * [[:develop:api:efl:ui:win:method:constructor|Efl.Ui.Win.constructor]]
+ * [[:develop:api:efl:ui:table:method:constructor|Efl.Ui.Table.constructor]]
+ * [[:develop:api:efl:ui:table_static:method:constructor|Efl.Ui.Table_Static.constructor]]
+ * [[:develop:api:efl:ui:flip:method:constructor|Efl.Ui.Flip.constructor]]
+ * [[:develop:api:efl:ui:box:method:constructor|Efl.Ui.Box.constructor]]
+ * [[:develop:api:efl:ui:radio_box:method:constructor|Efl.Ui.Radio_Box.constructor]]
+ * [[:develop:api:efl:ui:image:method:constructor|Efl.Ui.Image.constructor]]
+ * [[:develop:api:efl:ui:image_zoomable:method:constructor|Efl.Ui.Image_Zoomable.constructor]]
+ * [[:develop:api:efl:ui:animation_view:method:constructor|Efl.Ui.Animation_View.constructor]]
+ * [[:develop:api:efl:ui:layout_base:method:constructor|Efl.Ui.Layout_Base.constructor]]
+ * [[:develop:api:efl:ui:slider:method:constructor|Efl.Ui.Slider.constructor]]
+ * [[:develop:api:efl:ui:check:method:constructor|Efl.Ui.Check.constructor]]
+ * [[:develop:api:efl:ui:radio:method:constructor|Efl.Ui.Radio.constructor]]
+ * [[:develop:api:efl:ui:timepicker:method:constructor|Efl.Ui.Timepicker.constructor]]
+ * [[:develop:api:efl:ui:clock:method:constructor|Efl.Ui.Clock.constructor]]
+ * [[:develop:api:efl:ui:clock_legacy:method:constructor|Efl.Ui.Clock_Legacy.constructor]]
+ * [[:develop:api:efl:ui:text:method:constructor|Efl.Ui.Text.constructor]]
+ * [[:develop:api:efl:ui:text_async:method:constructor|Efl.Ui.Text_Async.constructor]]
+ * [[:develop:api:efl:ui:text_editable:method:constructor|Efl.Ui.Text_Editable.constructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:constructor|Efl.Ui.Tab_Bar.constructor]]
+ * [[:develop:api:efl:ui:spin:method:constructor|Efl.Ui.Spin.constructor]]
+ * [[:develop:api:efl:ui:spin_button:method:constructor|Efl.Ui.Spin_Button.constructor]]
+ * [[:develop:api:efl:ui:collection_view:method:constructor|Efl.Ui.Collection_View.constructor]]
+ * [[:develop:api:efl:ui:list_view:method:constructor|Efl.Ui.List_View.constructor]]
+ * [[:develop:api:efl:ui:grid_view:method:constructor|Efl.Ui.Grid_View.constructor]]
+ * [[:develop:api:efl:ui:panel:method:constructor|Efl.Ui.Panel.constructor]]
+ * [[:develop:api:efl:ui:item:method:constructor|Efl.Ui.Item.constructor]]
+ * [[:develop:api:efl:ui:grid_default_item:method:constructor|Efl.Ui.Grid_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:list_default_item:method:constructor|Efl.Ui.List_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:tab_bar_default_item:method:constructor|Efl.Ui.Tab_Bar_Default_Item.constructor]]
+ * [[:develop:api:efl:ui:group_item:method:constructor|Efl.Ui.Group_Item.constructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:constructor|Efl.Ui.Slider_Interval.constructor]]
+ * [[:develop:api:efl:ui:layout:method:constructor|Efl.Ui.Layout.constructor]]
+ * [[:develop:api:elm:code_widget:method:constructor|Elm.Code_Widget.constructor]]
+ * [[:develop:api:efl:ui:tab_page:method:constructor|Efl.Ui.Tab_Page.constructor]]
+ * [[:develop:api:efl:ui:textpath:method:constructor|Efl.Ui.Textpath.constructor]]
+ * [[:develop:api:efl:ui:datepicker:method:constructor|Efl.Ui.Datepicker.constructor]]
+ * [[:develop:api:efl:ui:tags:method:constructor|Efl.Ui.Tags.constructor]]
+ * [[:develop:api:efl:ui:scroller:method:constructor|Efl.Ui.Scroller.constructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:constructor|Efl.Ui.Internal_Text_Scroller.constructor]]
+ * [[:develop:api:efl:ui:collection:method:constructor|Efl.Ui.Collection.constructor]]
+ * [[:develop:api:efl:ui:list:method:constructor|Efl.Ui.List.constructor]]
+ * [[:develop:api:efl:ui:grid:method:constructor|Efl.Ui.Grid.constructor]]
+ * [[:develop:api:efl:ui:panes:method:constructor|Efl.Ui.Panes.constructor]]
+ * [[:develop:api:efl:ui:calendar:method:constructor|Efl.Ui.Calendar.constructor]]
+ * [[:develop:api:efl:ui:frame:method:constructor|Efl.Ui.Frame.constructor]]
+ * [[:develop:api:efl:ui:progressbar:method:constructor|Efl.Ui.Progressbar.constructor]]
+ * [[:develop:api:efl:ui:popup:method:constructor|Efl.Ui.Popup.constructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:constructor|Efl.Ui.Alert_Popup.constructor]]
+ * [[:develop:api:efl:ui:navigation_layout:method:constructor|Efl.Ui.Navigation_Layout.constructor]]
+ * [[:develop:api:efl:ui:video:method:constructor|Efl.Ui.Video.constructor]]
+ * [[:develop:api:efl:ui:button:method:constructor|Efl.Ui.Button.constructor]]
+ * [[:develop:api:efl:ui:navigation_bar:method:constructor|Efl.Ui.Navigation_Bar.constructor]]
+ * [[:develop:api:efl:ui:spotlight:container:method:constructor|Efl.Ui.Spotlight.Container.constructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:constructor|Efl.Ui.Tab_Pager.constructor]]
+ * [[:develop:api:efl:ui:bg:method:constructor|Efl.Ui.Bg.constructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:constructor|Efl.Ui.Relative_Layout.constructor]]
+ * [[:develop:api:efl:ui:pan:method:constructor|Efl.Ui.Pan.constructor]]
+ * [[:develop:api:efl:canvas:vg:object:method:constructor|Efl.Canvas.Vg.Object.constructor]]
+ * [[:develop:api:efl:canvas:polygon:method:constructor|Efl.Canvas.Polygon.constructor]]
+ * [[:develop:api:efl:loop_timer:method:constructor|Efl.Loop_Timer.constructor]]
+ * [[:develop:api:eldbus:model:connection:method:constructor|Eldbus.Model.Connection.constructor]]
+ * [[:develop:api:eldbus:model:proxy:method:constructor|Eldbus.Model.Proxy.constructor]]
+ * [[:develop:api:eldbus:model:arguments:method:constructor|Eldbus.Model.Arguments.constructor]]
+ * [[:develop:api:eldbus:model:signal:method:constructor|Eldbus.Model.Signal.constructor]]
+ * [[:develop:api:eldbus:model:method:method:constructor|Eldbus.Model.Method.constructor]]
+ * [[:develop:api:eldbus:model:object:method:constructor|Eldbus.Model.Object.constructor]]
+ * [[:develop:api:efl:boolean_model:method:constructor|Efl.Boolean_Model.constructor]]
+ * [[:develop:api:efl:ui:select_model:method:constructor|Efl.Ui.Select_Model.constructor]]
+ * [[:develop:api:efl:ui:state_model:method:constructor|Efl.Ui.State_Model.constructor]]
+ * [[:develop:api:efl:container_model:method:constructor|Efl.Container_Model.constructor]]
+ * [[:develop:api:efl:ui:view_model:method:constructor|Efl.Ui.View_Model.constructor]]
+ * [[:develop:api:efl:ui:homogeneous_model:method:constructor|Efl.Ui.Homogeneous_Model.constructor]]
+ * [[:develop:api:efl:ui:exact_model:method:constructor|Efl.Ui.Exact_Model.constructor]]
+ * [[:develop:api:efl:ui:average_model:method:constructor|Efl.Ui.Average_Model.constructor]]
+ * [[:develop:api:efl:generic_model:method:constructor|Efl.Generic_Model.constructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:constructor|Efl.Net.Dialer_Websocket.constructor]]
+ * [[:develop:api:efl:net:control:manager:method:constructor|Efl.Net.Control.Manager.constructor]]
+ * [[:develop:api:efl:ui:widget_factory:method:constructor|Efl.Ui.Widget_Factory.constructor]]
+ * [[:develop:api:efl:ui:image_factory:method:constructor|Efl.Ui.Image_Factory.constructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:constructor|Efl.Ui.Layout_Factory.constructor]]
+ * [[:develop:api:efl:task:method:constructor|Efl.Task.constructor]]
+ * [[:develop:api:efl:loop:method:constructor|Efl.Loop.constructor]]
+ * [[:develop:api:efl:appthread:method:constructor|Efl.Appthread.constructor]]
+ * [[:develop:api:efl:exe:method:constructor|Efl.Exe.constructor]]
+ * [[:develop:api:efl:thread:method:constructor|Efl.Thread.constructor]]
+ * [[:develop:api:efl:net:session:method:constructor|Efl.Net.Session.constructor]]
+ * [[:develop:api:efl:net:dialer_http:method:constructor|Efl.Net.Dialer_Http.constructor]]
+ * [[:develop:api:efl:net:socket_windows:method:constructor|Efl.Net.Socket_Windows.constructor]]
+ * [[:develop:api:efl:io:copier:method:constructor|Efl.Io.Copier.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:constructor|Efl.Ui.Focus.Manager_Calc.constructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|Efl.Ui.Focus.Manager_Root_Focus.constructor]]
+ * [[:develop:api:ector:gl:surface:method:constructor|Ector.GL.Surface.constructor]]
+ * [[:develop:api:evas:canvas3d:object:method:constructor|Evas.Canvas3D.Object.constructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:constructor|Evas.Canvas3D.Mesh.constructor]]
+ * [[:develop:api:evas:canvas3d:light:method:constructor|Evas.Canvas3D.Light.constructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:constructor|Evas.Canvas3D.Texture.constructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:constructor|Evas.Canvas3D.Camera.constructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:constructor|Evas.Canvas3D.Primitive.constructor]]
+ * [[:develop:api:evas:canvas3d:material:method:constructor|Evas.Canvas3D.Material.constructor]]
+ * [[:develop:api:evas:canvas3d:scene:method:constructor|Evas.Canvas3D.Scene.constructor]]
+ * [[:develop:api:evas:canvas3d:node:method:constructor|Evas.Canvas3D.Node.constructor]]
+ * [[:develop:api:efl:net:ssl:context:method:constructor|Efl.Net.Ssl.Context.constructor]]
+ * [[:develop:api:ector:software:buffer:method:constructor|Ector.Software.Buffer.constructor]]
+ * [[:develop:api:ector:software:surface:method:constructor|Ector.Software.Surface.constructor]]
+ * [[:develop:api:efl:observable:method:constructor|Efl.Observable.constructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:constructor|Efl.Canvas.Gesture_Manager.constructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:constructor|Efl.Ui.Scroll.Manager.constructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer:method:constructor|Efl.Canvas.Gesture_Recognizer.constructor]]
+ * [[:develop:api:efl:input:focus:method:constructor|Efl.Input.Focus.constructor]]
+ * [[:develop:api:ector:renderer:software:image:method:constructor|Ector.Renderer.Software.Image.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:constructor|Ector.Renderer.Software.Gradient.Linear.constructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:constructor|Ector.Renderer.Software.Shape.constructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:constructor|Ector.Renderer.Software.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:method:constructor|Ector.Renderer.GL.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:constructor|Ector.Renderer.GL.Gradient.Radial.constructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:constructor|Ector.Renderer.GL.Shape.constructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:constructor|Ector.Renderer.GL.Gradient.Linear.constructor]]
+ * [[:develop:api:efl:canvas:animation_alpha:method:constructor|Efl.Canvas.Animation_Alpha.constructor]]
+ * [[:develop:api:efl:canvas:animation_rotate:method:constructor|Efl.Canvas.Animation_Rotate.constructor]]
+ * [[:develop:api:efl:canvas:animation_scale:method:constructor|Efl.Canvas.Animation_Scale.constructor]]
+ * [[:develop:api:efl:canvas:animation_translate:method:constructor|Efl.Canvas.Animation_Translate.constructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:constructor|Efl.Canvas.Animation_Group.constructor]]
+ * [[:develop:api:efl:bounce_interpolator:method:constructor|Efl.Bounce_Interpolator.constructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/method/content_unset.txt b/public_html/data/pages/develop/api/efl/ui/win/method/content_unset.txt
new file mode 100644
index 00000000..d6110283
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/method/content_unset.txt
@@ -0,0 +1,62 @@
+~~Title: Efl.Ui.Win.content_unset~~
+====== Efl.Ui.Win.content_unset ======
+
+===== Description =====
+
+%%Remove the sub-object currently set as content of this object and return it. This object becomes empty.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:method:content_unset:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:content:method:content_unset|Efl.Content.content_unset]].//===== Signature =====
+
+
+content_unset @pure_virtual {
+ return: Efl.Gfx.Entity;
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_content_unset(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:content:method:content_unset|Efl.Content.content_unset]]
+ * [[:develop:api:efl:ui:check:method:content_unset|Efl.Ui.Check.content_unset]]
+ * [[:develop:api:efl:ui:win:method:content_unset|Efl.Ui.Win.content_unset]]
+ * [[:develop:api:efl:ui:default_item:method:content_unset|Efl.Ui.Default_Item.content_unset]]
+ * [[:develop:api:efl:ui:win_part:method:content_unset|Efl.Ui.Win_Part.content_unset]]
+ * [[:develop:api:efl:canvas:layout_part_external:method:content_unset|Efl.Canvas.Layout_Part_External.content_unset]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:method:content_unset|Efl.Ui.Navigation_Bar_Part_Back_Button.content_unset]]
+ * [[:develop:api:efl:ui:layout_part_legacy:method:content_unset|Efl.Ui.Layout_Part_Legacy.content_unset]]
+ * [[:develop:api:elm:dayselector:part:method:content_unset|Elm.Dayselector.Part.content_unset]]
+ * [[:develop:api:elm:entry:part:method:content_unset|Elm.Entry.Part.content_unset]]
+ * [[:develop:api:elm:naviframe:part:method:content_unset|Elm.Naviframe.Part.content_unset]]
+ * [[:develop:api:elm:ctxpopup:part:method:content_unset|Elm.Ctxpopup.Part.content_unset]]
+ * [[:develop:api:elm:fileselector:entry:part:method:content_unset|Elm.Fileselector.Entry.Part.content_unset]]
+ * [[:develop:api:elm:popup:part:method:content_unset|Elm.Popup.Part.content_unset]]
+ * [[:develop:api:elm:hover:part:method:content_unset|Elm.Hover.Part.content_unset]]
+ * [[:develop:api:elm:scroller:part:method:content_unset|Elm.Scroller.Part.content_unset]]
+ * [[:develop:api:elm:notify:part:method:content_unset|Elm.Notify.Part.content_unset]]
+ * [[:develop:api:efl:ui:panel:method:content_unset|Efl.Ui.Panel.content_unset]]
+ * [[:develop:api:elm:panel:part:method:content_unset|Elm.Panel.Part.content_unset]]
+ * [[:develop:api:efl:ui:tab_page:method:content_unset|Efl.Ui.Tab_Page.content_unset]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:content_unset|Efl.Ui.List_Placeholder_Item.content_unset]]
+ * [[:develop:api:elm:mapbuf:part:method:content_unset|Elm.Mapbuf.Part.content_unset]]
+ * [[:develop:api:efl:ui:scroller:method:content_unset|Efl.Ui.Scroller.content_unset]]
+ * [[:develop:api:efl:ui:flip_part:method:content_unset|Efl.Ui.Flip_Part.content_unset]]
+ * [[:develop:api:efl:canvas:layout_part_swallow:method:content_unset|Efl.Canvas.Layout_Part_Swallow.content_unset]]
+ * [[:develop:api:efl:ui:pan:method:content_unset|Efl.Ui.Pan.content_unset]]
+ * [[:develop:api:efl:ui:frame:method:content_unset|Efl.Ui.Frame.content_unset]]
+ * [[:develop:api:efl:ui:progressbar:method:content_unset|Efl.Ui.Progressbar.content_unset]]
+ * [[:develop:api:efl:ui:popup:method:content_unset|Efl.Ui.Popup.content_unset]]
+ * [[:develop:api:efl:ui:navigation_layout:method:content_unset|Efl.Ui.Navigation_Layout.content_unset]]
+ * [[:develop:api:elm:flip:part:method:content_unset|Elm.Flip.Part.content_unset]]
+ * [[:develop:api:efl:ui:button:method:content_unset|Efl.Ui.Button.content_unset]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:method:content_unset|Efl.Canvas.Layout_Part_Invalid.content_unset]]
+ * [[:develop:api:efl:ui:layout_part_content:method:content_unset|Efl.Ui.Layout_Part_Content.content_unset]]
+ * [[:develop:api:efl:ui:navigation_bar_part:method:content_unset|Efl.Ui.Navigation_Bar_Part.content_unset]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/method/debug_name_override.txt b/public_html/data/pages/develop/api/efl/ui/win/method/debug_name_override.txt
new file mode 100644
index 00000000..2a1d217b
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/method/debug_name_override.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Win.debug_name_override~~
+====== Efl.Ui.Win.debug_name_override ======
+
+===== Description =====
+
+%%Build a read-only name for this object used for debugging.%%
+
+%%Multiple calls using efl_super() can be chained in order to build the entire debug name, from parent to child classes. In C the usual way to build the string is as follows:%%
+
+%%efl_debug_name_override(efl_super(obj, MY_CLASS), sb); eina_strbuf_append_printf(sb, "new_information");%%
+
+%%Usually more debug information should be added to %%''sb''%% after calling the super function.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:method:debug_name_override:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:debug_name_override|Efl.Object.debug_name_override]].//===== Signature =====
+
+
+debug_name_override {
+ params {
+ @in sb: strbuf;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_debug_name_override(Eo *obj, Eina_Strbuf *sb);
+
+
+===== Parameters =====
+
+ * **sb** //(in)// - %%A string buffer, must not be %%''null''%%.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:debug_name_override|Efl.Object.debug_name_override]]
+ * [[:develop:api:efl:canvas:object:method:debug_name_override|Efl.Canvas.Object.debug_name_override]]
+ * [[:develop:api:efl:canvas:image_internal:method:debug_name_override|Efl.Canvas.Image_Internal.debug_name_override]]
+ * [[:develop:api:efl:canvas:group:method:debug_name_override|Efl.Canvas.Group.debug_name_override]]
+ * [[:develop:api:efl:canvas:layout:method:debug_name_override|Efl.Canvas.Layout.debug_name_override]]
+ * [[:develop:api:efl:ui:widget:method:debug_name_override|Efl.Ui.Widget.debug_name_override]]
+ * [[:develop:api:efl:ui:win:method:debug_name_override|Efl.Ui.Win.debug_name_override]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/method/destructor.txt b/public_html/data/pages/develop/api/efl/ui/win/method/destructor.txt
new file mode 100644
index 00000000..1de288ef
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/method/destructor.txt
@@ -0,0 +1,183 @@
+~~Title: Efl.Ui.Win.destructor~~
+====== Efl.Ui.Win.destructor ======
+
+===== Description =====
+
+%%Implement this method to provide deinitialization code for your object if you need it.%%
+
+%%Will be called once %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%% has returned. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:method:destructor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:destructor|Efl.Object.destructor]].//===== Signature =====
+
+
+destructor {}
+
+
+===== C signature =====
+
+
+void efl_destructor(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]
+ * [[:develop:api:efl:loop_handler:method:destructor|Efl.Loop_Handler.destructor]]
+ * [[:develop:api:eio:sentry:method:destructor|Eio.Sentry.destructor]]
+ * [[:develop:api:efl:canvas:vg:node:method:destructor|Efl.Canvas.Vg.Node.destructor]]
+ * [[:develop:api:efl:canvas:vg:shape:method:destructor|Efl.Canvas.Vg.Shape.destructor]]
+ * [[:develop:api:efl:canvas:vg:container:method:destructor|Efl.Canvas.Vg.Container.destructor]]
+ * [[:develop:api:efl:canvas:vg:image:method:destructor|Efl.Canvas.Vg.Image.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient:method:destructor|Efl.Canvas.Vg.Gradient.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_linear:method:destructor|Efl.Canvas.Vg.Gradient_Linear.destructor]]
+ * [[:develop:api:efl:canvas:vg:gradient_radial:method:destructor|Efl.Canvas.Vg.Gradient_Radial.destructor]]
+ * [[:develop:api:efl:canvas:gesture_zoom:method:destructor|Efl.Canvas.Gesture_Zoom.destructor]]
+ * [[:develop:api:efl:canvas:gesture_long_tap:method:destructor|Efl.Canvas.Gesture_Long_Tap.destructor]]
+ * [[:develop:api:efl:ui:theme:method:destructor|Efl.Ui.Theme.destructor]]
+ * [[:develop:api:efl:input:pointer:method:destructor|Efl.Input.Pointer.destructor]]
+ * [[:develop:api:efl:datetime:manager:method:destructor|Efl.Datetime.Manager.destructor]]
+ * [[:develop:api:efl:ui:radio_group_impl:method:destructor|Efl.Ui.Radio_Group_Impl.destructor]]
+ * [[:develop:api:efl:canvas:gesture_touch:method:destructor|Efl.Canvas.Gesture_Touch.destructor]]
+ * [[:develop:api:efl:loop_message_handler:method:destructor|Efl.Loop_Message_Handler.destructor]]
+ * [[:develop:api:ecore:event:message:handler:method:destructor|Ecore.Event.Message.Handler.destructor]]
+ * [[:develop:api:efl:loop_message_future_handler:method:destructor|Efl.Loop_Message_Future_Handler.destructor]]
+ * [[:develop:api:efl:ui:text_factory:fallback:method:destructor|Efl.Ui.Text_Factory.Fallback.destructor]]
+ * [[:develop:api:efl:ui:selection_manager:method:destructor|Efl.Ui.Selection_Manager.destructor]]
+ * [[:develop:api:efl:ui:spotlight:manager_plain:method:destructor|Efl.Ui.Spotlight.Manager_Plain.destructor]]
+ * [[:develop:api:efl:ui:text_factory:images:method:destructor|Efl.Ui.Text_Factory.Images.destructor]]
+ * [[:develop:api:efl:net:server_udp_client:method:destructor|Efl.Net.Server_Udp_Client.destructor]]
+ * [[:develop:api:efl:loop_message:method:destructor|Efl.Loop_Message.destructor]]
+ * [[:develop:api:efl:loop_message_future:method:destructor|Efl.Loop_Message_Future.destructor]]
+ * [[:develop:api:ecore:event:message:method:destructor|Ecore.Event.Message.destructor]]
+ * [[:develop:api:efl:input:device:method:destructor|Efl.Input.Device.destructor]]
+ * [[:develop:api:efl:canvas:animation_player:method:destructor|Efl.Canvas.Animation_Player.destructor]]
+ * [[:develop:api:efl:input:key:method:destructor|Efl.Input.Key.destructor]]
+ * [[:develop:api:ecore:audio:in:method:destructor|Ecore.Audio.In.destructor]]
+ * [[:develop:api:ecore:audio:in:sndfile:method:destructor|Ecore.Audio.In.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:method:destructor|Ecore.Audio.Out.destructor]]
+ * [[:develop:api:ecore:audio:out:wasapi:method:destructor|Ecore.Audio.Out.Wasapi.destructor]]
+ * [[:develop:api:ecore:audio:out:sndfile:method:destructor|Ecore.Audio.Out.Sndfile.destructor]]
+ * [[:develop:api:ecore:audio:out:pulse:method:destructor|Ecore.Audio.Out.Pulse.destructor]]
+ * [[:develop:api:efl:input:hold:method:destructor|Efl.Input.Hold.destructor]]
+ * [[:develop:api:efl:ui:widget_part:method:destructor|Efl.Ui.Widget_Part.destructor]]
+ * [[:develop:api:efl:mono_model_internal_child:method:destructor|Efl.Mono_Model_Internal_Child.destructor]]
+ * [[:develop:api:efl:net:server_windows:method:destructor|Efl.Net.Server_Windows.destructor]]
+ * [[:develop:api:efl:net:control:technology:method:destructor|Efl.Net.Control.Technology.destructor]]
+ * [[:develop:api:efl:net:dialer_simple:method:destructor|Efl.Net.Dialer_Simple.destructor]]
+ * [[:develop:api:efl:mono_model_internal:method:destructor|Efl.Mono_Model_Internal.destructor]]
+ * [[:develop:api:efl:io:file:method:destructor|Efl.Io.File.destructor]]
+ * [[:develop:api:efl:net:server_fd:method:destructor|Efl.Net.Server_Fd.destructor]]
+ * [[:develop:api:efl:net:server_unix:method:destructor|Efl.Net.Server_Unix.destructor]]
+ * [[:develop:api:efl:net:server_udp:method:destructor|Efl.Net.Server_Udp.destructor]]
+ * [[:develop:api:efl:net:server_tcp:method:destructor|Efl.Net.Server_Tcp.destructor]]
+ * [[:develop:api:efl:net:server_ssl:method:destructor|Efl.Net.Server_Ssl.destructor]]
+ * [[:develop:api:efl:net:socket_fd:method:destructor|Efl.Net.Socket_Fd.destructor]]
+ * [[:develop:api:efl:net:socket_udp:method:destructor|Efl.Net.Socket_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_udp:method:destructor|Efl.Net.Dialer_Udp.destructor]]
+ * [[:develop:api:efl:net:dialer_unix:method:destructor|Efl.Net.Dialer_Unix.destructor]]
+ * [[:develop:api:efl:net:dialer_tcp:method:destructor|Efl.Net.Dialer_Tcp.destructor]]
+ * [[:develop:api:efl:net:socket_ssl:method:destructor|Efl.Net.Socket_Ssl.destructor]]
+ * [[:develop:api:efl:canvas:object:method:destructor|Efl.Canvas.Object.destructor]]
+ * [[:develop:api:efl:canvas:image_internal:method:destructor|Efl.Canvas.Image_Internal.destructor]]
+ * [[:develop:api:efl:canvas:surface_tbm:method:destructor|Efl.Canvas.Surface_Tbm.destructor]]
+ * [[:develop:api:efl:canvas:surface_x11:method:destructor|Efl.Canvas.Surface_X11.destructor]]
+ * [[:develop:api:efl:canvas:surface_wayland:method:destructor|Efl.Canvas.Surface_Wayland.destructor]]
+ * [[:develop:api:efl:canvas:text:method:destructor|Efl.Canvas.Text.destructor]]
+ * [[:develop:api:efl:canvas:group:method:destructor|Efl.Canvas.Group.destructor]]
+ * [[:develop:api:efl:canvas:event_grabber:method:destructor|Efl.Canvas.Event_Grabber.destructor]]
+ * [[:develop:api:efl:ui:widget:method:destructor|Efl.Ui.Widget.destructor]]
+ * [[:develop:api:efl:ui:win:method:destructor|Efl.Ui.Win.destructor]]
+ * [[:develop:api:efl:ui:animation_view:method:destructor|Efl.Ui.Animation_View.destructor]]
+ * [[:develop:api:efl:ui:slider:method:destructor|Efl.Ui.Slider.destructor]]
+ * [[:develop:api:efl:ui:radio:method:destructor|Efl.Ui.Radio.destructor]]
+ * [[:develop:api:efl:ui:timepicker:method:destructor|Efl.Ui.Timepicker.destructor]]
+ * [[:develop:api:efl:ui:text:method:destructor|Efl.Ui.Text.destructor]]
+ * [[:develop:api:efl:ui:tab_bar:method:destructor|Efl.Ui.Tab_Bar.destructor]]
+ * [[:develop:api:efl:ui:spin:method:destructor|Efl.Ui.Spin.destructor]]
+ * [[:develop:api:efl:ui:panel:method:destructor|Efl.Ui.Panel.destructor]]
+ * [[:develop:api:efl:ui:item:method:destructor|Efl.Ui.Item.destructor]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:destructor|Efl.Ui.List_Placeholder_Item.destructor]]
+ * [[:develop:api:efl:ui:slider_interval:method:destructor|Efl.Ui.Slider_Interval.destructor]]
+ * [[:develop:api:efl:ui:tab_page:method:destructor|Efl.Ui.Tab_Page.destructor]]
+ * [[:develop:api:efl:ui:textpath:method:destructor|Efl.Ui.Textpath.destructor]]
+ * [[:develop:api:efl:ui:datepicker:method:destructor|Efl.Ui.Datepicker.destructor]]
+ * [[:develop:api:efl:ui:tags:method:destructor|Efl.Ui.Tags.destructor]]
+ * [[:develop:api:efl:ui:scroller:method:destructor|Efl.Ui.Scroller.destructor]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:destructor|Efl.Ui.Internal_Text_Scroller.destructor]]
+ * [[:develop:api:efl:ui:collection:method:destructor|Efl.Ui.Collection.destructor]]
+ * [[:develop:api:efl:ui:calendar:method:destructor|Efl.Ui.Calendar.destructor]]
+ * [[:develop:api:efl:ui:popup:method:destructor|Efl.Ui.Popup.destructor]]
+ * [[:develop:api:efl:ui:alert_popup:method:destructor|Efl.Ui.Alert_Popup.destructor]]
+ * [[:develop:api:efl:ui:tab_pager:method:destructor|Efl.Ui.Tab_Pager.destructor]]
+ * [[:develop:api:efl:ui:bg:method:destructor|Efl.Ui.Bg.destructor]]
+ * [[:develop:api:efl:ui:relative_layout:method:destructor|Efl.Ui.Relative_Layout.destructor]]
+ * [[:develop:api:efl:ui:pan:method:destructor|Efl.Ui.Pan.destructor]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:method:destructor|Efl.Ui.Image_Zoomable_Pan.destructor]]
+ * [[:develop:api:efl:canvas:polygon:method:destructor|Efl.Canvas.Polygon.destructor]]
+ * [[:develop:api:efl:loop_timer:method:destructor|Efl.Loop_Timer.destructor]]
+ * [[:develop:api:eldbus:model:method:destructor|Eldbus.Model.destructor]]
+ * [[:develop:api:eldbus:model:proxy:method:destructor|Eldbus.Model.Proxy.destructor]]
+ * [[:develop:api:eldbus:model:object:method:destructor|Eldbus.Model.Object.destructor]]
+ * [[:develop:api:efl:composite_model:method:destructor|Efl.Composite_Model.destructor]]
+ * [[:develop:api:efl:boolean_model:method:destructor|Efl.Boolean_Model.destructor]]
+ * [[:develop:api:efl:container_model:method:destructor|Efl.Container_Model.destructor]]
+ * [[:develop:api:efl:ui:view_model:method:destructor|Efl.Ui.View_Model.destructor]]
+ * [[:develop:api:efl:filter_model:method:destructor|Efl.Filter_Model.destructor]]
+ * [[:develop:api:efl:io:model:method:destructor|Efl.Io.Model.destructor]]
+ * [[:develop:api:efl:generic_model:method:destructor|Efl.Generic_Model.destructor]]
+ * [[:develop:api:efl:net:dialer_websocket:method:destructor|Efl.Net.Dialer_Websocket.destructor]]
+ * [[:develop:api:efl:net:control:manager:method:destructor|Efl.Net.Control.Manager.destructor]]
+ * [[:develop:api:efl:ui:image_factory:method:destructor|Efl.Ui.Image_Factory.destructor]]
+ * [[:develop:api:efl:ui:layout_factory:method:destructor|Efl.Ui.Layout_Factory.destructor]]
+ * [[:develop:api:efl:net:control:access_point:method:destructor|Efl.Net.Control.Access_Point.destructor]]
+ * [[:develop:api:efl:task:method:destructor|Efl.Task.destructor]]
+ * [[:develop:api:efl:loop:method:destructor|Efl.Loop.destructor]]
+ * [[:develop:api:efl:appthread:method:destructor|Efl.Appthread.destructor]]
+ * [[:develop:api:efl:exe:method:destructor|Efl.Exe.destructor]]
+ * [[:develop:api:efl:thread:method:destructor|Efl.Thread.destructor]]
+ * [[:develop:api:efl:net:session:method:destructor|Efl.Net.Session.destructor]]
+ * [[:develop:api:efl:net:dialer_http:method:destructor|Efl.Net.Dialer_Http.destructor]]
+ * [[:develop:api:efl:net:socket_windows:method:destructor|Efl.Net.Socket_Windows.destructor]]
+ * [[:develop:api:efl:net:dialer_windows:method:destructor|Efl.Net.Dialer_Windows.destructor]]
+ * [[:develop:api:efl:io:copier:method:destructor|Efl.Io.Copier.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:destructor|Efl.Ui.Focus.Manager_Calc.destructor]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|Efl.Ui.Focus.Manager_Root_Focus.destructor]]
+ * [[:develop:api:ector:gl:surface:method:destructor|Ector.GL.Surface.destructor]]
+ * [[:develop:api:evas:canvas3d:mesh:method:destructor|Evas.Canvas3D.Mesh.destructor]]
+ * [[:develop:api:evas:canvas3d:light:method:destructor|Evas.Canvas3D.Light.destructor]]
+ * [[:develop:api:evas:canvas3d:texture:method:destructor|Evas.Canvas3D.Texture.destructor]]
+ * [[:develop:api:evas:canvas3d:camera:method:destructor|Evas.Canvas3D.Camera.destructor]]
+ * [[:develop:api:evas:canvas3d:primitive:method:destructor|Evas.Canvas3D.Primitive.destructor]]
+ * [[:develop:api:evas:canvas3d:material:method:destructor|Evas.Canvas3D.Material.destructor]]
+ * [[:develop:api:evas:canvas3d:node:method:destructor|Evas.Canvas3D.Node.destructor]]
+ * [[:develop:api:efl:net:ssl:context:method:destructor|Efl.Net.Ssl.Context.destructor]]
+ * [[:develop:api:ector:software:buffer:method:destructor|Ector.Software.Buffer.destructor]]
+ * [[:develop:api:ector:software:surface:method:destructor|Ector.Software.Surface.destructor]]
+ * [[:develop:api:efl:io:buffer:method:destructor|Efl.Io.Buffer.destructor]]
+ * [[:develop:api:efl:observable:method:destructor|Efl.Observable.destructor]]
+ * [[:develop:api:efl:ui:property_bind_part:method:destructor|Efl.Ui.Property_Bind_Part.destructor]]
+ * [[:develop:api:efl:ui:layout_part_box:method:destructor|Efl.Ui.Layout_Part_Box.destructor]]
+ * [[:develop:api:efl:io:queue:method:destructor|Efl.Io.Queue.destructor]]
+ * [[:develop:api:efl:canvas:gesture_manager:method:destructor|Efl.Canvas.Gesture_Manager.destructor]]
+ * [[:develop:api:efl:ui:scroll:manager:method:destructor|Efl.Ui.Scroll.Manager.destructor]]
+ * [[:develop:api:efl:ui:layout_part_table:method:destructor|Efl.Ui.Layout_Part_Table.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_triple_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Triple_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_long_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Long_Tap.destructor]]
+ * [[:develop:api:efl:canvas:gesture_recognizer_double_tap:method:destructor|Efl.Canvas.Gesture_Recognizer_Double_Tap.destructor]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:method:destructor|Efl.Ui.Focus.Composition_Adapter.destructor]]
+ * [[:develop:api:efl:input:focus:method:destructor|Efl.Input.Focus.destructor]]
+ * [[:develop:api:elm:flip:part:method:destructor|Elm.Flip.Part.destructor]]
+ * [[:develop:api:ector:renderer:method:destructor|Ector.Renderer.destructor]]
+ * [[:develop:api:ector:renderer:software:image:method:destructor|Ector.Renderer.Software.Image.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:linear:method:destructor|Ector.Renderer.Software.Gradient.Linear.destructor]]
+ * [[:develop:api:ector:renderer:software:shape:method:destructor|Ector.Renderer.Software.Shape.destructor]]
+ * [[:develop:api:ector:renderer:software:gradient:radial:method:destructor|Ector.Renderer.Software.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:method:destructor|Ector.Renderer.GL.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:radial:method:destructor|Ector.Renderer.GL.Gradient.Radial.destructor]]
+ * [[:develop:api:ector:renderer:gl:shape:method:destructor|Ector.Renderer.GL.Shape.destructor]]
+ * [[:develop:api:ector:renderer:gl:gradient:linear:method:destructor|Ector.Renderer.GL.Gradient.Linear.destructor]]
+ * [[:develop:api:efl:canvas:animation_group:method:destructor|Efl.Canvas.Animation_Group.destructor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/method/finalize.txt b/public_html/data/pages/develop/api/efl/ui/win/method/finalize.txt
new file mode 100644
index 00000000..56fcb763
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/method/finalize.txt
@@ -0,0 +1,91 @@
+~~Title: Efl.Ui.Win.finalize~~
+====== Efl.Ui.Win.finalize ======
+
+===== Description =====
+
+%%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%%
+
+%%Use this method to delay expensive operations until user configuration has finished, to avoid building the object in a "default" state in the constructor, just to have to throw it all away because a user configuration (a property being set, for example) requires a different state. This is the last call inside efl_add() and will set %%[[:develop:api:efl:object:property:finalized|Efl.Object.finalized]]%% to %%''true''%% once it returns. This is an optimization and implementing this method is optional if you already perform all your initialization in the %%[[:develop:api:efl:object:method:constructor|Efl.Object.constructor]]%% method. See the Life Cycle section in this class' description.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:method:finalize:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:finalize|Efl.Object.finalize]].//===== Signature =====
+
+
+finalize {
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_finalize(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]
+ * [[:develop:api:efl:loop_handler:method:finalize|Efl.Loop_Handler.finalize]]
+ * [[:develop:api:efl:ui:position_manager:grid:method:finalize|Efl.Ui.Position_Manager.Grid.finalize]]
+ * [[:develop:api:efl:canvas:layout_part:method:finalize|Efl.Canvas.Layout_Part.finalize]]
+ * [[:develop:api:efl:net:server_udp_client:method:finalize|Efl.Net.Server_Udp_Client.finalize]]
+ * [[:develop:api:efl:ui:widget_part_bg:method:finalize|Efl.Ui.Widget_Part_Bg.finalize]]
+ * [[:develop:api:efl:ui:layout_part_bg:method:finalize|Efl.Ui.Layout_Part_Bg.finalize]]
+ * [[:develop:api:efl:io:buffered_stream:method:finalize|Efl.Io.Buffered_Stream.finalize]]
+ * [[:develop:api:efl:net:dialer_simple:method:finalize|Efl.Net.Dialer_Simple.finalize]]
+ * [[:develop:api:efl:io:file:method:finalize|Efl.Io.File.finalize]]
+ * [[:develop:api:efl:net:server_fd:method:finalize|Efl.Net.Server_Fd.finalize]]
+ * [[:develop:api:efl:io:stderr:method:finalize|Efl.Io.Stderr.finalize]]
+ * [[:develop:api:efl:io:stdin:method:finalize|Efl.Io.Stdin.finalize]]
+ * [[:develop:api:efl:io:stdout:method:finalize|Efl.Io.Stdout.finalize]]
+ * [[:develop:api:efl:net:socket_fd:method:finalize|Efl.Net.Socket_Fd.finalize]]
+ * [[:develop:api:efl:net:socket_ssl:method:finalize|Efl.Net.Socket_Ssl.finalize]]
+ * [[:develop:api:efl:net:dialer_ssl:method:finalize|Efl.Net.Dialer_Ssl.finalize]]
+ * [[:develop:api:efl:canvas:object:method:finalize|Efl.Canvas.Object.finalize]]
+ * [[:develop:api:efl:canvas:image_internal:method:finalize|Efl.Canvas.Image_Internal.finalize]]
+ * [[:develop:api:efl:ui:internal:text:interactive:method:finalize|Efl.Ui.Internal.Text.Interactive.finalize]]
+ * [[:develop:api:efl:ui:widget:method:finalize|Efl.Ui.Widget.finalize]]
+ * [[:develop:api:efl:ui:win:method:finalize|Efl.Ui.Win.finalize]]
+ * [[:develop:api:efl:ui:win_socket:method:finalize|Efl.Ui.Win_Socket.finalize]]
+ * [[:develop:api:efl:ui:win_inlined:method:finalize|Efl.Ui.Win_Inlined.finalize]]
+ * [[:develop:api:efl:ui:layout_base:method:finalize|Efl.Ui.Layout_Base.finalize]]
+ * [[:develop:api:efl:ui:text:method:finalize|Efl.Ui.Text.finalize]]
+ * [[:develop:api:efl:ui:tab_bar:method:finalize|Efl.Ui.Tab_Bar.finalize]]
+ * [[:develop:api:efl:ui:item:method:finalize|Efl.Ui.Item.finalize]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:finalize|Efl.Ui.List_Placeholder_Item.finalize]]
+ * [[:develop:api:elm:code_widget:method:finalize|Elm.Code_Widget.finalize]]
+ * [[:develop:api:efl:ui:scroller:method:finalize|Efl.Ui.Scroller.finalize]]
+ * [[:develop:api:efl:ui:internal_text_scroller:method:finalize|Efl.Ui.Internal_Text_Scroller.finalize]]
+ * [[:develop:api:efl:ui:collection:method:finalize|Efl.Ui.Collection.finalize]]
+ * [[:develop:api:efl:ui:spotlight:container:method:finalize|Efl.Ui.Spotlight.Container.finalize]]
+ * [[:develop:api:efl:ui:tab_pager:method:finalize|Efl.Ui.Tab_Pager.finalize]]
+ * [[:develop:api:efl:ui:bg:method:finalize|Efl.Ui.Bg.finalize]]
+ * [[:develop:api:efl:canvas:vg:object:method:finalize|Efl.Canvas.Vg.Object.finalize]]
+ * [[:develop:api:efl:loop_timer:method:finalize|Efl.Loop_Timer.finalize]]
+ * [[:develop:api:eldbus:model:method:finalize|Eldbus.Model.finalize]]
+ * [[:develop:api:eldbus:model:proxy:method:finalize|Eldbus.Model.Proxy.finalize]]
+ * [[:develop:api:eldbus:model:arguments:method:finalize|Eldbus.Model.Arguments.finalize]]
+ * [[:develop:api:eldbus:model:method:method:finalize|Eldbus.Model.Method.finalize]]
+ * [[:develop:api:eldbus:model:object:method:finalize|Eldbus.Model.Object.finalize]]
+ * [[:develop:api:efl:composite_model:method:finalize|Efl.Composite_Model.finalize]]
+ * [[:develop:api:efl:container_model:method:finalize|Efl.Container_Model.finalize]]
+ * [[:develop:api:efl:ui:view_model:method:finalize|Efl.Ui.View_Model.finalize]]
+ * [[:develop:api:efl:io:model:method:finalize|Efl.Io.Model.finalize]]
+ * [[:develop:api:efl:net:server_simple:method:finalize|Efl.Net.Server_Simple.finalize]]
+ * [[:develop:api:efl:net:control:manager:method:finalize|Efl.Net.Control.Manager.finalize]]
+ * [[:develop:api:efl:ui:widget_factory:method:finalize|Efl.Ui.Widget_Factory.finalize]]
+ * [[:develop:api:efl:ui:caching_factory:method:finalize|Efl.Ui.Caching_Factory.finalize]]
+ * [[:develop:api:efl:thread:method:finalize|Efl.Thread.finalize]]
+ * [[:develop:api:efl:net:session:method:finalize|Efl.Net.Session.finalize]]
+ * [[:develop:api:efl:io:copier:method:finalize|Efl.Io.Copier.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:finalize|Efl.Ui.Focus.Manager_Calc.finalize]]
+ * [[:develop:api:efl:ui:focus:manager_root_focus:method:finalize|Efl.Ui.Focus.Manager_Root_Focus.finalize]]
+ * [[:develop:api:evas:canvas3d:node:method:finalize|Evas.Canvas3D.Node.finalize]]
+ * [[:develop:api:efl:net:ssl:context:method:finalize|Efl.Net.Ssl.Context.finalize]]
+ * [[:develop:api:efl:io:buffer:method:finalize|Efl.Io.Buffer.finalize]]
+ * [[:develop:api:efl:net:ip_address:method:finalize|Efl.Net.Ip_Address.finalize]]
+ * [[:develop:api:efl:io:queue:method:finalize|Efl.Io.Queue.finalize]]
+ * [[:develop:api:ector:renderer:method:finalize|Ector.Renderer.finalize]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/method/focus_manager_create.txt b/public_html/data/pages/develop/api/efl/ui/win/method/focus_manager_create.txt
new file mode 100644
index 00000000..9fe515bf
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/method/focus_manager_create.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Win.focus_manager_create~~
+====== Efl.Ui.Win.focus_manager_create ======
+
+===== Description =====
+
+%%If the widget needs a focus manager, this function will be called.%%
+
+%%It can be used and overridden to inject your own manager or set custom options on the focus manager.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:method:focus_manager_create:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget_focus_manager:method:focus_manager_create|Efl.Ui.Widget_Focus_Manager.focus_manager_create]].//===== Signature =====
+
+
+focus_manager_create @protected @pure_virtual {
+ params {
+ @in root: Efl.Ui.Focus.Object;
+ }
+ return: Efl.Ui.Focus.Manager;
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Focus_Manager *efl_ui_widget_focus_manager_create(Eo *obj, Efl_Ui_Focus_Object *root);
+
+
+===== Parameters =====
+
+ * **root** //(in)// - %%The logical root object for focus.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget_focus_manager:method:focus_manager_create|Efl.Ui.Widget_Focus_Manager.focus_manager_create]]
+ * [[:develop:api:efl:ui:win:method:focus_manager_create|Efl.Ui.Win.focus_manager_create]]
+ * [[:develop:api:efl:ui:collection_view:method:focus_manager_create|Efl.Ui.Collection_View.focus_manager_create]]
+ * [[:develop:api:efl:ui:scroller:method:focus_manager_create|Efl.Ui.Scroller.focus_manager_create]]
+ * [[:develop:api:efl:ui:collection:method:focus_manager_create|Efl.Ui.Collection.focus_manager_create]]
+ * [[:develop:api:elm:interface_scrollable:method:focus_manager_create|Elm.Interface_Scrollable.focus_manager_create]]
+ * [[:develop:api:efl:ui:focus:layer:method:focus_manager_create|Efl.Ui.Focus.Layer.focus_manager_create]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/method/group_objects_calculate.txt b/public_html/data/pages/develop/api/efl/ui/win/method/group_objects_calculate.txt
new file mode 100644
index 00000000..a4a1c21a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/method/group_objects_calculate.txt
@@ -0,0 +1,27 @@
+~~Title: Efl.Ui.Win.group_objects_calculate~~
+====== Efl.Ui.Win.group_objects_calculate ======
+
+===== Description =====
+
+%%Call user-provided %%''calculate''%% group functions and unset the flag signalling that the object needs to get recalculated to all group objects in the canvas.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:method:group_objects_calculate:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:canvas:scene:method:group_objects_calculate|Efl.Canvas.Scene.group_objects_calculate]].//===== Signature =====
+
+
+group_objects_calculate @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_canvas_scene_group_objects_calculate(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:scene:method:group_objects_calculate|Efl.Canvas.Scene.group_objects_calculate]]
+ * [[:develop:api:efl:ui:win:method:group_objects_calculate|Efl.Ui.Win.group_objects_calculate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/method/lower_to_bottom.txt b/public_html/data/pages/develop/api/efl/ui/win/method/lower_to_bottom.txt
new file mode 100644
index 00000000..43d99390
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/method/lower_to_bottom.txt
@@ -0,0 +1,29 @@
+~~Title: Efl.Ui.Win.lower_to_bottom~~
+====== Efl.Ui.Win.lower_to_bottom ======
+
+===== Description =====
+
+%%This action is ignored by the Window.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:method:lower_to_bottom:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:canvas:object:method:lower_to_bottom|Efl.Gfx.Stack.lower_to_bottom]].//===== Signature =====
+
+
+lower_to_bottom @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_gfx_stack_lower_to_bottom(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:stack:method:lower_to_bottom|Efl.Gfx.Stack.lower_to_bottom]]
+ * [[:develop:api:efl:canvas:vg:node:method:lower_to_bottom|Efl.Canvas.Vg.Node.lower_to_bottom]]
+ * [[:develop:api:efl:ui:win:method:lower_to_bottom|Efl.Ui.Win.lower_to_bottom]]
+ * [[:develop:api:efl:canvas:object:method:lower_to_bottom|Efl.Canvas.Object.lower_to_bottom]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/method/move_resize_start.txt b/public_html/data/pages/develop/api/efl/ui/win/method/move_resize_start.txt
new file mode 100644
index 00000000..521fb04c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/method/move_resize_start.txt
@@ -0,0 +1,51 @@
+~~Title: Efl.Ui.Win.move_resize_start~~
+====== Efl.Ui.Win.move_resize_start ======
+
+===== Description =====
+
+%%Start moving or resizing the window.%%
+
+%%The user can request the display server to start moving or resizing the window by combining modes from %%[[:develop:api:efl:ui:win_move_resize_mode|Efl.Ui.Win_Move_Resize_Mode]]%%. This API can only be called if none of the following conditions is true:%%
+
+%%1. Called in the absence of a pointer down event, 2. Called more than once before a pointer up event, 3. Called when the window is already being resized or moved, 4. Called with an unsupported combination of modes.%%
+
+%%Right usage: 1. Pointer (mouse or touch) down event, 2. %%[[:develop:api:efl:ui:win:method:move_resize_start|Efl.Ui.Win.move_resize_start]]%% called only once with a supported mode, 3. Pointer (mouse or touch) up event.%%
+
+%%If a pointer up event occurs after calling the function, it automatically ends the window move and resize operation.%%
+
+%%Currently, only the following 9 combinations are allowed, and possibly more combinations may be added in the future: 1. %%[[:develop:api:efl:ui:win_move_resize_mode|Efl.Ui.Win_Move_Resize_Mode.move]]%% 2. %%[[:develop:api:efl:ui:win_move_resize_mode|Efl.Ui.Win_Move_Resize_Mode.top]]%% 3. %%[[:develop:api:efl:ui:win_move_resize_mode|Efl.Ui.Win_Move_Resize_Mode.bottom]]%% 4. %%[[:develop:api:efl:ui:win_move_resize_mode|Efl.Ui.Win_Move_Resize_Mode.left]]%% 5. %%[[:develop:api:efl:ui:win_move_resize_mode|Efl.Ui.Win_Move_Resize_Mode.right]]%% 6. %%[[:develop:api:efl:ui:win_move_resize_mode|Efl.Ui.Win_Move_Resize_Mode.top]]%% | %%[[:develop:api:efl:ui:win_move_resize_mode|Efl.Ui.Win_Move_Resize_Mode.left]]%% 7. %%[[:develop:api:efl:ui:win_move_resize_mode|Efl.Ui.Win_Move_Resize_Mode.top]]%% | %%[[:develop:api:efl:ui:win_move_resize_mode|Efl.Ui.Win_Move_Resize_Mode.right]]%% 8. %%[[:develop:api:efl:ui:win_move_resize_mode|Efl.Ui.Win_Move_Resize_Mode.bottom]]%% | %%[[:develop:api:efl:ui:win_move_resize_mode|Efl.Ui.Win_Move_Resize_Mode.left]]%% 9. %%[[:develop:api:efl:ui:win_move_resize_mode|Efl.Ui.Win_Move_Resize_Mode.bottom]]%% | %%[[:develop:api:efl:ui:win_move_resize_mode|Efl.Ui.Win_Move_Resize_Mode.right]]%%%%
+
+%%In particular move and resize cannot happen simultaneously.%%
+
+
+move_resize_start {
+ params {
+ @in mode: Efl.Ui.Win_Move_Resize_Mode;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_win_move_resize_start(Eo *obj, Efl_Ui_Win_Move_Resize_Mode mode);
+
+
+===== Parameters =====
+
+ * **mode** //(in)// - %%The requested move or resize mode.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:method:move_resize_start|Efl.Ui.Win.move_resize_start]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/method/object_top_at_xy_get.txt b/public_html/data/pages/develop/api/efl/ui/win/method/object_top_at_xy_get.txt
new file mode 100644
index 00000000..98e01582
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/method/object_top_at_xy_get.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Win.object_top_at_xy_get~~
+====== Efl.Ui.Win.object_top_at_xy_get ======
+
+===== Description =====
+
+%%Retrieve the object stacked at the top of a given position in a canvas.%%
+
+%%This function will traverse all the layers of the given canvas, from top to bottom, querying for objects with areas covering the given position. The user can exclude from the query objects which are hidden and/or which are set to pass events.%%
+
+
+object_top_at_xy_get @const @pure_virtual {
+ params {
+ @in pos: Eina.Position2D;
+ @in include_pass_events_objects: bool;
+ @in include_hidden_objects: bool;
+ }
+ return: Efl.Gfx.Entity @no_unused;
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_canvas_scene_object_top_at_xy_get(const Eo *obj, Eina_Position2D pos, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects);
+
+
+===== Parameters =====
+
+ * **pos** //(in)// - %%The pixel position.%%
+ * **include_pass_events_objects** //(in)// - %%Boolean flag to include or not objects which pass events in this calculation.%%
+ * **include_hidden_objects** //(in)// - %%Boolean flag to include or not hidden objects in this calculation.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:scene:method:object_top_at_xy_get|Efl.Canvas.Scene.object_top_at_xy_get]]
+ * [[:develop:api:efl:ui:win:method:object_top_at_xy_get|Efl.Ui.Win.object_top_at_xy_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/method/object_top_in_rectangle_get.txt b/public_html/data/pages/develop/api/efl/ui/win/method/object_top_in_rectangle_get.txt
new file mode 100644
index 00000000..b81e330f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/method/object_top_in_rectangle_get.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Win.object_top_in_rectangle_get~~
+====== Efl.Ui.Win.object_top_in_rectangle_get ======
+
+===== Description =====
+
+%%Retrieve the canvas object stacked at the top of a given rectangular region in a canvas%%
+
+%%This function will traverse all the layers of the given canvas, from top to bottom, querying for objects with areas overlapping with the given rectangular region. The user can exclude from the query objects which are hidden and/or which are set to pass events.%%
+
+
+object_top_in_rectangle_get @const @pure_virtual {
+ params {
+ @in rect: Eina.Rect;
+ @in include_pass_events_objects: bool;
+ @in include_hidden_objects: bool;
+ }
+ return: Efl.Gfx.Entity @no_unused;
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_canvas_scene_object_top_in_rectangle_get(const Eo *obj, Eina_Rect rect, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects);
+
+
+===== Parameters =====
+
+ * **rect** //(in)// - %%The rectangular region.%%
+ * **include_pass_events_objects** //(in)// - %%Boolean flag to include or not objects which pass events in this calculation.%%
+ * **include_hidden_objects** //(in)// - %%Boolean flag to include or not hidden objects in this calculation.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:scene:method:object_top_in_rectangle_get|Efl.Canvas.Scene.object_top_in_rectangle_get]]
+ * [[:develop:api:efl:ui:win:method:object_top_in_rectangle_get|Efl.Ui.Win.object_top_in_rectangle_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/method/objects_at_xy_get.txt b/public_html/data/pages/develop/api/efl/ui/win/method/objects_at_xy_get.txt
new file mode 100644
index 00000000..c73eff2a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/method/objects_at_xy_get.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Win.objects_at_xy_get~~
+====== Efl.Ui.Win.objects_at_xy_get ======
+
+===== Description =====
+
+%%Retrieve a list of objects at a given position in a canvas.%%
+
+%%This function will traverse all the layers of the given canvas, from top to bottom, querying for objects with areas covering the given position. The user can exclude from the query objects which are hidden and/or which are set to pass events.%%
+
+
+objects_at_xy_get @pure_virtual {
+ params {
+ @in pos: Eina.Position2D;
+ @in include_pass_events_objects: bool;
+ @in include_hidden_objects: bool;
+ }
+ return: iterator @no_unused;
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_canvas_scene_objects_at_xy_get(Eo *obj, Eina_Position2D pos, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects);
+
+
+===== Parameters =====
+
+ * **pos** //(in)// - %%The pixel position.%%
+ * **include_pass_events_objects** //(in)// - %%Boolean flag to include or not objects which pass events in this calculation.%%
+ * **include_hidden_objects** //(in)// - %%Boolean flag to include or not hidden objects in this calculation.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:scene:method:objects_at_xy_get|Efl.Canvas.Scene.objects_at_xy_get]]
+ * [[:develop:api:efl:ui:win:method:objects_at_xy_get|Efl.Ui.Win.objects_at_xy_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/method/objects_in_rectangle_get.txt b/public_html/data/pages/develop/api/efl/ui/win/method/objects_in_rectangle_get.txt
new file mode 100644
index 00000000..50cb40f0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/method/objects_in_rectangle_get.txt
@@ -0,0 +1,46 @@
+~~Title: Efl.Ui.Win.objects_in_rectangle_get~~
+====== Efl.Ui.Win.objects_in_rectangle_get ======
+
+===== Description =====
+
+%%Retrieve a list of objects overlapping a given rectangular region in a canvas.%%
+
+%%This function will traverse all the layers of the given canvas, from top to bottom, querying for objects with areas overlapping with the given rectangular region. The user can exclude from the query objects which are hidden and/or which are set to pass events.%%
+
+
+objects_in_rectangle_get @pure_virtual {
+ params {
+ @in rect: Eina.Rect;
+ @in include_pass_events_objects: bool;
+ @in include_hidden_objects: bool;
+ }
+ return: iterator @no_unused;
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_canvas_scene_objects_in_rectangle_get(Eo *obj, Eina_Rect rect, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects);
+
+
+===== Parameters =====
+
+ * **rect** //(in)// - %%The rectangular region.%%
+ * **include_pass_events_objects** //(in)// - %%Boolean flag to include or not objects which pass events in this calculation.%%
+ * **include_hidden_objects** //(in)// - %%Boolean flag to include or not hidden objects in this calculation.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:scene:method:objects_in_rectangle_get|Efl.Canvas.Scene.objects_in_rectangle_get]]
+ * [[:develop:api:efl:ui:win:method:objects_in_rectangle_get|Efl.Ui.Win.objects_in_rectangle_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/method/on_focus_update.txt b/public_html/data/pages/develop/api/efl/ui/win/method/on_focus_update.txt
new file mode 100644
index 00000000..6466ce31
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/method/on_focus_update.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.Win.on_focus_update~~
+====== Efl.Ui.Win.on_focus_update ======
+
+===== Description =====
+
+%%Virtual function handling focus in/out events on the widget.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:method:on_focus_update:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:on_focus_update|Efl.Ui.Focus.Object.on_focus_update]].//===== Signature =====
+
+
+on_focus_update @protected {
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_focus_object_on_focus_update(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:object:method:on_focus_update|Efl.Ui.Focus.Object.on_focus_update]]
+ * [[:develop:api:efl:ui:widget:method:on_focus_update|Efl.Ui.Widget.on_focus_update]]
+ * [[:develop:api:efl:ui:win:method:on_focus_update|Efl.Ui.Win.on_focus_update]]
+ * [[:develop:api:efl:ui:image_zoomable:method:on_focus_update|Efl.Ui.Image_Zoomable.on_focus_update]]
+ * [[:develop:api:efl:ui:layout_base:method:on_focus_update|Efl.Ui.Layout_Base.on_focus_update]]
+ * [[:develop:api:efl:ui:slider:method:on_focus_update|Efl.Ui.Slider.on_focus_update]]
+ * [[:develop:api:efl:ui:text:method:on_focus_update|Efl.Ui.Text.on_focus_update]]
+ * [[:develop:api:efl:ui:spin_button:method:on_focus_update|Efl.Ui.Spin_Button.on_focus_update]]
+ * [[:develop:api:efl:ui:calendar:method:on_focus_update|Efl.Ui.Calendar.on_focus_update]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/method/part_get.txt b/public_html/data/pages/develop/api/efl/ui/win/method/part_get.txt
new file mode 100644
index 00000000..8a591fb5
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/method/part_get.txt
@@ -0,0 +1,50 @@
+~~Title: Efl.Ui.Win.part_get~~
+====== Efl.Ui.Win.part_get ======
+
+===== Description =====
+
+%%Returns %%[[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:method:part_get:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:part_get|Efl.Part.part_get]].//===== Signature =====
+
+
+part_get @protected @const @pure_virtual {
+ params {
+ @in name: string;
+ }
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_part_get(const Eo *obj, const char *name);
+
+
+===== Parameters =====
+
+ * **name** //(in)// - %%The part name.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:part:method:part_get|Efl.Part.part_get]]
+ * [[:develop:api:efl:canvas:layout:method:part_get|Efl.Canvas.Layout.part_get]]
+ * [[:develop:api:efl:ui:widget:method:part_get|Efl.Ui.Widget.part_get]]
+ * [[:develop:api:efl:ui:win:method:part_get|Efl.Ui.Win.part_get]]
+ * [[:develop:api:efl:ui:flip:method:part_get|Efl.Ui.Flip.part_get]]
+ * [[:develop:api:efl:ui:layout_base:method:part_get|Efl.Ui.Layout_Base.part_get]]
+ * [[:develop:api:efl:ui:text:method:part_get|Efl.Ui.Text.part_get]]
+ * [[:develop:api:efl:ui:default_item:method:part_get|Efl.Ui.Default_Item.part_get]]
+ * [[:develop:api:efl:ui:list_placeholder_item:method:part_get|Efl.Ui.List_Placeholder_Item.part_get]]
+ * [[:develop:api:efl:ui:textpath:method:part_get|Efl.Ui.Textpath.part_get]]
+ * [[:develop:api:efl:ui:panes:method:part_get|Efl.Ui.Panes.part_get]]
+ * [[:develop:api:efl:ui:progressbar:method:part_get|Efl.Ui.Progressbar.part_get]]
+ * [[:develop:api:efl:ui:popup:method:part_get|Efl.Ui.Popup.part_get]]
+ * [[:develop:api:efl:ui:alert_popup:method:part_get|Efl.Ui.Alert_Popup.part_get]]
+ * [[:develop:api:efl:ui:navigation_bar:method:part_get|Efl.Ui.Navigation_Bar.part_get]]
+ * [[:develop:api:efl:ui:widget_factory:method:part_get|Efl.Ui.Widget_Factory.part_get]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/method/pointer_iterate.txt b/public_html/data/pages/develop/api/efl/ui/win/method/pointer_iterate.txt
new file mode 100644
index 00000000..906ec5ff
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/method/pointer_iterate.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Win.pointer_iterate~~
+====== Efl.Ui.Win.pointer_iterate ======
+
+===== Description =====
+
+%%Returns an iterator over the current known pointer positions.%%
+
+%%This is used to iterate over the current known multi-touch positions, including the first finger. Each pointer position is represented by an object of type %%[[:develop:api:efl:input:pointer|Efl.Input.Pointer]]%%.%%
+
+%%Each finger in a multi touch environment can then be identified by the %%[[:develop:api:efl:input:pointer:property:touch_id|Efl.Input.Pointer.touch_id]]%% property. The order of the pointers in this iterator is not defined.%%
+
+
+pointer_iterate @beta @const {
+ params {
+ @in hover: bool @optional;
+ }
+ return: iterator;
+}
+
+
+===== C signature =====
+
+
+Eina_Iterator *efl_ui_win_pointer_iterate(const Eo *obj, Eina_Bool hover);
+
+
+===== Parameters =====
+
+ * **hover** //(in)// - %%%%''false''%% by default, %%''true''%% means to include fingers that are currently hovering.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:method:pointer_iterate|Efl.Ui.Win.pointer_iterate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/method/provider_find.txt b/public_html/data/pages/develop/api/efl/ui/win/method/provider_find.txt
new file mode 100644
index 00000000..a43f7ef1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/method/provider_find.txt
@@ -0,0 +1,42 @@
+~~Title: Efl.Ui.Win.provider_find~~
+====== Efl.Ui.Win.provider_find ======
+
+===== Description =====
+
+%%Searches upwards in the object tree for a provider which knows the given class/interface.%%
+
+%%The object from the provider will then be returned. The base implementation calls the provider_find function on the object parent, and returns its result. If no parent is present %%''NULL''%% is returned. Each implementation has to support this function by overriding it and returning itself if the interface matches the parameter. If this is not done the class cannot be found up in the object tree.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:method:provider_find:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:provider_find|Efl.Object.provider_find]].//===== Signature =====
+
+
+provider_find @const {
+ params {
+ @in klass: const(Efl.Class);
+ }
+ return: Efl.Object;
+}
+
+
+===== C signature =====
+
+
+Efl_Object *efl_provider_find(const Eo *obj, const Efl_Class *klass);
+
+
+===== Parameters =====
+
+ * **klass** //(in)// - %%The class identifier to search for.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]
+ * [[:develop:api:efl:canvas:object:method:provider_find|Efl.Canvas.Object.provider_find]]
+ * [[:develop:api:efl:ui:widget:method:provider_find|Efl.Ui.Widget.provider_find]]
+ * [[:develop:api:efl:ui:win:method:provider_find|Efl.Ui.Win.provider_find]]
+ * [[:develop:api:efl:ui:focus:manager_calc:method:provider_find|Efl.Ui.Focus.Manager_Calc.provider_find]]
+ * [[:develop:api:evas:canvas3d:object:method:provider_find|Evas.Canvas3D.Object.provider_find]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/method/raise_to_top.txt b/public_html/data/pages/develop/api/efl/ui/win/method/raise_to_top.txt
new file mode 100644
index 00000000..b76b031f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/method/raise_to_top.txt
@@ -0,0 +1,29 @@
+~~Title: Efl.Ui.Win.raise_to_top~~
+====== Efl.Ui.Win.raise_to_top ======
+
+===== Description =====
+
+%%Places the window at the top of the stack, so that it's not covered by any other window.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:method:raise_to_top:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:canvas:object:method:raise_to_top|Efl.Gfx.Stack.raise_to_top]].//===== Signature =====
+
+
+raise_to_top @pure_virtual {}
+
+
+===== C signature =====
+
+
+void efl_gfx_stack_raise_to_top(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:stack:method:raise_to_top|Efl.Gfx.Stack.raise_to_top]]
+ * [[:develop:api:efl:canvas:vg:node:method:raise_to_top|Efl.Canvas.Vg.Node.raise_to_top]]
+ * [[:develop:api:efl:ui:win:method:raise_to_top|Efl.Ui.Win.raise_to_top]]
+ * [[:develop:api:efl:canvas:object:method:raise_to_top|Efl.Canvas.Object.raise_to_top]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/method/stack_pop_to.txt b/public_html/data/pages/develop/api/efl/ui/win/method/stack_pop_to.txt
new file mode 100644
index 00000000..7a6817ba
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/method/stack_pop_to.txt
@@ -0,0 +1,28 @@
+~~Title: Efl.Ui.Win.stack_pop_to~~
+====== Efl.Ui.Win.stack_pop_to ======
+
+===== Description =====
+
+%%Pop (delete) all windows in the stack above this window.%%
+
+%%This will try and delete all the windows in the stack that are above the window.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:method:stack_pop_to:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+stack_pop_to @beta {}
+
+
+===== C signature =====
+
+
+void efl_ui_win_stack_pop_to(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:method:stack_pop_to|Efl.Ui.Win.stack_pop_to]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/method/theme_apply.txt b/public_html/data/pages/develop/api/efl/ui/win/method/theme_apply.txt
new file mode 100644
index 00000000..c77a66eb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/method/theme_apply.txt
@@ -0,0 +1,55 @@
+~~Title: Efl.Ui.Win.theme_apply~~
+====== Efl.Ui.Win.theme_apply ======
+
+===== Description =====
+
+%%Virtual function called when the widget needs to re-apply its theme.%%
+
+%%This may be called when the object is first created, or whenever the widget is modified in any way that may require a reload of the theme. This may include but is not limited to scale, theme, or mirrored mode changes.%%
+
+
+theme_apply @protected {
+ return: Eina.Error;
+}
+
+
+===== C signature =====
+
+
+Eina_Error efl_ui_widget_theme_apply(Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:theme_apply|Efl.Ui.Widget.theme_apply]]
+ * [[:develop:api:efl:ui:win:method:theme_apply|Efl.Ui.Win.theme_apply]]
+ * [[:develop:api:efl:ui:flip:method:theme_apply|Efl.Ui.Flip.theme_apply]]
+ * [[:develop:api:efl:ui:image:method:theme_apply|Efl.Ui.Image.theme_apply]]
+ * [[:develop:api:efl:ui:image_zoomable:method:theme_apply|Efl.Ui.Image_Zoomable.theme_apply]]
+ * [[:develop:api:efl:ui:layout_base:method:theme_apply|Efl.Ui.Layout_Base.theme_apply]]
+ * [[:develop:api:efl:ui:slider:method:theme_apply|Efl.Ui.Slider.theme_apply]]
+ * [[:develop:api:efl:ui:check:method:theme_apply|Efl.Ui.Check.theme_apply]]
+ * [[:develop:api:efl:ui:radio:method:theme_apply|Efl.Ui.Radio.theme_apply]]
+ * [[:develop:api:efl:ui:clock:method:theme_apply|Efl.Ui.Clock.theme_apply]]
+ * [[:develop:api:efl:ui:text:method:theme_apply|Efl.Ui.Text.theme_apply]]
+ * [[:develop:api:efl:ui:spin_button:method:theme_apply|Efl.Ui.Spin_Button.theme_apply]]
+ * [[:develop:api:efl:ui:collection_view:method:theme_apply|Efl.Ui.Collection_View.theme_apply]]
+ * [[:develop:api:efl:ui:panel:method:theme_apply|Efl.Ui.Panel.theme_apply]]
+ * [[:develop:api:efl:ui:slider_interval:method:theme_apply|Efl.Ui.Slider_Interval.theme_apply]]
+ * [[:develop:api:elm:code_widget:method:theme_apply|Elm.Code_Widget.theme_apply]]
+ * [[:develop:api:efl:ui:textpath:method:theme_apply|Efl.Ui.Textpath.theme_apply]]
+ * [[:develop:api:efl:ui:scroller:method:theme_apply|Efl.Ui.Scroller.theme_apply]]
+ * [[:develop:api:efl:ui:collection:method:theme_apply|Efl.Ui.Collection.theme_apply]]
+ * [[:develop:api:efl:ui:panes:method:theme_apply|Efl.Ui.Panes.theme_apply]]
+ * [[:develop:api:efl:ui:calendar:method:theme_apply|Efl.Ui.Calendar.theme_apply]]
+ * [[:develop:api:efl:ui:progressbar:method:theme_apply|Efl.Ui.Progressbar.theme_apply]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/method/widget_input_event_handler.txt b/public_html/data/pages/develop/api/efl/ui/win/method/widget_input_event_handler.txt
new file mode 100644
index 00000000..78266955
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/method/widget_input_event_handler.txt
@@ -0,0 +1,57 @@
+~~Title: Efl.Ui.Win.widget_input_event_handler~~
+====== Efl.Ui.Win.widget_input_event_handler ======
+
+===== Description =====
+
+%%Virtual function handling input events on the widget.%%
+
+%%This method should return %%''true''%% if the event has been processed. Only key down, key up and pointer wheel events will be propagated through this function.%%
+
+%%It is common for the event to be also marked as processed as in %%[[:develop:api:efl:input:event:property:processed|Efl.Input.Event.processed]]%%, if this operation was successful. This makes sure other widgets will not also process this input event.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:method:widget_input_event_handler:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:method:widget_input_event_handler|Efl.Ui.Widget.widget_input_event_handler]].//===== Signature =====
+
+
+widget_input_event_handler @protected {
+ params {
+ @in eo_event: const(event);
+ @in source: Efl.Canvas.Object;
+ }
+ return: bool;
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_widget_input_event_handler(Eo *obj, const Efl_Event *eo_event, Efl_Canvas_Object *source);
+
+
+===== Parameters =====
+
+ * **eo_event** //(in)// - %%EO event struct with an Efl.Input.Event as info.%%
+ * **source** //(in)// - %%Source object where the event originated. Often same as this.%%
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:widget:method:widget_input_event_handler|Efl.Ui.Widget.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:win:method:widget_input_event_handler|Efl.Ui.Win.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:image:method:widget_input_event_handler|Efl.Ui.Image.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:image_zoomable:method:widget_input_event_handler|Efl.Ui.Image_Zoomable.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:slider:method:widget_input_event_handler|Efl.Ui.Slider.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:check:method:widget_input_event_handler|Efl.Ui.Check.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:radio:method:widget_input_event_handler|Efl.Ui.Radio.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:spin_button:method:widget_input_event_handler|Efl.Ui.Spin_Button.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:panel:method:widget_input_event_handler|Efl.Ui.Panel.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:item:method:widget_input_event_handler|Efl.Ui.Item.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:slider_interval:method:widget_input_event_handler|Efl.Ui.Slider_Interval.widget_input_event_handler]]
+ * [[:develop:api:elm:code_widget:method:widget_input_event_handler|Elm.Code_Widget.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:tags:method:widget_input_event_handler|Efl.Ui.Tags.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:scroller:method:widget_input_event_handler|Efl.Ui.Scroller.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:calendar:method:widget_input_event_handler|Efl.Ui.Calendar.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:video:method:widget_input_event_handler|Efl.Ui.Video.widget_input_event_handler]]
+ * [[:develop:api:efl:ui:button:method:widget_input_event_handler|Efl.Ui.Button.widget_input_event_handler]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/accel_preference.txt b/public_html/data/pages/develop/api/efl/ui/win/property/accel_preference.txt
new file mode 100644
index 00000000..ac058b39
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/accel_preference.txt
@@ -0,0 +1,55 @@
+~~Title: Efl.Ui.Win.accel_preference~~
+====== Efl.Ui.Win.accel_preference ======
+
+===== Description =====
+
+%%The hardware acceleration preference for this window.%%
+
+%%This is a constructor function and can only be called before %%[[:develop:api:efl:object:method:finalize|Efl.Object.finalize]]%%.%%
+
+%%This property overrides the global EFL configuration option "accel_preference" for this single window, and accepts the same syntax.%%
+
+%%The %%''accel''%% string is a freeform C string that indicates what kind of acceleration is preferred. Here "acceleration" generally refers to rendering and the hardware with which the unit application renders GUIs. This may or may not be honored but a best attempt will be made. Known strings are as follows:%%
+
+%%"gl", "opengl" - try use OpenGL. "3d" - try to use a 3d acceleration unit. "hw", "hardware", "accel" - try any acceleration unit (best possible) "none" - use no acceleration but software instead (since 1.16)%%
+
+%%Since 1.14, it is also possible to specify some GL properties for the GL window surface. This allows applications to use GLView with depth, stencil and MSAA buffers with direct rendering. The new accel preference string format is thus "{HW Accel}[:depth{value}[:stencil{value}[:msaa{str}$]$]$]".%%
+
+%%Accepted values for depth are for instance "depth", "depth16", "depth24". Accepted values for stencil are "stencil", "stencil1", "stencil8". For MSAA, only predefined strings are accepted: "msaa", "msaa_low", "msaa_mid" and "msaa_high". The selected configuration is not guaranteed and is only valid in case of GL acceleration. Only the base acceleration string will be saved (e.g. "gl" or "hw").%%
+
+%%Full examples include:%%
+
+%%"gl", - try to use OpenGL "hw:depth:stencil", - use HW acceleration with default depth and stencil buffers "opengl:depth24:stencil8:msaa_mid" - use OpenGL with 24-bit depth, 8-bit stencil and a medium number of MSAA samples in the backbuffer.%%
+
+%%Note that this option may be overriden by environment variables or the configuration option "accel_preference_override".%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:accel_preference:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **accel** - %%Acceleration%%
+
+===== Signature =====
+
+
+@property accel_preference @beta {
+ get {}
+ set {}
+ values {
+ accel: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_ui_win_accel_preference_get(const Eo *obj);
+void efl_ui_win_accel_preference_set(Eo *obj, const char *accel);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:accel_preference|Efl.Ui.Win.accel_preference]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/alpha.txt b/public_html/data/pages/develop/api/efl/ui/win/property/alpha.txt
new file mode 100644
index 00000000..c797ba7c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/alpha.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Win.alpha~~
+====== Efl.Ui.Win.alpha ======
+
+===== Description =====
+
+%%The alpha channel state of a window.%%
+
+%%If %%''alpha''%% is true, the alpha channel of the canvas will be enabled possibly making parts of the window completely or partially transparent. This is also subject to the underlying system supporting it, for example a system using a compositing manager.%%
+
+
+@property alpha {
+ get {}
+ set {}
+ values {
+ alpha: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_win_alpha_get(const Eo *obj);
+void efl_ui_win_alpha_set(Eo *obj, Eina_Bool alpha);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:alpha|Efl.Ui.Win.alpha]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/autohide.txt b/public_html/data/pages/develop/api/efl/ui/win/property/autohide.txt
new file mode 100644
index 00000000..0e60f030
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/autohide.txt
@@ -0,0 +1,47 @@
+~~Title: Efl.Ui.Win.autohide~~
+====== Efl.Ui.Win.autohide ======
+
+===== Description =====
+
+%%Window's autohide state.%%
+
+%%When closing the window in any way outside of the program control, like pressing the X button in the titlebar or using a command from the Window Manager, a "delete,request" signal is emitted to indicate that this event occurred and the developer can take any action, which may include, or not, destroying the window object.%%
+
+%%When this property is set to %%''true''%%, the window will be automatically hidden when this event occurs, after the signal is emitted. If this property is %%''false''%% nothing will happen, beyond the event emission.%%
+
+%%C applications can use this option along with the quit policy %%''ELM_POLICY_QUIT_LAST_WINDOW_HIDDEN''%% which allows exiting EFL's main loop when all the windows are hidden.%%
+
+
+@property autohide @beta {
+ get {}
+ set {}
+ values {
+ autohide: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_win_autohide_get(const Eo *obj);
+void efl_ui_win_autohide_set(Eo *obj, Eina_Bool autohide);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:autohide|Efl.Ui.Win.autohide]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/borderless.txt b/public_html/data/pages/develop/api/efl/ui/win/property/borderless.txt
new file mode 100644
index 00000000..fa8cb111
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/borderless.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Win.borderless~~
+====== Efl.Ui.Win.borderless ======
+
+===== Description =====
+
+%%The borderless state of a window.%%
+
+%%This function requests the Window Manager not to draw any decoration around the window.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:borderless:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **borderless** - %%If %%''true''%%, the window is borderless.%%
+
+===== Signature =====
+
+
+@property borderless @beta {
+ get {}
+ set {}
+ values {
+ borderless: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_win_borderless_get(const Eo *obj);
+void efl_ui_win_borderless_set(Eo *obj, Eina_Bool borderless);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:borderless|Efl.Ui.Win.borderless]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/content.txt b/public_html/data/pages/develop/api/efl/ui/win/property/content.txt
new file mode 100644
index 00000000..759f17da
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/content.txt
@@ -0,0 +1,80 @@
+~~Title: Efl.Ui.Win.content~~
+====== Efl.Ui.Win.content ======
+
+===== Description =====
+
+%%Sub-object currently set as this object's single content.%%
+
+%%If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid %%''content''%% is set the object will become empty (it will have no sub-object).%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:content:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **content** - %%The sub-object.%%
+
+//Overridden from [[:develop:api:efl:content:property:content|Efl.Content.content]] **(get, set)**.//===== Signature =====
+
+
+@property content @pure_virtual {
+ get {}
+ set {
+ return: bool;
+ }
+ values {
+ content: Efl.Gfx.Entity;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Gfx_Entity *efl_content_get(const Eo *obj);
+Eina_Bool efl_content_set(Eo *obj, Efl_Gfx_Entity *content);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:content:property:content|Efl.Content.content]]
+ * [[:develop:api:efl:ui:check:property:content|Efl.Ui.Check.content]]
+ * [[:develop:api:efl:ui:win:property:content|Efl.Ui.Win.content]]
+ * [[:develop:api:efl:ui:default_item:property:content|Efl.Ui.Default_Item.content]]
+ * [[:develop:api:efl:ui:win_part:property:content|Efl.Ui.Win_Part.content]]
+ * [[:develop:api:efl:canvas:layout_part_external:property:content|Efl.Canvas.Layout_Part_External.content]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:property:content|Efl.Ui.Navigation_Bar_Part_Back_Button.content]]
+ * [[:develop:api:efl:ui:layout_part_legacy:property:content|Efl.Ui.Layout_Part_Legacy.content]]
+ * [[:develop:api:elm:dayselector:part:property:content|Elm.Dayselector.Part.content]]
+ * [[:develop:api:elm:entry:part:property:content|Elm.Entry.Part.content]]
+ * [[:develop:api:elm:naviframe:part:property:content|Elm.Naviframe.Part.content]]
+ * [[:develop:api:elm:ctxpopup:part:property:content|Elm.Ctxpopup.Part.content]]
+ * [[:develop:api:elm:fileselector:entry:part:property:content|Elm.Fileselector.Entry.Part.content]]
+ * [[:develop:api:elm:popup:part:property:content|Elm.Popup.Part.content]]
+ * [[:develop:api:elm:hover:part:property:content|Elm.Hover.Part.content]]
+ * [[:develop:api:elm:scroller:part:property:content|Elm.Scroller.Part.content]]
+ * [[:develop:api:elm:player:part:property:content|Elm.Player.Part.content]]
+ * [[:develop:api:elm:notify:part:property:content|Elm.Notify.Part.content]]
+ * [[:develop:api:efl:ui:panel:property:content|Efl.Ui.Panel.content]]
+ * [[:develop:api:elm:panel:part:property:content|Elm.Panel.Part.content]]
+ * [[:develop:api:efl:ui:tab_page:property:content|Efl.Ui.Tab_Page.content]]
+ * [[:develop:api:efl:ui:list_placeholder_item:property:content|Efl.Ui.List_Placeholder_Item.content]]
+ * [[:develop:api:elm:mapbuf:part:property:content|Elm.Mapbuf.Part.content]]
+ * [[:develop:api:efl:ui:scroller:property:content|Efl.Ui.Scroller.content]]
+ * [[:develop:api:efl:ui:flip_part:property:content|Efl.Ui.Flip_Part.content]]
+ * [[:develop:api:efl:canvas:layout_part_swallow:property:content|Efl.Canvas.Layout_Part_Swallow.content]]
+ * [[:develop:api:efl:ui:pan:property:content|Efl.Ui.Pan.content]]
+ * [[:develop:api:efl:ui:frame:property:content|Efl.Ui.Frame.content]]
+ * [[:develop:api:efl:ui:progressbar:property:content|Efl.Ui.Progressbar.content]]
+ * [[:develop:api:efl:ui:popup:property:content|Efl.Ui.Popup.content]]
+ * [[:develop:api:efl:ui:navigation_layout:property:content|Efl.Ui.Navigation_Layout.content]]
+ * [[:develop:api:elm:flip:part:property:content|Elm.Flip.Part.content]]
+ * [[:develop:api:efl:ui:button:property:content|Efl.Ui.Button.content]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:content|Efl.Canvas.Layout_Part_Invalid.content]]
+ * [[:develop:api:efl:ui:layout_part_content:property:content|Efl.Ui.Layout_Part_Content.content]]
+ * [[:develop:api:efl:ui:progressbar_legacy_part:property:content|Efl.Ui.Progressbar_Legacy_Part.content]]
+ * [[:develop:api:efl:ui:check_legacy_part:property:content|Efl.Ui.Check_Legacy_Part.content]]
+ * [[:develop:api:efl:ui:button_legacy_part:property:content|Efl.Ui.Button_Legacy_Part.content]]
+ * [[:develop:api:efl:ui:navigation_bar_part:property:content|Efl.Ui.Navigation_Bar_Part.content]]
+ * [[:develop:api:efl:ui:radio_legacy_part:property:content|Efl.Ui.Radio_Legacy_Part.content]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/device.txt b/public_html/data/pages/develop/api/efl/ui/win/property/device.txt
new file mode 100644
index 00000000..51dde21c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/device.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Win.device~~
+====== Efl.Ui.Win.device ======
+
+===== Keys =====
+
+ * **name** - %%The name of the seat to find.%%
+===== Values =====
+
+ * **seat** - %%The device or seat, %%''null''%% if not found.%%
+===== Description =====
+
+%%Get a device by name.%%
+
+//Since 1.22//
+
+\\ {{page>:develop:api-include:efl:ui:win:property:device:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:canvas:scene:property:device|Efl.Canvas.Scene.device]] **(get)**.//===== Signature =====
+
+
+@property device @beta @pure_virtual {
+ get {
+ keys {
+ name: string;
+ }
+ }
+ values {
+ seat: Efl.Input.Device;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Input_Device *efl_canvas_scene_device_get(const Eo *obj, const char *name);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:scene:property:device|Efl.Canvas.Scene.device]]
+ * [[:develop:api:efl:ui:win:property:device|Efl.Ui.Win.device]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/elm_actions.txt b/public_html/data/pages/develop/api/efl/ui/win/property/elm_actions.txt
new file mode 100644
index 00000000..6b375156
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/elm_actions.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Win.elm_actions~~
+====== Efl.Ui.Win.elm_actions ======
+
+===== Values =====
+
+ * **actions** - %%NULL-terminated array of Efl.Access.Action_Data.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:win:property:elm_actions:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:access:widget:action:property:elm_actions|Efl.Access.Widget.Action.elm_actions]] **(get)**.//===== Signature =====
+
+
+@property elm_actions @beta @pure_virtual {
+ get @protected {}
+ values {
+ actions: ptr(const(Efl.Access.Action_Data));
+ }
+}
+
+
+===== C signature =====
+
+
+const Efl_Access_Action_Data *efl_access_widget_action_elm_actions_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:widget:action:property:elm_actions|Efl.Access.Widget.Action.elm_actions]]
+ * [[:develop:api:efl:ui:slider:property:elm_actions|Efl.Ui.Slider.elm_actions]]
+ * [[:develop:api:efl:ui:check:property:elm_actions|Efl.Ui.Check.elm_actions]]
+ * [[:develop:api:efl:ui:radio:property:elm_actions|Efl.Ui.Radio.elm_actions]]
+ * [[:develop:api:efl:ui:win:property:elm_actions|Efl.Ui.Win.elm_actions]]
+ * [[:develop:api:efl:ui:spin_button:property:elm_actions|Efl.Ui.Spin_Button.elm_actions]]
+ * [[:develop:api:efl:ui:panel:property:elm_actions|Efl.Ui.Panel.elm_actions]]
+ * [[:develop:api:efl:ui:slider_interval:property:elm_actions|Efl.Ui.Slider_Interval.elm_actions]]
+ * [[:develop:api:efl:ui:image:property:elm_actions|Efl.Ui.Image.elm_actions]]
+ * [[:develop:api:efl:ui:image_zoomable:property:elm_actions|Efl.Ui.Image_Zoomable.elm_actions]]
+ * [[:develop:api:efl:ui:calendar:property:elm_actions|Efl.Ui.Calendar.elm_actions]]
+ * [[:develop:api:efl:ui:video:property:elm_actions|Efl.Ui.Video.elm_actions]]
+ * [[:develop:api:efl:ui:button:property:elm_actions|Efl.Ui.Button.elm_actions]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/exit_on_all_windows_closed.txt b/public_html/data/pages/develop/api/efl/ui/win/property/exit_on_all_windows_closed.txt
new file mode 100644
index 00000000..b0a184f8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/exit_on_all_windows_closed.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Win.exit_on_all_windows_closed~~
+====== Efl.Ui.Win.exit_on_all_windows_closed ======
+
+===== Description =====
+
+%%Enable quitting the main loop when all windows are closed.%%
+
+%%When set, the main loop will quit with the passed exit code once all windows have been closed.%%
+
+%%The %%[[:develop:api:eina:value|Eina.Value]]%% passed should be %%''EMPTY''%% to unset this state or an int value to be used as the exit code.%%
+
+%%Note this is different from %%[[:develop:api:efl:ui:win:property:exit_on_close|Efl.Ui.Win.exit_on_close]]%% which exits when a given window is closed.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:exit_on_all_windows_closed:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **exit_code** - %%The exit code to use when exiting.%%
+
+===== Signature =====
+
+
+@property exit_on_all_windows_closed @static {
+ get {}
+ set {}
+ values {
+ exit_code: const(any_value_ref);
+ }
+}
+
+
+===== C signature =====
+
+
+const Eina_Value *efl_ui_win_exit_on_all_windows_closed_get();
+void efl_ui_win_exit_on_all_windows_closed_set(const Eina_Value *exit_code);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:exit_on_all_windows_closed|Efl.Ui.Win.exit_on_all_windows_closed]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/exit_on_close.txt b/public_html/data/pages/develop/api/efl/ui/win/property/exit_on_close.txt
new file mode 100644
index 00000000..7b227302
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/exit_on_close.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Win.exit_on_close~~
+====== Efl.Ui.Win.exit_on_close ======
+
+===== Description =====
+
+%%Enable quitting the main loop when this window is closed.%%
+
+%%When set, the window's loop object will exit using the passed exit code if the window is closed.%%
+
+%%The %%[[:develop:api:eina:value|Eina.Value]]%% passed should be %%''EMPTY''%% to unset this state or an int value to be used as the exit code.%%
+
+%%Note this is different from %%[[:develop:api:efl:ui:win:property:exit_on_all_windows_closed|Efl.Ui.Win.exit_on_all_windows_closed]]%% which exits when ALL windows are closed.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:exit_on_close:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **exit_code** - %%The exit code to use when exiting%%
+
+===== Signature =====
+
+
+@property exit_on_close {
+ get {}
+ set {}
+ values {
+ exit_code: const(any_value_ref);
+ }
+}
+
+
+===== C signature =====
+
+
+const Eina_Value *efl_ui_win_exit_on_close_get(const Eo *obj);
+void efl_ui_win_exit_on_close_set(Eo *obj, const Eina_Value *exit_code);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:exit_on_close|Efl.Ui.Win.exit_on_close]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/extents.txt b/public_html/data/pages/develop/api/efl/ui/win/property/extents.txt
new file mode 100644
index 00000000..b79a3b89
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/extents.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Ui.Win.extents~~
+====== Efl.Ui.Win.extents ======
+
+===== Description =====
+
+%%Geometry of accessible widget.%%
+{{page>:develop:api-include:efl:ui:win:property:extents:description&nouser&nolink&nodate}}
+
+===== Keys =====
+
+ * **screen_coords** - %%If %%''true''%% x and y values will be relative to screen origin, otherwise relative to canvas%%
+===== Values =====
+
+ * **rect** - %%The geometry.%%
+
+//Overridden from [[:develop:api:efl:access:component:property:extents|Efl.Access.Component.extents]] **(get)**.//===== Signature =====
+
+
+@property extents @beta @protected {
+ get {}
+ set {
+ return: bool;
+ }
+ keys {
+ screen_coords: bool;
+ }
+ values {
+ rect: Eina.Rect;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Rect efl_access_component_extents_get(const Eo *obj, Eina_Bool screen_coords);
+Eina_Bool efl_access_component_extents_set(Eo *obj, Eina_Bool screen_coords, Eina_Rect rect);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:component:property:extents|Efl.Access.Component.extents]]
+ * [[:develop:api:efl:ui:win:property:extents|Efl.Ui.Win.extents]]
+ * [[:develop:api:efl:ui:image:property:extents|Efl.Ui.Image.extents]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/focus.txt b/public_html/data/pages/develop/api/efl/ui/win/property/focus.txt
new file mode 100644
index 00000000..f1c36eca
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/focus.txt
@@ -0,0 +1,52 @@
+~~Title: Efl.Ui.Win.focus~~
+====== Efl.Ui.Win.focus ======
+
+===== Description =====
+
+%%Whether the widget is currently focused or not.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:win:property:focus:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **focus** - %%The focused state of the object.%%
+==== Setter ====
+
+%%This is called by the manager and should never be called by anyone else.%%
+
+%%The function emits the focus state events, if focus is different to the previous state.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:focus:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:widget:property:focus|Efl.Ui.Focus.Object.focus]] **(get)**.//===== Signature =====
+
+
+@property focus {
+ get {}
+ set @protected {}
+ values {
+ focus: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_focus_object_focus_get(const Eo *obj);
+void efl_ui_focus_object_focus_set(Eo *obj, Eina_Bool focus);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:focus:object:property:focus|Efl.Ui.Focus.Object.focus]]
+ * [[:develop:api:efl:ui:widget:property:focus|Efl.Ui.Widget.focus]]
+ * [[:develop:api:efl:ui:win:property:focus|Efl.Ui.Win.focus]]
+ * [[:develop:api:efl:ui:focus:composition_adapter:property:focus|Efl.Ui.Focus.Composition_Adapter.focus]]
+ * [[:develop:api:efl:ui:calendar_item:property:focus|Efl.Ui.Calendar_Item.focus]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/focus_highlight_animate.txt b/public_html/data/pages/develop/api/efl/ui/win/property/focus_highlight_animate.txt
new file mode 100644
index 00000000..96ac1e13
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/focus_highlight_animate.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Win.focus_highlight_animate~~
+====== Efl.Ui.Win.focus_highlight_animate ======
+
+===== Description =====
+
+%%Whether focus highlight should animate or not.%%
+
+%%See also %%[[:develop:api:efl:ui:win:property:focus_highlight_style|Efl.Ui.Win.focus_highlight_style]]%%. See also %%[[:develop:api:efl:ui:win:property:focus_highlight_enabled|Efl.Ui.Win.focus_highlight_enabled]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:focus_highlight_animate:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **animate** - %%The enabled value for the highlight animation.%%
+
+===== Signature =====
+
+
+@property focus_highlight_animate {
+ get {}
+ set {}
+ values {
+ animate: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_win_focus_highlight_animate_get(const Eo *obj);
+void efl_ui_win_focus_highlight_animate_set(Eo *obj, Eina_Bool animate);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:focus_highlight_animate|Efl.Ui.Win.focus_highlight_animate]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/focus_highlight_enabled.txt b/public_html/data/pages/develop/api/efl/ui/win/property/focus_highlight_enabled.txt
new file mode 100644
index 00000000..a5f04e72
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/focus_highlight_enabled.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Win.focus_highlight_enabled~~
+====== Efl.Ui.Win.focus_highlight_enabled ======
+
+===== Description =====
+
+%%Whether focus highlight is enabled or not on this window, regardless of the global setting.%%
+
+%%See also %%[[:develop:api:efl:ui:win:property:focus_highlight_style|Efl.Ui.Win.focus_highlight_style]]%%. See also %%[[:develop:api:efl:ui:win:property:focus_highlight_animate|Efl.Ui.Win.focus_highlight_animate]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:focus_highlight_enabled:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **enabled** - %%The enabled value for the highlight.%%
+
+===== Signature =====
+
+
+@property focus_highlight_enabled {
+ get {}
+ set {}
+ values {
+ enabled: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_win_focus_highlight_enabled_get(const Eo *obj);
+void efl_ui_win_focus_highlight_enabled_set(Eo *obj, Eina_Bool enabled);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:focus_highlight_enabled|Efl.Ui.Win.focus_highlight_enabled]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/focus_highlight_style.txt b/public_html/data/pages/develop/api/efl/ui/win/property/focus_highlight_style.txt
new file mode 100644
index 00000000..222b9fd2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/focus_highlight_style.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Win.focus_highlight_style~~
+====== Efl.Ui.Win.focus_highlight_style ======
+
+===== Description =====
+
+%%Control the widget focus highlight style.%%
+
+%%If %%''style''%% is %%''null''%%, the default will be used.%%
+
+%%See also %%[[:develop:api:efl:ui:win:property:focus_highlight_enabled|Efl.Ui.Win.focus_highlight_enabled]]%%. See also %%[[:develop:api:efl:ui:win:property:focus_highlight_animate|Efl.Ui.Win.focus_highlight_animate]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:focus_highlight_style:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **style** - %%The name of the focus highlight style.%%
+
+===== Signature =====
+
+
+@property focus_highlight_style {
+ get {}
+ set {
+ return: bool;
+ }
+ values {
+ style: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_ui_win_focus_highlight_style_get(const Eo *obj);
+Eina_Bool efl_ui_win_focus_highlight_style_set(Eo *obj, const char *style);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:focus_highlight_style|Efl.Ui.Win.focus_highlight_style]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/fullscreen.txt b/public_html/data/pages/develop/api/efl/ui/win/property/fullscreen.txt
new file mode 100644
index 00000000..57efcb22
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/fullscreen.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Win.fullscreen~~
+====== Efl.Ui.Win.fullscreen ======
+
+===== Description =====
+
+%%The fullscreen state of a window.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:fullscreen:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **fullscreen** - %%If %%''true''%%, the window is fullscreen.%%
+
+===== Signature =====
+
+
+@property fullscreen {
+ get {}
+ set {}
+ values {
+ fullscreen: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_win_fullscreen_get(const Eo *obj);
+void efl_ui_win_fullscreen_set(Eo *obj, Eina_Bool fullscreen);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:fullscreen|Efl.Ui.Win.fullscreen]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/group_objects_calculating.txt b/public_html/data/pages/develop/api/efl/ui/win/property/group_objects_calculating.txt
new file mode 100644
index 00000000..8c13982d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/group_objects_calculating.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.Ui.Win.group_objects_calculating~~
+====== Efl.Ui.Win.group_objects_calculating ======
+
+===== Values =====
+
+ * **calculating** - %%%%''true''%% if currently calculating group objects.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:win:property:group_objects_calculating:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:canvas:scene:property:group_objects_calculating|Efl.Canvas.Scene.group_objects_calculating]] **(get)**.//===== Signature =====
+
+
+@property group_objects_calculating @pure_virtual {
+ get {}
+ values {
+ calculating: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_scene_group_objects_calculating_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:scene:property:group_objects_calculating|Efl.Canvas.Scene.group_objects_calculating]]
+ * [[:develop:api:efl:ui:win:property:group_objects_calculating|Efl.Ui.Win.group_objects_calculating]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/hint_aspect.txt b/public_html/data/pages/develop/api/efl/ui/win/property/hint_aspect.txt
new file mode 100644
index 00000000..f3d44683
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/hint_aspect.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Ui.Win.hint_aspect~~
+====== Efl.Ui.Win.hint_aspect ======
+
+===== Description =====
+
+%%Defines the aspect ratio to respect when scaling this object.%%
+
+%%The aspect ratio is defined as the width / height ratio of the object. Depending on the object and its container, this hint may or may not be fully respected.%%
+
+%%If any of the given aspect ratio terms are 0, the object's container will ignore the aspect and scale this object to occupy the whole available area, for any given policy.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:hint_aspect:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **mode** - %%Mode of interpretation.%%
+ * **sz** - %%Base size to use for aspecting.%%
+
+//Overridden from [[:develop:api:efl:canvas:object:property:hint_aspect|Efl.Gfx.Hint.hint_aspect]] **(set)**.//===== Signature =====
+
+
+@property hint_aspect @pure_virtual {
+ get {}
+ set {}
+ values {
+ mode: Efl.Gfx.Hint_Aspect;
+ sz: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_hint_aspect_get(const Eo *obj, Efl_Gfx_Hint_Aspect *mode, Eina_Size2D *sz);
+void efl_gfx_hint_aspect_set(Eo *obj, Efl_Gfx_Hint_Aspect mode, Eina_Size2D sz);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_aspect|Efl.Gfx.Hint.hint_aspect]]
+ * [[:develop:api:efl:canvas:object:property:hint_aspect|Efl.Canvas.Object.hint_aspect]]
+ * [[:develop:api:efl:ui:win:property:hint_aspect|Efl.Ui.Win.hint_aspect]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/hint_base.txt b/public_html/data/pages/develop/api/efl/ui/win/property/hint_base.txt
new file mode 100644
index 00000000..426ac8d9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/hint_base.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Win.hint_base~~
+====== Efl.Ui.Win.hint_base ======
+
+===== Description =====
+
+%%Base size for objects with sizing restrictions.%%
+
+%%This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.%%
+
+%%%%[[:develop:api:efl:ui:win:property:hint_base|Efl.Ui.Win.hint_base]]%% + N x %%[[:develop:api:efl:ui:win:property:hint_step|Efl.Ui.Win.hint_step]]%% is what is calculated for object sizing restrictions.%%
+
+%%See also %%[[:develop:api:efl:ui:win:property:hint_step|Efl.Ui.Win.hint_step]]%%.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:hint_base:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **sz** - %%Base size (hint) in pixels.%%
+
+===== Signature =====
+
+
+@property hint_base {
+ get {}
+ set {}
+ values {
+ sz: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_ui_win_hint_base_get(const Eo *obj);
+void efl_ui_win_hint_base_set(Eo *obj, Eina_Size2D sz);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:hint_base|Efl.Ui.Win.hint_base]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/hint_size_max.txt b/public_html/data/pages/develop/api/efl/ui/win/property/hint_size_max.txt
new file mode 100644
index 00000000..a30beabb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/hint_size_max.txt
@@ -0,0 +1,53 @@
+~~Title: Efl.Ui.Win.hint_size_max~~
+====== Efl.Ui.Win.hint_size_max ======
+
+===== Description =====
+
+%%Hints on the object's maximum size.%%
+
+%%This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.%%
+
+%%The object container is in charge of fetching this property and placing the object accordingly.%%
+
+%%Values -1 will be treated as unset hint components, when queried by managers.%%
+
+
+@property hint_size_max @pure_virtual {
+ get {}
+ set {}
+ values {
+ sz: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_hint_size_max_get(const Eo *obj);
+void efl_gfx_hint_size_max_set(Eo *obj, Eina_Size2D sz);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_size_max|Efl.Gfx.Hint.hint_size_max]]
+ * [[:develop:api:efl:canvas:object:property:hint_size_max|Efl.Canvas.Object.hint_size_max]]
+ * [[:develop:api:efl:ui:win:property:hint_size_max|Efl.Ui.Win.hint_size_max]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/hint_step.txt b/public_html/data/pages/develop/api/efl/ui/win/property/hint_step.txt
new file mode 100644
index 00000000..e611d604
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/hint_step.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Win.hint_step~~
+====== Efl.Ui.Win.hint_step ======
+
+===== Description =====
+
+%%Step size for objects with sizing restrictions.%%
+
+%%This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.%%
+
+%%Set this to for an object to scale up by steps and not continuously.%%
+
+%%%%[[:develop:api:efl:ui:win:property:hint_base|Efl.Ui.Win.hint_base]]%% + N x %%[[:develop:api:efl:ui:win:property:hint_step|Efl.Ui.Win.hint_step]]%% is what is calculated for object sizing restrictions.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:hint_step:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **sz** - %%Step size (hint) in pixels.%%
+
+===== Signature =====
+
+
+@property hint_step {
+ get {}
+ set {}
+ values {
+ sz: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_ui_win_hint_step_get(const Eo *obj);
+void efl_ui_win_hint_step_set(Eo *obj, Eina_Size2D sz);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:hint_step|Efl.Ui.Win.hint_step]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/hint_weight.txt b/public_html/data/pages/develop/api/efl/ui/win/property/hint_weight.txt
new file mode 100644
index 00000000..ac3a7b4d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/hint_weight.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Ui.Win.hint_weight~~
+====== Efl.Ui.Win.hint_weight ======
+
+===== Description =====
+
+%%Hints for an object's weight.%%
+
+%%This is a hint on how a container object should resize a given child within its area. Containers may adhere to the simpler logic of just expanding the child object's dimensions to fit its own (see the %%[[:develop:api:efl:gfx:hint_expand|Efl.Gfx.Hint_Expand]]%% helper weight macro) or the complete one of taking each child's weight hint as real weights to how much of its size to allocate for them in each axis. A container is supposed to, after normalizing the weights of its children (with weight hints), distribut the space it has to layout them by those factors -- most weighted children get larger in this process than the least ones.%%
+
+%%Accepted values are zero or positive values. Some containers might use this hint as a boolean, but some others might consider it as a proportion, see documentation of each container.%%
+
+
+@property hint_weight @pure_virtual {
+ get {}
+ set {}
+ values {
+ x: double;
+ y: double;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_gfx_hint_weight_get(const Eo *obj, double *x, double *y);
+void efl_gfx_hint_weight_set(Eo *obj, double x, double y);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:hint:property:hint_weight|Efl.Gfx.Hint.hint_weight]]
+ * [[:develop:api:efl:canvas:object:property:hint_weight|Efl.Canvas.Object.hint_weight]]
+ * [[:develop:api:efl:ui:win:property:hint_weight|Efl.Ui.Win.hint_weight]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/i18n_name.txt b/public_html/data/pages/develop/api/efl/ui/win/property/i18n_name.txt
new file mode 100644
index 00000000..ac946c9f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/i18n_name.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Win.i18n_name~~
+====== Efl.Ui.Win.i18n_name ======
+
+===== Description =====
+
+%%Accessible name of the object.%%
+{{page>:develop:api-include:efl:ui:win:property:i18n_name:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **i18n_name** - %%Accessible name%%
+
+//Overridden from [[:develop:api:efl:ui:widget:property:i18n_name|Efl.Access.Object.i18n_name]] **(get)**.//===== Signature =====
+
+
+@property i18n_name @beta {
+ get {}
+ set {}
+ values {
+ i18n_name: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_access_object_i18n_name_get(const Eo *obj);
+void efl_access_object_i18n_name_set(Eo *obj, const char *i18n_name);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:object:property:i18n_name|Efl.Access.Object.i18n_name]]
+ * [[:develop:api:efl:ui:widget:property:i18n_name|Efl.Ui.Widget.i18n_name]]
+ * [[:develop:api:efl:ui:win:property:i18n_name|Efl.Ui.Win.i18n_name]]
+ * [[:develop:api:efl:ui:text:property:i18n_name|Efl.Ui.Text.i18n_name]]
+ * [[:develop:api:efl:ui:spin_button:property:i18n_name|Efl.Ui.Spin_Button.i18n_name]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/icon_object.txt b/public_html/data/pages/develop/api/efl/ui/win/property/icon_object.txt
new file mode 100644
index 00000000..c29badfb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/icon_object.txt
@@ -0,0 +1,49 @@
+~~Title: Efl.Ui.Win.icon_object~~
+====== Efl.Ui.Win.icon_object ======
+
+===== Description =====
+
+%%A window object's icon.%%
+
+%%This sets an image to be used as the icon for the given window, in the window manager decoration part. The exact pixel dimensions of the object (not object size) will be used and the image pixels will be used as-is when this function is called. If the image object has been updated, then call this function again to source the image pixels and place them in the window's icon. Note that only objects of type %%[[:develop:api:efl:canvas:image|Efl.Canvas.Image]]%% or %%[[:develop:api:efl:ui:image|Efl.Ui.Image]]%% are allowed.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:icon_object:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+==== Getter ====
+
+ * **icon** - %%The Evas image object to use for an icon.%%
+==== Setter ====
+
+ * **icon** - %%The image object to use for an icon.%%
+
+===== Signature =====
+
+
+@property icon_object {
+ get {
+ values {
+ icon: const(Efl.Canvas.Object);
+ }
+ }
+ set {
+ values {
+ icon: Efl.Canvas.Object;
+ }
+ }
+}
+
+
+===== C signature =====
+
+
+const Efl_Canvas_Object *efl_ui_win_icon_object_get(const Eo *obj);
+void efl_ui_win_icon_object_set(Eo *obj, Efl_Canvas_Object *icon);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:icon_object|Efl.Ui.Win.icon_object]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/image_max_size.txt b/public_html/data/pages/develop/api/efl/ui/win/property/image_max_size.txt
new file mode 100644
index 00000000..844fd100
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/image_max_size.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Ui.Win.image_max_size~~
+====== Efl.Ui.Win.image_max_size ======
+
+===== Values =====
+
+ * **max** - %%The maximum image size (in pixels).%%
+
+
+\\ {{page>:develop:api-include:efl:ui:win:property:image_max_size:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:canvas:scene:property:image_max_size|Efl.Canvas.Scene.image_max_size]] **(get)**.//===== Signature =====
+
+
+@property image_max_size @pure_virtual {
+ get {
+ return: bool;
+ }
+ values {
+ max: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_scene_image_max_size_get(const Eo *obj, Eina_Size2D *max);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:scene:property:image_max_size|Efl.Canvas.Scene.image_max_size]]
+ * [[:develop:api:efl:ui:win:property:image_max_size|Efl.Ui.Win.image_max_size]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/indicator_mode.txt b/public_html/data/pages/develop/api/efl/ui/win/property/indicator_mode.txt
new file mode 100644
index 00000000..b3213398
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/indicator_mode.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Win.indicator_mode~~
+====== Efl.Ui.Win.indicator_mode ======
+
+===== Description =====
+
+%%In some environments you may have an indicator that shows battery status, reception, time etc. This is the indicator.%%
+
+%%Sometimes you don't want this because you provide the same functionality inside your app, so this will request that the indicator is disabled in such circumstances. The default settings depends on the environment. For example, on phones, the default is to enable the indicator. The indicator is disabled on devices like televisions however.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:indicator_mode:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **type** - %%The type, one of %%[[:develop:api:efl:ui:win_indicator_mode|Efl.Ui.Win_Indicator_Mode]]%%.%%
+
+===== Signature =====
+
+
+@property indicator_mode {
+ get {}
+ set {}
+ values {
+ type: Efl.Ui.Win_Indicator_Mode;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Win_Indicator_Mode efl_ui_win_indicator_mode_get(const Eo *obj);
+void efl_ui_win_indicator_mode_set(Eo *obj, Efl_Ui_Win_Indicator_Mode type);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:indicator_mode|Efl.Ui.Win.indicator_mode]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/keyboard_mode.txt b/public_html/data/pages/develop/api/efl/ui/win/property/keyboard_mode.txt
new file mode 100644
index 00000000..59b9e722
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/keyboard_mode.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Win.keyboard_mode~~
+====== Efl.Ui.Win.keyboard_mode ======
+
+===== Description =====
+
+%%The keyboard mode of the window.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:keyboard_mode:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **mode** - %%The mode, one of %%[[:develop:api:efl:ui:win_keyboard_mode|Efl.Ui.Win_Keyboard_Mode]]%%.%%
+
+===== Signature =====
+
+
+@property keyboard_mode @beta {
+ get {}
+ set {}
+ values {
+ mode: Efl.Ui.Win_Keyboard_Mode;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Win_Keyboard_Mode efl_ui_win_keyboard_mode_get(const Eo *obj);
+void efl_ui_win_keyboard_mode_set(Eo *obj, Efl_Ui_Win_Keyboard_Mode mode);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:keyboard_mode|Efl.Ui.Win.keyboard_mode]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/l10n_text.txt b/public_html/data/pages/develop/api/efl/ui/win/property/l10n_text.txt
new file mode 100644
index 00000000..b0045dc1
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/l10n_text.txt
@@ -0,0 +1,72 @@
+~~Title: Efl.Ui.Win.l10n_text~~
+====== Efl.Ui.Win.l10n_text ======
+
+===== Description =====
+
+%%A unique string to be translated.%%
+
+%%Often this will be a human-readable string (e.g. in English) but it can also be a unique string identifier that must then be translated to the current locale with %%''dgettext''%%() or any similar mechanism.%%
+
+%%Setting this property will enable translation for this object or part.%%
+
+
+{{page>:develop:api-include:efl:ui:win:property:l10n_text:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+==== Getter ====
+
+ * **domain** - %%A translation domain. If %%''null''%% this means the default domain is used.%%
+==== Setter ====
+
+ * **label** - %%A unique (untranslated) string.%%
+ * **domain** - %%A translation domain. If %%''null''%% this uses the default domain (eg. set by %%''textdomain''%%()).%%
+==== Setter ====
+
+%%Sets the new untranslated string and domain for this object.%%
+{{page>:develop:api-include:efl:ui:win:property:l10n_text:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:l10n:property:l10n_text|Efl.Ui.L10n.l10n_text]] **(get, set)**.//===== Signature =====
+
+
+@property l10n_text @pure_virtual {
+ get {
+ values {
+ domain: string @optional;
+ }
+ return: string;
+ }
+ set {
+ values {
+ label: string;
+ domain: string @optional;
+ }
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_ui_l10n_text_get(const Eo *obj, const char **domain);
+void efl_ui_l10n_text_set(Eo *obj, const char *label, const char *domain);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:l10n:property:l10n_text|Efl.Ui.L10n.l10n_text]]
+ * [[:develop:api:efl:ui:default_item:property:l10n_text|Efl.Ui.Default_Item.l10n_text]]
+ * [[:develop:api:efl:ui:layout_part_legacy:property:l10n_text|Efl.Ui.Layout_Part_Legacy.l10n_text]]
+ * [[:develop:api:elm:notify:part:property:l10n_text|Elm.Notify.Part.l10n_text]]
+ * [[:develop:api:efl:ui:layout_part_text:property:l10n_text|Efl.Ui.Layout_Part_Text.l10n_text]]
+ * [[:develop:api:efl:ui:win:property:l10n_text|Efl.Ui.Win.l10n_text]]
+ * [[:develop:api:efl:ui:table:property:l10n_text|Efl.Ui.Table.l10n_text]]
+ * [[:develop:api:efl:ui:box:property:l10n_text|Efl.Ui.Box.l10n_text]]
+ * [[:develop:api:efl:ui:layout_base:property:l10n_text|Efl.Ui.Layout_Base.l10n_text]]
+ * [[:develop:api:efl:ui:check:property:l10n_text|Efl.Ui.Check.l10n_text]]
+ * [[:develop:api:efl:ui:frame:property:l10n_text|Efl.Ui.Frame.l10n_text]]
+ * [[:develop:api:efl:ui:progressbar:property:l10n_text|Efl.Ui.Progressbar.l10n_text]]
+ * [[:develop:api:efl:ui:button:property:l10n_text|Efl.Ui.Button.l10n_text]]
+ * [[:develop:api:efl:ui:navigation_bar:property:l10n_text|Efl.Ui.Navigation_Bar.l10n_text]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/language.txt b/public_html/data/pages/develop/api/efl/ui/win/property/language.txt
new file mode 100644
index 00000000..a8147e74
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/language.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Win.language~~
+====== Efl.Ui.Win.language ======
+
+===== Description =====
+
+%%The (human) language for this object.%%
+{{page>:develop:api-include:efl:ui:win:property:language:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **language** - %%The current language.%%
+
+//Overridden from [[:develop:api:efl:ui:i18n:property:language|Efl.Ui.I18n.language]] **(get, set)**.//===== Signature =====
+
+
+@property language @pure_virtual {
+ get {}
+ set {}
+ values {
+ language: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_ui_language_get(const Eo *obj);
+void efl_ui_language_set(Eo *obj, const char *language);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:i18n:property:language|Efl.Ui.I18n.language]]
+ * [[:develop:api:efl:canvas:layout:property:language|Efl.Canvas.Layout.language]]
+ * [[:develop:api:efl:ui:win:property:language|Efl.Ui.Win.language]]
+ * [[:develop:api:efl:ui:table:property:language|Efl.Ui.Table.language]]
+ * [[:develop:api:efl:ui:box:property:language|Efl.Ui.Box.language]]
+ * [[:develop:api:efl:ui:layout_base:property:language|Efl.Ui.Layout_Base.language]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/lock_enabled.txt b/public_html/data/pages/develop/api/efl/ui/win/property/lock_enabled.txt
new file mode 100644
index 00000000..f8afe05f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/lock_enabled.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Win.lock_enabled~~
+====== Efl.Ui.Win.lock_enabled ======
+
+===== Keys =====
+
+ * **lock** - %%The lock key to test.%%
+ * **seat** - %%The seat device, may be %%''null''%%%%
+===== Values =====
+
+ * **is_set** - %%%%''true''%% if the key lock is on.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:win:property:lock_enabled:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:input:state:property:lock_enabled|Efl.Input.State.lock_enabled]] **(get)**.//===== Signature =====
+
+
+@property lock_enabled @beta @pure_virtual {
+ get {
+ keys {
+ lock: Efl.Input.Lock;
+ seat: const(Efl.Input.Device) @optional;
+ }
+ }
+ values {
+ is_set: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_input_lock_enabled_get(const Eo *obj, Efl_Input_Lock lock, const Efl_Input_Device *seat);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:state:property:lock_enabled|Efl.Input.State.lock_enabled]]
+ * [[:develop:api:efl:ui:win:property:lock_enabled|Efl.Ui.Win.lock_enabled]]
+ * [[:develop:api:efl:input:pointer:property:lock_enabled|Efl.Input.Pointer.lock_enabled]]
+ * [[:develop:api:efl:input:key:property:lock_enabled|Efl.Input.Key.lock_enabled]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/maximized.txt b/public_html/data/pages/develop/api/efl/ui/win/property/maximized.txt
new file mode 100644
index 00000000..2cfe058f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/maximized.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Win.maximized~~
+====== Efl.Ui.Win.maximized ======
+
+===== Description =====
+
+%%The maximized state of a window.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:maximized:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **maximized** - %%If %%''true''%%, the window is maximized.%%
+
+===== Signature =====
+
+
+@property maximized {
+ get {}
+ set {}
+ values {
+ maximized: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_win_maximized_get(const Eo *obj);
+void efl_ui_win_maximized_set(Eo *obj, Eina_Bool maximized);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:maximized|Efl.Ui.Win.maximized]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/minimized.txt b/public_html/data/pages/develop/api/efl/ui/win/property/minimized.txt
new file mode 100644
index 00000000..c3df41b8
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/minimized.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Win.minimized~~
+====== Efl.Ui.Win.minimized ======
+
+===== Description =====
+
+%%The minimized state of a window.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:minimized:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **state** - %%If %%''true''%%, the window is minimized.%%
+
+===== Signature =====
+
+
+@property minimized {
+ get {}
+ set {}
+ values {
+ state: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_win_minimized_get(const Eo *obj);
+void efl_ui_win_minimized_set(Eo *obj, Eina_Bool state);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:minimized|Efl.Ui.Win.minimized]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/modal.txt b/public_html/data/pages/develop/api/efl/ui/win/property/modal.txt
new file mode 100644
index 00000000..8f03a07c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/modal.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Win.modal~~
+====== Efl.Ui.Win.modal ======
+
+===== Description =====
+
+%%The modal state of a window.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:modal:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **modal** - %%The mode of a window, one of %%[[:develop:api:efl:ui:win_modal_mode|Efl.Ui.Win_Modal_Mode]]%%.%%
+
+===== Signature =====
+
+
+@property modal @beta {
+ get {}
+ set {}
+ values {
+ modal: Efl.Ui.Win_Modal_Mode;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Win_Modal_Mode efl_ui_win_modal_get(const Eo *obj);
+void efl_ui_win_modal_set(Eo *obj, Efl_Ui_Win_Modal_Mode modal);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:modal|Efl.Ui.Win.modal]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/modifier_enabled.txt b/public_html/data/pages/develop/api/efl/ui/win/property/modifier_enabled.txt
new file mode 100644
index 00000000..3d518003
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/modifier_enabled.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Win.modifier_enabled~~
+====== Efl.Ui.Win.modifier_enabled ======
+
+===== Keys =====
+
+ * **mod** - %%The modifier key to test.%%
+ * **seat** - %%The seat device, may be %%''null''%%%%
+===== Values =====
+
+ * **is_set** - %%%%''true''%% if the key modifier is pressed.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:win:property:modifier_enabled:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:input:state:property:modifier_enabled|Efl.Input.State.modifier_enabled]] **(get)**.//===== Signature =====
+
+
+@property modifier_enabled @beta @pure_virtual {
+ get {
+ keys {
+ mod: Efl.Input.Modifier;
+ seat: const(Efl.Input.Device) @optional;
+ }
+ }
+ values {
+ is_set: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_input_modifier_enabled_get(const Eo *obj, Efl_Input_Modifier mod, const Efl_Input_Device *seat);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:input:state:property:modifier_enabled|Efl.Input.State.modifier_enabled]]
+ * [[:develop:api:efl:ui:win:property:modifier_enabled|Efl.Ui.Win.modifier_enabled]]
+ * [[:develop:api:efl:input:pointer:property:modifier_enabled|Efl.Input.Pointer.modifier_enabled]]
+ * [[:develop:api:efl:input:key:property:modifier_enabled|Efl.Input.Key.modifier_enabled]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/pointer_inside.txt b/public_html/data/pages/develop/api/efl/ui/win/property/pointer_inside.txt
new file mode 100644
index 00000000..fb25d47e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/pointer_inside.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Win.pointer_inside~~
+====== Efl.Ui.Win.pointer_inside ======
+
+===== Keys =====
+
+ * **seat** - %%The seat to consider, if %%''null''%% then the default seat will be used.%%
+===== Values =====
+
+ * **inside** - %%%%''true''%% if the mouse pointer is inside the canvas, %%''false''%% otherwise%%
+
+
+\\ {{page>:develop:api-include:efl:ui:win:property:pointer_inside:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:canvas:object:property:pointer_inside|Efl.Canvas.Pointer.pointer_inside]] **(get)**.//===== Signature =====
+
+
+@property pointer_inside @beta @pure_virtual {
+ get {
+ keys {
+ seat: Efl.Input.Device @optional;
+ }
+ }
+ values {
+ inside: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_pointer_inside_get(const Eo *obj, Efl_Input_Device *seat);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:pointer:property:pointer_inside|Efl.Canvas.Pointer.pointer_inside]]
+ * [[:develop:api:efl:canvas:object:property:pointer_inside|Efl.Canvas.Object.pointer_inside]]
+ * [[:develop:api:efl:ui:win:property:pointer_inside|Efl.Ui.Win.pointer_inside]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/pointer_position.txt b/public_html/data/pages/develop/api/efl/ui/win/property/pointer_position.txt
new file mode 100644
index 00000000..b74923b6
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/pointer_position.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Win.pointer_position~~
+====== Efl.Ui.Win.pointer_position ======
+
+===== Keys =====
+
+ * **seat** - %%The seat, or %%''null''%% to use the default.%%
+===== Values =====
+
+ * **pos** - %%The pointer position in pixels.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:win:property:pointer_position:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:canvas:scene:property:pointer_position|Efl.Canvas.Scene.pointer_position]] **(get)**.//===== Signature =====
+
+
+@property pointer_position @beta @pure_virtual {
+ get {
+ keys {
+ seat: Efl.Input.Device;
+ }
+ return: bool;
+ }
+ values {
+ pos: Eina.Position2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_canvas_scene_pointer_position_get(const Eo *obj, Efl_Input_Device *seat, Eina_Position2D *pos);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:scene:property:pointer_position|Efl.Canvas.Scene.pointer_position]]
+ * [[:develop:api:efl:ui:win:property:pointer_position|Efl.Ui.Win.pointer_position]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/position.txt b/public_html/data/pages/develop/api/efl/ui/win/property/position.txt
new file mode 100644
index 00000000..dbba6f38
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/position.txt
@@ -0,0 +1,76 @@
+~~Title: Efl.Ui.Win.position~~
+====== Efl.Ui.Win.position ======
+
+===== Description =====
+
+%%The 2D position of a canvas object.%%
+
+%%The position is absolute, in pixels, relative to the top-left corner of the window, within its border decorations (application space).%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:win:property:position:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **pos** - %%A 2D coordinate in pixel units.%%
+==== Getter ====
+
+%%Retrieves the position of the given canvas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:win:property:position:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Moves the given canvas object to the given location inside its canvas' viewport. If unchanged this call may be entirely skipped, but if changed this will trigger move events, as well as potential pointer,in or pointer,out events.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:position:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:widget:property:position|Efl.Gfx.Entity.position]] **(set)**.//===== Signature =====
+
+
+@property position @pure_virtual {
+ get {}
+ set {}
+ values {
+ pos: Eina.Position2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Position2D efl_gfx_entity_position_get(const Eo *obj);
+void efl_gfx_entity_position_set(Eo *obj, Eina_Position2D pos);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:position|Efl.Gfx.Entity.position]]
+ * [[:develop:api:efl:canvas:vg:node:property:position|Efl.Canvas.Vg.Node.position]]
+ * [[:develop:api:efl:ui:win:property:position|Efl.Ui.Win.position]]
+ * [[:develop:api:efl:ui:image:property:position|Efl.Ui.Image.position]]
+ * [[:develop:api:efl:ui:image_zoomable:property:position|Efl.Ui.Image_Zoomable.position]]
+ * [[:develop:api:efl:ui:widget:property:position|Efl.Ui.Widget.position]]
+ * [[:develop:api:efl:ui:table:property:position|Efl.Ui.Table.position]]
+ * [[:develop:api:efl:ui:box:property:position|Efl.Ui.Box.position]]
+ * [[:develop:api:efl:ui:animation_view:property:position|Efl.Ui.Animation_View.position]]
+ * [[:develop:api:efl:ui:text:property:position|Efl.Ui.Text.position]]
+ * [[:develop:api:efl:ui:textpath:property:position|Efl.Ui.Textpath.position]]
+ * [[:develop:api:efl:ui:popup:property:position|Efl.Ui.Popup.position]]
+ * [[:develop:api:efl:ui:relative_layout:property:position|Efl.Ui.Relative_Layout.position]]
+ * [[:develop:api:efl:canvas:object:property:position|Efl.Canvas.Object.position]]
+ * [[:develop:api:efl:canvas:group:property:position|Efl.Canvas.Group.position]]
+ * [[:develop:api:efl:canvas:video:property:position|Efl.Canvas.Video.position]]
+ * [[:develop:api:efl:canvas:event_grabber:property:position|Efl.Canvas.Event_Grabber.position]]
+ * [[:develop:api:efl:canvas:layout:property:position|Efl.Canvas.Layout.position]]
+ * [[:develop:api:efl:ui:pan:property:position|Efl.Ui.Pan.position]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:property:position|Efl.Ui.Image_Zoomable_Pan.position]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/prop_focus_skip.txt b/public_html/data/pages/develop/api/efl/ui/win/property/prop_focus_skip.txt
new file mode 100644
index 00000000..c89c7cc0
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/prop_focus_skip.txt
@@ -0,0 +1,28 @@
+~~Title: Efl.Ui.Win.prop_focus_skip~~
+====== Efl.Ui.Win.prop_focus_skip ======
+
+===== Values =====
+
+ * **skip** - %%The skip flag state (%%''true''%% if it is to be skipped).%%
+
+
+\\ {{page>:develop:api-include:efl:ui:win:property:prop_focus_skip:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property prop_focus_skip @beta {
+ set {}
+}
+
+
+===== C signature =====
+
+
+void efl_ui_win_prop_focus_skip_set(Eo *obj, Eina_Bool skip);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:prop_focus_skip|Efl.Ui.Win.prop_focus_skip]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/screen_constrain.txt b/public_html/data/pages/develop/api/efl/ui/win/property/screen_constrain.txt
new file mode 100644
index 00000000..9abc701f
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/screen_constrain.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Win.screen_constrain~~
+====== Efl.Ui.Win.screen_constrain ======
+
+===== Description =====
+
+%%Constrain the maximum width and height of a window to the width and height of the screen.%%
+
+%%When %%''constrain''%% is %%''true''%%, %%''obj''%% will never resize larger than the screen.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:screen_constrain:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **constrain** - %%%%''true''%% to restrict the window's maximum size.%%
+
+===== Signature =====
+
+
+@property screen_constrain @beta {
+ get {}
+ set {}
+ values {
+ constrain: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_win_screen_constrain_get(const Eo *obj);
+void efl_ui_win_screen_constrain_set(Eo *obj, Eina_Bool constrain);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:screen_constrain|Efl.Ui.Win.screen_constrain]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/screen_dpi.txt b/public_html/data/pages/develop/api/efl/ui/win/property/screen_dpi.txt
new file mode 100644
index 00000000..b3cbd380
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/screen_dpi.txt
@@ -0,0 +1,34 @@
+~~Title: Efl.Ui.Win.screen_dpi~~
+====== Efl.Ui.Win.screen_dpi ======
+
+===== Values =====
+
+ * **xdpi** - %%Horizontal DPI.%%
+ * **ydpi** - %%Vertical DPI.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:win:property:screen_dpi:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:screen:property:screen_dpi|Efl.Screen.screen_dpi]] **(get)**.//===== Signature =====
+
+
+@property screen_dpi @pure_virtual {
+ get {}
+ values {
+ xdpi: int;
+ ydpi: int;
+ }
+}
+
+
+===== C signature =====
+
+
+void efl_screen_dpi_get(const Eo *obj, int *xdpi, int *ydpi);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:screen:property:screen_dpi|Efl.Screen.screen_dpi]]
+ * [[:develop:api:efl:ui:win:property:screen_dpi|Efl.Ui.Win.screen_dpi]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/screen_rotation.txt b/public_html/data/pages/develop/api/efl/ui/win/property/screen_rotation.txt
new file mode 100644
index 00000000..c9c1e79d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/screen_rotation.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.Ui.Win.screen_rotation~~
+====== Efl.Ui.Win.screen_rotation ======
+
+===== Values =====
+
+ * **rotation** - %%Screen rotation in degrees.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:win:property:screen_rotation:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:screen:property:screen_rotation|Efl.Screen.screen_rotation]] **(get)**.//===== Signature =====
+
+
+@property screen_rotation @pure_virtual {
+ get {}
+ values {
+ rotation: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_screen_rotation_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:screen:property:screen_rotation|Efl.Screen.screen_rotation]]
+ * [[:develop:api:efl:ui:win:property:screen_rotation|Efl.Ui.Win.screen_rotation]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/screen_scale_factor.txt b/public_html/data/pages/develop/api/efl/ui/win/property/screen_scale_factor.txt
new file mode 100644
index 00000000..e05cc0b4
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/screen_scale_factor.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.Ui.Win.screen_scale_factor~~
+====== Efl.Ui.Win.screen_scale_factor ======
+
+===== Values =====
+
+ * **size** - %%The screen scaling factor.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:win:property:screen_scale_factor:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:screen:property:screen_scale_factor|Efl.Screen.screen_scale_factor]] **(get)**.//===== Signature =====
+
+
+@property screen_scale_factor @pure_virtual {
+ get {}
+ values {
+ size: float;
+ }
+}
+
+
+===== C signature =====
+
+
+float efl_screen_scale_factor_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:screen:property:screen_scale_factor|Efl.Screen.screen_scale_factor]]
+ * [[:develop:api:efl:ui:win:property:screen_scale_factor|Efl.Ui.Win.screen_scale_factor]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/screen_size_in_pixels.txt b/public_html/data/pages/develop/api/efl/ui/win/property/screen_size_in_pixels.txt
new file mode 100644
index 00000000..d258dc0a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/screen_size_in_pixels.txt
@@ -0,0 +1,32 @@
+~~Title: Efl.Ui.Win.screen_size_in_pixels~~
+====== Efl.Ui.Win.screen_size_in_pixels ======
+
+===== Values =====
+
+ * **size** - %%The screen size in pixels.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:win:property:screen_size_in_pixels:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:screen:property:screen_size_in_pixels|Efl.Screen.screen_size_in_pixels]] **(get)**.//===== Signature =====
+
+
+@property screen_size_in_pixels @pure_virtual {
+ get {}
+ values {
+ size: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_screen_size_in_pixels_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:screen:property:screen_size_in_pixels|Efl.Screen.screen_size_in_pixels]]
+ * [[:develop:api:efl:ui:win:property:screen_size_in_pixels|Efl.Ui.Win.screen_size_in_pixels]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/seat.txt b/public_html/data/pages/develop/api/efl/ui/win/property/seat.txt
new file mode 100644
index 00000000..cac20622
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/seat.txt
@@ -0,0 +1,43 @@
+~~Title: Efl.Ui.Win.seat~~
+====== Efl.Ui.Win.seat ======
+
+===== Keys =====
+
+ * **id** - %%The id of the seat to find.%%
+===== Values =====
+
+ * **seat** - %%The seat or %%''null''%% if not found.%%
+===== Description =====
+
+%%Get a seat by id.%%
+
+//Since 1.22//
+
+\\ {{page>:develop:api-include:efl:ui:win:property:seat:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:canvas:scene:property:seat|Efl.Canvas.Scene.seat]] **(get)**.//===== Signature =====
+
+
+@property seat @beta @pure_virtual {
+ get {
+ keys {
+ id: int;
+ }
+ }
+ values {
+ seat: Efl.Input.Device;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Input_Device *efl_canvas_scene_seat_get(const Eo *obj, int id);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:scene:property:seat|Efl.Canvas.Scene.seat]]
+ * [[:develop:api:efl:ui:win:property:seat|Efl.Ui.Win.seat]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/seat_default.txt b/public_html/data/pages/develop/api/efl/ui/win/property/seat_default.txt
new file mode 100644
index 00000000..fb985a2a
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/seat_default.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.Win.seat_default~~
+====== Efl.Ui.Win.seat_default ======
+
+===== Values =====
+
+ * **seat** - %%The default seat or %%''null''%% if one does not exist.%%
+===== Description =====
+
+%%Get the default seat.%%
+
+//Since 1.22//
+
+\\ {{page>:develop:api-include:efl:ui:win:property:seat_default:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:canvas:scene:property:seat_default|Efl.Canvas.Scene.seat_default]] **(get)**.//===== Signature =====
+
+
+@property seat_default @beta @pure_virtual {
+ get {}
+ values {
+ seat: Efl.Input.Device;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Input_Device *efl_canvas_scene_seat_default_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:canvas:scene:property:seat_default|Efl.Canvas.Scene.seat_default]]
+ * [[:develop:api:efl:ui:win:property:seat_default|Efl.Ui.Win.seat_default]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/size.txt b/public_html/data/pages/develop/api/efl/ui/win/property/size.txt
new file mode 100644
index 00000000..ee8b469d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/size.txt
@@ -0,0 +1,76 @@
+~~Title: Efl.Ui.Win.size~~
+====== Efl.Ui.Win.size ======
+
+===== Description =====
+
+%%The 2D size of a canvas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:win:property:size:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **size** - %%A 2D size in pixel units.%%
+==== Getter ====
+
+%%Retrieves the (rectangular) size of the given Evas object.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:win:property:size:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Changes the size of the given object.%%
+
+%%Note that setting the actual size of an object might be the job of its container, so this function might have no effect. Look at %%[[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]]%% instead, when manipulating widgets.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:size:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:widget:property:size|Efl.Gfx.Entity.size]] **(set)**.//===== Signature =====
+
+
+@property size @pure_virtual {
+ get {}
+ set {}
+ values {
+ size: Eina.Size2D;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Size2D efl_gfx_entity_size_get(const Eo *obj);
+void efl_gfx_entity_size_set(Eo *obj, Eina_Size2D size);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:size|Efl.Gfx.Entity.size]]
+ * [[:develop:api:efl:canvas:vg:node:property:size|Efl.Canvas.Vg.Node.size]]
+ * [[:develop:api:efl:ui:win:property:size|Efl.Ui.Win.size]]
+ * [[:develop:api:efl:ui:image:property:size|Efl.Ui.Image.size]]
+ * [[:develop:api:efl:ui:image_zoomable:property:size|Efl.Ui.Image_Zoomable.size]]
+ * [[:develop:api:efl:ui:widget:property:size|Efl.Ui.Widget.size]]
+ * [[:develop:api:efl:ui:table:property:size|Efl.Ui.Table.size]]
+ * [[:develop:api:efl:ui:box:property:size|Efl.Ui.Box.size]]
+ * [[:develop:api:efl:ui:animation_view:property:size|Efl.Ui.Animation_View.size]]
+ * [[:develop:api:efl:ui:text:property:size|Efl.Ui.Text.size]]
+ * [[:develop:api:efl:ui:panel:property:size|Efl.Ui.Panel.size]]
+ * [[:develop:api:efl:ui:textpath:property:size|Efl.Ui.Textpath.size]]
+ * [[:develop:api:efl:ui:popup:property:size|Efl.Ui.Popup.size]]
+ * [[:develop:api:efl:ui:relative_layout:property:size|Efl.Ui.Relative_Layout.size]]
+ * [[:develop:api:efl:canvas:object:property:size|Efl.Canvas.Object.size]]
+ * [[:develop:api:efl:canvas:video:property:size|Efl.Canvas.Video.size]]
+ * [[:develop:api:efl:canvas:event_grabber:property:size|Efl.Canvas.Event_Grabber.size]]
+ * [[:develop:api:efl:canvas:layout:property:size|Efl.Canvas.Layout.size]]
+ * [[:develop:api:efl:ui:pan:property:size|Efl.Ui.Pan.size]]
+ * [[:develop:api:efl:ui:image_zoomable_pan:property:size|Efl.Ui.Image_Zoomable_Pan.size]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/stack_base.txt b/public_html/data/pages/develop/api/efl/ui/win/property/stack_base.txt
new file mode 100644
index 00000000..696a1e5e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/stack_base.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Win.stack_base~~
+====== Efl.Ui.Win.stack_base ======
+
+===== Description =====
+
+%%The stack base state of this window%%
+
+%%This is a boolean flag that determines if this window will become the base of a stack at all. You must enable this on a base (the bottom of a window stack) for things to work correctly.%%
+
+%%This state should be set before a window is shown for the first time and never changed afterwards.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:stack_base:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **base** - %%%%''true''%% if this is a stack base window, %%''false''%% otherwise.%%
+
+===== Signature =====
+
+
+@property stack_base @beta {
+ get {}
+ set {}
+ values {
+ base: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_win_stack_base_get(const Eo *obj);
+void efl_ui_win_stack_base_set(Eo *obj, Eina_Bool base);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:stack_base|Efl.Ui.Win.stack_base]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/stack_id.txt b/public_html/data/pages/develop/api/efl/ui/win/property/stack_id.txt
new file mode 100644
index 00000000..3cbcfa49
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/stack_id.txt
@@ -0,0 +1,31 @@
+~~Title: Efl.Ui.Win.stack_id~~
+====== Efl.Ui.Win.stack_id ======
+
+===== Values =====
+
+ * **id** - %%An opaque string that has no specific format but identifies a specific unique window on the display.%%
+
+
+\\ {{page>:develop:api-include:efl:ui:win:property:stack_id:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+@property stack_id @beta {
+ get {}
+ values {
+ id: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_ui_win_stack_id_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:stack_id|Efl.Ui.Win.stack_id]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/stack_master_id.txt b/public_html/data/pages/develop/api/efl/ui/win/property/stack_master_id.txt
new file mode 100644
index 00000000..0e7aaa54
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/stack_master_id.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Win.stack_master_id~~
+====== Efl.Ui.Win.stack_master_id ======
+
+===== Description =====
+
+%%The window stack ID to use as the master top-level.%%
+
+%%This sets the ID string to be used as the master top-level window as the base of a stack of windows. This must be set before the first time the window is shown and should never be changed afterwards.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:stack_master_id:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **id** - %%An opaque string that has no specific format, but identifies a specific unique window on the display.%%
+
+===== Signature =====
+
+
+@property stack_master_id @beta {
+ get {}
+ set {}
+ values {
+ id: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_ui_win_stack_master_id_get(const Eo *obj);
+void efl_ui_win_stack_master_id_set(Eo *obj, const char *id);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:stack_master_id|Efl.Ui.Win.stack_master_id]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/state_set.txt b/public_html/data/pages/develop/api/efl/ui/win/property/state_set.txt
new file mode 100644
index 00000000..935f9c6c
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/state_set.txt
@@ -0,0 +1,36 @@
+~~Title: Efl.Ui.Win.state_set~~
+====== Efl.Ui.Win.state_set ======
+
+===== Values =====
+
+ * **states** - %%Accessible state set%%
+
+
+\\ {{page>:develop:api-include:efl:ui:win:property:state_set:description&nouser&nolink&nodate}}
+
+//Overridden from [[:develop:api:efl:ui:widget:property:state_set|Efl.Access.Object.state_set]] **(get)**.//===== Signature =====
+
+
+@property state_set @beta {
+ get @protected {}
+ values {
+ states: Efl.Access.State_Set;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Access_State_Set efl_access_object_state_set_get(const Eo *obj);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:access:object:property:state_set|Efl.Access.Object.state_set]]
+ * [[:develop:api:efl:ui:widget:property:state_set|Efl.Ui.Widget.state_set]]
+ * [[:develop:api:efl:ui:win:property:state_set|Efl.Ui.Win.state_set]]
+ * [[:develop:api:efl:ui:check:property:state_set|Efl.Ui.Check.state_set]]
+ * [[:develop:api:efl:ui:radio:property:state_set|Efl.Ui.Radio.state_set]]
+ * [[:develop:api:efl:ui:text:property:state_set|Efl.Ui.Text.state_set]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/sticky.txt b/public_html/data/pages/develop/api/efl/ui/win/property/sticky.txt
new file mode 100644
index 00000000..a377d25d
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/sticky.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Win.sticky~~
+====== Efl.Ui.Win.sticky ======
+
+===== Description =====
+
+%%The sticky state of the window.%%
+
+%%Hints the Window Manager that the window in %%''obj''%% should be left fixed at its position even when the virtual desktop it's on moves or changes.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:sticky:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **sticky** - %%If %%''true''%%, the window's sticky state is enabled.%%
+
+===== Signature =====
+
+
+@property sticky @beta {
+ get {}
+ set {}
+ values {
+ sticky: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_win_sticky_get(const Eo *obj);
+void efl_ui_win_sticky_set(Eo *obj, Eina_Bool sticky);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:sticky|Efl.Ui.Win.sticky]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/text.txt b/public_html/data/pages/develop/api/efl/ui/win/property/text.txt
new file mode 100644
index 00000000..2e9d33b9
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/text.txt
@@ -0,0 +1,67 @@
+~~Title: Efl.Ui.Win.text~~
+====== Efl.Ui.Win.text ======
+
+===== Description =====
+
+%%The text string to be displayed by the given text object.%%
+
+%%Do not release (free) the returned value.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:text:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **text** - %%Text string to display.%%
+
+//Overridden from [[:develop:api:efl:text:property:text|Efl.Text.text]] **(get, set)**.//===== Signature =====
+
+
+@property text @pure_virtual {
+ get {}
+ set {}
+ values {
+ text: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_text_get(const Eo *obj);
+void efl_text_set(Eo *obj, const char *text);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:text:property:text|Efl.Text.text]]
+ * [[:develop:api:efl:ui:check:property:text|Efl.Ui.Check.text]]
+ * [[:develop:api:efl:ui:win:property:text|Efl.Ui.Win.text]]
+ * [[:develop:api:efl:ui:default_item:property:text|Efl.Ui.Default_Item.text]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:property:text|Efl.Ui.Navigation_Bar_Part_Back_Button.text]]
+ * [[:develop:api:efl:ui:layout_part_legacy:property:text|Efl.Ui.Layout_Part_Legacy.text]]
+ * [[:develop:api:elm_actionslider:part:property:text|Elm_Actionslider.Part.text]]
+ * [[:develop:api:elm:entry:part:property:text|Elm.Entry.Part.text]]
+ * [[:develop:api:elm_label:part:property:text|Elm_Label.Part.text]]
+ * [[:develop:api:elm:multibuttonentry_part:property:text|Elm.Multibuttonentry_Part.text]]
+ * [[:develop:api:elm:naviframe:part:property:text|Elm.Naviframe.Part.text]]
+ * [[:develop:api:elm_bubble:part:property:text|Elm_Bubble.Part.text]]
+ * [[:develop:api:elm:fileselector:entry:part:property:text|Elm.Fileselector.Entry.Part.text]]
+ * [[:develop:api:elm:fileselector:part:property:text|Elm.Fileselector.Part.text]]
+ * [[:develop:api:elm:popup:part:property:text|Elm.Popup.Part.text]]
+ * [[:develop:api:elm:notify:part:property:text|Elm.Notify.Part.text]]
+ * [[:develop:api:efl:canvas:text:property:text|Efl.Canvas.Text.text]]
+ * [[:develop:api:efl:ui:layout_part_text:property:text|Efl.Ui.Layout_Part_Text.text]]
+ * [[:develop:api:efl:ui:textpath_part:property:text|Efl.Ui.Textpath_Part.text]]
+ * [[:develop:api:efl:ui:alert_popup_part:property:text|Efl.Ui.Alert_Popup_Part.text]]
+ * [[:develop:api:efl:ui:text_part:property:text|Efl.Ui.Text_Part.text]]
+ * [[:develop:api:efl:ui:textpath:property:text|Efl.Ui.Textpath.text]]
+ * [[:develop:api:efl:ui:tags:property:text|Efl.Ui.Tags.text]]
+ * [[:develop:api:efl:ui:frame:property:text|Efl.Ui.Frame.text]]
+ * [[:develop:api:efl:ui:progressbar:property:text|Efl.Ui.Progressbar.text]]
+ * [[:develop:api:efl:ui:button:property:text|Efl.Ui.Button.text]]
+ * [[:develop:api:efl:ui:navigation_bar:property:text|Efl.Ui.Navigation_Bar.text]]
+ * [[:develop:api:efl:canvas:layout_part_invalid:property:text|Efl.Canvas.Layout_Part_Invalid.text]]
+ * [[:develop:api:efl:canvas:layout_part_text:property:text|Efl.Canvas.Layout_Part_Text.text]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/urgent.txt b/public_html/data/pages/develop/api/efl/ui/win/property/urgent.txt
new file mode 100644
index 00000000..699e4836
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/urgent.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Win.urgent~~
+====== Efl.Ui.Win.urgent ======
+
+===== Description =====
+
+%%The urgent state of a window.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:urgent:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **urgent** - %%The mode of a urgent window, one of %%[[:develop:api:efl:ui:win_urgent_mode|Efl.Ui.Win_Urgent_Mode]]%%.%%
+
+===== Signature =====
+
+
+@property urgent @beta {
+ get {}
+ set {}
+ values {
+ urgent: Efl.Ui.Win_Urgent_Mode;
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Win_Urgent_Mode efl_ui_win_urgent_get(const Eo *obj);
+void efl_ui_win_urgent_set(Eo *obj, Efl_Ui_Win_Urgent_Mode urgent);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:urgent|Efl.Ui.Win.urgent]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/visible.txt b/public_html/data/pages/develop/api/efl/ui/win/property/visible.txt
new file mode 100644
index 00000000..1e898417
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/visible.txt
@@ -0,0 +1,72 @@
+~~Title: Efl.Ui.Win.visible~~
+====== Efl.Ui.Win.visible ======
+
+===== Description =====
+
+%%The visibility of a canvas object.%%
+
+%%All canvas objects will become visible by default just before render. This means that it is not required to call %%[[:develop:api:efl:gfx:entity:property:visible|Efl.Gfx.Entity.visible.set]]%% after creating an object unless you want to create it without showing it. Note that this behavior is new since 1.21, and only applies to canvas objects created with the EO API (i.e. not the legacy C-only API). Other types of Gfx objects may or may not be visible by default.%%
+
+%%Note that many other parameters can prevent a visible object from actually being "visible" on screen. For instance if its color is fully transparent, or its parent is hidden, or it is clipped out, etc...%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:win:property:visible:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **v** - %%%%''true''%% if to make the object visible, %%''false''%% otherwise%%
+==== Getter ====
+
+%%Retrieves whether or not the given canvas object is visible.%%
+
+//Since 1.22//
+
+
+{{page>:develop:api-include:efl:ui:win:property:visible:getter_description&nouser&nolink&nodate}}
+
+==== Setter ====
+
+%%Shows or hides this object.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:visible:getter_description&nouser&nolink&nodate}}
+
+
+//Overridden from [[:develop:api:efl:ui:widget:property:visible|Efl.Gfx.Entity.visible]] **(set)**.//===== Signature =====
+
+
+@property visible @pure_virtual {
+ get {}
+ set {}
+ values {
+ v: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_gfx_entity_visible_get(const Eo *obj);
+void efl_gfx_entity_visible_set(Eo *obj, Eina_Bool v);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:gfx:entity:property:visible|Efl.Gfx.Entity.visible]]
+ * [[:develop:api:efl:canvas:vg:node:property:visible|Efl.Canvas.Vg.Node.visible]]
+ * [[:develop:api:efl:ui:win:property:visible|Efl.Ui.Win.visible]]
+ * [[:develop:api:efl:ui:image:property:visible|Efl.Ui.Image.visible]]
+ * [[:develop:api:efl:ui:widget:property:visible|Efl.Ui.Widget.visible]]
+ * [[:develop:api:efl:ui:animation_view:property:visible|Efl.Ui.Animation_View.visible]]
+ * [[:develop:api:efl:ui:text:property:visible|Efl.Ui.Text.visible]]
+ * [[:develop:api:efl:ui:popup:property:visible|Efl.Ui.Popup.visible]]
+ * [[:develop:api:efl:ui:navigation_bar_part_back_button:property:visible|Efl.Ui.Navigation_Bar_Part_Back_Button.visible]]
+ * [[:develop:api:efl:canvas:object:property:visible|Efl.Canvas.Object.visible]]
+ * [[:develop:api:efl:canvas:group:property:visible|Efl.Canvas.Group.visible]]
+ * [[:develop:api:efl:canvas:event_grabber:property:visible|Efl.Canvas.Event_Grabber.visible]]
+ * [[:develop:api:efl:canvas:layout:property:visible|Efl.Canvas.Layout.visible]]
+ * [[:develop:api:efl:ui:pan:property:visible|Efl.Ui.Pan.visible]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/win_name.txt b/public_html/data/pages/develop/api/efl/ui/win/property/win_name.txt
new file mode 100644
index 00000000..0a8dcc3e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/win_name.txt
@@ -0,0 +1,45 @@
+~~Title: Efl.Ui.Win.win_name~~
+====== Efl.Ui.Win.win_name ======
+
+===== Description =====
+
+%%The window name.%%
+
+%%The meaning of name depends on the underlying windowing system.%%
+
+%%The window name is a construction property that can only be set at creation time, before finalize. In C this means inside %%''efl_add''%%().%%
+
+
+@property win_name {
+ get {}
+ set {}
+ values {
+ name: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_ui_win_name_get(const Eo *obj);
+void efl_ui_win_name_set(Eo *obj, const char *name);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:win_name|Efl.Ui.Win.win_name]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/win_role.txt b/public_html/data/pages/develop/api/efl/ui/win/property/win_role.txt
new file mode 100644
index 00000000..4b079f1e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/win_role.txt
@@ -0,0 +1,41 @@
+~~Title: Efl.Ui.Win.win_role~~
+====== Efl.Ui.Win.win_role ======
+
+===== Description =====
+
+%%The role of the window.%%
+
+%%It is a hint of how the Window Manager should handle it. Unlike %%[[:develop:api:efl:ui:win:property:win_type|Efl.Ui.Win.win_type]]%% and %%[[:develop:api:efl:ui:win:property:win_name|Efl.Ui.Win.win_name]]%% this can be changed at runtime.%%
+
+%%The returned string is an internal one and should not be freed or modified. It will also be invalid if a new role is set or if the window is destroyed.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:win_role:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **role** - %%The role to set.%%
+
+===== Signature =====
+
+
+@property win_role @beta {
+ get {}
+ set {}
+ values {
+ role: string;
+ }
+}
+
+
+===== C signature =====
+
+
+const char *efl_ui_win_role_get(const Eo *obj);
+void efl_ui_win_role_set(Eo *obj, const char *role);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:win_role|Efl.Ui.Win.win_role]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/win_rotation.txt b/public_html/data/pages/develop/api/efl/ui/win/property/win_rotation.txt
new file mode 100644
index 00000000..d7f1f9af
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/win_rotation.txt
@@ -0,0 +1,39 @@
+~~Title: Efl.Ui.Win.win_rotation~~
+====== Efl.Ui.Win.win_rotation ======
+
+===== Description =====
+
+%%The rotation of this window%%
+
+%%The value will automatically change when the Window Manager of this window changes its rotation. This rotation is automatically applied to all %%[[:develop:api:efl:ui:layout|Efl.Ui.Layout]]%% objects.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:win_rotation:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **rotation** - %%The rotation of the window%%
+
+===== Signature =====
+
+
+@property win_rotation @beta {
+ get {}
+ set {}
+ values {
+ rotation: int;
+ }
+}
+
+
+===== C signature =====
+
+
+int efl_ui_win_rotation_get(const Eo *obj);
+void efl_ui_win_rotation_set(Eo *obj, int rotation);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:win_rotation|Efl.Ui.Win.win_rotation]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/win_type.txt b/public_html/data/pages/develop/api/efl/ui/win/property/win_type.txt
new file mode 100644
index 00000000..78085b7e
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/win_type.txt
@@ -0,0 +1,47 @@
+~~Title: Efl.Ui.Win.win_type~~
+====== Efl.Ui.Win.win_type ======
+
+===== Description =====
+
+%%The type of the window.%%
+
+%%It is a hint of how the Window Manager should handle it.%%
+
+%%The window type is a construction property that can only be set at creation time, before finalize. In C this means inside %%''efl_add''%%().%%
+
+
+@property win_type @beta {
+ get {}
+ set {}
+ values {
+ type: Efl.Ui.Win_Type (Efl.Ui.Win_Type.basic);
+ }
+}
+
+
+===== C signature =====
+
+
+Efl_Ui_Win_Type efl_ui_win_type_get(const Eo *obj);
+void efl_ui_win_type_set(Eo *obj, Efl_Ui_Win_Type type);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:win_type|Efl.Ui.Win.win_type]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/wm_available_profiles.txt b/public_html/data/pages/develop/api/efl/ui/win/property/wm_available_profiles.txt
new file mode 100644
index 00000000..ff2cdaf2
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/wm_available_profiles.txt
@@ -0,0 +1,37 @@
+~~Title: Efl.Ui.Win.wm_available_profiles~~
+====== Efl.Ui.Win.wm_available_profiles ======
+
+===== Description =====
+
+%%Available profiles on a window.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:wm_available_profiles:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **profiles** - %%A list of profiles.%%
+
+===== Signature =====
+
+
+@property wm_available_profiles @beta {
+ get {}
+ set {}
+ values {
+ profiles: const(array);
+ }
+}
+
+
+===== C signature =====
+
+
+const Eina_Array *efl_ui_win_wm_available_profiles_get(const Eo *obj);
+void efl_ui_win_wm_available_profiles_set(Eo *obj, const Eina_Array *profiles);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:wm_available_profiles|Efl.Ui.Win.wm_available_profiles]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win/property/wm_available_rotations.txt b/public_html/data/pages/develop/api/efl/ui/win/property/wm_available_rotations.txt
new file mode 100644
index 00000000..fcdf9671
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win/property/wm_available_rotations.txt
@@ -0,0 +1,47 @@
+~~Title: Efl.Ui.Win.wm_available_rotations~~
+====== Efl.Ui.Win.wm_available_rotations ======
+
+===== Description =====
+
+%%Defines which rotations this window supports.%%
+
+%%The window manager will refer to these hints and rotate the window accordingly, depending on the device orientation, for instance.%%
+
+//Since 1.22//
+{{page>:develop:api-include:efl:ui:win:property:wm_available_rotations:description&nouser&nolink&nodate}}
+
+===== Values =====
+
+ * **allow_0** - %%Normal orientation.%%
+ * **allow_90** - %%Rotated 90 degrees CCW.%%
+ * **allow_180** - %%Rotated 180 degrees.%%
+ * **allow_270** - %%Rotated 270 degrees CCW (i.e. 90 CW).%%
+
+===== Signature =====
+
+
+@property wm_available_rotations @beta {
+ get {
+ return: bool;
+ }
+ set {}
+ values {
+ allow_0: bool;
+ allow_90: bool;
+ allow_180: bool;
+ allow_270: bool;
+ }
+}
+
+
+===== C signature =====
+
+
+Eina_Bool efl_ui_win_wm_available_rotations_get(const Eo *obj, Eina_Bool *allow_0, Eina_Bool *allow_90, Eina_Bool *allow_180, Eina_Bool *allow_270);
+void efl_ui_win_wm_available_rotations_set(Eo *obj, Eina_Bool allow_0, Eina_Bool allow_90, Eina_Bool allow_180, Eina_Bool allow_270);
+
+
+===== Implemented by =====
+
+ * [[:develop:api:efl:ui:win:property:wm_available_rotations|Efl.Ui.Win.wm_available_rotations]]
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win_indicator_mode.txt b/public_html/data/pages/develop/api/efl/ui/win_indicator_mode.txt
new file mode 100644
index 00000000..b06f7f10
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win_indicator_mode.txt
@@ -0,0 +1,40 @@
+~~Title: Efl.Ui.Win_Indicator_Mode~~
+
+===== Description =====
+
+%%Defines the type indicator that can be shown.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:win_indicator_mode:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:ui:win_indicator_mode:fields&nouser&nolink&nodate}}
+
+ * **off** - %%Request to deactivate the indicator.%%
+ * **bg_opaque** - %%The indicator icon is opaque, as is the indicator background. The content of window is located at the end of the indicator. The area of indicator and window content are not overlapped.%%
+ * **bg_transparent** - %%The icon of indicator is opaque, but the background is transparent. The content of window is located under the indicator in Z-order. The area of indicator and window content are overlapped.%%
+ * **hidden** - %%The indicator is hidden so user can see only the content of window such as in video mode. If user flicks the upper side of window, the indicator is shown temporarily.%%
+
+===== Signature =====
+
+
+enum Efl.Ui.Win_Indicator_Mode {
+ off: 0,
+ bg_opaque,
+ bg_transparent,
+ hidden
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_UI_WIN_INDICATOR_MODE_OFF = 0,
+ EFL_UI_WIN_INDICATOR_MODE_BG_OPAQUE,
+ EFL_UI_WIN_INDICATOR_MODE_BG_TRANSPARENT,
+ EFL_UI_WIN_INDICATOR_MODE_HIDDEN
+} Efl_Ui_Win_Indicator_Mode;
+
diff --git a/public_html/data/pages/develop/api/efl/ui/win_move_resize_mode.txt b/public_html/data/pages/develop/api/efl/ui/win_move_resize_mode.txt
new file mode 100644
index 00000000..79a07664
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/ui/win_move_resize_mode.txt
@@ -0,0 +1,47 @@
+~~Title: Efl.Ui.Win_Move_Resize_Mode~~
+
+===== Description =====
+
+%%Define the move or resize mode of a window.%%
+
+%%The user can request the display server to start moving or resizing the window by combining these modes. However only limited combinations are allowed.%%
+
+%%Currently, only the following 9 combinations are permitted. More combinations may be added in future: 1. move, 2. top, 3. bottom, 4. left, 5. right, 6. top | left, 7. top | right, 8. bottom | left, 9. bottom | right.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efl:ui:win_move_resize_mode:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:ui:win_move_resize_mode:fields&nouser&nolink&nodate}}
+
+ * **move** - %%Start moving window%%
+ * **top** - %%Start resizing window to the top%%
+ * **bottom** - %%Start resizing window to the bottom%%
+ * **left** - %%Start resizing window to the left%%
+ * **right** - %%Start resizing window to the right%%
+
+===== Signature =====
+
+
+enum Efl.Ui.Win_Move_Resize_Mode {
+ move: 1,
+ top: 1 >> 1,
+ bottom: 1 >> 2,
+ left: 1 >> 3,
+ right: 1 >> 4
+}
+
+
+===== C signature =====
+
+
+typedef enum {
+ EFL_UI_WIN_MOVE_RESIZE_MODE_MOVE = 1,
+ EFL_UI_WIN_MOVE_RESIZE_MODE_TOP = 2 /* 1 >> 1 */,
+ EFL_UI_WIN_MOVE_RESIZE_MODE_BOTTOM = 4 /* 1 >> 2 */,
+ EFL_UI_WIN_MOVE_RESIZE_MODE_LEFT = 8 /* 1 >> 3 */,
+ EFL_UI_WIN_MOVE_RESIZE_MODE_RIGHT = 16 /* 1 >> 4 */
+} Efl_Ui_Win_Move_Resize_Mode;
+
diff --git a/public_html/data/pages/develop/api/efl/version.txt b/public_html/data/pages/develop/api/efl/version.txt
new file mode 100644
index 00000000..3bfd83fb
--- /dev/null
+++ b/public_html/data/pages/develop/api/efl/version.txt
@@ -0,0 +1,48 @@
+~~Title: Efl.Version~~
+
+===== Description =====
+
+%%This type describes the version of EFL with an optional variant.%%
+
+%%This may be used to query the current running version of EFL. Or it can be passed by applications at startup time to inform EFL of the version a certain application was built for.%%
+
+//Since 1.18//
+
+{{page>:develop:api-include:efl:version:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:efl:version:fields&nouser&nolink&nodate}}
+
+ * **major** - %%Major component of the version (>= 1).%%
+ * **minor** - %%Minor component of the version (>= 0).%%
+ * **micro** - %%Micro component of the version (>= 0).%%
+ * **revision** - %%Revision component of the version (>= 0).%%
+ * **flavor** - %%Special version string for this build of EFL, %%''null''%% for vanilla (upstream) EFL. Contains %%''EFL_VERSION_FLAVOR''%%.%%
+ * **build_id** - %%Contains %%''EFL_BUILD_ID''%%.%%
+
+===== Signature =====
+
+
+struct Efl.Version {
+ major: int;
+ minor: int;
+ micro: int;
+ revision: int;
+ flavor: string;
+ build_id: string;
+}
+
+
+===== C signature =====
+
+
+typedef struct _Efl_Version {
+ int major;
+ int minor;
+ int micro;
+ int revision;
+ const char *flavor;
+ const char *build_id;
+} Efl_Version;
+
diff --git a/public_html/data/pages/develop/api/efllayoutsignalcb.txt b/public_html/data/pages/develop/api/efllayoutsignalcb.txt
new file mode 100644
index 00000000..0efe1ebf
--- /dev/null
+++ b/public_html/data/pages/develop/api/efllayoutsignalcb.txt
@@ -0,0 +1,21 @@
+~~Title: EflLayoutSignalCb~~
+
+===== Description =====
+
+%%EflLayoutSignalCb function that is called when a specifc pair of signal/emission is triggered%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:efllayoutsignalcb:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+TODO
+
+
+===== C signature =====
+
+
+TODO
+
diff --git a/public_html/data/pages/develop/api/eina/error.txt b/public_html/data/pages/develop/api/eina/error.txt
new file mode 100644
index 00000000..87dcf71d
--- /dev/null
+++ b/public_html/data/pages/develop/api/eina/error.txt
@@ -0,0 +1,21 @@
+~~Title: Eina.Error~~
+
+===== Description =====
+
+%%Eina error type%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:eina:error:description&nouser&nolink&nodate}}
+
+===== Signature =====
+
+
+type @extern Eina.Error: int;
+
+
+===== C signature =====
+
+
+typedef int Eina_Error;
+
diff --git a/public_html/data/pages/develop/api/eina/file.txt b/public_html/data/pages/develop/api/eina/file.txt
new file mode 100644
index 00000000..13b700ac
--- /dev/null
+++ b/public_html/data/pages/develop/api/eina/file.txt
@@ -0,0 +1,26 @@
+~~Title: Eina.File~~
+
+===== Description =====
+
+%%Eina file data structure%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:eina:file:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:eina:file:fields&nouser&nolink&nodate}}
+
+
+===== Signature =====
+
+
+struct @extern Eina.File;
+
+
+===== C signature =====
+
+
+typedef struct _Eina_File Eina_File;
+
diff --git a/public_html/data/pages/develop/api/eina/matrix3.txt b/public_html/data/pages/develop/api/eina/matrix3.txt
new file mode 100644
index 00000000..db410d26
--- /dev/null
+++ b/public_html/data/pages/develop/api/eina/matrix3.txt
@@ -0,0 +1,55 @@
+~~Title: Eina.Matrix3~~
+
+===== Description =====
+
+%%Eina 3x3 Matrix%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:eina:matrix3:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:eina:matrix3:fields&nouser&nolink&nodate}}
+
+ * **xx** - %%XX matrix value%%
+ * **xy** - %%XY matrix value%%
+ * **xz** - %%XZ matrix value%%
+ * **yx** - %%YX matrix value%%
+ * **yy** - %%YY matrix value%%
+ * **yz** - %%YZ matrix value%%
+ * **zx** - %%ZX matrix value%%
+ * **zy** - %%ZY matrix value%%
+ * **zz** - %%ZZ matrix value%%
+
+===== Signature =====
+
+
+struct @extern Eina.Matrix3 {
+ xx: double;
+ xy: double;
+ xz: double;
+ yx: double;
+ yy: double;
+ yz: double;
+ zx: double;
+ zy: double;
+ zz: double;
+}
+
+
+===== C signature =====
+
+
+typedef struct _Eina_Matrix3 {
+ double xx;
+ double xy;
+ double xz;
+ double yx;
+ double yy;
+ double yz;
+ double zx;
+ double zy;
+ double zz;
+} Eina_Matrix3;
+
diff --git a/public_html/data/pages/develop/api/eina/position2d.txt b/public_html/data/pages/develop/api/eina/position2d.txt
new file mode 100644
index 00000000..a24b8727
--- /dev/null
+++ b/public_html/data/pages/develop/api/eina/position2d.txt
@@ -0,0 +1,34 @@
+~~Title: Eina.Position2D~~
+
+===== Description =====
+
+%%A 2D location in pixels.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:eina:position2d:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:eina:position2d:fields&nouser&nolink&nodate}}
+
+ * **x** - %%X position in pixels, from the top-left corner.%%
+ * **y** - %%Y position in pixels, from the top-left corner.%%
+
+===== Signature =====
+
+
+struct @extern Eina.Position2D {
+ x: int;
+ y: int;
+}
+
+
+===== C signature =====
+
+
+typedef struct _Eina_Position2D {
+ int x;
+ int y;
+} Eina_Position2D;
+
diff --git a/public_html/data/pages/develop/api/eina/promise.txt b/public_html/data/pages/develop/api/eina/promise.txt
new file mode 100644
index 00000000..e36c2e97
--- /dev/null
+++ b/public_html/data/pages/develop/api/eina/promise.txt
@@ -0,0 +1,26 @@
+~~Title: Eina.Promise~~
+
+===== Description =====
+
+%%Eina promise type%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:eina:promise:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:eina:promise:fields&nouser&nolink&nodate}}
+
+
+===== Signature =====
+
+
+struct @extern @free(eina_promise_free) Eina.Promise;
+
+
+===== C signature =====
+
+
+typedef struct _Eina_Promise Eina_Promise;
+
diff --git a/public_html/data/pages/develop/api/eina/rect.txt b/public_html/data/pages/develop/api/eina/rect.txt
new file mode 100644
index 00000000..b5118ba5
--- /dev/null
+++ b/public_html/data/pages/develop/api/eina/rect.txt
@@ -0,0 +1,40 @@
+~~Title: Eina.Rect~~
+
+===== Description =====
+
+%%A rectangle in pixel dimensions.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:eina:rect:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:eina:rect:fields&nouser&nolink&nodate}}
+
+ * **x** - %%X coordinate of the rectangle, from the top-left corner.%%
+ * **y** - %%Y coordinate of the rectangle, from the top-left corner.%%
+ * **w** - %%Width of the rectangle in pixels.%%
+ * **h** - %%Height of the rectangle in pixels.%%
+
+===== Signature =====
+
+
+struct @extern @free(eina_rectangle_free) Eina.Rect {
+ x: int;
+ y: int;
+ w: int;
+ h: int;
+}
+
+
+===== C signature =====
+
+
+typedef struct _Eina_Rect {
+ int x;
+ int y;
+ int w;
+ int h;
+} Eina_Rect;
+
diff --git a/public_html/data/pages/develop/api/eina/size2d.txt b/public_html/data/pages/develop/api/eina/size2d.txt
new file mode 100644
index 00000000..ff4ae875
--- /dev/null
+++ b/public_html/data/pages/develop/api/eina/size2d.txt
@@ -0,0 +1,34 @@
+~~Title: Eina.Size2D~~
+
+===== Description =====
+
+%%A 2D size in pixels.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:eina:size2d:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:eina:size2d:fields&nouser&nolink&nodate}}
+
+ * **w** - %%X position in pixels, from the top-left corner.%%
+ * **h** - %%Y position in pixels, from the top-left corner.%%
+
+===== Signature =====
+
+
+struct @extern Eina.Size2D {
+ w: int;
+ h: int;
+}
+
+
+===== C signature =====
+
+
+typedef struct _Eina_Size2D {
+ int w;
+ int h;
+} Eina_Size2D;
+
diff --git a/public_html/data/pages/develop/api/eina/vector2.txt b/public_html/data/pages/develop/api/eina/vector2.txt
new file mode 100644
index 00000000..a963158e
--- /dev/null
+++ b/public_html/data/pages/develop/api/eina/vector2.txt
@@ -0,0 +1,34 @@
+~~Title: Eina.Vector2~~
+
+===== Description =====
+
+%%A simple 2D vector type using floating point values.%%
+
+//Since 1.22//
+
+{{page>:develop:api-include:eina:vector2:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:eina:vector2:fields&nouser&nolink&nodate}}
+
+ * **x** - %%X coordinate.%%
+ * **y** - %%Y coordinate.%%
+
+===== Signature =====
+
+
+struct @extern Eina.Vector2 {
+ x: double;
+ y: double;
+}
+
+
+===== C signature =====
+
+
+typedef struct _Eina_Vector2 {
+ double x;
+ double y;
+} Eina_Vector2;
+
diff --git a/public_html/data/pages/develop/api/elm/photocam/error.txt b/public_html/data/pages/develop/api/elm/photocam/error.txt
new file mode 100644
index 00000000..0c733566
--- /dev/null
+++ b/public_html/data/pages/develop/api/elm/photocam/error.txt
@@ -0,0 +1,26 @@
+~~Title: Elm.Photocam.Error~~
+
+===== Description =====
+
+%%Photocam error information.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:elm:photocam:error:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:elm:photocam:error:fields&nouser&nolink&nodate}}
+
+
+===== Signature =====
+
+
+struct @extern Elm.Photocam.Error;
+
+
+===== C signature =====
+
+
+typedef struct _Elm_Photocam_Error Elm_Photocam_Error;
+
diff --git a/public_html/data/pages/develop/api/elm/photocam/progress.txt b/public_html/data/pages/develop/api/elm/photocam/progress.txt
new file mode 100644
index 00000000..a121f3a5
--- /dev/null
+++ b/public_html/data/pages/develop/api/elm/photocam/progress.txt
@@ -0,0 +1,26 @@
+~~Title: Elm.Photocam.Progress~~
+
+===== Description =====
+
+%%Photocam progress information.%%
+
+//Since 1.23//
+
+{{page>:develop:api-include:elm:photocam:progress:description&nouser&nolink&nodate}}
+
+===== Fields =====
+
+{{page>:develop:api-include:elm:photocam:progress:fields&nouser&nolink&nodate}}
+
+
+===== Signature =====
+
+
+struct @extern Elm.Photocam.Progress;
+
+
+===== C signature =====
+
+
+typedef struct _Elm_Photocam_Progress Elm_Photocam_Progress;
+
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_APP_EVENT_PAUSE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_APP_EVENT_PAUSE.txt
new file mode 100644
index 00000000..78efc096
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_APP_EVENT_PAUSE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:app:event:pause}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_APP_EVENT_RESUME.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_APP_EVENT_RESUME.txt
new file mode 100644
index 00000000..098d9614
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_APP_EVENT_RESUME.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:app:event:resume}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_APP_EVENT_SIGNAL_HUP.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_APP_EVENT_SIGNAL_HUP.txt
new file mode 100644
index 00000000..83699ccd
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_APP_EVENT_SIGNAL_HUP.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:app:event:signal_hup}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_APP_EVENT_SIGNAL_USR1.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_APP_EVENT_SIGNAL_USR1.txt
new file mode 100644
index 00000000..1bb60693
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_APP_EVENT_SIGNAL_USR1.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:app:event:signal_usr1}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_APP_EVENT_SIGNAL_USR2.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_APP_EVENT_SIGNAL_USR2.txt
new file mode 100644
index 00000000..371b4e61
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_APP_EVENT_SIGNAL_USR2.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:app:event:signal_usr2}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_APP_EVENT_STANDBY.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_APP_EVENT_STANDBY.txt
new file mode 100644
index 00000000..92079161
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_APP_EVENT_STANDBY.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:app:event:standby}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_APP_EVENT_TERMINATE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_APP_EVENT_TERMINATE.txt
new file mode 100644
index 00000000..c06883a4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_APP_EVENT_TERMINATE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:app:event:terminate}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_CALLBACK_PRIORITY_AFTER.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_CALLBACK_PRIORITY_AFTER.txt
new file mode 100644
index 00000000..7a78519b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_CALLBACK_PRIORITY_AFTER.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:callback_priority_after}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_CALLBACK_PRIORITY_BEFORE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_CALLBACK_PRIORITY_BEFORE.txt
new file mode 100644
index 00000000..b8615e06
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_CALLBACK_PRIORITY_BEFORE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:callback_priority_before}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_CALLBACK_PRIORITY_DEFAULT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_CALLBACK_PRIORITY_DEFAULT.txt
new file mode 100644
index 00000000..5de0065e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_CALLBACK_PRIORITY_DEFAULT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:callback_priority_default}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_GROUP_EVENT_MEMBER_ADDED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_GROUP_EVENT_MEMBER_ADDED.txt
new file mode 100644
index 00000000..d8e870d8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_GROUP_EVENT_MEMBER_ADDED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:group:event:member_added}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_GROUP_EVENT_MEMBER_REMOVED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_GROUP_EVENT_MEMBER_REMOVED.txt
new file mode 100644
index 00000000..3bc298f5
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_GROUP_EVENT_MEMBER_REMOVED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:group:event:member_removed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_OBJECT_EVENT_ANIMATOR_TICK.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_OBJECT_EVENT_ANIMATOR_TICK.txt
new file mode 100644
index 00000000..d182f010
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_OBJECT_EVENT_ANIMATOR_TICK.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:event:animator_tick}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_DEVICE_ADDED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_DEVICE_ADDED.txt
new file mode 100644
index 00000000..e29a8033
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_DEVICE_ADDED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:scene:event:device_added}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_DEVICE_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_DEVICE_CHANGED.txt
new file mode 100644
index 00000000..34c8750d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_DEVICE_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:scene:event:device_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_DEVICE_REMOVED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_DEVICE_REMOVED.txt
new file mode 100644
index 00000000..0628550f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_DEVICE_REMOVED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:scene:event:device_removed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_OBJECT_FOCUS_IN.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_OBJECT_FOCUS_IN.txt
new file mode 100644
index 00000000..23aa53e6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_OBJECT_FOCUS_IN.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:scene:event:object_focus_in}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_OBJECT_FOCUS_OUT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_OBJECT_FOCUS_OUT.txt
new file mode 100644
index 00000000..564bf453
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_OBJECT_FOCUS_OUT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:scene:event:object_focus_out}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_RENDER_POST.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_RENDER_POST.txt
new file mode 100644
index 00000000..116f0062
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_RENDER_POST.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:scene:event:render_post}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_RENDER_PRE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_RENDER_PRE.txt
new file mode 100644
index 00000000..5c022e4f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_RENDER_PRE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:scene:event:render_pre}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_SCENE_FOCUS_IN.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_SCENE_FOCUS_IN.txt
new file mode 100644
index 00000000..716a5606
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_SCENE_FOCUS_IN.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:scene:event:scene_focus_in}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_SCENE_FOCUS_OUT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_SCENE_FOCUS_OUT.txt
new file mode 100644
index 00000000..cc4131e4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_CANVAS_SCENE_EVENT_SCENE_FOCUS_OUT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:scene:event:scene_focus_out}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_CONTAINER_EVENT_CONTENT_ADDED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_CONTAINER_EVENT_CONTENT_ADDED.txt
new file mode 100644
index 00000000..21aea043
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_CONTAINER_EVENT_CONTENT_ADDED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:container:event:content_added}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_CONTAINER_EVENT_CONTENT_REMOVED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_CONTAINER_EVENT_CONTENT_REMOVED.txt
new file mode 100644
index 00000000..d1181234
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_CONTAINER_EVENT_CONTENT_REMOVED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:container:event:content_removed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_CONTENT_EVENT_CONTENT_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_CONTENT_EVENT_CONTENT_CHANGED.txt
new file mode 100644
index 00000000..aa1456c9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_CONTENT_EVENT_CONTENT_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:content:event:content_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_DEL.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_DEL.txt
new file mode 100644
index 00000000..b5601258
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_DEL.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:event:del}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_DESTRUCT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_DESTRUCT.txt
new file mode 100644
index 00000000..a675ca79
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_DESTRUCT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:event:destruct}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_FINGER_DOWN.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_FINGER_DOWN.txt
new file mode 100644
index 00000000..47bd3316
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_FINGER_DOWN.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:interface:event:finger_down}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_FINGER_MOVE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_FINGER_MOVE.txt
new file mode 100644
index 00000000..18827c05
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_FINGER_MOVE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:interface:event:finger_move}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_FINGER_UP.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_FINGER_UP.txt
new file mode 100644
index 00000000..95990e05
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_FINGER_UP.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:interface:event:finger_up}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_FOCUS_IN.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_FOCUS_IN.txt
new file mode 100644
index 00000000..4b889ff5
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_FOCUS_IN.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:interface:event:focus_in}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_FOCUS_OUT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_FOCUS_OUT.txt
new file mode 100644
index 00000000..47dcdf99
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_FOCUS_OUT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:interface:event:focus_out}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_HOLD.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_HOLD.txt
new file mode 100644
index 00000000..f248905a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_HOLD.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:interface:event:hold}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_INVALIDATE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_INVALIDATE.txt
new file mode 100644
index 00000000..50253698
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_INVALIDATE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:event:invalidate}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_KEY_DOWN.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_KEY_DOWN.txt
new file mode 100644
index 00000000..0de846e1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_KEY_DOWN.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:interface:event:key_down}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_KEY_UP.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_KEY_UP.txt
new file mode 100644
index 00000000..02975c9d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_KEY_UP.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:interface:event:key_up}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_NOREF.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_NOREF.txt
new file mode 100644
index 00000000..25318415
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_NOREF.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:event:noref}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_OWNERSHIP_SHARED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_OWNERSHIP_SHARED.txt
new file mode 100644
index 00000000..96cf3d05
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_OWNERSHIP_SHARED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:event:ownership_shared}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_OWNERSHIP_UNIQUE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_OWNERSHIP_UNIQUE.txt
new file mode 100644
index 00000000..e810c814
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_OWNERSHIP_UNIQUE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:event:ownership_unique}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_POINTER_AXIS.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_POINTER_AXIS.txt
new file mode 100644
index 00000000..7a0d2f8e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_POINTER_AXIS.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:interface:event:pointer_axis}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_POINTER_CANCEL.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_POINTER_CANCEL.txt
new file mode 100644
index 00000000..57268251
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_POINTER_CANCEL.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:interface:event:pointer_cancel}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_POINTER_DOWN.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_POINTER_DOWN.txt
new file mode 100644
index 00000000..4cad66e5
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_POINTER_DOWN.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:interface:event:pointer_down}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_POINTER_IN.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_POINTER_IN.txt
new file mode 100644
index 00000000..73175aa6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_POINTER_IN.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:interface:event:pointer_in}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_POINTER_MOVE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_POINTER_MOVE.txt
new file mode 100644
index 00000000..d1f02267
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_POINTER_MOVE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:interface:event:pointer_move}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_POINTER_OUT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_POINTER_OUT.txt
new file mode 100644
index 00000000..0ee6cd63
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_POINTER_OUT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:interface:event:pointer_out}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_POINTER_UP.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_POINTER_UP.txt
new file mode 100644
index 00000000..9bfe95f8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_POINTER_UP.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:interface:event:pointer_up}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_POINTER_WHEEL.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_POINTER_WHEEL.txt
new file mode 100644
index 00000000..3a45f738
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_EVENT_POINTER_WHEEL.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:interface:event:pointer_wheel}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CAP_BUTT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CAP_BUTT.txt
new file mode 100644
index 00000000..469165b1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CAP_BUTT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:cap}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CAP_LAST.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CAP_LAST.txt
new file mode 100644
index 00000000..469165b1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CAP_LAST.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:cap}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CAP_ROUND.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CAP_ROUND.txt
new file mode 100644
index 00000000..469165b1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CAP_ROUND.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:cap}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CAP_SQUARE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CAP_SQUARE.txt
new file mode 100644
index 00000000..469165b1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CAP_SQUARE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:cap}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CENTER_FILL_MODE_DEFAULT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CENTER_FILL_MODE_DEFAULT.txt
new file mode 100644
index 00000000..87ac4aa7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CENTER_FILL_MODE_DEFAULT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:center_fill_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CENTER_FILL_MODE_NONE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CENTER_FILL_MODE_NONE.txt
new file mode 100644
index 00000000..87ac4aa7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CENTER_FILL_MODE_NONE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:center_fill_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CENTER_FILL_MODE_SOLID.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CENTER_FILL_MODE_SOLID.txt
new file mode 100644
index 00000000..87ac4aa7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CENTER_FILL_MODE_SOLID.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:center_fill_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CHANGE_FLAG_ALL.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CHANGE_FLAG_ALL.txt
new file mode 100644
index 00000000..8709f75e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CHANGE_FLAG_ALL.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:change_flag}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CHANGE_FLAG_FILL.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CHANGE_FLAG_FILL.txt
new file mode 100644
index 00000000..8709f75e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CHANGE_FLAG_FILL.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:change_flag}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CHANGE_FLAG_MATRIX.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CHANGE_FLAG_MATRIX.txt
new file mode 100644
index 00000000..8709f75e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CHANGE_FLAG_MATRIX.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:change_flag}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CHANGE_FLAG_NONE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CHANGE_FLAG_NONE.txt
new file mode 100644
index 00000000..8709f75e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CHANGE_FLAG_NONE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:change_flag}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CHANGE_FLAG_PATH.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CHANGE_FLAG_PATH.txt
new file mode 100644
index 00000000..8709f75e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_CHANGE_FLAG_PATH.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:change_flag}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_ENTITY_EVENT_HINTS_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_ENTITY_EVENT_HINTS_CHANGED.txt
new file mode 100644
index 00000000..3b4c244e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_ENTITY_EVENT_HINTS_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint:event:hints_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_ENTITY_EVENT_POSITION_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_ENTITY_EVENT_POSITION_CHANGED.txt
new file mode 100644
index 00000000..7b8d5c21
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_ENTITY_EVENT_POSITION_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:entity:event:position_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_ENTITY_EVENT_SIZE_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_ENTITY_EVENT_SIZE_CHANGED.txt
new file mode 100644
index 00000000..1f069945
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_ENTITY_EVENT_SIZE_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:entity:event:size_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_ENTITY_EVENT_STACKING_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_ENTITY_EVENT_STACKING_CHANGED.txt
new file mode 100644
index 00000000..d79a089e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_ENTITY_EVENT_STACKING_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:stack:event:stacking_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_ENTITY_EVENT_VISIBILITY_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_ENTITY_EVENT_VISIBILITY_CHANGED.txt
new file mode 100644
index 00000000..0aa5922b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_ENTITY_EVENT_VISIBILITY_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:entity:event:visibility_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_GRADIENT_SPREAD_LAST.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_GRADIENT_SPREAD_LAST.txt
new file mode 100644
index 00000000..a99cd39d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_GRADIENT_SPREAD_LAST.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:gradient_spread}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_GRADIENT_SPREAD_PAD.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_GRADIENT_SPREAD_PAD.txt
new file mode 100644
index 00000000..a99cd39d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_GRADIENT_SPREAD_PAD.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:gradient_spread}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_GRADIENT_SPREAD_REFLECT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_GRADIENT_SPREAD_REFLECT.txt
new file mode 100644
index 00000000..a99cd39d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_GRADIENT_SPREAD_REFLECT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:gradient_spread}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_GRADIENT_SPREAD_REPEAT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_GRADIENT_SPREAD_REPEAT.txt
new file mode 100644
index 00000000..a99cd39d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_GRADIENT_SPREAD_REPEAT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:gradient_spread}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ALIGN_BOTTOM.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ALIGN_BOTTOM.txt
new file mode 100644
index 00000000..dda8bdee
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ALIGN_BOTTOM.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint_align_bottom}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ALIGN_CENTER.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ALIGN_CENTER.txt
new file mode 100644
index 00000000..9dc51ac7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ALIGN_CENTER.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint_align_center}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ALIGN_LEFT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ALIGN_LEFT.txt
new file mode 100644
index 00000000..81261240
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ALIGN_LEFT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint_align_left}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ALIGN_RIGHT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ALIGN_RIGHT.txt
new file mode 100644
index 00000000..fd7b3e1b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ALIGN_RIGHT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint_align_right}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ALIGN_TOP.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ALIGN_TOP.txt
new file mode 100644
index 00000000..559dd088
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ALIGN_TOP.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint_align_top}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ASPECT_BOTH.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ASPECT_BOTH.txt
new file mode 100644
index 00000000..53cee3ca
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ASPECT_BOTH.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint_aspect}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ASPECT_HORIZONTAL.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ASPECT_HORIZONTAL.txt
new file mode 100644
index 00000000..53cee3ca
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ASPECT_HORIZONTAL.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint_aspect}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ASPECT_NEITHER.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ASPECT_NEITHER.txt
new file mode 100644
index 00000000..53cee3ca
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ASPECT_NEITHER.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint_aspect}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ASPECT_NONE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ASPECT_NONE.txt
new file mode 100644
index 00000000..53cee3ca
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ASPECT_NONE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint_aspect}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ASPECT_VERTICAL.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ASPECT_VERTICAL.txt
new file mode 100644
index 00000000..53cee3ca
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_ASPECT_VERTICAL.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint_aspect}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_EXPAND.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_EXPAND.txt
new file mode 100644
index 00000000..471f0699
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_HINT_EXPAND.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint_expand}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_CONTENT_HINT_DYNAMIC.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_CONTENT_HINT_DYNAMIC.txt
new file mode 100644
index 00000000..8901b8f7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_CONTENT_HINT_DYNAMIC.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_content_hint}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_CONTENT_HINT_NONE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_CONTENT_HINT_NONE.txt
new file mode 100644
index 00000000..8901b8f7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_CONTENT_HINT_NONE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_content_hint}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_CONTENT_HINT_STATIC.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_CONTENT_HINT_STATIC.txt
new file mode 100644
index 00000000..8901b8f7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_CONTENT_HINT_STATIC.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_content_hint}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_EVENT_IMAGE_PRELOAD_STATE_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_EVENT_IMAGE_PRELOAD_STATE_CHANGED.txt
new file mode 100644
index 00000000..81a88295
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_EVENT_IMAGE_PRELOAD_STATE_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:event:image_preload_state_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_EVENT_IMAGE_RESIZED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_EVENT_IMAGE_RESIZED.txt
new file mode 100644
index 00000000..795fda29
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_EVENT_IMAGE_RESIZED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:event:image_resized}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_DOWN.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_DOWN.txt
new file mode 100644
index 00000000..2b09701e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_DOWN.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_orientation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_FLIP_BITMASK.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_FLIP_BITMASK.txt
new file mode 100644
index 00000000..2b09701e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_FLIP_BITMASK.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_orientation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_FLIP_HORIZONTAL.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_FLIP_HORIZONTAL.txt
new file mode 100644
index 00000000..2b09701e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_FLIP_HORIZONTAL.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_orientation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_FLIP_VERTICAL.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_FLIP_VERTICAL.txt
new file mode 100644
index 00000000..2b09701e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_FLIP_VERTICAL.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_orientation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_LEFT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_LEFT.txt
new file mode 100644
index 00000000..2b09701e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_LEFT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_orientation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_NONE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_NONE.txt
new file mode 100644
index 00000000..2b09701e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_NONE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_orientation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_RIGHT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_RIGHT.txt
new file mode 100644
index 00000000..2b09701e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_RIGHT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_orientation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_ROTATION_BITMASK.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_ROTATION_BITMASK.txt
new file mode 100644
index 00000000..2b09701e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_ROTATION_BITMASK.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_orientation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_UP.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_UP.txt
new file mode 100644
index 00000000..2b09701e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_ORIENTATION_UP.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_orientation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_HINT_DYNAMIC.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_HINT_DYNAMIC.txt
new file mode 100644
index 00000000..8eb8c0b3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_HINT_DYNAMIC.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_scale_hint}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_HINT_NONE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_HINT_NONE.txt
new file mode 100644
index 00000000..8eb8c0b3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_HINT_NONE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_scale_hint}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_HINT_STATIC.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_HINT_STATIC.txt
new file mode 100644
index 00000000..8eb8c0b3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_HINT_STATIC.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_scale_hint}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_METHOD_EXPAND.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_METHOD_EXPAND.txt
new file mode 100644
index 00000000..db9c121f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_METHOD_EXPAND.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_scale_method}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_METHOD_FILL.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_METHOD_FILL.txt
new file mode 100644
index 00000000..db9c121f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_METHOD_FILL.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_scale_method}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_METHOD_FIT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_METHOD_FIT.txt
new file mode 100644
index 00000000..db9c121f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_METHOD_FIT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_scale_method}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_METHOD_FIT_HEIGHT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_METHOD_FIT_HEIGHT.txt
new file mode 100644
index 00000000..db9c121f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_METHOD_FIT_HEIGHT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_scale_method}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_METHOD_FIT_WIDTH.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_METHOD_FIT_WIDTH.txt
new file mode 100644
index 00000000..db9c121f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_METHOD_FIT_WIDTH.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_scale_method}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_METHOD_NONE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_METHOD_NONE.txt
new file mode 100644
index 00000000..db9c121f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_METHOD_NONE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_scale_method}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_METHOD_TILE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_METHOD_TILE.txt
new file mode 100644
index 00000000..db9c121f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_IMAGE_SCALE_METHOD_TILE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_scale_method}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_JOIN_BEVEL.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_JOIN_BEVEL.txt
new file mode 100644
index 00000000..64cbfcae
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_JOIN_BEVEL.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:join}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_JOIN_LAST.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_JOIN_LAST.txt
new file mode 100644
index 00000000..64cbfcae
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_JOIN_LAST.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:join}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_JOIN_MITER.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_JOIN_MITER.txt
new file mode 100644
index 00000000..64cbfcae
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_JOIN_MITER.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:join}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_JOIN_ROUND.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_JOIN_ROUND.txt
new file mode 100644
index 00000000..64cbfcae
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_JOIN_ROUND.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:join}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_PATH_COMMAND_TYPE_CLOSE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_PATH_COMMAND_TYPE_CLOSE.txt
new file mode 100644
index 00000000..37311ab2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_PATH_COMMAND_TYPE_CLOSE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:path_command_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_PATH_COMMAND_TYPE_CUBIC_TO.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_PATH_COMMAND_TYPE_CUBIC_TO.txt
new file mode 100644
index 00000000..37311ab2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_PATH_COMMAND_TYPE_CUBIC_TO.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:path_command_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_PATH_COMMAND_TYPE_END.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_PATH_COMMAND_TYPE_END.txt
new file mode 100644
index 00000000..37311ab2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_PATH_COMMAND_TYPE_END.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:path_command_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_PATH_COMMAND_TYPE_LAST.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_PATH_COMMAND_TYPE_LAST.txt
new file mode 100644
index 00000000..37311ab2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_PATH_COMMAND_TYPE_LAST.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:path_command_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_PATH_COMMAND_TYPE_LINE_TO.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_PATH_COMMAND_TYPE_LINE_TO.txt
new file mode 100644
index 00000000..37311ab2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_PATH_COMMAND_TYPE_LINE_TO.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:path_command_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_PATH_COMMAND_TYPE_MOVE_TO.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_PATH_COMMAND_TYPE_MOVE_TO.txt
new file mode 100644
index 00000000..37311ab2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_PATH_COMMAND_TYPE_MOVE_TO.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:path_command_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_RENDER_OP_BLEND.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_RENDER_OP_BLEND.txt
new file mode 100644
index 00000000..247df3ea
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_RENDER_OP_BLEND.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:render_op}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_RENDER_OP_COPY.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_RENDER_OP_COPY.txt
new file mode 100644
index 00000000..247df3ea
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_RENDER_OP_COPY.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:render_op}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_RENDER_OP_LAST.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_RENDER_OP_LAST.txt
new file mode 100644
index 00000000..247df3ea
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_RENDER_OP_LAST.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:render_op}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_STACK_LAYER_MAX.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_STACK_LAYER_MAX.txt
new file mode 100644
index 00000000..ceb75b5c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_STACK_LAYER_MAX.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:stack_layer_max}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_STACK_LAYER_MIN.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_STACK_LAYER_MIN.txt
new file mode 100644
index 00000000..76392ec3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_GFX_STACK_LAYER_MIN.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:stack_layer_min}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_DEVICE_TYPE_GAMEPAD.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_DEVICE_TYPE_GAMEPAD.txt
new file mode 100644
index 00000000..e83f26e6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_DEVICE_TYPE_GAMEPAD.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:device_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_DEVICE_TYPE_KEYBOARD.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_DEVICE_TYPE_KEYBOARD.txt
new file mode 100644
index 00000000..e83f26e6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_DEVICE_TYPE_KEYBOARD.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:device_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_DEVICE_TYPE_MOUSE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_DEVICE_TYPE_MOUSE.txt
new file mode 100644
index 00000000..e83f26e6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_DEVICE_TYPE_MOUSE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:device_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_DEVICE_TYPE_NONE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_DEVICE_TYPE_NONE.txt
new file mode 100644
index 00000000..e83f26e6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_DEVICE_TYPE_NONE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:device_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_DEVICE_TYPE_PEN.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_DEVICE_TYPE_PEN.txt
new file mode 100644
index 00000000..e83f26e6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_DEVICE_TYPE_PEN.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:device_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_DEVICE_TYPE_SEAT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_DEVICE_TYPE_SEAT.txt
new file mode 100644
index 00000000..e83f26e6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_DEVICE_TYPE_SEAT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:device_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_DEVICE_TYPE_TOUCH.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_DEVICE_TYPE_TOUCH.txt
new file mode 100644
index 00000000..e83f26e6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_DEVICE_TYPE_TOUCH.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:device_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_DEVICE_TYPE_WAND.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_DEVICE_TYPE_WAND.txt
new file mode 100644
index 00000000..e83f26e6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_DEVICE_TYPE_WAND.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:device_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_EVENT_CLICKED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_EVENT_CLICKED.txt
new file mode 100644
index 00000000..5fea29fc
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_EVENT_CLICKED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:clickable:event:clicked}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_EVENT_CLICKED_ANY.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_EVENT_CLICKED_ANY.txt
new file mode 100644
index 00000000..9d223a8e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_EVENT_CLICKED_ANY.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:clickable:event:clicked_any}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_EVENT_LONGPRESSED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_EVENT_LONGPRESSED.txt
new file mode 100644
index 00000000..67eefadc
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_EVENT_LONGPRESSED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:clickable:event:longpressed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_EVENT_PRESSED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_EVENT_PRESSED.txt
new file mode 100644
index 00000000..212d9c65
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_EVENT_PRESSED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:clickable:event:pressed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_EVENT_UNPRESSED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_EVENT_UNPRESSED.txt
new file mode 100644
index 00000000..4fe1cfeb
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_EVENT_UNPRESSED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:clickable:event:unpressed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_FLAGS_NONE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_FLAGS_NONE.txt
new file mode 100644
index 00000000..b92a48b1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_FLAGS_NONE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:flags}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_FLAGS_PROCESSED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_FLAGS_PROCESSED.txt
new file mode 100644
index 00000000..b92a48b1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_FLAGS_PROCESSED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:flags}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_FLAGS_SCROLLING.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_FLAGS_SCROLLING.txt
new file mode 100644
index 00000000..b92a48b1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_FLAGS_SCROLLING.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:flags}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_LOCK_CAPS.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_LOCK_CAPS.txt
new file mode 100644
index 00000000..77ebbcfc
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_LOCK_CAPS.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:lock}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_LOCK_NONE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_LOCK_NONE.txt
new file mode 100644
index 00000000..77ebbcfc
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_LOCK_NONE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:lock}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_LOCK_NUM.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_LOCK_NUM.txt
new file mode 100644
index 00000000..77ebbcfc
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_LOCK_NUM.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:lock}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_LOCK_SCROLL.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_LOCK_SCROLL.txt
new file mode 100644
index 00000000..77ebbcfc
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_LOCK_SCROLL.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:lock}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_LOCK_SHIFT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_LOCK_SHIFT.txt
new file mode 100644
index 00000000..77ebbcfc
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_LOCK_SHIFT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:lock}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_MODIFIER_ALT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_MODIFIER_ALT.txt
new file mode 100644
index 00000000..51757fa7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_MODIFIER_ALT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:modifier}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_MODIFIER_ALTGR.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_MODIFIER_ALTGR.txt
new file mode 100644
index 00000000..51757fa7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_MODIFIER_ALTGR.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:modifier}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_MODIFIER_CONTROL.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_MODIFIER_CONTROL.txt
new file mode 100644
index 00000000..51757fa7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_MODIFIER_CONTROL.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:modifier}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_MODIFIER_HYPER.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_MODIFIER_HYPER.txt
new file mode 100644
index 00000000..51757fa7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_MODIFIER_HYPER.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:modifier}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_MODIFIER_META.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_MODIFIER_META.txt
new file mode 100644
index 00000000..51757fa7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_MODIFIER_META.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:modifier}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_MODIFIER_NONE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_MODIFIER_NONE.txt
new file mode 100644
index 00000000..51757fa7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_MODIFIER_NONE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:modifier}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_MODIFIER_SHIFT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_MODIFIER_SHIFT.txt
new file mode 100644
index 00000000..51757fa7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_MODIFIER_SHIFT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:modifier}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_MODIFIER_SUPER.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_MODIFIER_SUPER.txt
new file mode 100644
index 00000000..51757fa7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_INPUT_MODIFIER_SUPER.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:modifier}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_IO_CLOSER_EVENT_CLOSED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_IO_CLOSER_EVENT_CLOSED.txt
new file mode 100644
index 00000000..64d7509c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_IO_CLOSER_EVENT_CLOSED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:io:closer:event:closed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_IO_READER_EVENT_CAN_READ_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_IO_READER_EVENT_CAN_READ_CHANGED.txt
new file mode 100644
index 00000000..dab655ff
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_IO_READER_EVENT_CAN_READ_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:io:reader:event:can_read_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_IO_READER_EVENT_EOS.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_IO_READER_EVENT_EOS.txt
new file mode 100644
index 00000000..ea5e70c2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_IO_READER_EVENT_EOS.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:io:reader:event:eos}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_IO_WRITER_EVENT_CAN_WRITE_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_IO_WRITER_EVENT_CAN_WRITE_CHANGED.txt
new file mode 100644
index 00000000..49070f1e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_IO_WRITER_EVENT_CAN_WRITE_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:io:writer:event:can_write_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_LAYOUT_EVENT_CIRCULAR_DEPENDENCY.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_LAYOUT_EVENT_CIRCULAR_DEPENDENCY.txt
new file mode 100644
index 00000000..cbbfe158
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_LAYOUT_EVENT_CIRCULAR_DEPENDENCY.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:layout:calc:event:circular_dependency}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_LAYOUT_EVENT_RECALC.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_LAYOUT_EVENT_RECALC.txt
new file mode 100644
index 00000000..eec1a4bc
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_LAYOUT_EVENT_RECALC.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:layout:calc:event:recalc}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_EVENT_ARGUMENTS.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_EVENT_ARGUMENTS.txt
new file mode 100644
index 00000000..420d0474
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_EVENT_ARGUMENTS.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop:event:arguments}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_EVENT_IDLE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_EVENT_IDLE.txt
new file mode 100644
index 00000000..e9c562c5
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_EVENT_IDLE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop:event:idle}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_EVENT_IDLE_ENTER.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_EVENT_IDLE_ENTER.txt
new file mode 100644
index 00000000..88dd0838
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_EVENT_IDLE_ENTER.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop:event:idle_enter}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_EVENT_IDLE_EXIT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_EVENT_IDLE_EXIT.txt
new file mode 100644
index 00000000..13c5b59b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_EVENT_IDLE_EXIT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop:event:idle_exit}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_EVENT_POLL_HIGH.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_EVENT_POLL_HIGH.txt
new file mode 100644
index 00000000..28546f1a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_EVENT_POLL_HIGH.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop:event:poll_high}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_EVENT_POLL_LOW.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_EVENT_POLL_LOW.txt
new file mode 100644
index 00000000..8941f564
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_EVENT_POLL_LOW.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop:event:poll_low}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_EVENT_POLL_MEDIUM.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_EVENT_POLL_MEDIUM.txt
new file mode 100644
index 00000000..bb0d0735
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_EVENT_POLL_MEDIUM.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop:event:poll_medium}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_EVENT_QUIT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_EVENT_QUIT.txt
new file mode 100644
index 00000000..e081503f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_EVENT_QUIT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop:event:quit}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_TIMER_EVENT_TIMER_TICK.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_TIMER_EVENT_TIMER_TICK.txt
new file mode 100644
index 00000000..cc35ea1f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_LOOP_TIMER_EVENT_TIMER_TICK.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop_timer:event:timer_tick}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_MODEL_EVENT_CHILDREN_COUNT_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_MODEL_EVENT_CHILDREN_COUNT_CHANGED.txt
new file mode 100644
index 00000000..d7da5c67
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_MODEL_EVENT_CHILDREN_COUNT_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:model:event:children_count_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_MODEL_EVENT_CHILD_ADDED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_MODEL_EVENT_CHILD_ADDED.txt
new file mode 100644
index 00000000..084511c3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_MODEL_EVENT_CHILD_ADDED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:model:event:child_added}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_MODEL_EVENT_CHILD_REMOVED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_MODEL_EVENT_CHILD_REMOVED.txt
new file mode 100644
index 00000000..8847eb45
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_MODEL_EVENT_CHILD_REMOVED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:model:event:child_removed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_MODEL_EVENT_PROPERTIES_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_MODEL_EVENT_PROPERTIES_CHANGED.txt
new file mode 100644
index 00000000..c0f2da44
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_MODEL_EVENT_PROPERTIES_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:model:event:properties_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_PACK_EVENT_LAYOUT_UPDATED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_PACK_EVENT_LAYOUT_UPDATED.txt
new file mode 100644
index 00000000..eae81c85
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_PACK_EVENT_LAYOUT_UPDATED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_layout:event:layout_updated}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_AXIS.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_AXIS.txt
new file mode 100644
index 00000000..4a265a7b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_AXIS.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pointer:action}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_CANCEL.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_CANCEL.txt
new file mode 100644
index 00000000..4a265a7b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_CANCEL.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pointer:action}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_DOWN.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_DOWN.txt
new file mode 100644
index 00000000..4a265a7b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_DOWN.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pointer:action}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_IN.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_IN.txt
new file mode 100644
index 00000000..4a265a7b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_IN.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pointer:action}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_MOVE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_MOVE.txt
new file mode 100644
index 00000000..4a265a7b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_MOVE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pointer:action}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_NONE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_NONE.txt
new file mode 100644
index 00000000..4a265a7b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_NONE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pointer:action}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_OUT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_OUT.txt
new file mode 100644
index 00000000..4a265a7b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_OUT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pointer:action}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_UP.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_UP.txt
new file mode 100644
index 00000000..4a265a7b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_UP.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pointer:action}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_WHEEL.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_WHEEL.txt
new file mode 100644
index 00000000..4a265a7b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_ACTION_WHEEL.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pointer:action}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_FLAGS_DOUBLE_CLICK.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_FLAGS_DOUBLE_CLICK.txt
new file mode 100644
index 00000000..387c60b2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_FLAGS_DOUBLE_CLICK.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pointer:flags}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_FLAGS_NONE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_FLAGS_NONE.txt
new file mode 100644
index 00000000..387c60b2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_FLAGS_NONE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pointer:flags}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_FLAGS_TRIPLE_CLICK.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_FLAGS_TRIPLE_CLICK.txt
new file mode 100644
index 00000000..387c60b2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_POINTER_FLAGS_TRIPLE_CLICK.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pointer:flags}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_EVENT_EXIT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_EVENT_EXIT.txt
new file mode 100644
index 00000000..30845d4b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_EVENT_EXIT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:task:event:exit}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_FLAGS_EXIT_WITH_PARENT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_FLAGS_EXIT_WITH_PARENT.txt
new file mode 100644
index 00000000..e475d546
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_FLAGS_EXIT_WITH_PARENT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:task_flags}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_FLAGS_NONE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_FLAGS_NONE.txt
new file mode 100644
index 00000000..e475d546
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_FLAGS_NONE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:task_flags}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_FLAGS_NO_EXIT_CODE_ERROR.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_FLAGS_NO_EXIT_CODE_ERROR.txt
new file mode 100644
index 00000000..e475d546
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_FLAGS_NO_EXIT_CODE_ERROR.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:task_flags}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_FLAGS_USE_STDIN.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_FLAGS_USE_STDIN.txt
new file mode 100644
index 00000000..e475d546
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_FLAGS_USE_STDIN.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:task_flags}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_FLAGS_USE_STDOUT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_FLAGS_USE_STDOUT.txt
new file mode 100644
index 00000000..e475d546
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_FLAGS_USE_STDOUT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:task_flags}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_PRIORITY_BACKGROUND.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_PRIORITY_BACKGROUND.txt
new file mode 100644
index 00000000..c13ac84f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_PRIORITY_BACKGROUND.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:task_priority}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_PRIORITY_HIGH.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_PRIORITY_HIGH.txt
new file mode 100644
index 00000000..c13ac84f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_PRIORITY_HIGH.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:task_priority}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_PRIORITY_LOW.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_PRIORITY_LOW.txt
new file mode 100644
index 00000000..c13ac84f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_PRIORITY_LOW.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:task_priority}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_PRIORITY_NORMAL.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_PRIORITY_NORMAL.txt
new file mode 100644
index 00000000..c13ac84f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_PRIORITY_NORMAL.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:task_priority}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_PRIORITY_ULTRA.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_PRIORITY_ULTRA.txt
new file mode 100644
index 00000000..c13ac84f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_TASK_PRIORITY_ULTRA.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:task_priority}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_TEXT_BIDIRECTIONAL_TYPE_INHERIT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_TEXT_BIDIRECTIONAL_TYPE_INHERIT.txt
new file mode 100644
index 00000000..b34744e0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_TEXT_BIDIRECTIONAL_TYPE_INHERIT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:text_bidirectional_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_TEXT_BIDIRECTIONAL_TYPE_LTR.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_TEXT_BIDIRECTIONAL_TYPE_LTR.txt
new file mode 100644
index 00000000..b34744e0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_TEXT_BIDIRECTIONAL_TYPE_LTR.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:text_bidirectional_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_TEXT_BIDIRECTIONAL_TYPE_NATURAL.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_TEXT_BIDIRECTIONAL_TYPE_NATURAL.txt
new file mode 100644
index 00000000..b34744e0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_TEXT_BIDIRECTIONAL_TYPE_NATURAL.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:text_bidirectional_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_TEXT_BIDIRECTIONAL_TYPE_NEUTRAL.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_TEXT_BIDIRECTIONAL_TYPE_NEUTRAL.txt
new file mode 100644
index 00000000..b34744e0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_TEXT_BIDIRECTIONAL_TYPE_NEUTRAL.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:text_bidirectional_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_TEXT_BIDIRECTIONAL_TYPE_RTL.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_TEXT_BIDIRECTIONAL_TYPE_RTL.txt
new file mode 100644
index 00000000..b34744e0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_TEXT_BIDIRECTIONAL_TYPE_RTL.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:text_bidirectional_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_ALERT_POPUP_BUTTON_NEGATIVE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_ALERT_POPUP_BUTTON_NEGATIVE.txt
new file mode 100644
index 00000000..017d5481
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_ALERT_POPUP_BUTTON_NEGATIVE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:alert_popup_button}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_ALERT_POPUP_BUTTON_POSITIVE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_ALERT_POPUP_BUTTON_POSITIVE.txt
new file mode 100644
index 00000000..017d5481
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_ALERT_POPUP_BUTTON_POSITIVE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:alert_popup_button}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_ALERT_POPUP_BUTTON_USER.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_ALERT_POPUP_BUTTON_USER.txt
new file mode 100644
index 00000000..017d5481
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_ALERT_POPUP_BUTTON_USER.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:alert_popup_button}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_ALERT_POPUP_EVENT_BUTTON_CLICKED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_ALERT_POPUP_EVENT_BUTTON_CLICKED.txt
new file mode 100644
index 00000000..6f5cd781
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_ALERT_POPUP_EVENT_BUTTON_CLICKED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:alert_popup:event:button_clicked}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_AUTOREPEAT_EVENT_REPEATED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_AUTOREPEAT_EVENT_REPEATED.txt
new file mode 100644
index 00000000..ab36784c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_AUTOREPEAT_EVENT_REPEATED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:autorepeat:event:repeated}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_COLLECTION_VIEW_EVENT_ITEM_REALIZED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_COLLECTION_VIEW_EVENT_ITEM_REALIZED.txt
new file mode 100644
index 00000000..f891b682
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_COLLECTION_VIEW_EVENT_ITEM_REALIZED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:collection_view:event:item_realized}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_COLLECTION_VIEW_EVENT_ITEM_UNREALIZED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_COLLECTION_VIEW_EVENT_ITEM_UNREALIZED.txt
new file mode 100644
index 00000000..794af05f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_COLLECTION_VIEW_EVENT_ITEM_UNREALIZED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:collection_view:event:item_unrealized}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_DATEPICKER_EVENT_DATE_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_DATEPICKER_EVENT_DATE_CHANGED.txt
new file mode 100644
index 00000000..9afd4efd
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_DATEPICKER_EVENT_DATE_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:datepicker:event:date_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_EDGE_DOWN.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_EDGE_DOWN.txt
new file mode 100644
index 00000000..5ebdb233
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_EDGE_DOWN.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:event:edge_down}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_EDGE_LEFT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_EDGE_LEFT.txt
new file mode 100644
index 00000000..52109804
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_EDGE_LEFT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:event:edge_left}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_EDGE_RIGHT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_EDGE_RIGHT.txt
new file mode 100644
index 00000000..76817495
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_EDGE_RIGHT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:event:edge_right}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_EDGE_UP.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_EDGE_UP.txt
new file mode 100644
index 00000000..9fab527b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_EDGE_UP.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:event:edge_up}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_ANIM_FINISHED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_ANIM_FINISHED.txt
new file mode 100644
index 00000000..cf8d656d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_ANIM_FINISHED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:event:scroll_anim_finished}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_ANIM_STARTED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_ANIM_STARTED.txt
new file mode 100644
index 00000000..9ddc088e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_ANIM_STARTED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:event:scroll_anim_started}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_CHANGED.txt
new file mode 100644
index 00000000..65560740
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:event:scroll_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_DOWN.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_DOWN.txt
new file mode 100644
index 00000000..f81d6366
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_DOWN.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:event:scroll_down}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_DRAG_FINISHED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_DRAG_FINISHED.txt
new file mode 100644
index 00000000..159d9e29
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_DRAG_FINISHED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:event:scroll_drag_finished}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_DRAG_STARTED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_DRAG_STARTED.txt
new file mode 100644
index 00000000..e1dda003
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_DRAG_STARTED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:event:scroll_drag_started}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_FINISHED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_FINISHED.txt
new file mode 100644
index 00000000..d852721b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_FINISHED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:event:scroll_finished}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_LEFT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_LEFT.txt
new file mode 100644
index 00000000..93534ff9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_LEFT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:event:scroll_left}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_RIGHT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_RIGHT.txt
new file mode 100644
index 00000000..b091429a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_RIGHT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:event:scroll_right}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_STARTED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_STARTED.txt
new file mode 100644
index 00000000..49b4af14
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_STARTED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:event:scroll_started}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_UP.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_UP.txt
new file mode 100644
index 00000000..2f3834b3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SCROLL_UP.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:event:scroll_up}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SELECTED_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SELECTED_CHANGED.txt
new file mode 100644
index 00000000..86aea3e1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_EVENT_SELECTED_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:selectable:event:selected_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FACTORY_EVENT_ITEM_BUILDING.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FACTORY_EVENT_ITEM_BUILDING.txt
new file mode 100644
index 00000000..04e81539
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FACTORY_EVENT_ITEM_BUILDING.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:factory:event:item_building}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FACTORY_EVENT_ITEM_CONSTRUCTING.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FACTORY_EVENT_ITEM_CONSTRUCTING.txt
new file mode 100644
index 00000000..7e3e8446
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FACTORY_EVENT_ITEM_CONSTRUCTING.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:factory:event:item_constructing}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FACTORY_EVENT_ITEM_CREATED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FACTORY_EVENT_ITEM_CREATED.txt
new file mode 100644
index 00000000..4c6a6a33
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FACTORY_EVENT_ITEM_CREATED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:factory:event:item_created}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FACTORY_EVENT_ITEM_RELEASING.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FACTORY_EVENT_ITEM_RELEASING.txt
new file mode 100644
index 00000000..e88c3c2d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FACTORY_EVENT_ITEM_RELEASING.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:factory:event:item_releasing}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_DIRECTION_DOWN.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_DIRECTION_DOWN.txt
new file mode 100644
index 00000000..a8b6b57d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_DIRECTION_DOWN.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:direction}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_DIRECTION_LAST.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_DIRECTION_LAST.txt
new file mode 100644
index 00000000..a8b6b57d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_DIRECTION_LAST.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:direction}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_DIRECTION_LEFT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_DIRECTION_LEFT.txt
new file mode 100644
index 00000000..a8b6b57d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_DIRECTION_LEFT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:direction}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_DIRECTION_NEXT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_DIRECTION_NEXT.txt
new file mode 100644
index 00000000..a8b6b57d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_DIRECTION_NEXT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:direction}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_DIRECTION_PREVIOUS.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_DIRECTION_PREVIOUS.txt
new file mode 100644
index 00000000..a8b6b57d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_DIRECTION_PREVIOUS.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:direction}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_DIRECTION_RIGHT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_DIRECTION_RIGHT.txt
new file mode 100644
index 00000000..a8b6b57d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_DIRECTION_RIGHT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:direction}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_DIRECTION_UP.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_DIRECTION_UP.txt
new file mode 100644
index 00000000..a8b6b57d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_DIRECTION_UP.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:direction}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_MANAGER_EVENT_COORDS_DIRTY.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_MANAGER_EVENT_COORDS_DIRTY.txt
new file mode 100644
index 00000000..b6e30095
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_MANAGER_EVENT_COORDS_DIRTY.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager:event:coords_dirty}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_MANAGER_EVENT_DIRTY_LOGIC_FREEZE_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_MANAGER_EVENT_DIRTY_LOGIC_FREEZE_CHANGED.txt
new file mode 100644
index 00000000..e35522aa
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_MANAGER_EVENT_DIRTY_LOGIC_FREEZE_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager:event:dirty_logic_freeze_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_MANAGER_EVENT_FLUSH_PRE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_MANAGER_EVENT_FLUSH_PRE.txt
new file mode 100644
index 00000000..649c7a5b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_MANAGER_EVENT_FLUSH_PRE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager:event:flush_pre}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_MANAGER_EVENT_MANAGER_FOCUS_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_MANAGER_EVENT_MANAGER_FOCUS_CHANGED.txt
new file mode 100644
index 00000000..9dc9f888
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_MANAGER_EVENT_MANAGER_FOCUS_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager:event:manager_focus_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_MANAGER_EVENT_REDIRECT_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_MANAGER_EVENT_REDIRECT_CHANGED.txt
new file mode 100644
index 00000000..1709499b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_MANAGER_EVENT_REDIRECT_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager:event:redirect_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_MOVE_POLICY_CLICK.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_MOVE_POLICY_CLICK.txt
new file mode 100644
index 00000000..5796be89
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_MOVE_POLICY_CLICK.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:move_policy}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_MOVE_POLICY_KEY_ONLY.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_MOVE_POLICY_KEY_ONLY.txt
new file mode 100644
index 00000000..5796be89
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_MOVE_POLICY_KEY_ONLY.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:move_policy}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_MOVE_POLICY_MOVE_IN.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_MOVE_POLICY_MOVE_IN.txt
new file mode 100644
index 00000000..5796be89
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_MOVE_POLICY_MOVE_IN.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:move_policy}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_OBJECT_EVENT_CHILD_FOCUS_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_OBJECT_EVENT_CHILD_FOCUS_CHANGED.txt
new file mode 100644
index 00000000..38c59f06
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_OBJECT_EVENT_CHILD_FOCUS_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:object:event:child_focus_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_CHANGED.txt
new file mode 100644
index 00000000..1a8ce542
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:object:event:focus_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_GEOMETRY_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_GEOMETRY_CHANGED.txt
new file mode 100644
index 00000000..8fce289d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_GEOMETRY_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:object:event:focus_geometry_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_MANAGER_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_MANAGER_CHANGED.txt
new file mode 100644
index 00000000..75251a5f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_MANAGER_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:object:event:focus_manager_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_PARENT_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_PARENT_CHANGED.txt
new file mode 100644
index 00000000..91f866c8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_PARENT_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:object:event:focus_parent_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FORMAT_STRING_TYPE_SIMPLE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FORMAT_STRING_TYPE_SIMPLE.txt
new file mode 100644
index 00000000..d8db54e0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FORMAT_STRING_TYPE_SIMPLE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:format_string_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FORMAT_STRING_TYPE_TIME.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FORMAT_STRING_TYPE_TIME.txt
new file mode 100644
index 00000000..d8db54e0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_FORMAT_STRING_TYPE_TIME.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:format_string_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_EVENT_DROP.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_EVENT_DROP.txt
new file mode 100644
index 00000000..b4bd3118
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_EVENT_DROP.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:image:event:drop}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_DONE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_DONE.txt
new file mode 100644
index 00000000..531a1e22
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_DONE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:image_zoomable:event:download_done}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_ERROR.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_ERROR.txt
new file mode 100644
index 00000000..8c157ef7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_ERROR.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:image_zoomable:event:download_error}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_PROGRESS.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_PROGRESS.txt
new file mode 100644
index 00000000..d921d5f3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_PROGRESS.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:image_zoomable:event:download_progress}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_START.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_START.txt
new file mode 100644
index 00000000..d0e6ca02
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_START.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:image_zoomable:event:download_start}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_LOAD.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_LOAD.txt
new file mode 100644
index 00000000..61b5e232
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_LOAD.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:image_zoomable:event:load}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_LOADED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_LOADED.txt
new file mode 100644
index 00000000..95ee89f7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_LOADED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:image_zoomable:event:loaded}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_LOADED_DETAIL.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_LOADED_DETAIL.txt
new file mode 100644
index 00000000..8c0725cf
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_LOADED_DETAIL.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:image_zoomable:event:loaded_detail}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_LOAD_DETAIL.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_LOAD_DETAIL.txt
new file mode 100644
index 00000000..50d5502c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_LOAD_DETAIL.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:image_zoomable:event:load_detail}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_PRESS.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_PRESS.txt
new file mode 100644
index 00000000..676055d6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_IMAGE_ZOOMABLE_EVENT_PRESS.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:image_zoomable:event:press}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_LAYOUT_EVENT_THEME_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_LAYOUT_EVENT_THEME_CHANGED.txt
new file mode 100644
index 00000000..6b93529c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_LAYOUT_EVENT_THEME_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout_base:event:theme_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_LAYOUT_ORIENTATION_AXIS_BITMASK.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_LAYOUT_ORIENTATION_AXIS_BITMASK.txt
new file mode 100644
index 00000000..a111ba2c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_LAYOUT_ORIENTATION_AXIS_BITMASK.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout_orientation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_LAYOUT_ORIENTATION_DEFAULT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_LAYOUT_ORIENTATION_DEFAULT.txt
new file mode 100644
index 00000000..a111ba2c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_LAYOUT_ORIENTATION_DEFAULT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout_orientation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL.txt
new file mode 100644
index 00000000..a111ba2c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout_orientation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_LAYOUT_ORIENTATION_INVERTED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_LAYOUT_ORIENTATION_INVERTED.txt
new file mode 100644
index 00000000..a111ba2c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_LAYOUT_ORIENTATION_INVERTED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout_orientation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_LAYOUT_ORIENTATION_VERTICAL.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_LAYOUT_ORIENTATION_VERTICAL.txt
new file mode 100644
index 00000000..a111ba2c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_LAYOUT_ORIENTATION_VERTICAL.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout_orientation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_POPUP_ALIGN_BOTTOM.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_POPUP_ALIGN_BOTTOM.txt
new file mode 100644
index 00000000..cfce59f8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_POPUP_ALIGN_BOTTOM.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:popup_align}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_POPUP_ALIGN_CENTER.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_POPUP_ALIGN_CENTER.txt
new file mode 100644
index 00000000..cfce59f8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_POPUP_ALIGN_CENTER.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:popup_align}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_POPUP_ALIGN_LEFT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_POPUP_ALIGN_LEFT.txt
new file mode 100644
index 00000000..cfce59f8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_POPUP_ALIGN_LEFT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:popup_align}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_POPUP_ALIGN_NONE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_POPUP_ALIGN_NONE.txt
new file mode 100644
index 00000000..cfce59f8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_POPUP_ALIGN_NONE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:popup_align}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_POPUP_ALIGN_RIGHT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_POPUP_ALIGN_RIGHT.txt
new file mode 100644
index 00000000..cfce59f8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_POPUP_ALIGN_RIGHT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:popup_align}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_POPUP_ALIGN_TOP.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_POPUP_ALIGN_TOP.txt
new file mode 100644
index 00000000..cfce59f8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_POPUP_ALIGN_TOP.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:popup_align}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_POPUP_EVENT_BACKWALL_CLICKED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_POPUP_EVENT_BACKWALL_CLICKED.txt
new file mode 100644
index 00000000..91686c94
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_POPUP_EVENT_BACKWALL_CLICKED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:popup:event:backwall_clicked}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_POPUP_EVENT_TIMEOUT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_POPUP_EVENT_TIMEOUT.txt
new file mode 100644
index 00000000..1914bf09
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_POPUP_EVENT_TIMEOUT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:popup:event:timeout}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_PROPERTY_BIND_EVENT_PROPERTIES_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_PROPERTY_BIND_EVENT_PROPERTIES_CHANGED.txt
new file mode 100644
index 00000000..fcb1fda4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_PROPERTY_BIND_EVENT_PROPERTIES_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:property_bind:event:properties_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_PROPERTY_BIND_EVENT_PROPERTY_BOUND.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_PROPERTY_BIND_EVENT_PROPERTY_BOUND.txt
new file mode 100644
index 00000000..528b073b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_PROPERTY_BIND_EVENT_PROPERTY_BOUND.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:property_bind:event:property_bound}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_RADIO_GROUP_EVENT_VALUE_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_RADIO_GROUP_EVENT_VALUE_CHANGED.txt
new file mode 100644
index 00000000..3fe5cb98
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_RADIO_GROUP_EVENT_VALUE_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:radio_group:event:value_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_RANGE_EVENT_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_RANGE_EVENT_CHANGED.txt
new file mode 100644
index 00000000..421b412a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_RANGE_EVENT_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:range_display:event:changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_RANGE_EVENT_MAX_REACHED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_RANGE_EVENT_MAX_REACHED.txt
new file mode 100644
index 00000000..eb4c8956
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_RANGE_EVENT_MAX_REACHED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:range_display:event:max_reached}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_RANGE_EVENT_MIN_REACHED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_RANGE_EVENT_MIN_REACHED.txt
new file mode 100644
index 00000000..f95de489
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_RANGE_EVENT_MIN_REACHED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:range_display:event:min_reached}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_RANGE_EVENT_STEADY.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_RANGE_EVENT_STEADY.txt
new file mode 100644
index 00000000..e255296c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_RANGE_EVENT_STEADY.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:range_interactive:event:steady}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_EVENT_BAR_DRAGGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_EVENT_BAR_DRAGGED.txt
new file mode 100644
index 00000000..30a9a3f7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_EVENT_BAR_DRAGGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollbar:event:bar_dragged}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_EVENT_BAR_HIDE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_EVENT_BAR_HIDE.txt
new file mode 100644
index 00000000..45d7985f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_EVENT_BAR_HIDE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollbar:event:bar_hide}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_EVENT_BAR_POS_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_EVENT_BAR_POS_CHANGED.txt
new file mode 100644
index 00000000..44ff884a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_EVENT_BAR_POS_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollbar:event:bar_pos_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_EVENT_BAR_PRESSED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_EVENT_BAR_PRESSED.txt
new file mode 100644
index 00000000..8f50112a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_EVENT_BAR_PRESSED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollbar:event:bar_pressed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_EVENT_BAR_SHOW.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_EVENT_BAR_SHOW.txt
new file mode 100644
index 00000000..459a3f8a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_EVENT_BAR_SHOW.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollbar:event:bar_show}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_EVENT_BAR_SIZE_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_EVENT_BAR_SIZE_CHANGED.txt
new file mode 100644
index 00000000..94aead31
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_EVENT_BAR_SIZE_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollbar:event:bar_size_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_EVENT_BAR_UNPRESSED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_EVENT_BAR_UNPRESSED.txt
new file mode 100644
index 00000000..4fe74f57
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_EVENT_BAR_UNPRESSED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollbar:event:bar_unpressed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_MODE_AUTO.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_MODE_AUTO.txt
new file mode 100644
index 00000000..99c92cc2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_MODE_AUTO.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollbar_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_MODE_LAST.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_MODE_LAST.txt
new file mode 100644
index 00000000..99c92cc2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_MODE_LAST.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollbar_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_MODE_OFF.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_MODE_OFF.txt
new file mode 100644
index 00000000..99c92cc2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_MODE_OFF.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollbar_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_MODE_ON.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_MODE_ON.txt
new file mode 100644
index 00000000..99c92cc2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SCROLLBAR_MODE_ON.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollbar_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SELECTABLE_EVENT_SELECTION_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SELECTABLE_EVENT_SELECTION_CHANGED.txt
new file mode 100644
index 00000000..72aa0108
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SELECTABLE_EVENT_SELECTION_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:single_selectable:event:selection_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SLIDER_EVENT_SLIDER_DRAG_START.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SLIDER_EVENT_SLIDER_DRAG_START.txt
new file mode 100644
index 00000000..73baecaa
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SLIDER_EVENT_SLIDER_DRAG_START.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:slider:event:slider_drag_start}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SLIDER_EVENT_SLIDER_DRAG_STOP.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SLIDER_EVENT_SLIDER_DRAG_STOP.txt
new file mode 100644
index 00000000..a43dad4e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_SLIDER_EVENT_SLIDER_DRAG_STOP.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:slider:event:slider_drag_stop}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_TIMEPICKER_EVENT_TIME_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_TIMEPICKER_EVENT_TIME_CHANGED.txt
new file mode 100644
index 00000000..e4e53257
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_TIMEPICKER_EVENT_TIME_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:timepicker:event:time_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_VIEW_EVENT_MODEL_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_VIEW_EVENT_MODEL_CHANGED.txt
new file mode 100644
index 00000000..6276f3ab
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_VIEW_EVENT_MODEL_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:view:event:model_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIDGET_EVENT_ACCESS_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIDGET_EVENT_ACCESS_CHANGED.txt
new file mode 100644
index 00000000..6b6020e0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIDGET_EVENT_ACCESS_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:event:access_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIDGET_EVENT_LANGUAGE_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIDGET_EVENT_LANGUAGE_CHANGED.txt
new file mode 100644
index 00000000..fe154353
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIDGET_EVENT_LANGUAGE_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:event:language_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_DELETE_REQUEST.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_DELETE_REQUEST.txt
new file mode 100644
index 00000000..661bbe7f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_DELETE_REQUEST.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:event:delete_request}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_ELM_ACTION_BLOCK_MENU.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_ELM_ACTION_BLOCK_MENU.txt
new file mode 100644
index 00000000..dba0071a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_ELM_ACTION_BLOCK_MENU.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:event:elm_action_block_menu}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_FULLSCREEN_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_FULLSCREEN_CHANGED.txt
new file mode 100644
index 00000000..d4cf8a91
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_FULLSCREEN_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:event:fullscreen_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_INDICATOR_PROP_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_INDICATOR_PROP_CHANGED.txt
new file mode 100644
index 00000000..c3de43ca
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_INDICATOR_PROP_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:event:indicator_prop_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_MAXIMIZED_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_MAXIMIZED_CHANGED.txt
new file mode 100644
index 00000000..f6c60b0b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_MAXIMIZED_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:event:maximized_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_MINIMIZED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_MINIMIZED.txt
new file mode 100644
index 00000000..c61d4155
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_MINIMIZED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:event:minimized}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_NORMAL.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_NORMAL.txt
new file mode 100644
index 00000000..666cf48e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_NORMAL.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:event:normal}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_PAUSE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_PAUSE.txt
new file mode 100644
index 00000000..d77fa593
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_PAUSE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:event:pause}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_PROFILE_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_PROFILE_CHANGED.txt
new file mode 100644
index 00000000..e8392d8e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_PROFILE_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:event:profile_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_RESUME.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_RESUME.txt
new file mode 100644
index 00000000..f5ad8434
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_RESUME.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:event:resume}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_STICK.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_STICK.txt
new file mode 100644
index 00000000..c8d8c801
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_STICK.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:event:stick}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_THEME_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_THEME_CHANGED.txt
new file mode 100644
index 00000000..985de507
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_THEME_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:event:theme_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_UNSTICK.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_UNSTICK.txt
new file mode 100644
index 00000000..8941b361
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_UNSTICK.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:event:unstick}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_WIN_ROTATION_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_WIN_ROTATION_CHANGED.txt
new file mode 100644
index 00000000..6e9aa14c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_WIN_ROTATION_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:event:win_rotation_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_WITHDRAWN.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_WITHDRAWN.txt
new file mode 100644
index 00000000..9d40ff0a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_WITHDRAWN.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:event:withdrawn}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_WM_ROTATION_CHANGED.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_WM_ROTATION_CHANGED.txt
new file mode 100644
index 00000000..48117d04
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_EVENT_WM_ROTATION_CHANGED.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:event:wm_rotation_changed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_INDICATOR_MODE_BG_OPAQUE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_INDICATOR_MODE_BG_OPAQUE.txt
new file mode 100644
index 00000000..d88055f2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_INDICATOR_MODE_BG_OPAQUE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win_indicator_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_INDICATOR_MODE_BG_TRANSPARENT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_INDICATOR_MODE_BG_TRANSPARENT.txt
new file mode 100644
index 00000000..d88055f2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_INDICATOR_MODE_BG_TRANSPARENT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win_indicator_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_INDICATOR_MODE_HIDDEN.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_INDICATOR_MODE_HIDDEN.txt
new file mode 100644
index 00000000..d88055f2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_INDICATOR_MODE_HIDDEN.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win_indicator_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_INDICATOR_MODE_OFF.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_INDICATOR_MODE_OFF.txt
new file mode 100644
index 00000000..d88055f2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_INDICATOR_MODE_OFF.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win_indicator_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_MOVE_RESIZE_MODE_BOTTOM.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_MOVE_RESIZE_MODE_BOTTOM.txt
new file mode 100644
index 00000000..0af27cdf
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_MOVE_RESIZE_MODE_BOTTOM.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win_move_resize_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_MOVE_RESIZE_MODE_LEFT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_MOVE_RESIZE_MODE_LEFT.txt
new file mode 100644
index 00000000..0af27cdf
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_MOVE_RESIZE_MODE_LEFT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win_move_resize_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_MOVE_RESIZE_MODE_MOVE.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_MOVE_RESIZE_MODE_MOVE.txt
new file mode 100644
index 00000000..0af27cdf
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_MOVE_RESIZE_MODE_MOVE.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win_move_resize_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_MOVE_RESIZE_MODE_RIGHT.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_MOVE_RESIZE_MODE_RIGHT.txt
new file mode 100644
index 00000000..0af27cdf
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_MOVE_RESIZE_MODE_RIGHT.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win_move_resize_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_MOVE_RESIZE_MODE_TOP.txt b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_MOVE_RESIZE_MODE_TOP.txt
new file mode 100644
index 00000000..0af27cdf
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/EFL_UI_WIN_MOVE_RESIZE_MODE_TOP.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win_move_resize_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_App.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_App.txt
new file mode 100644
index 00000000..14ce54a4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_App.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:app}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Callback_Priority.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Callback_Priority.txt
new file mode 100644
index 00000000..f0a39fbf
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Callback_Priority.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:callback_priority}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Canvas_Group.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Canvas_Group.txt
new file mode 100644
index 00000000..6802006e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Canvas_Group.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:group}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Canvas_Object.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Canvas_Object.txt
new file mode 100644
index 00000000..9da6d92c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Canvas_Object.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Canvas_Pointer.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Canvas_Pointer.txt
new file mode 100644
index 00000000..674b8d88
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Canvas_Pointer.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:pointer}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Canvas_Scene.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Canvas_Scene.txt
new file mode 100644
index 00000000..41973c8b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Canvas_Scene.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:scene}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Class.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Class.txt
new file mode 100644
index 00000000..8ae1d994
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Class.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:class}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Composite_Model.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Composite_Model.txt
new file mode 100644
index 00000000..60db2298
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Composite_Model.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:composite_model}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Container.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Container.txt
new file mode 100644
index 00000000..d12f4871
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Container.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:container}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Content.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Content.txt
new file mode 100644
index 00000000..82cc7c3e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Content.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:content}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Event_Animator_Tick.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Event_Animator_Tick.txt
new file mode 100644
index 00000000..fb3e48e3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Event_Animator_Tick.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:event_animator_tick}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Event_Description.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Event_Description.txt
new file mode 100644
index 00000000..b99dfe49
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Event_Description.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:event_description}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_File.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_File.txt
new file mode 100644
index 00000000..b040ed30
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_File.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:file}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_File_Save.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_File_Save.txt
new file mode 100644
index 00000000..e3305e84
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_File_Save.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:file_save}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_File_Save_Info.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_File_Save_Info.txt
new file mode 100644
index 00000000..eb17a9b4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_File_Save_Info.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:file_save_info}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Generic_Model.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Generic_Model.txt
new file mode 100644
index 00000000..e9bd2c95
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Generic_Model.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:generic_model}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Cap.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Cap.txt
new file mode 100644
index 00000000..469165b1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Cap.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:cap}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Center_Fill_Mode.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Center_Fill_Mode.txt
new file mode 100644
index 00000000..87ac4aa7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Center_Fill_Mode.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:center_fill_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Change_Flag.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Change_Flag.txt
new file mode 100644
index 00000000..8709f75e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Change_Flag.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:change_flag}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Color.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Color.txt
new file mode 100644
index 00000000..270efd7f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Color.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:color}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Dash.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Dash.txt
new file mode 100644
index 00000000..65ff4e2e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Dash.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:dash}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Entity.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Entity.txt
new file mode 100644
index 00000000..e25e5bd1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Entity.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:entity}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Event_Render_Post.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Event_Render_Post.txt
new file mode 100644
index 00000000..c8fce48c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Event_Render_Post.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:event:render_post}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Gradient_Spread.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Gradient_Spread.txt
new file mode 100644
index 00000000..a99cd39d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Gradient_Spread.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:gradient_spread}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Gradient_Stop.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Gradient_Stop.txt
new file mode 100644
index 00000000..0a729612
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Gradient_Stop.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:gradient_stop}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Hint.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Hint.txt
new file mode 100644
index 00000000..930170c6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Hint.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Hint_Aspect.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Hint_Aspect.txt
new file mode 100644
index 00000000..53cee3ca
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Hint_Aspect.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint_aspect}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Image.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Image.txt
new file mode 100644
index 00000000..e69ae6e3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Image.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Image_Content_Hint.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Image_Content_Hint.txt
new file mode 100644
index 00000000..8901b8f7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Image_Content_Hint.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_content_hint}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Image_Load_Controller.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Image_Load_Controller.txt
new file mode 100644
index 00000000..b11e8585
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Image_Load_Controller.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_load_controller}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Image_Orientable.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Image_Orientable.txt
new file mode 100644
index 00000000..ab0f6fa8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Image_Orientable.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_orientable}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Image_Orientation.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Image_Orientation.txt
new file mode 100644
index 00000000..2b09701e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Image_Orientation.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_orientation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Image_Scale_Hint.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Image_Scale_Hint.txt
new file mode 100644
index 00000000..8eb8c0b3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Image_Scale_Hint.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_scale_hint}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Image_Scale_Method.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Image_Scale_Method.txt
new file mode 100644
index 00000000..db9c121f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Image_Scale_Method.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_scale_method}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Image_Stretch_Region.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Image_Stretch_Region.txt
new file mode 100644
index 00000000..2f66c29f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Image_Stretch_Region.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_stretch_region}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Join.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Join.txt
new file mode 100644
index 00000000..64cbfcae
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Join.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:join}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Mapping.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Mapping.txt
new file mode 100644
index 00000000..8f48c9dc
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Mapping.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Path_Command_Type.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Path_Command_Type.txt
new file mode 100644
index 00000000..37311ab2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Path_Command_Type.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:path_command_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Render_Op.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Render_Op.txt
new file mode 100644
index 00000000..247df3ea
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Render_Op.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:render_op}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Stack.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Stack.txt
new file mode 100644
index 00000000..b49df919
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Gfx_Stack.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:stack}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Clickable.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Clickable.txt
new file mode 100644
index 00000000..c9d14502
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Clickable.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:clickable}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Clickable_Clicked.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Clickable_Clicked.txt
new file mode 100644
index 00000000..bb1b93bd
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Clickable_Clicked.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:clickable_clicked}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Device.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Device.txt
new file mode 100644
index 00000000..04cc08b2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Device.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:device}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Device_Type.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Device_Type.txt
new file mode 100644
index 00000000..e83f26e6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Device_Type.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:device_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Event.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Event.txt
new file mode 100644
index 00000000..d97a2491
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Event.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:event}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Flags.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Flags.txt
new file mode 100644
index 00000000..b92a48b1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Flags.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:flags}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Focus.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Focus.txt
new file mode 100644
index 00000000..6c6c3503
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Focus.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:focus}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Hold.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Hold.txt
new file mode 100644
index 00000000..205791fb
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Hold.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:hold}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Interface.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Interface.txt
new file mode 100644
index 00000000..383b3687
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Interface.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:interface}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Key.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Key.txt
new file mode 100644
index 00000000..d14d565b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Key.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:key}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Lock.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Lock.txt
new file mode 100644
index 00000000..77ebbcfc
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Lock.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:lock}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Modifier.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Modifier.txt
new file mode 100644
index 00000000..51757fa7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Modifier.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:modifier}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Pointer.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Pointer.txt
new file mode 100644
index 00000000..6254f26e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_Pointer.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Input_State.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_State.txt
new file mode 100644
index 00000000..bb758979
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Input_State.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:state}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Io_Closer.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Io_Closer.txt
new file mode 100644
index 00000000..d29f6421
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Io_Closer.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:io:closer}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Io_Reader.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Io_Reader.txt
new file mode 100644
index 00000000..0d4f7cb6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Io_Reader.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:io:reader}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Io_Writer.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Io_Writer.txt
new file mode 100644
index 00000000..64a2810a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Io_Writer.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:io:writer}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Layout_Calc.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Layout_Calc.txt
new file mode 100644
index 00000000..7853f6d2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Layout_Calc.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:layout:calc}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Layout_Group.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Layout_Group.txt
new file mode 100644
index 00000000..e19d073b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Layout_Group.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:layout:group}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Layout_Signal.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Layout_Signal.txt
new file mode 100644
index 00000000..46526254
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Layout_Signal.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:layout:signal}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Loop.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Loop.txt
new file mode 100644
index 00000000..693fb824
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Loop.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Loop_Arguments.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Loop_Arguments.txt
new file mode 100644
index 00000000..f8a7f5db
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Loop_Arguments.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop_arguments}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Loop_Consumer.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Loop_Consumer.txt
new file mode 100644
index 00000000..cc4ccf95
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Loop_Consumer.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop_consumer}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Loop_Model.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Loop_Model.txt
new file mode 100644
index 00000000..88b36a79
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Loop_Model.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop_model}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Loop_Timer.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Loop_Timer.txt
new file mode 100644
index 00000000..9a2b928e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Loop_Timer.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop_timer}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Model.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Model.txt
new file mode 100644
index 00000000..cf3804f4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Model.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:model}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Model_Changed_Event.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Model_Changed_Event.txt
new file mode 100644
index 00000000..176e9fc2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Model_Changed_Event.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:model_changed_event}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Model_Property_Event.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Model_Property_Event.txt
new file mode 100644
index 00000000..6d33b031
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Model_Property_Event.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:model_property_event}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Object.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Object.txt
new file mode 100644
index 00000000..7ff16413
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Object.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Pack.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Pack.txt
new file mode 100644
index 00000000..937ca9f4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Pack.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Pack_Layout.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Pack_Layout.txt
new file mode 100644
index 00000000..3c4c0b14
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Pack_Layout.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_layout}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Pack_Linear.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Pack_Linear.txt
new file mode 100644
index 00000000..08f4fde5
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Pack_Linear.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_linear}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Pack_Table.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Pack_Table.txt
new file mode 100644
index 00000000..4b60e323
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Pack_Table.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_table}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Part.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Part.txt
new file mode 100644
index 00000000..e34438ee
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Part.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:part}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Player.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Player.txt
new file mode 100644
index 00000000..de8a0a79
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Player.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:player}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Pointer_Action.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Pointer_Action.txt
new file mode 100644
index 00000000..4a265a7b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Pointer_Action.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pointer:action}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Pointer_Flags.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Pointer_Flags.txt
new file mode 100644
index 00000000..387c60b2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Pointer_Flags.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pointer:flags}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Screen.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Screen.txt
new file mode 100644
index 00000000..5332fc0b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Screen.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:screen}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Task.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Task.txt
new file mode 100644
index 00000000..da80c4d7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Task.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:task}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Task_Flags.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Task_Flags.txt
new file mode 100644
index 00000000..e475d546
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Task_Flags.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:task_flags}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Task_Priority.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Task_Priority.txt
new file mode 100644
index 00000000..c13ac84f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Task_Priority.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:task_priority}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Text.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Text.txt
new file mode 100644
index 00000000..aac2ca7a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Text.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:text}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Text_Bidirectional_Type.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Text_Bidirectional_Type.txt
new file mode 100644
index 00000000..b34744e0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Text_Bidirectional_Type.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:text_bidirectional_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Time.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Time.txt
new file mode 100644
index 00000000..d8e95502
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Time.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:time}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Alert_Popup.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Alert_Popup.txt
new file mode 100644
index 00000000..ac6b6469
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Alert_Popup.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:alert_popup}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Alert_Popup_Button.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Alert_Popup_Button.txt
new file mode 100644
index 00000000..017d5481
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Alert_Popup_Button.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:alert_popup_button}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Alert_Popup_Button_Clicked_Event.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Alert_Popup_Button_Clicked_Event.txt
new file mode 100644
index 00000000..648dcf86
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Alert_Popup_Button_Clicked_Event.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:alert_popup_button_clicked_event}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Autorepeat.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Autorepeat.txt
new file mode 100644
index 00000000..85147a41
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Autorepeat.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:autorepeat}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Bg.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Bg.txt
new file mode 100644
index 00000000..6204dee4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Bg.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:bg}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Box.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Box.txt
new file mode 100644
index 00000000..4ed07981
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Box.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:box}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Box_Flow.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Box_Flow.txt
new file mode 100644
index 00000000..40843d72
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Box_Flow.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:box_flow}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Box_Stack.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Box_Stack.txt
new file mode 100644
index 00000000..789f09a3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Box_Stack.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:box_stack}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Button.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Button.txt
new file mode 100644
index 00000000..4f7ffa96
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Button.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:button}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Check.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Check.txt
new file mode 100644
index 00000000..3f760455
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Check.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:check}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Collection.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Collection.txt
new file mode 100644
index 00000000..1db6c78e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Collection.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:collection}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Collection_View.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Collection_View.txt
new file mode 100644
index 00000000..fdf5d7d9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Collection_View.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:collection_view}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Datepicker.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Datepicker.txt
new file mode 100644
index 00000000..4bab95fe
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Datepicker.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:datepicker}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Default_Item.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Default_Item.txt
new file mode 100644
index 00000000..a31e293d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Default_Item.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:default_item}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Factory.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Factory.txt
new file mode 100644
index 00000000..3ec41cfe
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Factory.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:factory}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Factory_Bind.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Factory_Bind.txt
new file mode 100644
index 00000000..48ed9901
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Factory_Bind.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:factory_bind}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Factory_Item_Created_Event.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Factory_Item_Created_Event.txt
new file mode 100644
index 00000000..aa9effef
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Factory_Item_Created_Event.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:factory_item_created_event}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Focus_Direction.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Focus_Direction.txt
new file mode 100644
index 00000000..a8b6b57d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Focus_Direction.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:direction}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Focus_Manager.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Focus_Manager.txt
new file mode 100644
index 00000000..9ca725bb
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Focus_Manager.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Focus_Manager_Logical_End_Detail.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Focus_Manager_Logical_End_Detail.txt
new file mode 100644
index 00000000..3884afa3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Focus_Manager_Logical_End_Detail.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager_logical_end_detail}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Focus_Manager_Window_Root.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Focus_Manager_Window_Root.txt
new file mode 100644
index 00000000..f5b00e62
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Focus_Manager_Window_Root.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager_window_root}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Focus_Move_Policy.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Focus_Move_Policy.txt
new file mode 100644
index 00000000..5796be89
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Focus_Move_Policy.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:move_policy}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Focus_Object.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Focus_Object.txt
new file mode 100644
index 00000000..5fe182b1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Focus_Object.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:object}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Format.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Format.txt
new file mode 100644
index 00000000..7e78554c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Format.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:format}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Format_String_Type.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Format_String_Type.txt
new file mode 100644
index 00000000..d8db54e0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Format_String_Type.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:format_string_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Format_Value.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Format_Value.txt
new file mode 100644
index 00000000..71fb9f96
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Format_Value.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:format_value}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Grid.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Grid.txt
new file mode 100644
index 00000000..d1a8f68c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Grid.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:grid}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Grid_Default_Item.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Grid_Default_Item.txt
new file mode 100644
index 00000000..8bdcbda5
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Grid_Default_Item.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:grid_default_item}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Image.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Image.txt
new file mode 100644
index 00000000..7ffe3bb0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Image.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:image}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Image_Zoomable.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Image_Zoomable.txt
new file mode 100644
index 00000000..f04a63ed
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Image_Zoomable.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:image_zoomable}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Item.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Item.txt
new file mode 100644
index 00000000..12ef043d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Item.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:item}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout.txt
new file mode 100644
index 00000000..aaf84a89
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Base.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Base.txt
new file mode 100644
index 00000000..fca1753a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Base.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout_base}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Orientable.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Orientable.txt
new file mode 100644
index 00000000..a253dc44
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Orientable.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout_orientable}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Orientation.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Orientation.txt
new file mode 100644
index 00000000..a111ba2c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Orientation.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout_orientation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Part.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Part.txt
new file mode 100644
index 00000000..b8ca6344
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Part.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout_part}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Part_Bg.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Part_Bg.txt
new file mode 100644
index 00000000..92da437b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Part_Bg.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout_part_bg}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Part_Box.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Part_Box.txt
new file mode 100644
index 00000000..be723c71
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Part_Box.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout_part_box}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Part_Content.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Part_Content.txt
new file mode 100644
index 00000000..bec37e59
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Part_Content.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout_part_content}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Part_Table.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Part_Table.txt
new file mode 100644
index 00000000..0bdfab27
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Part_Table.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout_part_table}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Part_Text.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Part_Text.txt
new file mode 100644
index 00000000..443efa6f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Layout_Part_Text.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout_part_text}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_List.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_List.txt
new file mode 100644
index 00000000..9d15bc68
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_List.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:list}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_List_Default_Item.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_List_Default_Item.txt
new file mode 100644
index 00000000..046d149f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_List_Default_Item.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:list_default_item}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Popup.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Popup.txt
new file mode 100644
index 00000000..73043521
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Popup.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:popup}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Popup_Align.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Popup_Align.txt
new file mode 100644
index 00000000..cfce59f8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Popup_Align.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:popup_align}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Popup_Part_Backwall.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Popup_Part_Backwall.txt
new file mode 100644
index 00000000..05afae1c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Popup_Part_Backwall.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:popup_part_backwall}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Property_Bind.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Property_Bind.txt
new file mode 100644
index 00000000..09fcd878
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Property_Bind.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:property_bind}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Property_Event.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Property_Event.txt
new file mode 100644
index 00000000..e6da55af
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Property_Event.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:property_event}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Radio.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Radio.txt
new file mode 100644
index 00000000..bca44ab5
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Radio.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:radio}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Radio_Group.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Radio_Group.txt
new file mode 100644
index 00000000..b716ed03
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Radio_Group.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:radio_group}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Radio_Group_Impl.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Radio_Group_Impl.txt
new file mode 100644
index 00000000..8a94b5ed
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Radio_Group_Impl.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:radio_group_impl}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Range_Display.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Range_Display.txt
new file mode 100644
index 00000000..8b4c9015
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Range_Display.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:range_display}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Range_Interactive.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Range_Interactive.txt
new file mode 100644
index 00000000..9c0a1a3e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Range_Interactive.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:range_interactive}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Scrollable.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Scrollable.txt
new file mode 100644
index 00000000..eb4b7a48
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Scrollable.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Scrollbar.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Scrollbar.txt
new file mode 100644
index 00000000..63f051e6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Scrollbar.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollbar}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Scrollbar_Mode.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Scrollbar_Mode.txt
new file mode 100644
index 00000000..99c92cc2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Scrollbar_Mode.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollbar_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Scroller.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Scroller.txt
new file mode 100644
index 00000000..4e51cb1b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Scroller.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scroller}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Selectable.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Selectable.txt
new file mode 100644
index 00000000..d689e223
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Selectable.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:selectable}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Single_Selectable.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Single_Selectable.txt
new file mode 100644
index 00000000..a7761d5c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Single_Selectable.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:single_selectable}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Slider.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Slider.txt
new file mode 100644
index 00000000..90157b97
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Slider.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:slider}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Spin.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Spin.txt
new file mode 100644
index 00000000..5fc9087d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Spin.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:spin}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Spin_Button.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Spin_Button.txt
new file mode 100644
index 00000000..b4918b1a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Spin_Button.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:spin_button}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Table.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Table.txt
new file mode 100644
index 00000000..f36daddd
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Table.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:table}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Timepicker.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Timepicker.txt
new file mode 100644
index 00000000..d375b162
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Timepicker.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:timepicker}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_View.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_View.txt
new file mode 100644
index 00000000..e90fa957
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_View.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:view}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_View_Model.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_View_Model.txt
new file mode 100644
index 00000000..809f6cf1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_View_Model.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:view_model}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Widget.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Widget.txt
new file mode 100644
index 00000000..9f227713
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Widget.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Widget_Factory.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Widget_Factory.txt
new file mode 100644
index 00000000..ed154e47
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Widget_Factory.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget_factory}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Widget_Focus_Manager.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Widget_Focus_Manager.txt
new file mode 100644
index 00000000..d6332772
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Widget_Focus_Manager.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget_focus_manager}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Widget_Focus_State.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Widget_Focus_State.txt
new file mode 100644
index 00000000..e462ba6e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Widget_Focus_State.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget_focus_state}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Widget_Part.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Widget_Part.txt
new file mode 100644
index 00000000..3d624352
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Widget_Part.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget_part}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Widget_Part_Bg.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Widget_Part_Bg.txt
new file mode 100644
index 00000000..fb403063
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Widget_Part_Bg.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget_part_bg}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Widget_Part_Shadow.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Widget_Part_Shadow.txt
new file mode 100644
index 00000000..256e4315
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Widget_Part_Shadow.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget_part_shadow}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Win.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Win.txt
new file mode 100644
index 00000000..3fb690f3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Win.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Win_Indicator_Mode.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Win_Indicator_Mode.txt
new file mode 100644
index 00000000..d88055f2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Win_Indicator_Mode.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win_indicator_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Win_Move_Resize_Mode.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Win_Move_Resize_Mode.txt
new file mode 100644
index 00000000..0af27cdf
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Ui_Win_Move_Resize_Mode.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win_move_resize_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Efl_Version.txt b/public_html/data/pages/develop/api/ref/c/key/Efl_Version.txt
new file mode 100644
index 00000000..314d8463
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Efl_Version.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:version}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Eina_Error.txt b/public_html/data/pages/develop/api/ref/c/key/Eina_Error.txt
new file mode 100644
index 00000000..067acecb
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Eina_Error.txt
@@ -0,0 +1 @@
+{{page>:develop:api:eina:error}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Eina_File.txt b/public_html/data/pages/develop/api/ref/c/key/Eina_File.txt
new file mode 100644
index 00000000..a074c22f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Eina_File.txt
@@ -0,0 +1 @@
+{{page>:develop:api:eina:file}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Eina_Matrix3.txt b/public_html/data/pages/develop/api/ref/c/key/Eina_Matrix3.txt
new file mode 100644
index 00000000..da1609e4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Eina_Matrix3.txt
@@ -0,0 +1 @@
+{{page>:develop:api:eina:matrix3}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Eina_Position2D.txt b/public_html/data/pages/develop/api/ref/c/key/Eina_Position2D.txt
new file mode 100644
index 00000000..546ce920
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Eina_Position2D.txt
@@ -0,0 +1 @@
+{{page>:develop:api:eina:position2d}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Eina_Promise.txt b/public_html/data/pages/develop/api/ref/c/key/Eina_Promise.txt
new file mode 100644
index 00000000..65be4742
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Eina_Promise.txt
@@ -0,0 +1 @@
+{{page>:develop:api:eina:promise}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Eina_Rect.txt b/public_html/data/pages/develop/api/ref/c/key/Eina_Rect.txt
new file mode 100644
index 00000000..16661a10
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Eina_Rect.txt
@@ -0,0 +1 @@
+{{page>:develop:api:eina:rect}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Eina_Size2D.txt b/public_html/data/pages/develop/api/ref/c/key/Eina_Size2D.txt
new file mode 100644
index 00000000..b6760299
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Eina_Size2D.txt
@@ -0,0 +1 @@
+{{page>:develop:api:eina:size2d}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Eina_Vector2.txt b/public_html/data/pages/develop/api/ref/c/key/Eina_Vector2.txt
new file mode 100644
index 00000000..dd20d087
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Eina_Vector2.txt
@@ -0,0 +1 @@
+{{page>:develop:api:eina:vector2}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Elm_Photocam_Error.txt b/public_html/data/pages/develop/api/ref/c/key/Elm_Photocam_Error.txt
new file mode 100644
index 00000000..8df516f4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Elm_Photocam_Error.txt
@@ -0,0 +1 @@
+{{page>:develop:api:elm:photocam:error}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/Elm_Photocam_Progress.txt b/public_html/data/pages/develop/api/ref/c/key/Elm_Photocam_Progress.txt
new file mode 100644
index 00000000..52faaf4d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/Elm_Photocam_Progress.txt
@@ -0,0 +1 @@
+{{page>:develop:api:elm:photocam:progress}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_allow_parent_unref_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_allow_parent_unref_get.txt
new file mode 100644
index 00000000..0ec99335
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_allow_parent_unref_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:property:allow_parent_unref}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_allow_parent_unref_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_allow_parent_unref_set.txt
new file mode 100644
index 00000000..0ec99335
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_allow_parent_unref_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:property:allow_parent_unref}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_app_build_efl_version_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_app_build_efl_version_get.txt
new file mode 100644
index 00000000..89d0d171
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_app_build_efl_version_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:app:property:build_efl_version}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_app_efl_version_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_app_efl_version_get.txt
new file mode 100644
index 00000000..fcb14b28
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_app_efl_version_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:app:property:efl_version}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_app_main_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_app_main_get.txt
new file mode 100644
index 00000000..76583a0a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_app_main_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:app:property:app_main}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_calculate.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_calculate.txt
new file mode 100644
index 00000000..c6079be2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_calculate.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:group:method:group_calculate}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_change.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_change.txt
new file mode 100644
index 00000000..dd942234
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_change.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:group:method:group_change}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_clipper_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_clipper_get.txt
new file mode 100644
index 00000000..9be188bf
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_clipper_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:group:property:group_clipper}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_member_add.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_member_add.txt
new file mode 100644
index 00000000..03792f54
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_member_add.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:group:method:group_member_add}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_member_is.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_member_is.txt
new file mode 100644
index 00000000..b8062c9e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_member_is.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:group:method:group_member_is}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_member_remove.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_member_remove.txt
new file mode 100644
index 00000000..23a91a3a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_member_remove.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:group:method:group_member_remove}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_members_iterate.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_members_iterate.txt
new file mode 100644
index 00000000..32ea1db3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_members_iterate.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:group:method:group_members_iterate}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_need_recalculate_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_need_recalculate_get.txt
new file mode 100644
index 00000000..c03a1d30
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_need_recalculate_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:group:property:group_need_recalculate}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_need_recalculate_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_need_recalculate_set.txt
new file mode 100644
index 00000000..c03a1d30
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_group_need_recalculate_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:group:property:group_need_recalculate}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_anti_alias_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_anti_alias_get.txt
new file mode 100644
index 00000000..5b4d9591
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_anti_alias_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:anti_alias}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_anti_alias_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_anti_alias_set.txt
new file mode 100644
index 00000000..5b4d9591
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_anti_alias_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:anti_alias}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_clipped_objects_count.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_clipped_objects_count.txt
new file mode 100644
index 00000000..7a5b619a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_clipped_objects_count.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:method:clipped_objects_count}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_clipped_objects_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_clipped_objects_get.txt
new file mode 100644
index 00000000..27a77707
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_clipped_objects_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:clipped_objects}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_clipper_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_clipper_get.txt
new file mode 100644
index 00000000..5c9e25a5
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_clipper_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:clipper}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_clipper_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_clipper_set.txt
new file mode 100644
index 00000000..5c9e25a5
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_clipper_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:clipper}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_coords_inside_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_coords_inside_get.txt
new file mode 100644
index 00000000..82a603da
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_coords_inside_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:coords_inside}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_gesture_manager_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_gesture_manager_get.txt
new file mode 100644
index 00000000..9544f123
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_gesture_manager_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:method:gesture_manager_get}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_has_fixed_size_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_has_fixed_size_get.txt
new file mode 100644
index 00000000..eb07d352
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_has_fixed_size_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:has_fixed_size}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_has_fixed_size_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_has_fixed_size_set.txt
new file mode 100644
index 00000000..eb07d352
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_has_fixed_size_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:has_fixed_size}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_key_focus_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_key_focus_get.txt
new file mode 100644
index 00000000..13290ea7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_key_focus_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:key_focus}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_key_focus_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_key_focus_set.txt
new file mode 100644
index 00000000..13290ea7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_key_focus_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:key_focus}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_key_grab.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_key_grab.txt
new file mode 100644
index 00000000..1b7ddc61
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_key_grab.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:method:key_grab}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_key_ungrab.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_key_ungrab.txt
new file mode 100644
index 00000000..56c7fd08
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_key_ungrab.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:method:key_ungrab}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_no_render_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_no_render_get.txt
new file mode 100644
index 00000000..a87a1d11
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_no_render_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:no_render}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_no_render_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_no_render_set.txt
new file mode 100644
index 00000000..a87a1d11
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_no_render_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:no_render}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_paragraph_direction_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_paragraph_direction_get.txt
new file mode 100644
index 00000000..958ae19a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_paragraph_direction_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:paragraph_direction}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_paragraph_direction_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_paragraph_direction_set.txt
new file mode 100644
index 00000000..958ae19a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_paragraph_direction_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:paragraph_direction}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_pass_events_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_pass_events_get.txt
new file mode 100644
index 00000000..ec7df973
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_pass_events_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:pass_events}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_pass_events_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_pass_events_set.txt
new file mode 100644
index 00000000..ec7df973
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_pass_events_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:pass_events}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_pointer_mode_by_device_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_pointer_mode_by_device_get.txt
new file mode 100644
index 00000000..a5b76a7a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_pointer_mode_by_device_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:pointer_mode_by_device}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_pointer_mode_by_device_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_pointer_mode_by_device_set.txt
new file mode 100644
index 00000000..a5b76a7a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_pointer_mode_by_device_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:pointer_mode_by_device}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_pointer_mode_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_pointer_mode_get.txt
new file mode 100644
index 00000000..2e655c41
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_pointer_mode_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:pointer_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_pointer_mode_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_pointer_mode_set.txt
new file mode 100644
index 00000000..2e655c41
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_pointer_mode_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:pointer_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_precise_is_inside_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_precise_is_inside_get.txt
new file mode 100644
index 00000000..12188aae
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_precise_is_inside_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:precise_is_inside}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_precise_is_inside_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_precise_is_inside_set.txt
new file mode 100644
index 00000000..12188aae
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_precise_is_inside_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:precise_is_inside}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_propagate_events_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_propagate_events_get.txt
new file mode 100644
index 00000000..a73202d8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_propagate_events_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:propagate_events}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_propagate_events_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_propagate_events_set.txt
new file mode 100644
index 00000000..a73202d8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_propagate_events_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:propagate_events}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_render_op_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_render_op_get.txt
new file mode 100644
index 00000000..f0c780a8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_render_op_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:render_op}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_render_op_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_render_op_set.txt
new file mode 100644
index 00000000..f0c780a8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_render_op_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:render_op}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_render_parent_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_render_parent_get.txt
new file mode 100644
index 00000000..636628bf
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_render_parent_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:render_parent}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_repeat_events_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_repeat_events_get.txt
new file mode 100644
index 00000000..ef2309b9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_repeat_events_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:repeat_events}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_repeat_events_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_repeat_events_set.txt
new file mode 100644
index 00000000..ef2309b9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_repeat_events_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:repeat_events}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_seat_focus_add.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_seat_focus_add.txt
new file mode 100644
index 00000000..f1627729
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_seat_focus_add.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:method:seat_focus_add}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_seat_focus_check.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_seat_focus_check.txt
new file mode 100644
index 00000000..a5c54bbc
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_seat_focus_check.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:method:seat_focus_check}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_seat_focus_del.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_seat_focus_del.txt
new file mode 100644
index 00000000..b88f248c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_seat_focus_del.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:method:seat_focus_del}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_seat_focus_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_seat_focus_get.txt
new file mode 100644
index 00000000..10736b25
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_object_seat_focus_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:object:property:seat_focus}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_pointer_inside_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_pointer_inside_get.txt
new file mode 100644
index 00000000..5a14cfb5
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_pointer_inside_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:pointer:property:pointer_inside}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_device_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_device_get.txt
new file mode 100644
index 00000000..fadc52cb
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_device_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:scene:property:device}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_group_objects_calculate.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_group_objects_calculate.txt
new file mode 100644
index 00000000..2bc77801
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_group_objects_calculate.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:scene:method:group_objects_calculate}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_group_objects_calculating_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_group_objects_calculating_get.txt
new file mode 100644
index 00000000..3242bfe1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_group_objects_calculating_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:scene:property:group_objects_calculating}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_image_max_size_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_image_max_size_get.txt
new file mode 100644
index 00000000..c8102943
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_image_max_size_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:scene:property:image_max_size}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_object_top_at_xy_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_object_top_at_xy_get.txt
new file mode 100644
index 00000000..343ec0e5
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_object_top_at_xy_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:scene:method:object_top_at_xy_get}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_object_top_in_rectangle_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_object_top_in_rectangle_get.txt
new file mode 100644
index 00000000..29ab3b65
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_object_top_in_rectangle_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:scene:method:object_top_in_rectangle_get}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_objects_at_xy_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_objects_at_xy_get.txt
new file mode 100644
index 00000000..41c822cd
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_objects_at_xy_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:scene:method:objects_at_xy_get}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_objects_in_rectangle_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_objects_in_rectangle_get.txt
new file mode 100644
index 00000000..e34a8ca4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_objects_in_rectangle_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:scene:method:objects_in_rectangle_get}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_pointer_position_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_pointer_position_get.txt
new file mode 100644
index 00000000..a6f080e6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_pointer_position_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:scene:property:pointer_position}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_seat_default_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_seat_default_get.txt
new file mode 100644
index 00000000..d450a1cc
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_seat_default_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:scene:property:seat_default}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_seat_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_seat_get.txt
new file mode 100644
index 00000000..c7346171
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_seat_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:scene:property:seat}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_seats.txt b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_seats.txt
new file mode 100644
index 00000000..ee548b86
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_canvas_scene_seats.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:canvas:scene:method:seats}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_children_iterator_new.txt b/public_html/data/pages/develop/api/ref/c/key/efl_children_iterator_new.txt
new file mode 100644
index 00000000..850ffc9c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_children_iterator_new.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:method:children_iterator_new}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_comment_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_comment_get.txt
new file mode 100644
index 00000000..37e9afd3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_comment_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:property:comment}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_comment_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_comment_set.txt
new file mode 100644
index 00000000..37e9afd3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_comment_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:property:comment}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_composite_attach.txt b/public_html/data/pages/develop/api/ref/c/key/efl_composite_attach.txt
new file mode 100644
index 00000000..3c36056e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_composite_attach.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:method:composite_attach}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_composite_detach.txt b/public_html/data/pages/develop/api/ref/c/key/efl_composite_detach.txt
new file mode 100644
index 00000000..46449109
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_composite_detach.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:method:composite_detach}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_composite_model_index_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_composite_model_index_get.txt
new file mode 100644
index 00000000..9db844e3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_composite_model_index_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:composite_model:property:index}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_composite_model_index_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_composite_model_index_set.txt
new file mode 100644
index 00000000..9db844e3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_composite_model_index_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:composite_model:property:index}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_composite_part_is.txt b/public_html/data/pages/develop/api/ref/c/key/efl_composite_part_is.txt
new file mode 100644
index 00000000..e2141194
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_composite_part_is.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:method:composite_part_is}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_constructor.txt b/public_html/data/pages/develop/api/ref/c/key/efl_constructor.txt
new file mode 100644
index 00000000..1e9ff0a1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_constructor.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:method:constructor}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_content_count.txt b/public_html/data/pages/develop/api/ref/c/key/efl_content_count.txt
new file mode 100644
index 00000000..49d96251
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_content_count.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:container:method:content_count}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_content_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_content_get.txt
new file mode 100644
index 00000000..46540f0a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_content_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:content:property:content}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_content_iterate.txt b/public_html/data/pages/develop/api/ref/c/key/efl_content_iterate.txt
new file mode 100644
index 00000000..80a9e86b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_content_iterate.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:container:method:content_iterate}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_content_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_content_set.txt
new file mode 100644
index 00000000..46540f0a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_content_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:content:property:content}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_content_unset.txt b/public_html/data/pages/develop/api/ref/c/key/efl_content_unset.txt
new file mode 100644
index 00000000..dffc5244
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_content_unset.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:content:method:content_unset}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_debug_name_override.txt b/public_html/data/pages/develop/api/ref/c/key/efl_debug_name_override.txt
new file mode 100644
index 00000000..9b07fa0e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_debug_name_override.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:method:debug_name_override}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_destructor.txt b/public_html/data/pages/develop/api/ref/c/key/efl_destructor.txt
new file mode 100644
index 00000000..23819ba0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_destructor.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:method:destructor}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_event_callback_forwarder_del.txt b/public_html/data/pages/develop/api/ref/c/key/efl_event_callback_forwarder_del.txt
new file mode 100644
index 00000000..e12563f9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_event_callback_forwarder_del.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:method:event_callback_forwarder_del}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_event_callback_forwarder_priority_add.txt b/public_html/data/pages/develop/api/ref/c/key/efl_event_callback_forwarder_priority_add.txt
new file mode 100644
index 00000000..5b219270
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_event_callback_forwarder_priority_add.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:method:event_callback_forwarder_priority_add}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_event_callback_stop.txt b/public_html/data/pages/develop/api/ref/c/key/efl_event_callback_stop.txt
new file mode 100644
index 00000000..da8d8b62
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_event_callback_stop.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:method:event_callback_stop}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_event_freeze.txt b/public_html/data/pages/develop/api/ref/c/key/efl_event_freeze.txt
new file mode 100644
index 00000000..4717abdd
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_event_freeze.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:method:event_freeze}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_event_freeze_count_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_event_freeze_count_get.txt
new file mode 100644
index 00000000..1336f0d1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_event_freeze_count_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:property:event_freeze_count}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_event_global_freeze.txt b/public_html/data/pages/develop/api/ref/c/key/efl_event_global_freeze.txt
new file mode 100644
index 00000000..b6e41cb3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_event_global_freeze.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:method:event_global_freeze}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_event_global_freeze_count_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_event_global_freeze_count_get.txt
new file mode 100644
index 00000000..4137895d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_event_global_freeze_count_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:property:event_global_freeze_count}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_event_global_thaw.txt b/public_html/data/pages/develop/api/ref/c/key/efl_event_global_thaw.txt
new file mode 100644
index 00000000..de365b9f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_event_global_thaw.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:method:event_global_thaw}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_event_thaw.txt b/public_html/data/pages/develop/api/ref/c/key/efl_event_thaw.txt
new file mode 100644
index 00000000..c027813f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_event_thaw.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:method:event_thaw}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_file_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_file_get.txt
new file mode 100644
index 00000000..1d14f17c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_file_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:file:property:file}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_file_key_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_file_key_get.txt
new file mode 100644
index 00000000..b2458699
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_file_key_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:file:property:key}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_file_key_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_file_key_set.txt
new file mode 100644
index 00000000..b2458699
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_file_key_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:file:property:key}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_file_load.txt b/public_html/data/pages/develop/api/ref/c/key/efl_file_load.txt
new file mode 100644
index 00000000..f0be5e0d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_file_load.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:file:method:load}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_file_loaded_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_file_loaded_get.txt
new file mode 100644
index 00000000..80f275af
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_file_loaded_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:file:property:loaded}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_file_mmap_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_file_mmap_get.txt
new file mode 100644
index 00000000..c0ddd92a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_file_mmap_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:file:property:mmap}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_file_mmap_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_file_mmap_set.txt
new file mode 100644
index 00000000..c0ddd92a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_file_mmap_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:file:property:mmap}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_file_save.txt b/public_html/data/pages/develop/api/ref/c/key/efl_file_save.txt
new file mode 100644
index 00000000..51e333c1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_file_save.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:file_save:method:save}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_file_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_file_set.txt
new file mode 100644
index 00000000..1d14f17c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_file_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:file:property:file}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_file_unload.txt b/public_html/data/pages/develop/api/ref/c/key/efl_file_unload.txt
new file mode 100644
index 00000000..15d2bfc0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_file_unload.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:file:method:unload}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_finalize.txt b/public_html/data/pages/develop/api/ref/c/key/efl_finalize.txt
new file mode 100644
index 00000000..86d4945d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_finalize.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:method:finalize}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_finalized_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_finalized_get.txt
new file mode 100644
index 00000000..0178ebe8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_finalized_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:property:finalized}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_color_code_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_color_code_get.txt
new file mode 100644
index 00000000..9d3e8c33
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_color_code_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:color:property:color_code}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_color_code_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_color_code_set.txt
new file mode 100644
index 00000000..9d3e8c33
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_color_code_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:color:property:color_code}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_color_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_color_get.txt
new file mode 100644
index 00000000..f46169b0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_color_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:color:property:color}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_color_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_color_set.txt
new file mode 100644
index 00000000..f46169b0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_color_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:color:property:color}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_geometry_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_geometry_get.txt
new file mode 100644
index 00000000..9f81cb69
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_geometry_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:entity:property:geometry}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_geometry_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_geometry_set.txt
new file mode 100644
index 00000000..9f81cb69
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_geometry_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:entity:property:geometry}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_position_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_position_get.txt
new file mode 100644
index 00000000..f59b25c9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_position_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:entity:property:position}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_position_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_position_set.txt
new file mode 100644
index 00000000..f59b25c9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_position_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:entity:property:position}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_scale_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_scale_get.txt
new file mode 100644
index 00000000..a87b3df9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_scale_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:entity:property:scale}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_scale_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_scale_set.txt
new file mode 100644
index 00000000..a87b3df9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_scale_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:entity:property:scale}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_size_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_size_get.txt
new file mode 100644
index 00000000..4fdfa6c8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_size_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:entity:property:size}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_size_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_size_set.txt
new file mode 100644
index 00000000..4fdfa6c8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_size_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:entity:property:size}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_visible_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_visible_get.txt
new file mode 100644
index 00000000..3764416a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_visible_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:entity:property:visible}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_visible_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_visible_set.txt
new file mode 100644
index 00000000..3764416a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_entity_visible_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:entity:property:visible}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_align_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_align_get.txt
new file mode 100644
index 00000000..e970eff6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_align_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint:property:hint_align}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_align_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_align_set.txt
new file mode 100644
index 00000000..e970eff6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_align_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint:property:hint_align}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_aspect_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_aspect_get.txt
new file mode 100644
index 00000000..ef570f10
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_aspect_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint:property:hint_aspect}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_aspect_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_aspect_set.txt
new file mode 100644
index 00000000..ef570f10
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_aspect_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint:property:hint_aspect}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_fill_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_fill_get.txt
new file mode 100644
index 00000000..fc19a930
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_fill_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint:property:hint_fill}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_fill_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_fill_set.txt
new file mode 100644
index 00000000..fc19a930
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_fill_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint:property:hint_fill}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_margin_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_margin_get.txt
new file mode 100644
index 00000000..a5973a29
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_margin_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint:property:hint_margin}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_margin_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_margin_set.txt
new file mode 100644
index 00000000..a5973a29
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_margin_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint:property:hint_margin}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_combined_max_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_combined_max_get.txt
new file mode 100644
index 00000000..ca7203fc
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_combined_max_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint:property:hint_size_combined_max}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_combined_min_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_combined_min_get.txt
new file mode 100644
index 00000000..7cf9eee7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_combined_min_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint:property:hint_size_combined_min}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_max_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_max_get.txt
new file mode 100644
index 00000000..474539d4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_max_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint:property:hint_size_max}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_max_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_max_set.txt
new file mode 100644
index 00000000..474539d4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_max_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint:property:hint_size_max}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_min_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_min_get.txt
new file mode 100644
index 00000000..9bc1a839
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_min_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint:property:hint_size_min}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_min_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_min_set.txt
new file mode 100644
index 00000000..9bc1a839
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_min_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint:property:hint_size_min}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_restricted_max_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_restricted_max_get.txt
new file mode 100644
index 00000000..cd850194
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_restricted_max_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint:property:hint_size_restricted_max}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_restricted_max_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_restricted_max_set.txt
new file mode 100644
index 00000000..cd850194
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_restricted_max_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint:property:hint_size_restricted_max}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_restricted_min_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_restricted_min_get.txt
new file mode 100644
index 00000000..996edef6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_restricted_min_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint:property:hint_size_restricted_min}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_restricted_min_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_restricted_min_set.txt
new file mode 100644
index 00000000..996edef6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_size_restricted_min_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint:property:hint_size_restricted_min}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_weight_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_weight_get.txt
new file mode 100644
index 00000000..ae63b62b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_weight_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint:property:hint_weight}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_weight_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_weight_set.txt
new file mode 100644
index 00000000..ae63b62b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_hint_weight_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:hint:property:hint_weight}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_border_insets_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_border_insets_get.txt
new file mode 100644
index 00000000..2b7c9425
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_border_insets_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:property:border_insets}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_border_insets_scale_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_border_insets_scale_get.txt
new file mode 100644
index 00000000..56bfa818
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_border_insets_scale_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:property:border_insets_scale}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_border_insets_scale_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_border_insets_scale_set.txt
new file mode 100644
index 00000000..56bfa818
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_border_insets_scale_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:property:border_insets_scale}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_border_insets_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_border_insets_set.txt
new file mode 100644
index 00000000..2b7c9425
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_border_insets_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:property:border_insets}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_can_downscale_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_can_downscale_get.txt
new file mode 100644
index 00000000..b1425f5e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_can_downscale_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:property:can_downscale}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_can_downscale_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_can_downscale_set.txt
new file mode 100644
index 00000000..b1425f5e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_can_downscale_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:property:can_downscale}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_can_upscale_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_can_upscale_get.txt
new file mode 100644
index 00000000..4a522f55
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_can_upscale_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:property:can_upscale}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_can_upscale_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_can_upscale_set.txt
new file mode 100644
index 00000000..4a522f55
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_can_upscale_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:property:can_upscale}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_center_fill_mode_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_center_fill_mode_get.txt
new file mode 100644
index 00000000..e5f3792f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_center_fill_mode_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:property:center_fill_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_center_fill_mode_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_center_fill_mode_set.txt
new file mode 100644
index 00000000..e5f3792f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_center_fill_mode_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:property:center_fill_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_content_hint_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_content_hint_get.txt
new file mode 100644
index 00000000..3950c425
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_content_hint_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:property:content_hint}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_content_hint_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_content_hint_set.txt
new file mode 100644
index 00000000..3950c425
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_content_hint_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:property:content_hint}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_content_region_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_content_region_get.txt
new file mode 100644
index 00000000..2b3fa9d9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_content_region_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:property:content_region}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_async_cancel.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_async_cancel.txt
new file mode 100644
index 00000000..0d0bb8b9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_async_cancel.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_load_controller:method:load_async_cancel}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_async_start.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_async_start.txt
new file mode 100644
index 00000000..5533cac1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_async_start.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_load_controller:method:load_async_start}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_dpi_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_dpi_get.txt
new file mode 100644
index 00000000..d0468e91
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_dpi_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_load_controller:property:load_dpi}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_dpi_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_dpi_set.txt
new file mode 100644
index 00000000..d0468e91
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_dpi_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_load_controller:property:load_dpi}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_orientation_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_orientation_get.txt
new file mode 100644
index 00000000..98daa6dd
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_orientation_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_load_controller:property:load_orientation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_orientation_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_orientation_set.txt
new file mode 100644
index 00000000..98daa6dd
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_orientation_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_load_controller:property:load_orientation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_region_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_region_get.txt
new file mode 100644
index 00000000..ba137249
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_region_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_load_controller:property:load_region}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_region_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_region_set.txt
new file mode 100644
index 00000000..ba137249
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_region_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_load_controller:property:load_region}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_region_support_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_region_support_get.txt
new file mode 100644
index 00000000..dd6dcf86
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_region_support_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_load_controller:property:load_region_support}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_scale_down_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_scale_down_get.txt
new file mode 100644
index 00000000..649ea5f0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_scale_down_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_load_controller:property:load_scale_down}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_scale_down_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_scale_down_set.txt
new file mode 100644
index 00000000..649ea5f0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_scale_down_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_load_controller:property:load_scale_down}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_size_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_size_get.txt
new file mode 100644
index 00000000..e423307f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_size_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_load_controller:property:load_size}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_size_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_size_set.txt
new file mode 100644
index 00000000..e423307f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_size_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_load_controller:property:load_size}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_skip_header_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_skip_header_get.txt
new file mode 100644
index 00000000..e48372dd
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_skip_header_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_load_controller:property:load_skip_header}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_skip_header_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_skip_header_set.txt
new file mode 100644
index 00000000..e48372dd
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_controller_load_skip_header_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_load_controller:property:load_skip_header}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_error_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_error_get.txt
new file mode 100644
index 00000000..20be305a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_load_error_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:property:image_load_error}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_orientation_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_orientation_get.txt
new file mode 100644
index 00000000..58441883
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_orientation_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_orientable:property:image_orientation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_orientation_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_orientation_set.txt
new file mode 100644
index 00000000..58441883
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_orientation_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image_orientable:property:image_orientation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_ratio_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_ratio_get.txt
new file mode 100644
index 00000000..03eeba53
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_ratio_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:property:ratio}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_scale_hint_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_scale_hint_get.txt
new file mode 100644
index 00000000..1ec48176
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_scale_hint_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:property:scale_hint}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_scale_hint_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_scale_hint_set.txt
new file mode 100644
index 00000000..1ec48176
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_scale_hint_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:property:scale_hint}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_scale_method_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_scale_method_get.txt
new file mode 100644
index 00000000..d99ea7f1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_scale_method_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:property:scale_method}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_scale_method_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_scale_method_set.txt
new file mode 100644
index 00000000..d99ea7f1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_scale_method_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:property:scale_method}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_size_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_size_get.txt
new file mode 100644
index 00000000..0250d99a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_size_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:property:image_size}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_smooth_scale_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_smooth_scale_get.txt
new file mode 100644
index 00000000..a812a7d9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_smooth_scale_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:property:smooth_scale}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_smooth_scale_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_smooth_scale_set.txt
new file mode 100644
index 00000000..a812a7d9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_smooth_scale_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:property:smooth_scale}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_stretch_region_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_stretch_region_get.txt
new file mode 100644
index 00000000..f4884264
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_stretch_region_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:property:stretch_region}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_stretch_region_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_stretch_region_set.txt
new file mode 100644
index 00000000..f4884264
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_image_stretch_region_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:image:property:stretch_region}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_alpha_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_alpha_get.txt
new file mode 100644
index 00000000..42432535
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_alpha_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:property:mapping_alpha}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_alpha_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_alpha_set.txt
new file mode 100644
index 00000000..42432535
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_alpha_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:property:mapping_alpha}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_clockwise_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_clockwise_get.txt
new file mode 100644
index 00000000..224ca32f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_clockwise_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:property:mapping_clockwise}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_color_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_color_get.txt
new file mode 100644
index 00000000..38c9a5c9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_color_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:property:mapping_color}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_color_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_color_set.txt
new file mode 100644
index 00000000..38c9a5c9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_color_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:property:mapping_color}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_coord_absolute_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_coord_absolute_get.txt
new file mode 100644
index 00000000..54184b70
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_coord_absolute_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:property:mapping_coord_absolute}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_coord_absolute_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_coord_absolute_set.txt
new file mode 100644
index 00000000..54184b70
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_coord_absolute_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:property:mapping_coord_absolute}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_has.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_has.txt
new file mode 100644
index 00000000..ccf4f1c2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_has.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:method:mapping_has}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_lighting_3d.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_lighting_3d.txt
new file mode 100644
index 00000000..6c317004
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_lighting_3d.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:method:lighting_3d}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_lighting_3d_absolute.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_lighting_3d_absolute.txt
new file mode 100644
index 00000000..d3895afc
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_lighting_3d_absolute.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:method:lighting_3d_absolute}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_perspective_3d.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_perspective_3d.txt
new file mode 100644
index 00000000..73465f9a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_perspective_3d.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:method:perspective_3d}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_perspective_3d_absolute.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_perspective_3d_absolute.txt
new file mode 100644
index 00000000..eb7b796a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_perspective_3d_absolute.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:method:perspective_3d_absolute}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_point_count_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_point_count_get.txt
new file mode 100644
index 00000000..47d0d397
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_point_count_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:property:mapping_point_count}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_point_count_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_point_count_set.txt
new file mode 100644
index 00000000..47d0d397
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_point_count_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:property:mapping_point_count}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_reset.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_reset.txt
new file mode 100644
index 00000000..08f27de6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_reset.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:method:mapping_reset}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_rotate.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_rotate.txt
new file mode 100644
index 00000000..09e182c2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_rotate.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:method:rotate}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_rotate_3d.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_rotate_3d.txt
new file mode 100644
index 00000000..745311dc
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_rotate_3d.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:method:rotate_3d}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_rotate_3d_absolute.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_rotate_3d_absolute.txt
new file mode 100644
index 00000000..c6e18f29
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_rotate_3d_absolute.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:method:rotate_3d_absolute}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_rotate_absolute.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_rotate_absolute.txt
new file mode 100644
index 00000000..5c2e54e4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_rotate_absolute.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:method:rotate_absolute}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_rotate_quat.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_rotate_quat.txt
new file mode 100644
index 00000000..2dc4e273
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_rotate_quat.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:method:rotate_quat}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_rotate_quat_absolute.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_rotate_quat_absolute.txt
new file mode 100644
index 00000000..93d38e96
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_rotate_quat_absolute.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:method:rotate_quat_absolute}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_smooth_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_smooth_get.txt
new file mode 100644
index 00000000..9ed53583
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_smooth_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:property:mapping_smooth}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_smooth_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_smooth_set.txt
new file mode 100644
index 00000000..9ed53583
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_smooth_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:property:mapping_smooth}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_translate.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_translate.txt
new file mode 100644
index 00000000..c2870bb2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_translate.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:method:translate}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_uv_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_uv_get.txt
new file mode 100644
index 00000000..31d0d1d2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_uv_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:property:mapping_uv}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_uv_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_uv_set.txt
new file mode 100644
index 00000000..31d0d1d2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_uv_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:property:mapping_uv}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_zoom.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_zoom.txt
new file mode 100644
index 00000000..0f3e8315
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_zoom.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:method:zoom}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_zoom_absolute.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_zoom_absolute.txt
new file mode 100644
index 00000000..d75b4f06
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_mapping_zoom_absolute.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:mapping:method:zoom_absolute}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_stack_above.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_stack_above.txt
new file mode 100644
index 00000000..28c215c7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_stack_above.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:stack:method:stack_above}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_stack_above_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_stack_above_get.txt
new file mode 100644
index 00000000..5506e489
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_stack_above_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:stack:property:above}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_stack_below.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_stack_below.txt
new file mode 100644
index 00000000..e93669a0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_stack_below.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:stack:method:stack_below}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_stack_below_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_stack_below_get.txt
new file mode 100644
index 00000000..8912e837
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_stack_below_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:stack:property:below}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_stack_layer_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_stack_layer_get.txt
new file mode 100644
index 00000000..56a9d49f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_stack_layer_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:stack:property:layer}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_stack_layer_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_stack_layer_set.txt
new file mode 100644
index 00000000..56a9d49f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_stack_layer_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:stack:property:layer}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_stack_lower_to_bottom.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_stack_lower_to_bottom.txt
new file mode 100644
index 00000000..a468645f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_stack_lower_to_bottom.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:stack:method:lower_to_bottom}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_gfx_stack_raise_to_top.txt b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_stack_raise_to_top.txt
new file mode 100644
index 00000000..2fd052aa
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_gfx_stack_raise_to_top.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:gfx:stack:method:raise_to_top}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_clickable_button_state_reset.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_clickable_button_state_reset.txt
new file mode 100644
index 00000000..68fc1d63
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_clickable_button_state_reset.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:clickable:method:button_state_reset}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_clickable_interaction_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_clickable_interaction_get.txt
new file mode 100644
index 00000000..b7415bb9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_clickable_interaction_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:clickable:property:interaction}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_clickable_longpress_abort.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_clickable_longpress_abort.txt
new file mode 100644
index 00000000..4a7bcb70
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_clickable_longpress_abort.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:clickable:method:longpress_abort}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_clickable_press.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_clickable_press.txt
new file mode 100644
index 00000000..97b34eaa
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_clickable_press.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:clickable:method:press}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_clickable_unpress.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_clickable_unpress.txt
new file mode 100644
index 00000000..c0a95373
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_clickable_unpress.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:clickable:method:unpress}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_device_children_iterate.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_device_children_iterate.txt
new file mode 100644
index 00000000..c80a2ad2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_device_children_iterate.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:device:method:children_iterate}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_device_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_device_get.txt
new file mode 100644
index 00000000..81d23401
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_device_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:event:property:device}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_device_is_pointer_type_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_device_is_pointer_type_get.txt
new file mode 100644
index 00000000..a682c5ca
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_device_is_pointer_type_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:device:property:is_pointer_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_device_pointer_device_count_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_device_pointer_device_count_get.txt
new file mode 100644
index 00000000..a568cb80
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_device_pointer_device_count_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:device:property:pointer_device_count}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_device_seat_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_device_seat_get.txt
new file mode 100644
index 00000000..dff752a4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_device_seat_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:device:property:seat}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_device_seat_id_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_device_seat_id_get.txt
new file mode 100644
index 00000000..b83d4683
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_device_seat_id_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:device:property:seat_id}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_device_seat_id_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_device_seat_id_set.txt
new file mode 100644
index 00000000..b83d4683
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_device_seat_id_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:device:property:seat_id}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_device_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_device_set.txt
new file mode 100644
index 00000000..81d23401
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_device_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:event:property:device}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_device_source_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_device_source_get.txt
new file mode 100644
index 00000000..019fdb18
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_device_source_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:device:property:source}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_device_source_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_device_source_set.txt
new file mode 100644
index 00000000..019fdb18
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_device_source_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:device:property:source}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_device_type_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_device_type_get.txt
new file mode 100644
index 00000000..99871620
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_device_type_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:device:property:device_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_device_type_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_device_type_set.txt
new file mode 100644
index 00000000..99871620
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_device_type_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:device:property:device_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_event_flags_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_event_flags_get.txt
new file mode 100644
index 00000000..ad83b55c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_event_flags_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:event:property:event_flags}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_event_flags_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_event_flags_set.txt
new file mode 100644
index 00000000..ad83b55c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_event_flags_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:event:property:event_flags}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_fake_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_fake_get.txt
new file mode 100644
index 00000000..7cea367f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_fake_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:event:property:fake}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_focus_object_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_focus_object_get.txt
new file mode 100644
index 00000000..0fd5b246
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_focus_object_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:focus:property:object}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_focus_object_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_focus_object_set.txt
new file mode 100644
index 00000000..0fd5b246
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_focus_object_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:focus:property:object}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_hold_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_hold_get.txt
new file mode 100644
index 00000000..4f819fb4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_hold_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:hold:property:input_hold}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_hold_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_hold_set.txt
new file mode 100644
index 00000000..4f819fb4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_hold_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:hold:property:input_hold}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_key_code_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_key_code_get.txt
new file mode 100644
index 00000000..2b8c8bac
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_key_code_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:key:property:key_code}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_key_code_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_key_code_set.txt
new file mode 100644
index 00000000..2b8c8bac
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_key_code_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:key:property:key_code}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_key_compose_string_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_key_compose_string_get.txt
new file mode 100644
index 00000000..fe585425
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_key_compose_string_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:key:property:compose_string}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_key_compose_string_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_key_compose_string_set.txt
new file mode 100644
index 00000000..fe585425
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_key_compose_string_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:key:property:compose_string}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_key_name_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_key_name_get.txt
new file mode 100644
index 00000000..68c34504
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_key_name_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:key:property:key_name}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_key_name_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_key_name_set.txt
new file mode 100644
index 00000000..68c34504
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_key_name_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:key:property:key_name}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_key_pressed_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_key_pressed_get.txt
new file mode 100644
index 00000000..de7c741d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_key_pressed_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:key:property:pressed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_key_pressed_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_key_pressed_set.txt
new file mode 100644
index 00000000..de7c741d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_key_pressed_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:key:property:pressed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_key_string_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_key_string_get.txt
new file mode 100644
index 00000000..9336119a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_key_string_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:key:property:string}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_key_string_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_key_string_set.txt
new file mode 100644
index 00000000..9336119a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_key_string_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:key:property:string}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_key_sym_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_key_sym_get.txt
new file mode 100644
index 00000000..54912529
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_key_sym_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:key:property:key_sym}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_key_sym_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_key_sym_set.txt
new file mode 100644
index 00000000..54912529
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_key_sym_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:key:property:key_sym}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_lock_enabled_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_lock_enabled_get.txt
new file mode 100644
index 00000000..672a7d19
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_lock_enabled_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:state:property:lock_enabled}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_modifier_enabled_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_modifier_enabled_get.txt
new file mode 100644
index 00000000..4fc4917d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_modifier_enabled_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:state:property:modifier_enabled}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_action_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_action_get.txt
new file mode 100644
index 00000000..7b123bb4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_action_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:action}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_action_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_action_set.txt
new file mode 100644
index 00000000..7b123bb4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_action_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:action}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_button_flags_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_button_flags_get.txt
new file mode 100644
index 00000000..01853563
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_button_flags_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:button_flags}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_button_flags_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_button_flags_set.txt
new file mode 100644
index 00000000..01853563
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_button_flags_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:button_flags}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_button_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_button_get.txt
new file mode 100644
index 00000000..6f4b767b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_button_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:button}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_button_pressed_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_button_pressed_get.txt
new file mode 100644
index 00000000..f3a3f2df
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_button_pressed_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:button_pressed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_button_pressed_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_button_pressed_set.txt
new file mode 100644
index 00000000..f3a3f2df
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_button_pressed_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:button_pressed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_button_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_button_set.txt
new file mode 100644
index 00000000..6f4b767b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_button_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:button}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_double_click_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_double_click_get.txt
new file mode 100644
index 00000000..2b6beb19
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_double_click_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:double_click}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_double_click_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_double_click_set.txt
new file mode 100644
index 00000000..2b6beb19
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_double_click_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:double_click}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_position_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_position_get.txt
new file mode 100644
index 00000000..908cb02b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_position_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:position}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_position_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_position_set.txt
new file mode 100644
index 00000000..908cb02b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_position_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:position}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_precise_position_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_precise_position_get.txt
new file mode 100644
index 00000000..869d3eff
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_precise_position_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:precise_position}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_precise_position_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_precise_position_set.txt
new file mode 100644
index 00000000..869d3eff
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_precise_position_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:precise_position}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_previous_position_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_previous_position_get.txt
new file mode 100644
index 00000000..73569570
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_previous_position_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:previous_position}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_previous_position_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_previous_position_set.txt
new file mode 100644
index 00000000..73569570
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_previous_position_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:previous_position}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_source_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_source_get.txt
new file mode 100644
index 00000000..334fe41a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_source_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:source}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_source_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_source_set.txt
new file mode 100644
index 00000000..334fe41a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_source_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:source}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_touch_id_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_touch_id_get.txt
new file mode 100644
index 00000000..af6d353e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_touch_id_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:touch_id}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_touch_id_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_touch_id_set.txt
new file mode 100644
index 00000000..af6d353e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_touch_id_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:touch_id}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_triple_click_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_triple_click_get.txt
new file mode 100644
index 00000000..4c9a0595
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_triple_click_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:triple_click}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_triple_click_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_triple_click_set.txt
new file mode 100644
index 00000000..4c9a0595
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_triple_click_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:triple_click}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_value_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_value_get.txt
new file mode 100644
index 00000000..29c349fa
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_value_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:value}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_value_has_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_value_has_get.txt
new file mode 100644
index 00000000..ea268dd4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_value_has_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:value_has}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_value_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_value_set.txt
new file mode 100644
index 00000000..29c349fa
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_value_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:value}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_wheel_delta_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_wheel_delta_get.txt
new file mode 100644
index 00000000..9a9edf1e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_wheel_delta_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:wheel_delta}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_wheel_delta_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_wheel_delta_set.txt
new file mode 100644
index 00000000..9a9edf1e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_wheel_delta_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:wheel_delta}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_wheel_horizontal_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_wheel_horizontal_get.txt
new file mode 100644
index 00000000..dd8c7220
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_wheel_horizontal_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:wheel_horizontal}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_wheel_horizontal_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_wheel_horizontal_set.txt
new file mode 100644
index 00000000..dd8c7220
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_pointer_wheel_horizontal_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:pointer:property:wheel_horizontal}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_processed_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_processed_get.txt
new file mode 100644
index 00000000..325d91b1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_processed_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:event:property:processed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_processed_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_processed_set.txt
new file mode 100644
index 00000000..325d91b1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_processed_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:event:property:processed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_reset.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_reset.txt
new file mode 100644
index 00000000..e6109fdc
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_reset.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:event:method:reset}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_scrolling_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_scrolling_get.txt
new file mode 100644
index 00000000..3028341d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_scrolling_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:event:property:scrolling}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_scrolling_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_scrolling_set.txt
new file mode 100644
index 00000000..3028341d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_scrolling_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:event:property:scrolling}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_seat_event_filter_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_seat_event_filter_get.txt
new file mode 100644
index 00000000..ecb323d1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_seat_event_filter_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:interface:property:seat_event_filter}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_seat_event_filter_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_seat_event_filter_set.txt
new file mode 100644
index 00000000..ecb323d1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_seat_event_filter_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:interface:property:seat_event_filter}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_timestamp_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_timestamp_get.txt
new file mode 100644
index 00000000..767ef5b8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_timestamp_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:event:property:timestamp}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_input_timestamp_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_input_timestamp_set.txt
new file mode 100644
index 00000000..767ef5b8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_input_timestamp_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:input:event:property:timestamp}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_invalidate.txt b/public_html/data/pages/develop/api/ref/c/key/efl_invalidate.txt
new file mode 100644
index 00000000..28baf2d3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_invalidate.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:method:invalidate}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_invalidated_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_invalidated_get.txt
new file mode 100644
index 00000000..fedf104d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_invalidated_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:property:invalidated}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_invalidating_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_invalidating_get.txt
new file mode 100644
index 00000000..d7afa2b4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_invalidating_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:property:invalidating}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_io_closer_close.txt b/public_html/data/pages/develop/api/ref/c/key/efl_io_closer_close.txt
new file mode 100644
index 00000000..e841e6f2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_io_closer_close.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:io:closer:method:close}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_io_closer_close_on_exec_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_io_closer_close_on_exec_get.txt
new file mode 100644
index 00000000..4c8d8b18
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_io_closer_close_on_exec_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:io:closer:property:close_on_exec}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_io_closer_close_on_exec_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_io_closer_close_on_exec_set.txt
new file mode 100644
index 00000000..4c8d8b18
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_io_closer_close_on_exec_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:io:closer:property:close_on_exec}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_io_closer_close_on_invalidate_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_io_closer_close_on_invalidate_get.txt
new file mode 100644
index 00000000..8c9a90b8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_io_closer_close_on_invalidate_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:io:closer:property:close_on_invalidate}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_io_closer_close_on_invalidate_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_io_closer_close_on_invalidate_set.txt
new file mode 100644
index 00000000..8c9a90b8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_io_closer_close_on_invalidate_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:io:closer:property:close_on_invalidate}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_io_closer_closed_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_io_closer_closed_get.txt
new file mode 100644
index 00000000..2365d9c4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_io_closer_closed_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:io:closer:property:closed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_io_reader_can_read_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_io_reader_can_read_get.txt
new file mode 100644
index 00000000..a92b1495
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_io_reader_can_read_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:io:reader:property:can_read}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_io_reader_can_read_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_io_reader_can_read_set.txt
new file mode 100644
index 00000000..a92b1495
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_io_reader_can_read_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:io:reader:property:can_read}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_io_reader_eos_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_io_reader_eos_get.txt
new file mode 100644
index 00000000..8799929e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_io_reader_eos_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:io:reader:property:eos}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_io_reader_eos_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_io_reader_eos_set.txt
new file mode 100644
index 00000000..8799929e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_io_reader_eos_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:io:reader:property:eos}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_io_reader_read.txt b/public_html/data/pages/develop/api/ref/c/key/efl_io_reader_read.txt
new file mode 100644
index 00000000..50915902
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_io_reader_read.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:io:reader:method:read}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_io_writer_can_write_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_io_writer_can_write_get.txt
new file mode 100644
index 00000000..f8c8b986
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_io_writer_can_write_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:io:writer:property:can_write}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_io_writer_can_write_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_io_writer_can_write_set.txt
new file mode 100644
index 00000000..f8c8b986
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_io_writer_can_write_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:io:writer:property:can_write}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_io_writer_write.txt b/public_html/data/pages/develop/api/ref/c/key/efl_io_writer_write.txt
new file mode 100644
index 00000000..899027fc
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_io_writer_write.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:io:writer:method:write}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_layout_calc_auto_update_hints_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_layout_calc_auto_update_hints_get.txt
new file mode 100644
index 00000000..f42743b1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_layout_calc_auto_update_hints_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:layout:calc:property:calc_auto_update_hints}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_layout_calc_auto_update_hints_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_layout_calc_auto_update_hints_set.txt
new file mode 100644
index 00000000..f42743b1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_layout_calc_auto_update_hints_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:layout:calc:property:calc_auto_update_hints}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_layout_calc_force.txt b/public_html/data/pages/develop/api/ref/c/key/efl_layout_calc_force.txt
new file mode 100644
index 00000000..96893def
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_layout_calc_force.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:layout:calc:method:calc_force}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_layout_calc_freeze.txt b/public_html/data/pages/develop/api/ref/c/key/efl_layout_calc_freeze.txt
new file mode 100644
index 00000000..0a531129
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_layout_calc_freeze.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:layout:calc:method:calc_freeze}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_layout_calc_parts_extends.txt b/public_html/data/pages/develop/api/ref/c/key/efl_layout_calc_parts_extends.txt
new file mode 100644
index 00000000..226e305e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_layout_calc_parts_extends.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:layout:calc:method:calc_parts_extends}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_layout_calc_size_min.txt b/public_html/data/pages/develop/api/ref/c/key/efl_layout_calc_size_min.txt
new file mode 100644
index 00000000..99d248f1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_layout_calc_size_min.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:layout:calc:method:calc_size_min}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_layout_calc_thaw.txt b/public_html/data/pages/develop/api/ref/c/key/efl_layout_calc_thaw.txt
new file mode 100644
index 00000000..3845b46e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_layout_calc_thaw.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:layout:calc:method:calc_thaw}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_layout_group_data_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_layout_group_data_get.txt
new file mode 100644
index 00000000..c4e43c23
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_layout_group_data_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:layout:group:property:group_data}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_layout_group_part_exist_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_layout_group_part_exist_get.txt
new file mode 100644
index 00000000..532c1f57
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_layout_group_part_exist_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:layout:group:property:part_exist}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_layout_group_size_max_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_layout_group_size_max_get.txt
new file mode 100644
index 00000000..16aa1446
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_layout_group_size_max_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:layout:group:property:group_size_max}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_layout_group_size_min_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_layout_group_size_min_get.txt
new file mode 100644
index 00000000..7f873aeb
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_layout_group_size_min_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:layout:group:property:group_size_min}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_layout_signal_callback_add.txt b/public_html/data/pages/develop/api/ref/c/key/efl_layout_signal_callback_add.txt
new file mode 100644
index 00000000..b228722c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_layout_signal_callback_add.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:layout:signal:method:signal_callback_add}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_layout_signal_callback_del.txt b/public_html/data/pages/develop/api/ref/c/key/efl_layout_signal_callback_del.txt
new file mode 100644
index 00000000..ed8f7cd3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_layout_signal_callback_del.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:layout:signal:method:signal_callback_del}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_layout_signal_emit.txt b/public_html/data/pages/develop/api/ref/c/key/efl_layout_signal_emit.txt
new file mode 100644
index 00000000..eecfec8c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_layout_signal_emit.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:layout:signal:method:signal_emit}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_layout_signal_message_send.txt b/public_html/data/pages/develop/api/ref/c/key/efl_layout_signal_message_send.txt
new file mode 100644
index 00000000..80e5dba3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_layout_signal_message_send.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:layout:signal:method:message_send}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_layout_signal_process.txt b/public_html/data/pages/develop/api/ref/c/key/efl_layout_signal_process.txt
new file mode 100644
index 00000000..a9968d1d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_layout_signal_process.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:layout:signal:method:signal_process}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_loop_begin.txt b/public_html/data/pages/develop/api/ref/c/key/efl_loop_begin.txt
new file mode 100644
index 00000000..60f9511c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_loop_begin.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop:method:begin}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_loop_future_rejected.txt b/public_html/data/pages/develop/api/ref/c/key/efl_loop_future_rejected.txt
new file mode 100644
index 00000000..7216361d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_loop_future_rejected.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop_consumer:method:future_rejected}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_loop_future_resolved.txt b/public_html/data/pages/develop/api/ref/c/key/efl_loop_future_resolved.txt
new file mode 100644
index 00000000..15862c9f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_loop_future_resolved.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop_consumer:method:future_resolved}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_loop_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_loop_get.txt
new file mode 100644
index 00000000..e3000ec2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_loop_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop_consumer:property:loop}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_loop_idle.txt b/public_html/data/pages/develop/api/ref/c/key/efl_loop_idle.txt
new file mode 100644
index 00000000..f1f461f1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_loop_idle.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop:method:idle}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_loop_iterate.txt b/public_html/data/pages/develop/api/ref/c/key/efl_loop_iterate.txt
new file mode 100644
index 00000000..8c711212
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_loop_iterate.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop:method:iterate}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_loop_iterate_may_block.txt b/public_html/data/pages/develop/api/ref/c/key/efl_loop_iterate_may_block.txt
new file mode 100644
index 00000000..ce6e6cf1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_loop_iterate_may_block.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop:method:iterate_may_block}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_loop_job.txt b/public_html/data/pages/develop/api/ref/c/key/efl_loop_job.txt
new file mode 100644
index 00000000..d2a2b40d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_loop_job.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop:method:job}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_loop_model_volatile_make.txt b/public_html/data/pages/develop/api/ref/c/key/efl_loop_model_volatile_make.txt
new file mode 100644
index 00000000..6bd19a54
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_loop_model_volatile_make.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop_model:method:volatile_make}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_loop_promise_new.txt b/public_html/data/pages/develop/api/ref/c/key/efl_loop_promise_new.txt
new file mode 100644
index 00000000..2723eb29
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_loop_promise_new.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop_consumer:method:promise_new}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_loop_quit.txt b/public_html/data/pages/develop/api/ref/c/key/efl_loop_quit.txt
new file mode 100644
index 00000000..f2ec024f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_loop_quit.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop:method:quit}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_loop_throttle_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_loop_throttle_get.txt
new file mode 100644
index 00000000..030091df
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_loop_throttle_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop:property:throttle}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_loop_throttle_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_loop_throttle_set.txt
new file mode 100644
index 00000000..030091df
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_loop_throttle_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop:property:throttle}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_loop_time_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_loop_time_get.txt
new file mode 100644
index 00000000..5b5af233
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_loop_time_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop:property:time}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_loop_time_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_loop_time_set.txt
new file mode 100644
index 00000000..5b5af233
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_loop_time_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop:property:time}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_loop_timeout.txt b/public_html/data/pages/develop/api/ref/c/key/efl_loop_timeout.txt
new file mode 100644
index 00000000..e970dff1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_loop_timeout.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop:method:timeout}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_loop_timer_delay.txt b/public_html/data/pages/develop/api/ref/c/key/efl_loop_timer_delay.txt
new file mode 100644
index 00000000..2b33be57
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_loop_timer_delay.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop_timer:method:timer_delay}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_loop_timer_interval_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_loop_timer_interval_get.txt
new file mode 100644
index 00000000..1d62cdc9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_loop_timer_interval_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop_timer:property:timer_interval}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_loop_timer_interval_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_loop_timer_interval_set.txt
new file mode 100644
index 00000000..1d62cdc9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_loop_timer_interval_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop_timer:property:timer_interval}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_loop_timer_loop_reset.txt b/public_html/data/pages/develop/api/ref/c/key/efl_loop_timer_loop_reset.txt
new file mode 100644
index 00000000..06e689c1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_loop_timer_loop_reset.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop_timer:method:timer_loop_reset}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_loop_timer_reset.txt b/public_html/data/pages/develop/api/ref/c/key/efl_loop_timer_reset.txt
new file mode 100644
index 00000000..4b16cdaf
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_loop_timer_reset.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop_timer:method:timer_reset}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_loop_timer_time_pending_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_loop_timer_time_pending_get.txt
new file mode 100644
index 00000000..c78689e3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_loop_timer_time_pending_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:loop_timer:property:time_pending}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_model_child_add.txt b/public_html/data/pages/develop/api/ref/c/key/efl_model_child_add.txt
new file mode 100644
index 00000000..f8ba22e7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_model_child_add.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:model:method:child_add}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_model_child_del.txt b/public_html/data/pages/develop/api/ref/c/key/efl_model_child_del.txt
new file mode 100644
index 00000000..7a010092
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_model_child_del.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:model:method:child_del}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_model_children_count_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_model_children_count_get.txt
new file mode 100644
index 00000000..756274bd
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_model_children_count_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:model:property:children_count}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_model_children_slice_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_model_children_slice_get.txt
new file mode 100644
index 00000000..ca2900f1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_model_children_slice_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:model:method:children_slice_get}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_model_properties_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_model_properties_get.txt
new file mode 100644
index 00000000..d464b719
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_model_properties_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:model:property:properties}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_model_property_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_model_property_get.txt
new file mode 100644
index 00000000..b063bd36
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_model_property_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:model:property:property}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_model_property_ready_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_model_property_ready_get.txt
new file mode 100644
index 00000000..f87ff763
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_model_property_ready_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:model:method:property_ready_get}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_model_property_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_model_property_set.txt
new file mode 100644
index 00000000..b063bd36
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_model_property_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:model:property:property}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_name_find.txt b/public_html/data/pages/develop/api/ref/c/key/efl_name_find.txt
new file mode 100644
index 00000000..8692c3c5
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_name_find.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:method:name_find}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_name_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_name_get.txt
new file mode 100644
index 00000000..926e6f0c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_name_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:property:name}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_name_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_name_set.txt
new file mode 100644
index 00000000..926e6f0c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_name_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:property:name}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack.txt
new file mode 100644
index 00000000..d68f1edd
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack:method:pack}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_after.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_after.txt
new file mode 100644
index 00000000..c137b9a3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_after.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_linear:method:pack_after}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_at.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_at.txt
new file mode 100644
index 00000000..1ce87975
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_at.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_linear:method:pack_at}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_before.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_before.txt
new file mode 100644
index 00000000..71c151ac
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_before.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_linear:method:pack_before}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_begin.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_begin.txt
new file mode 100644
index 00000000..f88f51d0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_begin.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_linear:method:pack_begin}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_clear.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_clear.txt
new file mode 100644
index 00000000..4f76c4dd
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_clear.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack:method:pack_clear}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_content_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_content_get.txt
new file mode 100644
index 00000000..2c9ba3a3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_content_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_linear:method:pack_content_get}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_end.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_end.txt
new file mode 100644
index 00000000..acb41b6b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_end.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_linear:method:pack_end}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_index_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_index_get.txt
new file mode 100644
index 00000000..3351cf4d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_index_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_linear:method:pack_index_get}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_layout_request.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_layout_request.txt
new file mode 100644
index 00000000..5ec62bf7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_layout_request.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_layout:method:layout_request}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_layout_update.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_layout_update.txt
new file mode 100644
index 00000000..8f3899ef
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_layout_update.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_layout:method:layout_update}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_table.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table.txt
new file mode 100644
index 00000000..24080602
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_table:method:pack_table}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_cell_column_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_cell_column_get.txt
new file mode 100644
index 00000000..6302e178
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_cell_column_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_table:property:table_cell_column}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_cell_column_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_cell_column_set.txt
new file mode 100644
index 00000000..6302e178
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_cell_column_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_table:property:table_cell_column}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_cell_row_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_cell_row_get.txt
new file mode 100644
index 00000000..9f2ab32c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_cell_row_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_table:property:table_cell_row}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_cell_row_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_cell_row_set.txt
new file mode 100644
index 00000000..9f2ab32c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_cell_row_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_table:property:table_cell_row}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_columns_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_columns_get.txt
new file mode 100644
index 00000000..26c879c3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_columns_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_table:property:table_columns}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_columns_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_columns_set.txt
new file mode 100644
index 00000000..26c879c3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_columns_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_table:property:table_columns}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_content_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_content_get.txt
new file mode 100644
index 00000000..8ad50740
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_content_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_table:method:table_content_get}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_contents_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_contents_get.txt
new file mode 100644
index 00000000..aa2113f2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_contents_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_table:method:table_contents_get}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_rows_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_rows_get.txt
new file mode 100644
index 00000000..9c04c271
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_rows_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_table:property:table_rows}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_rows_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_rows_set.txt
new file mode 100644
index 00000000..9c04c271
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_rows_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_table:property:table_rows}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_size_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_size_get.txt
new file mode 100644
index 00000000..f8dd8841
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_size_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_table:property:table_size}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_size_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_size_set.txt
new file mode 100644
index 00000000..f8dd8841
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_table_size_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_table:property:table_size}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_unpack.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_unpack.txt
new file mode 100644
index 00000000..3fca6da8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_unpack.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack:method:unpack}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_unpack_all.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_unpack_all.txt
new file mode 100644
index 00000000..6bbad11f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_unpack_all.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack:method:unpack_all}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_pack_unpack_at.txt b/public_html/data/pages/develop/api/ref/c/key/efl_pack_unpack_at.txt
new file mode 100644
index 00000000..6b7a1b34
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_pack_unpack_at.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:pack_linear:method:pack_unpack_at}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_parent_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_parent_get.txt
new file mode 100644
index 00000000..130f95cf
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_parent_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:property:parent}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_parent_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_parent_set.txt
new file mode 100644
index 00000000..130f95cf
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_parent_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:property:parent}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_part_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_part_get.txt
new file mode 100644
index 00000000..6b73cc5c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_part_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:part:method:part_get}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_player_paused_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_player_paused_get.txt
new file mode 100644
index 00000000..cf11e3be
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_player_paused_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:player:property:paused}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_player_paused_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_player_paused_set.txt
new file mode 100644
index 00000000..cf11e3be
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_player_paused_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:player:property:paused}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_player_playback_position_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_player_playback_position_get.txt
new file mode 100644
index 00000000..66cc5603
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_player_playback_position_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:player:property:playback_position}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_player_playback_position_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_player_playback_position_set.txt
new file mode 100644
index 00000000..66cc5603
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_player_playback_position_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:player:property:playback_position}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_player_playback_progress_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_player_playback_progress_get.txt
new file mode 100644
index 00000000..834720f4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_player_playback_progress_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:player:property:playback_progress}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_player_playback_speed_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_player_playback_speed_get.txt
new file mode 100644
index 00000000..c9aea21f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_player_playback_speed_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:player:property:playback_speed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_player_playback_speed_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_player_playback_speed_set.txt
new file mode 100644
index 00000000..c9aea21f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_player_playback_speed_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:player:property:playback_speed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_player_playing_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_player_playing_get.txt
new file mode 100644
index 00000000..b6316a79
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_player_playing_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:player:property:playing}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_player_playing_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_player_playing_set.txt
new file mode 100644
index 00000000..b6316a79
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_player_playing_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:player:property:playing}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_provider_find.txt b/public_html/data/pages/develop/api/ref/c/key/efl_provider_find.txt
new file mode 100644
index 00000000..e67ee47d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_provider_find.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:method:provider_find}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_provider_register.txt b/public_html/data/pages/develop/api/ref/c/key/efl_provider_register.txt
new file mode 100644
index 00000000..14c06fef
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_provider_register.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:method:provider_register}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_provider_unregister.txt b/public_html/data/pages/develop/api/ref/c/key/efl_provider_unregister.txt
new file mode 100644
index 00000000..2782d6c8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_provider_unregister.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:object:method:provider_unregister}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_screen_dpi_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_screen_dpi_get.txt
new file mode 100644
index 00000000..f344dab8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_screen_dpi_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:screen:property:screen_dpi}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_screen_rotation_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_screen_rotation_get.txt
new file mode 100644
index 00000000..c4766344
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_screen_rotation_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:screen:property:screen_rotation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_screen_scale_factor_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_screen_scale_factor_get.txt
new file mode 100644
index 00000000..fc079305
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_screen_scale_factor_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:screen:property:screen_scale_factor}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_screen_size_in_pixels_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_screen_size_in_pixels_get.txt
new file mode 100644
index 00000000..d281b07e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_screen_size_in_pixels_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:screen:property:screen_size_in_pixels}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_task_end.txt b/public_html/data/pages/develop/api/ref/c/key/efl_task_end.txt
new file mode 100644
index 00000000..b73134ba
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_task_end.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:task:method:end}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_task_exit_code_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_task_exit_code_get.txt
new file mode 100644
index 00000000..f4776074
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_task_exit_code_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:task:property:exit_code}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_task_flags_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_task_flags_get.txt
new file mode 100644
index 00000000..b9e43965
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_task_flags_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:task:property:flags}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_task_flags_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_task_flags_set.txt
new file mode 100644
index 00000000..b9e43965
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_task_flags_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:task:property:flags}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_task_priority_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_task_priority_get.txt
new file mode 100644
index 00000000..a5ea1e90
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_task_priority_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:task:property:priority}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_task_priority_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_task_priority_set.txt
new file mode 100644
index 00000000..a5ea1e90
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_task_priority_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:task:property:priority}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_task_run.txt b/public_html/data/pages/develop/api/ref/c/key/efl_task_run.txt
new file mode 100644
index 00000000..1627ee01
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_task_run.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:task:method:run}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_text_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_text_get.txt
new file mode 100644
index 00000000..63d64b8a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_text_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:text:property:text}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_text_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_text_set.txt
new file mode 100644
index 00000000..63d64b8a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_text_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:text:property:text}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_alert_popup_button_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_alert_popup_button_set.txt
new file mode 100644
index 00000000..34919539
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_alert_popup_button_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:alert_popup:property:button}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_autorepeat_enabled_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_autorepeat_enabled_get.txt
new file mode 100644
index 00000000..d678df39
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_autorepeat_enabled_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:autorepeat:property:autorepeat_enabled}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_autorepeat_enabled_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_autorepeat_enabled_set.txt
new file mode 100644
index 00000000..d678df39
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_autorepeat_enabled_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:autorepeat:property:autorepeat_enabled}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_autorepeat_gap_timeout_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_autorepeat_gap_timeout_get.txt
new file mode 100644
index 00000000..3092d525
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_autorepeat_gap_timeout_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:autorepeat:property:autorepeat_gap_timeout}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_autorepeat_gap_timeout_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_autorepeat_gap_timeout_set.txt
new file mode 100644
index 00000000..3092d525
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_autorepeat_gap_timeout_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:autorepeat:property:autorepeat_gap_timeout}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_autorepeat_initial_timeout_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_autorepeat_initial_timeout_get.txt
new file mode 100644
index 00000000..a79b3a6d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_autorepeat_initial_timeout_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:autorepeat:property:autorepeat_initial_timeout}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_autorepeat_initial_timeout_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_autorepeat_initial_timeout_set.txt
new file mode 100644
index 00000000..a79b3a6d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_autorepeat_initial_timeout_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:autorepeat:property:autorepeat_initial_timeout}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_box_homogeneous_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_box_homogeneous_get.txt
new file mode 100644
index 00000000..e5ac9de0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_box_homogeneous_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:box:property:homogeneous}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_box_homogeneous_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_box_homogeneous_set.txt
new file mode 100644
index 00000000..e5ac9de0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_box_homogeneous_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:box:property:homogeneous}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_collection_item_scroll.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_collection_item_scroll.txt
new file mode 100644
index 00000000..7e377bf7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_collection_item_scroll.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:collection:method:item_scroll}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_collection_item_scroll_align.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_collection_item_scroll_align.txt
new file mode 100644
index 00000000..3d8597e8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_collection_item_scroll_align.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:collection:method:item_scroll_align}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_collection_position_manager_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_collection_position_manager_get.txt
new file mode 100644
index 00000000..3575f7e9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_collection_position_manager_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:collection:property:position_manager}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_collection_position_manager_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_collection_position_manager_set.txt
new file mode 100644
index 00000000..3575f7e9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_collection_position_manager_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:collection:property:position_manager}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_collection_view_factory_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_collection_view_factory_get.txt
new file mode 100644
index 00000000..57df42f8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_collection_view_factory_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:collection_view:property:factory}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_collection_view_factory_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_collection_view_factory_set.txt
new file mode 100644
index 00000000..57df42f8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_collection_view_factory_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:collection_view:property:factory}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_collection_view_position_manager_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_collection_view_position_manager_get.txt
new file mode 100644
index 00000000..c41f51fd
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_collection_view_position_manager_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:collection_view:property:position_manager}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_collection_view_position_manager_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_collection_view_position_manager_set.txt
new file mode 100644
index 00000000..c41f51fd
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_collection_view_position_manager_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:collection_view:property:position_manager}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_datepicker_date_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_datepicker_date_get.txt
new file mode 100644
index 00000000..1ccba7b1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_datepicker_date_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:datepicker:property:date}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_datepicker_date_max_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_datepicker_date_max_get.txt
new file mode 100644
index 00000000..8a746938
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_datepicker_date_max_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:datepicker:property:date_max}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_datepicker_date_max_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_datepicker_date_max_set.txt
new file mode 100644
index 00000000..8a746938
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_datepicker_date_max_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:datepicker:property:date_max}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_datepicker_date_min_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_datepicker_date_min_get.txt
new file mode 100644
index 00000000..0df0d60e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_datepicker_date_min_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:datepicker:property:date_min}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_datepicker_date_min_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_datepicker_date_min_set.txt
new file mode 100644
index 00000000..0df0d60e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_datepicker_date_min_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:datepicker:property:date_min}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_datepicker_date_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_datepicker_date_set.txt
new file mode 100644
index 00000000..1ccba7b1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_datepicker_date_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:datepicker:property:date}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_factory_bind.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_factory_bind.txt
new file mode 100644
index 00000000..96f43470
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_factory_bind.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:factory_bind:method:factory_bind}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_factory_create.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_factory_create.txt
new file mode 100644
index 00000000..7f4324d4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_factory_create.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:factory:method:create}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_factory_release.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_factory_release.txt
new file mode 100644
index 00000000..78bd2c0c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_factory_release.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:factory:method:release}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_border_elements_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_border_elements_get.txt
new file mode 100644
index 00000000..45e93d0c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_border_elements_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager:property:border_elements}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_dirty_logic_freeze.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_dirty_logic_freeze.txt
new file mode 100644
index 00000000..6c5a72bc
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_dirty_logic_freeze.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager:method:dirty_logic_freeze}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_dirty_logic_unfreeze.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_dirty_logic_unfreeze.txt
new file mode 100644
index 00000000..f8e5beaa
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_dirty_logic_unfreeze.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager:method:dirty_logic_unfreeze}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_fetch.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_fetch.txt
new file mode 100644
index 00000000..3b7ffe69
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_fetch.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager:method:fetch}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_focus_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_focus_get.txt
new file mode 100644
index 00000000..0986b97c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_focus_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager:property:manager_focus}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_focus_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_focus_set.txt
new file mode 100644
index 00000000..0986b97c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_focus_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager:property:manager_focus}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_logical_end.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_logical_end.txt
new file mode 100644
index 00000000..a92c236b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_logical_end.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager:method:logical_end}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_move.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_move.txt
new file mode 100644
index 00000000..5a770570
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_move.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager:method:move}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_pop_history_stack.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_pop_history_stack.txt
new file mode 100644
index 00000000..3407219c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_pop_history_stack.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager:method:pop_history_stack}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_redirect_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_redirect_get.txt
new file mode 100644
index 00000000..8709ab79
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_redirect_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager:property:redirect}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_redirect_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_redirect_set.txt
new file mode 100644
index 00000000..8709ab79
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_redirect_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager:property:redirect}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_request_move.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_request_move.txt
new file mode 100644
index 00000000..a0fe2bbf
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_request_move.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager:method:request_move}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_request_subchild.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_request_subchild.txt
new file mode 100644
index 00000000..6783b68e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_request_subchild.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager:method:request_subchild}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_reset_history.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_reset_history.txt
new file mode 100644
index 00000000..03bb5d04
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_reset_history.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager:method:reset_history}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_root_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_root_get.txt
new file mode 100644
index 00000000..aa0b6807
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_root_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager:property:root}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_root_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_root_set.txt
new file mode 100644
index 00000000..aa0b6807
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_root_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager:property:root}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_setup_on_first_touch.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_setup_on_first_touch.txt
new file mode 100644
index 00000000..10a9c7ae
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_setup_on_first_touch.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager:method:setup_on_first_touch}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_viewport_elements_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_viewport_elements_get.txt
new file mode 100644
index 00000000..d1b88b57
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_manager_viewport_elements_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:manager:property:viewport_elements}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_child_focus_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_child_focus_get.txt
new file mode 100644
index 00000000..8a496e39
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_child_focus_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:object:property:child_focus}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_child_focus_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_child_focus_set.txt
new file mode 100644
index 00000000..8a496e39
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_child_focus_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:object:property:child_focus}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_focus_geometry_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_focus_geometry_get.txt
new file mode 100644
index 00000000..cdfab32c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_focus_geometry_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:object:property:focus_geometry}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_focus_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_focus_get.txt
new file mode 100644
index 00000000..2bf45ec8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_focus_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:object:property:focus}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_focus_manager_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_focus_manager_get.txt
new file mode 100644
index 00000000..ed79b2f0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_focus_manager_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:object:property:focus_manager}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_focus_parent_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_focus_parent_get.txt
new file mode 100644
index 00000000..9c7c17b3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_focus_parent_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:object:property:focus_parent}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_focus_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_focus_set.txt
new file mode 100644
index 00000000..2bf45ec8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_focus_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:object:property:focus}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_on_focus_update.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_on_focus_update.txt
new file mode 100644
index 00000000..c163182c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_on_focus_update.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:object:method:on_focus_update}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_setup_order.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_setup_order.txt
new file mode 100644
index 00000000..0c479611
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_setup_order.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:object:method:setup_order}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_setup_order_non_recursive.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_setup_order_non_recursive.txt
new file mode 100644
index 00000000..55ac30b0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_focus_object_setup_order_non_recursive.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:focus:object:method:setup_order_non_recursive}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_apply_formatted_value.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_apply_formatted_value.txt
new file mode 100644
index 00000000..35a10e1a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_apply_formatted_value.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:format:method:apply_formatted_value}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_decimal_places_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_decimal_places_get.txt
new file mode 100644
index 00000000..94790cf1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_decimal_places_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:format:method:decimal_places_get}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_formatted_value_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_formatted_value_get.txt
new file mode 100644
index 00000000..8a023be0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_formatted_value_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:format:method:formatted_value_get}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_func_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_func_get.txt
new file mode 100644
index 00000000..b3db199c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_func_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:format:property:format_func}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_func_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_func_set.txt
new file mode 100644
index 00000000..b3db199c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_func_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:format:property:format_func}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_string_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_string_get.txt
new file mode 100644
index 00000000..cf9426c6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_string_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:format:property:format_string}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_string_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_string_set.txt
new file mode 100644
index 00000000..cf9426c6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_string_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:format:property:format_string}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_values_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_values_get.txt
new file mode 100644
index 00000000..564be053
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_values_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:format:property:format_values}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_values_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_values_set.txt
new file mode 100644
index 00000000..564be053
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_format_values_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:format:property:format_values}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_image_icon_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_image_icon_get.txt
new file mode 100644
index 00000000..0fa93b9a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_image_icon_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:image:property:icon}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_image_icon_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_image_icon_set.txt
new file mode 100644
index 00000000..0fa93b9a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_image_icon_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:image:property:icon}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_image_zoomable_gesture_enabled_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_image_zoomable_gesture_enabled_get.txt
new file mode 100644
index 00000000..1503f468
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_image_zoomable_gesture_enabled_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:image_zoomable:property:gesture_enabled}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_image_zoomable_gesture_enabled_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_image_zoomable_gesture_enabled_set.txt
new file mode 100644
index 00000000..1503f468
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_image_zoomable_gesture_enabled_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:image_zoomable:property:gesture_enabled}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_image_zoomable_image_region_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_image_zoomable_image_region_get.txt
new file mode 100644
index 00000000..8bd07e20
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_image_zoomable_image_region_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:image_zoomable:property:image_region}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_image_zoomable_image_region_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_image_zoomable_image_region_set.txt
new file mode 100644
index 00000000..8bd07e20
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_image_zoomable_image_region_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:image_zoomable:property:image_region}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_item_calc_locked_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_item_calc_locked_get.txt
new file mode 100644
index 00000000..f85cdc70
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_item_calc_locked_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:item:property:calc_locked}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_item_calc_locked_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_item_calc_locked_set.txt
new file mode 100644
index 00000000..f85cdc70
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_item_calc_locked_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:item:property:calc_locked}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_item_container_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_item_container_get.txt
new file mode 100644
index 00000000..4a2e798d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_item_container_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:item:property:container}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_item_container_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_item_container_set.txt
new file mode 100644
index 00000000..4a2e798d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_item_container_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:item:property:container}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_item_index_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_item_index_get.txt
new file mode 100644
index 00000000..ca214632
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_item_index_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:item:property:index}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_item_parent_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_item_parent_get.txt
new file mode 100644
index 00000000..e0865f65
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_item_parent_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:item:property:item_parent}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_item_parent_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_item_parent_set.txt
new file mode 100644
index 00000000..e0865f65
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_item_parent_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:item:property:item_parent}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_automatic_theme_rotation_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_automatic_theme_rotation_get.txt
new file mode 100644
index 00000000..dd5aac98
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_automatic_theme_rotation_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout_base:property:automatic_theme_rotation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_automatic_theme_rotation_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_automatic_theme_rotation_set.txt
new file mode 100644
index 00000000..dd5aac98
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_automatic_theme_rotation_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout_base:property:automatic_theme_rotation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_finger_size_multiplier_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_finger_size_multiplier_get.txt
new file mode 100644
index 00000000..07c3ff52
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_finger_size_multiplier_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout_base:property:finger_size_multiplier}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_finger_size_multiplier_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_finger_size_multiplier_set.txt
new file mode 100644
index 00000000..07c3ff52
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_finger_size_multiplier_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout_base:property:finger_size_multiplier}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_orientation_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_orientation_get.txt
new file mode 100644
index 00000000..bed875c5
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_orientation_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout_orientable:property:orientation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_orientation_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_orientation_set.txt
new file mode 100644
index 00000000..bed875c5
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_orientation_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout_orientable:property:orientation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_theme_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_theme_get.txt
new file mode 100644
index 00000000..da13bc84
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_theme_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout_base:property:theme}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_theme_rotation_apply.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_theme_rotation_apply.txt
new file mode 100644
index 00000000..05a558d1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_theme_rotation_apply.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout_base:method:theme_rotation_apply}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_theme_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_theme_set.txt
new file mode 100644
index 00000000..da13bc84
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_layout_theme_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:layout_base:property:theme}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_align_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_align_get.txt
new file mode 100644
index 00000000..2e62d8ef
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_align_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:popup:property:align}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_align_priority_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_align_priority_get.txt
new file mode 100644
index 00000000..ebe70af9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_align_priority_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:popup:property:align_priority}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_align_priority_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_align_priority_set.txt
new file mode 100644
index 00000000..ebe70af9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_align_priority_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:popup:property:align_priority}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_align_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_align_set.txt
new file mode 100644
index 00000000..2e62d8ef
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_align_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:popup:property:align}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_anchor_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_anchor_get.txt
new file mode 100644
index 00000000..b0477757
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_anchor_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:popup:property:anchor}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_anchor_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_anchor_set.txt
new file mode 100644
index 00000000..b0477757
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_anchor_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:popup:property:anchor}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_closing_timeout_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_closing_timeout_get.txt
new file mode 100644
index 00000000..d8e2b627
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_closing_timeout_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:popup:property:closing_timeout}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_closing_timeout_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_closing_timeout_set.txt
new file mode 100644
index 00000000..d8e2b627
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_closing_timeout_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:popup:property:closing_timeout}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_part_backwall_repeat_events_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_part_backwall_repeat_events_get.txt
new file mode 100644
index 00000000..919f73c9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_part_backwall_repeat_events_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:popup_part_backwall:property:repeat_events}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_part_backwall_repeat_events_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_part_backwall_repeat_events_set.txt
new file mode 100644
index 00000000..919f73c9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_popup_part_backwall_repeat_events_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:popup_part_backwall:property:repeat_events}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_property_bind.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_property_bind.txt
new file mode 100644
index 00000000..549b0705
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_property_bind.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:property_bind:method:property_bind}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_radio_group_register.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_radio_group_register.txt
new file mode 100644
index 00000000..fd2fba3e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_radio_group_register.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:radio_group:method:register}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_radio_group_selected_value_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_radio_group_selected_value_get.txt
new file mode 100644
index 00000000..ae16c08a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_radio_group_selected_value_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:radio_group:property:selected_value}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_radio_group_selected_value_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_radio_group_selected_value_set.txt
new file mode 100644
index 00000000..ae16c08a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_radio_group_selected_value_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:radio_group:property:selected_value}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_radio_group_unregister.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_radio_group_unregister.txt
new file mode 100644
index 00000000..e639c0b3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_radio_group_unregister.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:radio_group:method:unregister}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_radio_state_value_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_radio_state_value_get.txt
new file mode 100644
index 00000000..8fa49b78
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_radio_state_value_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:radio:property:state_value}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_radio_state_value_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_radio_state_value_set.txt
new file mode 100644
index 00000000..8fa49b78
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_radio_state_value_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:radio:property:state_value}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_range_limits_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_range_limits_get.txt
new file mode 100644
index 00000000..6b0cd055
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_range_limits_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:range_display:property:range_limits}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_range_limits_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_range_limits_set.txt
new file mode 100644
index 00000000..6b0cd055
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_range_limits_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:range_display:property:range_limits}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_range_step_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_range_step_get.txt
new file mode 100644
index 00000000..7fb0e715
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_range_step_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:range_interactive:property:range_step}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_range_step_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_range_step_set.txt
new file mode 100644
index 00000000..7fb0e715
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_range_step_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:range_interactive:property:range_step}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_range_value_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_range_value_get.txt
new file mode 100644
index 00000000..14ceac88
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_range_value_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:range_display:property:range_value}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_range_value_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_range_value_set.txt
new file mode 100644
index 00000000..14ceac88
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_range_value_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:range_display:property:range_value}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_bounce_enabled_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_bounce_enabled_get.txt
new file mode 100644
index 00000000..880cbe5f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_bounce_enabled_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:property:bounce_enabled}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_bounce_enabled_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_bounce_enabled_set.txt
new file mode 100644
index 00000000..880cbe5f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_bounce_enabled_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:property:bounce_enabled}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_content_pos_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_content_pos_get.txt
new file mode 100644
index 00000000..4a76e37b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_content_pos_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:property:content_pos}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_content_pos_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_content_pos_set.txt
new file mode 100644
index 00000000..4a76e37b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_content_pos_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:property:content_pos}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_content_size_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_content_size_get.txt
new file mode 100644
index 00000000..09fca781
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_content_size_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:property:content_size}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_gravity_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_gravity_get.txt
new file mode 100644
index 00000000..3f2c007b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_gravity_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:property:gravity}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_gravity_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_gravity_set.txt
new file mode 100644
index 00000000..3f2c007b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_gravity_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:property:gravity}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_looping_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_looping_get.txt
new file mode 100644
index 00000000..a2f6bba2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_looping_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:property:looping}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_looping_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_looping_set.txt
new file mode 100644
index 00000000..a2f6bba2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_looping_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:property:looping}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_match_content_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_match_content_set.txt
new file mode 100644
index 00000000..3ff77d9c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_match_content_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:property:match_content}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_movement_block_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_movement_block_get.txt
new file mode 100644
index 00000000..ce843f4c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_movement_block_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:property:movement_block}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_movement_block_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_movement_block_set.txt
new file mode 100644
index 00000000..ce843f4c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_movement_block_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:property:movement_block}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_scroll.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_scroll.txt
new file mode 100644
index 00000000..10d23f02
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_scroll.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:method:scroll}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_scroll_freeze_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_scroll_freeze_get.txt
new file mode 100644
index 00000000..acf60716
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_scroll_freeze_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:property:scroll_freeze}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_scroll_freeze_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_scroll_freeze_set.txt
new file mode 100644
index 00000000..acf60716
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_scroll_freeze_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:property:scroll_freeze}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_scroll_hold_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_scroll_hold_get.txt
new file mode 100644
index 00000000..b7b336ab
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_scroll_hold_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:property:scroll_hold}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_scroll_hold_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_scroll_hold_set.txt
new file mode 100644
index 00000000..b7b336ab
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_scroll_hold_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:property:scroll_hold}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_step_size_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_step_size_get.txt
new file mode 100644
index 00000000..a88b30cd
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_step_size_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:property:step_size}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_step_size_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_step_size_set.txt
new file mode 100644
index 00000000..a88b30cd
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_step_size_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:property:step_size}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_viewport_geometry_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_viewport_geometry_get.txt
new file mode 100644
index 00000000..4cdc19b1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollable_viewport_geometry_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollable:property:viewport_geometry}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollbar_bar_mode_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollbar_bar_mode_get.txt
new file mode 100644
index 00000000..be57f15c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollbar_bar_mode_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollbar:property:bar_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollbar_bar_mode_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollbar_bar_mode_set.txt
new file mode 100644
index 00000000..be57f15c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollbar_bar_mode_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollbar:property:bar_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollbar_bar_position_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollbar_bar_position_get.txt
new file mode 100644
index 00000000..afa49124
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollbar_bar_position_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollbar:property:bar_position}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollbar_bar_position_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollbar_bar_position_set.txt
new file mode 100644
index 00000000..afa49124
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollbar_bar_position_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollbar:property:bar_position}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollbar_bar_size_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollbar_bar_size_get.txt
new file mode 100644
index 00000000..cc12b905
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollbar_bar_size_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollbar:property:bar_size}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollbar_bar_visibility_update.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollbar_bar_visibility_update.txt
new file mode 100644
index 00000000..43d7f369
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_scrollbar_bar_visibility_update.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:scrollbar:method:bar_visibility_update}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_selectable_fallback_selection_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_selectable_fallback_selection_get.txt
new file mode 100644
index 00000000..e0773279
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_selectable_fallback_selection_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:single_selectable:property:fallback_selection}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_selectable_fallback_selection_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_selectable_fallback_selection_set.txt
new file mode 100644
index 00000000..e0773279
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_selectable_fallback_selection_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:single_selectable:property:fallback_selection}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_selectable_last_selected_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_selectable_last_selected_get.txt
new file mode 100644
index 00000000..df264c66
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_selectable_last_selected_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:single_selectable:property:last_selected}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_selectable_selected_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_selectable_selected_get.txt
new file mode 100644
index 00000000..4c2b9ee2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_selectable_selected_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:selectable:property:selected}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_selectable_selected_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_selectable_selected_set.txt
new file mode 100644
index 00000000..4c2b9ee2
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_selectable_selected_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:selectable:property:selected}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_spin_button_direct_text_input_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_spin_button_direct_text_input_get.txt
new file mode 100644
index 00000000..cd03e54a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_spin_button_direct_text_input_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:spin_button:property:direct_text_input}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_spin_button_direct_text_input_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_spin_button_direct_text_input_set.txt
new file mode 100644
index 00000000..cd03e54a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_spin_button_direct_text_input_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:spin_button:property:direct_text_input}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_spin_button_wraparound_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_spin_button_wraparound_get.txt
new file mode 100644
index 00000000..ebb4b9bd
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_spin_button_wraparound_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:spin_button:property:wraparound}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_spin_button_wraparound_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_spin_button_wraparound_set.txt
new file mode 100644
index 00000000..ebb4b9bd
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_spin_button_wraparound_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:spin_button:property:wraparound}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_table_homogeneous_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_table_homogeneous_get.txt
new file mode 100644
index 00000000..15d6c946
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_table_homogeneous_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:table:property:homogeneous}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_table_homogeneous_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_table_homogeneous_set.txt
new file mode 100644
index 00000000..15d6c946
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_table_homogeneous_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:table:property:homogeneous}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_timepicker_is_24hour_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_timepicker_is_24hour_get.txt
new file mode 100644
index 00000000..849ad79f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_timepicker_is_24hour_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:timepicker:property:is_24hour}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_timepicker_is_24hour_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_timepicker_is_24hour_set.txt
new file mode 100644
index 00000000..849ad79f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_timepicker_is_24hour_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:timepicker:property:is_24hour}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_timepicker_time_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_timepicker_time_get.txt
new file mode 100644
index 00000000..d2a50d2a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_timepicker_time_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:timepicker:property:time}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_timepicker_time_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_timepicker_time_set.txt
new file mode 100644
index 00000000..d2a50d2a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_timepicker_time_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:timepicker:property:time}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_children_bind_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_children_bind_get.txt
new file mode 100644
index 00000000..75af2b14
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_children_bind_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:view_model:property:children_bind}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_children_bind_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_children_bind_set.txt
new file mode 100644
index 00000000..75af2b14
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_children_bind_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:view_model:property:children_bind}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_get.txt
new file mode 100644
index 00000000..62e9c630
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:view:property:model}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_property_bind.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_property_bind.txt
new file mode 100644
index 00000000..366ca1d6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_property_bind.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:view_model:method:property_bind}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_property_logic_add.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_property_logic_add.txt
new file mode 100644
index 00000000..4ce5b916
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_property_logic_add.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:view_model:method:property_logic_add}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_property_logic_del.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_property_logic_del.txt
new file mode 100644
index 00000000..2d065ac7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_property_logic_del.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:view_model:method:property_logic_del}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_property_string_add.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_property_string_add.txt
new file mode 100644
index 00000000..788ac342
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_property_string_add.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:view_model:method:property_string_add}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_property_string_del.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_property_string_del.txt
new file mode 100644
index 00000000..b1ea8943
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_property_string_del.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:view_model:method:property_string_del}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_property_unbind.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_property_unbind.txt
new file mode 100644
index 00000000..bb87af44
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_property_unbind.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:view_model:method:property_unbind}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_set.txt
new file mode 100644
index 00000000..62e9c630
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_view_model_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:view:property:model}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_access_info_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_access_info_get.txt
new file mode 100644
index 00000000..b5969792
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_access_info_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:property:access_info}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_access_info_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_access_info_set.txt
new file mode 100644
index 00000000..b5969792
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_access_info_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:property:access_info}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_cursor_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_cursor_get.txt
new file mode 100644
index 00000000..88f8cbc5
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_cursor_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:property:cursor}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_cursor_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_cursor_set.txt
new file mode 100644
index 00000000..88f8cbc5
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_cursor_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:property:cursor}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_cursor_style_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_cursor_style_get.txt
new file mode 100644
index 00000000..193b3e9f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_cursor_style_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:property:cursor_style}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_cursor_style_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_cursor_style_set.txt
new file mode 100644
index 00000000..193b3e9f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_cursor_style_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:property:cursor_style}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_cursor_theme_search_enabled_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_cursor_theme_search_enabled_get.txt
new file mode 100644
index 00000000..023dd490
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_cursor_theme_search_enabled_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:property:cursor_theme_search_enabled}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_cursor_theme_search_enabled_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_cursor_theme_search_enabled_set.txt
new file mode 100644
index 00000000..023dd490
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_cursor_theme_search_enabled_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:property:cursor_theme_search_enabled}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_disabled_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_disabled_get.txt
new file mode 100644
index 00000000..af82db32
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_disabled_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:property:disabled}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_disabled_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_disabled_set.txt
new file mode 100644
index 00000000..af82db32
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_disabled_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:property:disabled}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_factory_item_class_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_factory_item_class_get.txt
new file mode 100644
index 00000000..235a0924
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_factory_item_class_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget_factory:property:item_class}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_factory_item_class_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_factory_item_class_set.txt
new file mode 100644
index 00000000..235a0924
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_factory_item_class_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget_factory:property:item_class}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_allow_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_allow_get.txt
new file mode 100644
index 00000000..519e560c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_allow_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:property:focus_allow}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_allow_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_allow_set.txt
new file mode 100644
index 00000000..519e560c
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_allow_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:property:focus_allow}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_highlight_geometry_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_highlight_geometry_get.txt
new file mode 100644
index 00000000..4eb59071
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_highlight_geometry_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:property:focus_highlight_geometry}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_manager_create.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_manager_create.txt
new file mode 100644
index 00000000..9045deae
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_manager_create.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget_focus_manager:method:focus_manager_create}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_move_policy_automatic_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_move_policy_automatic_get.txt
new file mode 100644
index 00000000..48dbd661
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_move_policy_automatic_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:property:focus_move_policy_automatic}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_move_policy_automatic_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_move_policy_automatic_set.txt
new file mode 100644
index 00000000..48dbd661
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_move_policy_automatic_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:property:focus_move_policy_automatic}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_move_policy_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_move_policy_get.txt
new file mode 100644
index 00000000..a48cd740
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_move_policy_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:property:focus_move_policy}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_move_policy_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_move_policy_set.txt
new file mode 100644
index 00000000..a48cd740
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_move_policy_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:property:focus_move_policy}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_state_apply.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_state_apply.txt
new file mode 100644
index 00000000..0a8aff85
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_focus_state_apply.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:method:focus_state_apply}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_input_event_handler.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_input_event_handler.txt
new file mode 100644
index 00000000..f2b52aed
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_input_event_handler.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:method:widget_input_event_handler}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_interest_region_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_interest_region_get.txt
new file mode 100644
index 00000000..8c634467
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_interest_region_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:property:interest_region}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_on_access_activate.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_on_access_activate.txt
new file mode 100644
index 00000000..ce9c17be
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_on_access_activate.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:method:on_access_activate}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_on_access_update.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_on_access_update.txt
new file mode 100644
index 00000000..4fc87b86
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_on_access_update.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:method:on_access_update}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_parent_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_parent_get.txt
new file mode 100644
index 00000000..74537046
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_parent_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:property:widget_parent}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_parent_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_parent_set.txt
new file mode 100644
index 00000000..74537046
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_parent_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:property:widget_parent}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_resize_object_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_resize_object_set.txt
new file mode 100644
index 00000000..1722b4fe
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_resize_object_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:property:resize_object}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_scroll_freeze_pop.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_scroll_freeze_pop.txt
new file mode 100644
index 00000000..da7e63f6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_scroll_freeze_pop.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:method:scroll_freeze_pop}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_scroll_freeze_push.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_scroll_freeze_push.txt
new file mode 100644
index 00000000..c06fbdfb
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_scroll_freeze_push.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:method:scroll_freeze_push}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_scroll_hold_pop.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_scroll_hold_pop.txt
new file mode 100644
index 00000000..ac8c79b0
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_scroll_hold_pop.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:method:scroll_hold_pop}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_scroll_hold_push.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_scroll_hold_push.txt
new file mode 100644
index 00000000..ca4e4ff1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_scroll_hold_push.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:method:scroll_hold_push}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_style_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_style_get.txt
new file mode 100644
index 00000000..84f05768
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_style_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:property:style}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_style_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_style_set.txt
new file mode 100644
index 00000000..84f05768
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_style_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:property:style}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_sub_object_add.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_sub_object_add.txt
new file mode 100644
index 00000000..b19360d4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_sub_object_add.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:method:widget_sub_object_add}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_sub_object_del.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_sub_object_del.txt
new file mode 100644
index 00000000..192a6f5d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_sub_object_del.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:method:widget_sub_object_del}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_theme_apply.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_theme_apply.txt
new file mode 100644
index 00000000..3f7e119e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_widget_theme_apply.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:widget:method:theme_apply}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_accel_preference_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_accel_preference_get.txt
new file mode 100644
index 00000000..dffe5519
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_accel_preference_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:accel_preference}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_accel_preference_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_accel_preference_set.txt
new file mode 100644
index 00000000..dffe5519
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_accel_preference_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:accel_preference}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_activate.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_activate.txt
new file mode 100644
index 00000000..ef3a61a5
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_activate.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:method:activate}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_alpha_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_alpha_get.txt
new file mode 100644
index 00000000..097651b6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_alpha_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:alpha}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_alpha_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_alpha_set.txt
new file mode 100644
index 00000000..097651b6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_alpha_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:alpha}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_autohide_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_autohide_get.txt
new file mode 100644
index 00000000..d0327629
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_autohide_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:autohide}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_autohide_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_autohide_set.txt
new file mode 100644
index 00000000..d0327629
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_autohide_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:autohide}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_borderless_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_borderless_get.txt
new file mode 100644
index 00000000..aeb404eb
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_borderless_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:borderless}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_borderless_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_borderless_set.txt
new file mode 100644
index 00000000..aeb404eb
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_borderless_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:borderless}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_center.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_center.txt
new file mode 100644
index 00000000..159b741f
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_center.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:method:center}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_exit_on_all_windows_closed_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_exit_on_all_windows_closed_get.txt
new file mode 100644
index 00000000..4f28570e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_exit_on_all_windows_closed_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:exit_on_all_windows_closed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_exit_on_all_windows_closed_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_exit_on_all_windows_closed_set.txt
new file mode 100644
index 00000000..4f28570e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_exit_on_all_windows_closed_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:exit_on_all_windows_closed}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_exit_on_close_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_exit_on_close_get.txt
new file mode 100644
index 00000000..db143fd1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_exit_on_close_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:exit_on_close}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_exit_on_close_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_exit_on_close_set.txt
new file mode 100644
index 00000000..db143fd1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_exit_on_close_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:exit_on_close}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_focus_highlight_animate_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_focus_highlight_animate_get.txt
new file mode 100644
index 00000000..128331ee
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_focus_highlight_animate_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:focus_highlight_animate}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_focus_highlight_animate_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_focus_highlight_animate_set.txt
new file mode 100644
index 00000000..128331ee
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_focus_highlight_animate_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:focus_highlight_animate}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_focus_highlight_enabled_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_focus_highlight_enabled_get.txt
new file mode 100644
index 00000000..41a1e3b3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_focus_highlight_enabled_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:focus_highlight_enabled}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_focus_highlight_enabled_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_focus_highlight_enabled_set.txt
new file mode 100644
index 00000000..41a1e3b3
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_focus_highlight_enabled_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:focus_highlight_enabled}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_focus_highlight_style_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_focus_highlight_style_get.txt
new file mode 100644
index 00000000..f0e1c7b8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_focus_highlight_style_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:focus_highlight_style}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_focus_highlight_style_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_focus_highlight_style_set.txt
new file mode 100644
index 00000000..f0e1c7b8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_focus_highlight_style_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:focus_highlight_style}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_fullscreen_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_fullscreen_get.txt
new file mode 100644
index 00000000..a82d1253
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_fullscreen_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:fullscreen}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_fullscreen_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_fullscreen_set.txt
new file mode 100644
index 00000000..a82d1253
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_fullscreen_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:fullscreen}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_hint_base_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_hint_base_get.txt
new file mode 100644
index 00000000..21eb9bf1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_hint_base_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:hint_base}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_hint_base_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_hint_base_set.txt
new file mode 100644
index 00000000..21eb9bf1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_hint_base_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:hint_base}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_hint_step_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_hint_step_get.txt
new file mode 100644
index 00000000..aef0c0ee
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_hint_step_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:hint_step}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_hint_step_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_hint_step_set.txt
new file mode 100644
index 00000000..aef0c0ee
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_hint_step_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:hint_step}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_icon_object_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_icon_object_get.txt
new file mode 100644
index 00000000..f9d06cd8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_icon_object_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:icon_object}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_icon_object_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_icon_object_set.txt
new file mode 100644
index 00000000..f9d06cd8
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_icon_object_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:icon_object}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_indicator_mode_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_indicator_mode_get.txt
new file mode 100644
index 00000000..21a94cc7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_indicator_mode_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:indicator_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_indicator_mode_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_indicator_mode_set.txt
new file mode 100644
index 00000000..21a94cc7
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_indicator_mode_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:indicator_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_keyboard_mode_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_keyboard_mode_get.txt
new file mode 100644
index 00000000..ce415f92
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_keyboard_mode_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:keyboard_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_keyboard_mode_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_keyboard_mode_set.txt
new file mode 100644
index 00000000..ce415f92
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_keyboard_mode_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:keyboard_mode}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_maximized_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_maximized_get.txt
new file mode 100644
index 00000000..5b216867
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_maximized_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:maximized}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_maximized_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_maximized_set.txt
new file mode 100644
index 00000000..5b216867
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_maximized_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:maximized}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_minimized_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_minimized_get.txt
new file mode 100644
index 00000000..ec2477f5
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_minimized_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:minimized}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_minimized_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_minimized_set.txt
new file mode 100644
index 00000000..ec2477f5
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_minimized_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:minimized}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_modal_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_modal_get.txt
new file mode 100644
index 00000000..84a43b9a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_modal_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:modal}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_modal_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_modal_set.txt
new file mode 100644
index 00000000..84a43b9a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_modal_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:modal}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_move_resize_start.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_move_resize_start.txt
new file mode 100644
index 00000000..65a32662
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_move_resize_start.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:method:move_resize_start}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_name_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_name_get.txt
new file mode 100644
index 00000000..c408519e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_name_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:win_name}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_name_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_name_set.txt
new file mode 100644
index 00000000..c408519e
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_name_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:win_name}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_pointer_iterate.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_pointer_iterate.txt
new file mode 100644
index 00000000..92299106
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_pointer_iterate.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:method:pointer_iterate}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_prop_focus_skip_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_prop_focus_skip_set.txt
new file mode 100644
index 00000000..4498c0d9
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_prop_focus_skip_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:prop_focus_skip}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_role_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_role_get.txt
new file mode 100644
index 00000000..92f64e8b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_role_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:win_role}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_role_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_role_set.txt
new file mode 100644
index 00000000..92f64e8b
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_role_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:win_role}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_rotation_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_rotation_get.txt
new file mode 100644
index 00000000..a5c0c72a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_rotation_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:win_rotation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_rotation_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_rotation_set.txt
new file mode 100644
index 00000000..a5c0c72a
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_rotation_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:win_rotation}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_screen_constrain_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_screen_constrain_get.txt
new file mode 100644
index 00000000..d9e3fb43
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_screen_constrain_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:screen_constrain}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_screen_constrain_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_screen_constrain_set.txt
new file mode 100644
index 00000000..d9e3fb43
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_screen_constrain_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:screen_constrain}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_stack_base_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_stack_base_get.txt
new file mode 100644
index 00000000..553a8a45
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_stack_base_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:stack_base}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_stack_base_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_stack_base_set.txt
new file mode 100644
index 00000000..553a8a45
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_stack_base_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:stack_base}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_stack_id_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_stack_id_get.txt
new file mode 100644
index 00000000..7a2f0f42
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_stack_id_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:stack_id}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_stack_master_id_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_stack_master_id_get.txt
new file mode 100644
index 00000000..fa26fae4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_stack_master_id_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:stack_master_id}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_stack_master_id_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_stack_master_id_set.txt
new file mode 100644
index 00000000..fa26fae4
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_stack_master_id_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:stack_master_id}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_stack_pop_to.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_stack_pop_to.txt
new file mode 100644
index 00000000..ff756a65
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_stack_pop_to.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:method:stack_pop_to}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_sticky_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_sticky_get.txt
new file mode 100644
index 00000000..03a8249d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_sticky_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:sticky}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_sticky_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_sticky_set.txt
new file mode 100644
index 00000000..03a8249d
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_sticky_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:sticky}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_type_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_type_get.txt
new file mode 100644
index 00000000..31906190
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_type_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:win_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_type_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_type_set.txt
new file mode 100644
index 00000000..31906190
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_type_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:win_type}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_urgent_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_urgent_get.txt
new file mode 100644
index 00000000..04d2f3ec
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_urgent_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:urgent}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_urgent_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_urgent_set.txt
new file mode 100644
index 00000000..04d2f3ec
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_urgent_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:urgent}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_wm_available_profiles_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_wm_available_profiles_get.txt
new file mode 100644
index 00000000..9cb097d6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_wm_available_profiles_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:wm_available_profiles}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_wm_available_profiles_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_wm_available_profiles_set.txt
new file mode 100644
index 00000000..9cb097d6
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_wm_available_profiles_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:wm_available_profiles}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_wm_available_rotations_get.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_wm_available_rotations_get.txt
new file mode 100644
index 00000000..7cd19849
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_wm_available_rotations_get.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:wm_available_rotations}}
diff --git a/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_wm_available_rotations_set.txt b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_wm_available_rotations_set.txt
new file mode 100644
index 00000000..7cd19849
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/key/efl_ui_win_wm_available_rotations_set.txt
@@ -0,0 +1 @@
+{{page>:develop:api:efl:ui:win:property:wm_available_rotations}}
diff --git a/public_html/data/pages/develop/api/ref/c/keyword-link.txt b/public_html/data/pages/develop/api/ref/c/keyword-link.txt
new file mode 100644
index 00000000..c272da13
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/keyword-link.txt
@@ -0,0 +1 @@
+/develop/api/ref/c/key/{FNAME}
diff --git a/public_html/data/pages/develop/api/ref/c/keyword-list.txt b/public_html/data/pages/develop/api/ref/c/keyword-list.txt
new file mode 100644
index 00000000..0e4afbe1
--- /dev/null
+++ b/public_html/data/pages/develop/api/ref/c/keyword-list.txt
@@ -0,0 +1,1160 @@
+EFL_APP_EVENT_PAUSE
+EFL_APP_EVENT_RESUME
+EFL_APP_EVENT_SIGNAL_HUP
+EFL_APP_EVENT_SIGNAL_USR1
+EFL_APP_EVENT_SIGNAL_USR2
+EFL_APP_EVENT_STANDBY
+EFL_APP_EVENT_TERMINATE
+EFL_CALLBACK_PRIORITY_AFTER
+EFL_CALLBACK_PRIORITY_BEFORE
+EFL_CALLBACK_PRIORITY_DEFAULT
+EFL_CANVAS_GROUP_EVENT_MEMBER_ADDED
+EFL_CANVAS_GROUP_EVENT_MEMBER_REMOVED
+EFL_CANVAS_OBJECT_EVENT_ANIMATOR_TICK
+EFL_CANVAS_SCENE_EVENT_DEVICE_ADDED
+EFL_CANVAS_SCENE_EVENT_DEVICE_CHANGED
+EFL_CANVAS_SCENE_EVENT_DEVICE_REMOVED
+EFL_CANVAS_SCENE_EVENT_OBJECT_FOCUS_IN
+EFL_CANVAS_SCENE_EVENT_OBJECT_FOCUS_OUT
+EFL_CANVAS_SCENE_EVENT_RENDER_POST
+EFL_CANVAS_SCENE_EVENT_RENDER_PRE
+EFL_CANVAS_SCENE_EVENT_SCENE_FOCUS_IN
+EFL_CANVAS_SCENE_EVENT_SCENE_FOCUS_OUT
+EFL_CONTAINER_EVENT_CONTENT_ADDED
+EFL_CONTAINER_EVENT_CONTENT_REMOVED
+EFL_CONTENT_EVENT_CONTENT_CHANGED
+EFL_EVENT_DEL
+EFL_EVENT_DESTRUCT
+EFL_EVENT_FINGER_DOWN
+EFL_EVENT_FINGER_MOVE
+EFL_EVENT_FINGER_UP
+EFL_EVENT_FOCUS_IN
+EFL_EVENT_FOCUS_OUT
+EFL_EVENT_HOLD
+EFL_EVENT_INVALIDATE
+EFL_EVENT_KEY_DOWN
+EFL_EVENT_KEY_UP
+EFL_EVENT_NOREF
+EFL_EVENT_OWNERSHIP_SHARED
+EFL_EVENT_OWNERSHIP_UNIQUE
+EFL_EVENT_POINTER_AXIS
+EFL_EVENT_POINTER_CANCEL
+EFL_EVENT_POINTER_DOWN
+EFL_EVENT_POINTER_IN
+EFL_EVENT_POINTER_MOVE
+EFL_EVENT_POINTER_OUT
+EFL_EVENT_POINTER_UP
+EFL_EVENT_POINTER_WHEEL
+EFL_GFX_CAP_BUTT
+EFL_GFX_CAP_LAST
+EFL_GFX_CAP_ROUND
+EFL_GFX_CAP_SQUARE
+EFL_GFX_CENTER_FILL_MODE_DEFAULT
+EFL_GFX_CENTER_FILL_MODE_NONE
+EFL_GFX_CENTER_FILL_MODE_SOLID
+EFL_GFX_CHANGE_FLAG_ALL
+EFL_GFX_CHANGE_FLAG_FILL
+EFL_GFX_CHANGE_FLAG_MATRIX
+EFL_GFX_CHANGE_FLAG_NONE
+EFL_GFX_CHANGE_FLAG_PATH
+EFL_GFX_ENTITY_EVENT_HINTS_CHANGED
+EFL_GFX_ENTITY_EVENT_POSITION_CHANGED
+EFL_GFX_ENTITY_EVENT_SIZE_CHANGED
+EFL_GFX_ENTITY_EVENT_STACKING_CHANGED
+EFL_GFX_ENTITY_EVENT_VISIBILITY_CHANGED
+EFL_GFX_GRADIENT_SPREAD_LAST
+EFL_GFX_GRADIENT_SPREAD_PAD
+EFL_GFX_GRADIENT_SPREAD_REFLECT
+EFL_GFX_GRADIENT_SPREAD_REPEAT
+EFL_GFX_HINT_ALIGN_BOTTOM
+EFL_GFX_HINT_ALIGN_CENTER
+EFL_GFX_HINT_ALIGN_LEFT
+EFL_GFX_HINT_ALIGN_RIGHT
+EFL_GFX_HINT_ALIGN_TOP
+EFL_GFX_HINT_ASPECT_BOTH
+EFL_GFX_HINT_ASPECT_HORIZONTAL
+EFL_GFX_HINT_ASPECT_NEITHER
+EFL_GFX_HINT_ASPECT_NONE
+EFL_GFX_HINT_ASPECT_VERTICAL
+EFL_GFX_HINT_EXPAND
+EFL_GFX_IMAGE_CONTENT_HINT_DYNAMIC
+EFL_GFX_IMAGE_CONTENT_HINT_NONE
+EFL_GFX_IMAGE_CONTENT_HINT_STATIC
+EFL_GFX_IMAGE_EVENT_IMAGE_PRELOAD_STATE_CHANGED
+EFL_GFX_IMAGE_EVENT_IMAGE_RESIZED
+EFL_GFX_IMAGE_ORIENTATION_DOWN
+EFL_GFX_IMAGE_ORIENTATION_FLIP_BITMASK
+EFL_GFX_IMAGE_ORIENTATION_FLIP_HORIZONTAL
+EFL_GFX_IMAGE_ORIENTATION_FLIP_VERTICAL
+EFL_GFX_IMAGE_ORIENTATION_LEFT
+EFL_GFX_IMAGE_ORIENTATION_NONE
+EFL_GFX_IMAGE_ORIENTATION_RIGHT
+EFL_GFX_IMAGE_ORIENTATION_ROTATION_BITMASK
+EFL_GFX_IMAGE_ORIENTATION_UP
+EFL_GFX_IMAGE_SCALE_HINT_DYNAMIC
+EFL_GFX_IMAGE_SCALE_HINT_NONE
+EFL_GFX_IMAGE_SCALE_HINT_STATIC
+EFL_GFX_IMAGE_SCALE_METHOD_EXPAND
+EFL_GFX_IMAGE_SCALE_METHOD_FILL
+EFL_GFX_IMAGE_SCALE_METHOD_FIT
+EFL_GFX_IMAGE_SCALE_METHOD_FIT_HEIGHT
+EFL_GFX_IMAGE_SCALE_METHOD_FIT_WIDTH
+EFL_GFX_IMAGE_SCALE_METHOD_NONE
+EFL_GFX_IMAGE_SCALE_METHOD_TILE
+EFL_GFX_JOIN_BEVEL
+EFL_GFX_JOIN_LAST
+EFL_GFX_JOIN_MITER
+EFL_GFX_JOIN_ROUND
+EFL_GFX_PATH_COMMAND_TYPE_CLOSE
+EFL_GFX_PATH_COMMAND_TYPE_CUBIC_TO
+EFL_GFX_PATH_COMMAND_TYPE_END
+EFL_GFX_PATH_COMMAND_TYPE_LAST
+EFL_GFX_PATH_COMMAND_TYPE_LINE_TO
+EFL_GFX_PATH_COMMAND_TYPE_MOVE_TO
+EFL_GFX_RENDER_OP_BLEND
+EFL_GFX_RENDER_OP_COPY
+EFL_GFX_RENDER_OP_LAST
+EFL_GFX_STACK_LAYER_MAX
+EFL_GFX_STACK_LAYER_MIN
+EFL_INPUT_DEVICE_TYPE_GAMEPAD
+EFL_INPUT_DEVICE_TYPE_KEYBOARD
+EFL_INPUT_DEVICE_TYPE_MOUSE
+EFL_INPUT_DEVICE_TYPE_NONE
+EFL_INPUT_DEVICE_TYPE_PEN
+EFL_INPUT_DEVICE_TYPE_SEAT
+EFL_INPUT_DEVICE_TYPE_TOUCH
+EFL_INPUT_DEVICE_TYPE_WAND
+EFL_INPUT_EVENT_CLICKED
+EFL_INPUT_EVENT_CLICKED_ANY
+EFL_INPUT_EVENT_LONGPRESSED
+EFL_INPUT_EVENT_PRESSED
+EFL_INPUT_EVENT_UNPRESSED
+EFL_INPUT_FLAGS_NONE
+EFL_INPUT_FLAGS_PROCESSED
+EFL_INPUT_FLAGS_SCROLLING
+EFL_INPUT_LOCK_CAPS
+EFL_INPUT_LOCK_NONE
+EFL_INPUT_LOCK_NUM
+EFL_INPUT_LOCK_SCROLL
+EFL_INPUT_LOCK_SHIFT
+EFL_INPUT_MODIFIER_ALT
+EFL_INPUT_MODIFIER_ALTGR
+EFL_INPUT_MODIFIER_CONTROL
+EFL_INPUT_MODIFIER_HYPER
+EFL_INPUT_MODIFIER_META
+EFL_INPUT_MODIFIER_NONE
+EFL_INPUT_MODIFIER_SHIFT
+EFL_INPUT_MODIFIER_SUPER
+EFL_IO_CLOSER_EVENT_CLOSED
+EFL_IO_READER_EVENT_CAN_READ_CHANGED
+EFL_IO_READER_EVENT_EOS
+EFL_IO_WRITER_EVENT_CAN_WRITE_CHANGED
+EFL_LAYOUT_EVENT_CIRCULAR_DEPENDENCY
+EFL_LAYOUT_EVENT_RECALC
+EFL_LOOP_EVENT_ARGUMENTS
+EFL_LOOP_EVENT_IDLE
+EFL_LOOP_EVENT_IDLE_ENTER
+EFL_LOOP_EVENT_IDLE_EXIT
+EFL_LOOP_EVENT_POLL_HIGH
+EFL_LOOP_EVENT_POLL_LOW
+EFL_LOOP_EVENT_POLL_MEDIUM
+EFL_LOOP_EVENT_QUIT
+EFL_LOOP_TIMER_EVENT_TIMER_TICK
+EFL_MODEL_EVENT_CHILDREN_COUNT_CHANGED
+EFL_MODEL_EVENT_CHILD_ADDED
+EFL_MODEL_EVENT_CHILD_REMOVED
+EFL_MODEL_EVENT_PROPERTIES_CHANGED
+EFL_PACK_EVENT_LAYOUT_UPDATED
+EFL_POINTER_ACTION_AXIS
+EFL_POINTER_ACTION_CANCEL
+EFL_POINTER_ACTION_DOWN
+EFL_POINTER_ACTION_IN
+EFL_POINTER_ACTION_MOVE
+EFL_POINTER_ACTION_NONE
+EFL_POINTER_ACTION_OUT
+EFL_POINTER_ACTION_UP
+EFL_POINTER_ACTION_WHEEL
+EFL_POINTER_FLAGS_DOUBLE_CLICK
+EFL_POINTER_FLAGS_NONE
+EFL_POINTER_FLAGS_TRIPLE_CLICK
+EFL_TASK_EVENT_EXIT
+EFL_TASK_FLAGS_EXIT_WITH_PARENT
+EFL_TASK_FLAGS_NONE
+EFL_TASK_FLAGS_NO_EXIT_CODE_ERROR
+EFL_TASK_FLAGS_USE_STDIN
+EFL_TASK_FLAGS_USE_STDOUT
+EFL_TASK_PRIORITY_BACKGROUND
+EFL_TASK_PRIORITY_HIGH
+EFL_TASK_PRIORITY_LOW
+EFL_TASK_PRIORITY_NORMAL
+EFL_TASK_PRIORITY_ULTRA
+EFL_TEXT_BIDIRECTIONAL_TYPE_INHERIT
+EFL_TEXT_BIDIRECTIONAL_TYPE_LTR
+EFL_TEXT_BIDIRECTIONAL_TYPE_NATURAL
+EFL_TEXT_BIDIRECTIONAL_TYPE_NEUTRAL
+EFL_TEXT_BIDIRECTIONAL_TYPE_RTL
+EFL_UI_ALERT_POPUP_BUTTON_NEGATIVE
+EFL_UI_ALERT_POPUP_BUTTON_POSITIVE
+EFL_UI_ALERT_POPUP_BUTTON_USER
+EFL_UI_ALERT_POPUP_EVENT_BUTTON_CLICKED
+EFL_UI_AUTOREPEAT_EVENT_REPEATED
+EFL_UI_COLLECTION_VIEW_EVENT_ITEM_REALIZED
+EFL_UI_COLLECTION_VIEW_EVENT_ITEM_UNREALIZED
+EFL_UI_DATEPICKER_EVENT_DATE_CHANGED
+EFL_UI_EVENT_EDGE_DOWN
+EFL_UI_EVENT_EDGE_LEFT
+EFL_UI_EVENT_EDGE_RIGHT
+EFL_UI_EVENT_EDGE_UP
+EFL_UI_EVENT_SCROLL_ANIM_FINISHED
+EFL_UI_EVENT_SCROLL_ANIM_STARTED
+EFL_UI_EVENT_SCROLL_CHANGED
+EFL_UI_EVENT_SCROLL_DOWN
+EFL_UI_EVENT_SCROLL_DRAG_FINISHED
+EFL_UI_EVENT_SCROLL_DRAG_STARTED
+EFL_UI_EVENT_SCROLL_FINISHED
+EFL_UI_EVENT_SCROLL_LEFT
+EFL_UI_EVENT_SCROLL_RIGHT
+EFL_UI_EVENT_SCROLL_STARTED
+EFL_UI_EVENT_SCROLL_UP
+EFL_UI_EVENT_SELECTED_CHANGED
+EFL_UI_FACTORY_EVENT_ITEM_BUILDING
+EFL_UI_FACTORY_EVENT_ITEM_CONSTRUCTING
+EFL_UI_FACTORY_EVENT_ITEM_CREATED
+EFL_UI_FACTORY_EVENT_ITEM_RELEASING
+EFL_UI_FOCUS_DIRECTION_DOWN
+EFL_UI_FOCUS_DIRECTION_LAST
+EFL_UI_FOCUS_DIRECTION_LEFT
+EFL_UI_FOCUS_DIRECTION_NEXT
+EFL_UI_FOCUS_DIRECTION_PREVIOUS
+EFL_UI_FOCUS_DIRECTION_RIGHT
+EFL_UI_FOCUS_DIRECTION_UP
+EFL_UI_FOCUS_MANAGER_EVENT_COORDS_DIRTY
+EFL_UI_FOCUS_MANAGER_EVENT_DIRTY_LOGIC_FREEZE_CHANGED
+EFL_UI_FOCUS_MANAGER_EVENT_FLUSH_PRE
+EFL_UI_FOCUS_MANAGER_EVENT_MANAGER_FOCUS_CHANGED
+EFL_UI_FOCUS_MANAGER_EVENT_REDIRECT_CHANGED
+EFL_UI_FOCUS_MOVE_POLICY_CLICK
+EFL_UI_FOCUS_MOVE_POLICY_KEY_ONLY
+EFL_UI_FOCUS_MOVE_POLICY_MOVE_IN
+EFL_UI_FOCUS_OBJECT_EVENT_CHILD_FOCUS_CHANGED
+EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_CHANGED
+EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_GEOMETRY_CHANGED
+EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_MANAGER_CHANGED
+EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_PARENT_CHANGED
+EFL_UI_FORMAT_STRING_TYPE_SIMPLE
+EFL_UI_FORMAT_STRING_TYPE_TIME
+EFL_UI_IMAGE_EVENT_DROP
+EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_DONE
+EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_ERROR
+EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_PROGRESS
+EFL_UI_IMAGE_ZOOMABLE_EVENT_DOWNLOAD_START
+EFL_UI_IMAGE_ZOOMABLE_EVENT_LOAD
+EFL_UI_IMAGE_ZOOMABLE_EVENT_LOADED
+EFL_UI_IMAGE_ZOOMABLE_EVENT_LOADED_DETAIL
+EFL_UI_IMAGE_ZOOMABLE_EVENT_LOAD_DETAIL
+EFL_UI_IMAGE_ZOOMABLE_EVENT_PRESS
+EFL_UI_LAYOUT_EVENT_THEME_CHANGED
+EFL_UI_LAYOUT_ORIENTATION_AXIS_BITMASK
+EFL_UI_LAYOUT_ORIENTATION_DEFAULT
+EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL
+EFL_UI_LAYOUT_ORIENTATION_INVERTED
+EFL_UI_LAYOUT_ORIENTATION_VERTICAL
+EFL_UI_POPUP_ALIGN_BOTTOM
+EFL_UI_POPUP_ALIGN_CENTER
+EFL_UI_POPUP_ALIGN_LEFT
+EFL_UI_POPUP_ALIGN_NONE
+EFL_UI_POPUP_ALIGN_RIGHT
+EFL_UI_POPUP_ALIGN_TOP
+EFL_UI_POPUP_EVENT_BACKWALL_CLICKED
+EFL_UI_POPUP_EVENT_TIMEOUT
+EFL_UI_PROPERTY_BIND_EVENT_PROPERTIES_CHANGED
+EFL_UI_PROPERTY_BIND_EVENT_PROPERTY_BOUND
+EFL_UI_RADIO_GROUP_EVENT_VALUE_CHANGED
+EFL_UI_RANGE_EVENT_CHANGED
+EFL_UI_RANGE_EVENT_MAX_REACHED
+EFL_UI_RANGE_EVENT_MIN_REACHED
+EFL_UI_RANGE_EVENT_STEADY
+EFL_UI_SCROLLBAR_EVENT_BAR_DRAGGED
+EFL_UI_SCROLLBAR_EVENT_BAR_HIDE
+EFL_UI_SCROLLBAR_EVENT_BAR_POS_CHANGED
+EFL_UI_SCROLLBAR_EVENT_BAR_PRESSED
+EFL_UI_SCROLLBAR_EVENT_BAR_SHOW
+EFL_UI_SCROLLBAR_EVENT_BAR_SIZE_CHANGED
+EFL_UI_SCROLLBAR_EVENT_BAR_UNPRESSED
+EFL_UI_SCROLLBAR_MODE_AUTO
+EFL_UI_SCROLLBAR_MODE_LAST
+EFL_UI_SCROLLBAR_MODE_OFF
+EFL_UI_SCROLLBAR_MODE_ON
+EFL_UI_SELECTABLE_EVENT_SELECTION_CHANGED
+EFL_UI_SLIDER_EVENT_SLIDER_DRAG_START
+EFL_UI_SLIDER_EVENT_SLIDER_DRAG_STOP
+EFL_UI_TIMEPICKER_EVENT_TIME_CHANGED
+EFL_UI_VIEW_EVENT_MODEL_CHANGED
+EFL_UI_WIDGET_EVENT_ACCESS_CHANGED
+EFL_UI_WIDGET_EVENT_LANGUAGE_CHANGED
+EFL_UI_WIN_EVENT_DELETE_REQUEST
+EFL_UI_WIN_EVENT_ELM_ACTION_BLOCK_MENU
+EFL_UI_WIN_EVENT_FULLSCREEN_CHANGED
+EFL_UI_WIN_EVENT_INDICATOR_PROP_CHANGED
+EFL_UI_WIN_EVENT_MAXIMIZED_CHANGED
+EFL_UI_WIN_EVENT_MINIMIZED
+EFL_UI_WIN_EVENT_NORMAL
+EFL_UI_WIN_EVENT_PAUSE
+EFL_UI_WIN_EVENT_PROFILE_CHANGED
+EFL_UI_WIN_EVENT_RESUME
+EFL_UI_WIN_EVENT_STICK
+EFL_UI_WIN_EVENT_THEME_CHANGED
+EFL_UI_WIN_EVENT_UNSTICK
+EFL_UI_WIN_EVENT_WIN_ROTATION_CHANGED
+EFL_UI_WIN_EVENT_WITHDRAWN
+EFL_UI_WIN_EVENT_WM_ROTATION_CHANGED
+EFL_UI_WIN_INDICATOR_MODE_BG_OPAQUE
+EFL_UI_WIN_INDICATOR_MODE_BG_TRANSPARENT
+EFL_UI_WIN_INDICATOR_MODE_HIDDEN
+EFL_UI_WIN_INDICATOR_MODE_OFF
+EFL_UI_WIN_MOVE_RESIZE_MODE_BOTTOM
+EFL_UI_WIN_MOVE_RESIZE_MODE_LEFT
+EFL_UI_WIN_MOVE_RESIZE_MODE_MOVE
+EFL_UI_WIN_MOVE_RESIZE_MODE_RIGHT
+EFL_UI_WIN_MOVE_RESIZE_MODE_TOP
+Efl_App
+Efl_Callback_Priority
+Efl_Canvas_Group
+Efl_Canvas_Object
+Efl_Canvas_Pointer
+Efl_Canvas_Scene
+Efl_Class
+Efl_Composite_Model
+Efl_Container
+Efl_Content
+Efl_Event_Animator_Tick
+Efl_Event_Description
+Efl_File
+Efl_File_Save
+Efl_File_Save_Info
+Efl_Generic_Model
+Efl_Gfx_Cap
+Efl_Gfx_Center_Fill_Mode
+Efl_Gfx_Change_Flag
+Efl_Gfx_Color
+Efl_Gfx_Dash
+Efl_Gfx_Entity
+Efl_Gfx_Event_Render_Post
+Efl_Gfx_Gradient_Spread
+Efl_Gfx_Gradient_Stop
+Efl_Gfx_Hint
+Efl_Gfx_Hint_Aspect
+Efl_Gfx_Image
+Efl_Gfx_Image_Content_Hint
+Efl_Gfx_Image_Load_Controller
+Efl_Gfx_Image_Orientable
+Efl_Gfx_Image_Orientation
+Efl_Gfx_Image_Scale_Hint
+Efl_Gfx_Image_Scale_Method
+Efl_Gfx_Image_Stretch_Region
+Efl_Gfx_Join
+Efl_Gfx_Mapping
+Efl_Gfx_Path_Command_Type
+Efl_Gfx_Render_Op
+Efl_Gfx_Stack
+Efl_Input_Clickable
+Efl_Input_Clickable_Clicked
+Efl_Input_Device
+Efl_Input_Device_Type
+Efl_Input_Event
+Efl_Input_Flags
+Efl_Input_Focus
+Efl_Input_Hold
+Efl_Input_Interface
+Efl_Input_Key
+Efl_Input_Lock
+Efl_Input_Modifier
+Efl_Input_Pointer
+Efl_Input_State
+Efl_Io_Closer
+Efl_Io_Reader
+Efl_Io_Writer
+Efl_Layout_Calc
+Efl_Layout_Group
+Efl_Layout_Signal
+Efl_Loop
+Efl_Loop_Arguments
+Efl_Loop_Consumer
+Efl_Loop_Model
+Efl_Loop_Timer
+Efl_Model
+Efl_Model_Changed_Event
+Efl_Model_Property_Event
+Efl_Object
+Efl_Pack
+Efl_Pack_Layout
+Efl_Pack_Linear
+Efl_Pack_Table
+Efl_Part
+Efl_Player
+Efl_Pointer_Action
+Efl_Pointer_Flags
+Efl_Screen
+Efl_Task
+Efl_Task_Flags
+Efl_Task_Priority
+Efl_Text
+Efl_Text_Bidirectional_Type
+Efl_Time
+Efl_Ui_Alert_Popup
+Efl_Ui_Alert_Popup_Button
+Efl_Ui_Alert_Popup_Button_Clicked_Event
+Efl_Ui_Autorepeat
+Efl_Ui_Bg
+Efl_Ui_Box
+Efl_Ui_Box_Flow
+Efl_Ui_Box_Stack
+Efl_Ui_Button
+Efl_Ui_Check
+Efl_Ui_Collection
+Efl_Ui_Collection_View
+Efl_Ui_Datepicker
+Efl_Ui_Default_Item
+Efl_Ui_Factory
+Efl_Ui_Factory_Bind
+Efl_Ui_Factory_Item_Created_Event
+Efl_Ui_Focus_Direction
+Efl_Ui_Focus_Manager
+Efl_Ui_Focus_Manager_Logical_End_Detail
+Efl_Ui_Focus_Manager_Window_Root
+Efl_Ui_Focus_Move_Policy
+Efl_Ui_Focus_Object
+Efl_Ui_Format
+Efl_Ui_Format_String_Type
+Efl_Ui_Format_Value
+Efl_Ui_Grid
+Efl_Ui_Grid_Default_Item
+Efl_Ui_Image
+Efl_Ui_Image_Zoomable
+Efl_Ui_Item
+Efl_Ui_Layout
+Efl_Ui_Layout_Base
+Efl_Ui_Layout_Orientable
+Efl_Ui_Layout_Orientation
+Efl_Ui_Layout_Part
+Efl_Ui_Layout_Part_Bg
+Efl_Ui_Layout_Part_Box
+Efl_Ui_Layout_Part_Content
+Efl_Ui_Layout_Part_Table
+Efl_Ui_Layout_Part_Text
+Efl_Ui_List
+Efl_Ui_List_Default_Item
+Efl_Ui_Popup
+Efl_Ui_Popup_Align
+Efl_Ui_Popup_Part_Backwall
+Efl_Ui_Property_Bind
+Efl_Ui_Property_Event
+Efl_Ui_Radio
+Efl_Ui_Radio_Group
+Efl_Ui_Radio_Group_Impl
+Efl_Ui_Range_Display
+Efl_Ui_Range_Interactive
+Efl_Ui_Scrollable
+Efl_Ui_Scrollbar
+Efl_Ui_Scrollbar_Mode
+Efl_Ui_Scroller
+Efl_Ui_Selectable
+Efl_Ui_Single_Selectable
+Efl_Ui_Slider
+Efl_Ui_Spin
+Efl_Ui_Spin_Button
+Efl_Ui_Table
+Efl_Ui_Timepicker
+Efl_Ui_View
+Efl_Ui_View_Model
+Efl_Ui_Widget
+Efl_Ui_Widget_Factory
+Efl_Ui_Widget_Focus_Manager
+Efl_Ui_Widget_Focus_State
+Efl_Ui_Widget_Part
+Efl_Ui_Widget_Part_Bg
+Efl_Ui_Widget_Part_Shadow
+Efl_Ui_Win
+Efl_Ui_Win_Indicator_Mode
+Efl_Ui_Win_Move_Resize_Mode
+Efl_Version
+Eina_Error
+Eina_File
+Eina_Matrix3
+Eina_Position2D
+Eina_Promise
+Eina_Rect
+Eina_Size2D
+Eina_Vector2
+Elm_Photocam_Error
+Elm_Photocam_Progress
+efl_allow_parent_unref_get
+efl_allow_parent_unref_set
+efl_app_build_efl_version_get
+efl_app_efl_version_get
+efl_app_main_get
+efl_canvas_group_calculate
+efl_canvas_group_change
+efl_canvas_group_clipper_get
+efl_canvas_group_member_add
+efl_canvas_group_member_is
+efl_canvas_group_member_remove
+efl_canvas_group_members_iterate
+efl_canvas_group_need_recalculate_get
+efl_canvas_group_need_recalculate_set
+efl_canvas_object_anti_alias_get
+efl_canvas_object_anti_alias_set
+efl_canvas_object_clipped_objects_count
+efl_canvas_object_clipped_objects_get
+efl_canvas_object_clipper_get
+efl_canvas_object_clipper_set
+efl_canvas_object_coords_inside_get
+efl_canvas_object_gesture_manager_get
+efl_canvas_object_has_fixed_size_get
+efl_canvas_object_has_fixed_size_set
+efl_canvas_object_key_focus_get
+efl_canvas_object_key_focus_set
+efl_canvas_object_key_grab
+efl_canvas_object_key_ungrab
+efl_canvas_object_no_render_get
+efl_canvas_object_no_render_set
+efl_canvas_object_paragraph_direction_get
+efl_canvas_object_paragraph_direction_set
+efl_canvas_object_pass_events_get
+efl_canvas_object_pass_events_set
+efl_canvas_object_pointer_mode_by_device_get
+efl_canvas_object_pointer_mode_by_device_set
+efl_canvas_object_pointer_mode_get
+efl_canvas_object_pointer_mode_set
+efl_canvas_object_precise_is_inside_get
+efl_canvas_object_precise_is_inside_set
+efl_canvas_object_propagate_events_get
+efl_canvas_object_propagate_events_set
+efl_canvas_object_render_op_get
+efl_canvas_object_render_op_set
+efl_canvas_object_render_parent_get
+efl_canvas_object_repeat_events_get
+efl_canvas_object_repeat_events_set
+efl_canvas_object_seat_focus_add
+efl_canvas_object_seat_focus_check
+efl_canvas_object_seat_focus_del
+efl_canvas_object_seat_focus_get
+efl_canvas_pointer_inside_get
+efl_canvas_scene_device_get
+efl_canvas_scene_group_objects_calculate
+efl_canvas_scene_group_objects_calculating_get
+efl_canvas_scene_image_max_size_get
+efl_canvas_scene_object_top_at_xy_get
+efl_canvas_scene_object_top_in_rectangle_get
+efl_canvas_scene_objects_at_xy_get
+efl_canvas_scene_objects_in_rectangle_get
+efl_canvas_scene_pointer_position_get
+efl_canvas_scene_seat_default_get
+efl_canvas_scene_seat_get
+efl_canvas_scene_seats
+efl_children_iterator_new
+efl_comment_get
+efl_comment_set
+efl_composite_attach
+efl_composite_detach
+efl_composite_model_index_get
+efl_composite_model_index_set
+efl_composite_part_is
+efl_constructor
+efl_content_count
+efl_content_get
+efl_content_iterate
+efl_content_set
+efl_content_unset
+efl_debug_name_override
+efl_destructor
+efl_event_callback_forwarder_del
+efl_event_callback_forwarder_priority_add
+efl_event_callback_stop
+efl_event_freeze
+efl_event_freeze_count_get
+efl_event_global_freeze
+efl_event_global_freeze_count_get
+efl_event_global_thaw
+efl_event_thaw
+efl_file_get
+efl_file_key_get
+efl_file_key_set
+efl_file_load
+efl_file_loaded_get
+efl_file_mmap_get
+efl_file_mmap_set
+efl_file_save
+efl_file_set
+efl_file_unload
+efl_finalize
+efl_finalized_get
+efl_gfx_color_code_get
+efl_gfx_color_code_set
+efl_gfx_color_get
+efl_gfx_color_set
+efl_gfx_entity_geometry_get
+efl_gfx_entity_geometry_set
+efl_gfx_entity_position_get
+efl_gfx_entity_position_set
+efl_gfx_entity_scale_get
+efl_gfx_entity_scale_set
+efl_gfx_entity_size_get
+efl_gfx_entity_size_set
+efl_gfx_entity_visible_get
+efl_gfx_entity_visible_set
+efl_gfx_hint_align_get
+efl_gfx_hint_align_set
+efl_gfx_hint_aspect_get
+efl_gfx_hint_aspect_set
+efl_gfx_hint_fill_get
+efl_gfx_hint_fill_set
+efl_gfx_hint_margin_get
+efl_gfx_hint_margin_set
+efl_gfx_hint_size_combined_max_get
+efl_gfx_hint_size_combined_min_get
+efl_gfx_hint_size_max_get
+efl_gfx_hint_size_max_set
+efl_gfx_hint_size_min_get
+efl_gfx_hint_size_min_set
+efl_gfx_hint_size_restricted_max_get
+efl_gfx_hint_size_restricted_max_set
+efl_gfx_hint_size_restricted_min_get
+efl_gfx_hint_size_restricted_min_set
+efl_gfx_hint_weight_get
+efl_gfx_hint_weight_set
+efl_gfx_image_border_insets_get
+efl_gfx_image_border_insets_scale_get
+efl_gfx_image_border_insets_scale_set
+efl_gfx_image_border_insets_set
+efl_gfx_image_can_downscale_get
+efl_gfx_image_can_downscale_set
+efl_gfx_image_can_upscale_get
+efl_gfx_image_can_upscale_set
+efl_gfx_image_center_fill_mode_get
+efl_gfx_image_center_fill_mode_set
+efl_gfx_image_content_hint_get
+efl_gfx_image_content_hint_set
+efl_gfx_image_content_region_get
+efl_gfx_image_load_controller_load_async_cancel
+efl_gfx_image_load_controller_load_async_start
+efl_gfx_image_load_controller_load_dpi_get
+efl_gfx_image_load_controller_load_dpi_set
+efl_gfx_image_load_controller_load_orientation_get
+efl_gfx_image_load_controller_load_orientation_set
+efl_gfx_image_load_controller_load_region_get
+efl_gfx_image_load_controller_load_region_set
+efl_gfx_image_load_controller_load_region_support_get
+efl_gfx_image_load_controller_load_scale_down_get
+efl_gfx_image_load_controller_load_scale_down_set
+efl_gfx_image_load_controller_load_size_get
+efl_gfx_image_load_controller_load_size_set
+efl_gfx_image_load_controller_load_skip_header_get
+efl_gfx_image_load_controller_load_skip_header_set
+efl_gfx_image_load_error_get
+efl_gfx_image_orientation_get
+efl_gfx_image_orientation_set
+efl_gfx_image_ratio_get
+efl_gfx_image_scale_hint_get
+efl_gfx_image_scale_hint_set
+efl_gfx_image_scale_method_get
+efl_gfx_image_scale_method_set
+efl_gfx_image_size_get
+efl_gfx_image_smooth_scale_get
+efl_gfx_image_smooth_scale_set
+efl_gfx_image_stretch_region_get
+efl_gfx_image_stretch_region_set
+efl_gfx_mapping_alpha_get
+efl_gfx_mapping_alpha_set
+efl_gfx_mapping_clockwise_get
+efl_gfx_mapping_color_get
+efl_gfx_mapping_color_set
+efl_gfx_mapping_coord_absolute_get
+efl_gfx_mapping_coord_absolute_set
+efl_gfx_mapping_has
+efl_gfx_mapping_lighting_3d
+efl_gfx_mapping_lighting_3d_absolute
+efl_gfx_mapping_perspective_3d
+efl_gfx_mapping_perspective_3d_absolute
+efl_gfx_mapping_point_count_get
+efl_gfx_mapping_point_count_set
+efl_gfx_mapping_reset
+efl_gfx_mapping_rotate
+efl_gfx_mapping_rotate_3d
+efl_gfx_mapping_rotate_3d_absolute
+efl_gfx_mapping_rotate_absolute
+efl_gfx_mapping_rotate_quat
+efl_gfx_mapping_rotate_quat_absolute
+efl_gfx_mapping_smooth_get
+efl_gfx_mapping_smooth_set
+efl_gfx_mapping_translate
+efl_gfx_mapping_uv_get
+efl_gfx_mapping_uv_set
+efl_gfx_mapping_zoom
+efl_gfx_mapping_zoom_absolute
+efl_gfx_stack_above
+efl_gfx_stack_above_get
+efl_gfx_stack_below
+efl_gfx_stack_below_get
+efl_gfx_stack_layer_get
+efl_gfx_stack_layer_set
+efl_gfx_stack_lower_to_bottom
+efl_gfx_stack_raise_to_top
+efl_input_clickable_button_state_reset
+efl_input_clickable_interaction_get
+efl_input_clickable_longpress_abort
+efl_input_clickable_press
+efl_input_clickable_unpress
+efl_input_device_children_iterate
+efl_input_device_get
+efl_input_device_is_pointer_type_get
+efl_input_device_pointer_device_count_get
+efl_input_device_seat_get
+efl_input_device_seat_id_get
+efl_input_device_seat_id_set
+efl_input_device_set
+efl_input_device_source_get
+efl_input_device_source_set
+efl_input_device_type_get
+efl_input_device_type_set
+efl_input_event_flags_get
+efl_input_event_flags_set
+efl_input_fake_get
+efl_input_focus_object_get
+efl_input_focus_object_set
+efl_input_hold_get
+efl_input_hold_set
+efl_input_key_code_get
+efl_input_key_code_set
+efl_input_key_compose_string_get
+efl_input_key_compose_string_set
+efl_input_key_name_get
+efl_input_key_name_set
+efl_input_key_pressed_get
+efl_input_key_pressed_set
+efl_input_key_string_get
+efl_input_key_string_set
+efl_input_key_sym_get
+efl_input_key_sym_set
+efl_input_lock_enabled_get
+efl_input_modifier_enabled_get
+efl_input_pointer_action_get
+efl_input_pointer_action_set
+efl_input_pointer_button_flags_get
+efl_input_pointer_button_flags_set
+efl_input_pointer_button_get
+efl_input_pointer_button_pressed_get
+efl_input_pointer_button_pressed_set
+efl_input_pointer_button_set
+efl_input_pointer_double_click_get
+efl_input_pointer_double_click_set
+efl_input_pointer_position_get
+efl_input_pointer_position_set
+efl_input_pointer_precise_position_get
+efl_input_pointer_precise_position_set
+efl_input_pointer_previous_position_get
+efl_input_pointer_previous_position_set
+efl_input_pointer_source_get
+efl_input_pointer_source_set
+efl_input_pointer_touch_id_get
+efl_input_pointer_touch_id_set
+efl_input_pointer_triple_click_get
+efl_input_pointer_triple_click_set
+efl_input_pointer_value_get
+efl_input_pointer_value_has_get
+efl_input_pointer_value_set
+efl_input_pointer_wheel_delta_get
+efl_input_pointer_wheel_delta_set
+efl_input_pointer_wheel_horizontal_get
+efl_input_pointer_wheel_horizontal_set
+efl_input_processed_get
+efl_input_processed_set
+efl_input_reset
+efl_input_scrolling_get
+efl_input_scrolling_set
+efl_input_seat_event_filter_get
+efl_input_seat_event_filter_set
+efl_input_timestamp_get
+efl_input_timestamp_set
+efl_invalidate
+efl_invalidated_get
+efl_invalidating_get
+efl_io_closer_close
+efl_io_closer_close_on_exec_get
+efl_io_closer_close_on_exec_set
+efl_io_closer_close_on_invalidate_get
+efl_io_closer_close_on_invalidate_set
+efl_io_closer_closed_get
+efl_io_reader_can_read_get
+efl_io_reader_can_read_set
+efl_io_reader_eos_get
+efl_io_reader_eos_set
+efl_io_reader_read
+efl_io_writer_can_write_get
+efl_io_writer_can_write_set
+efl_io_writer_write
+efl_layout_calc_auto_update_hints_get
+efl_layout_calc_auto_update_hints_set
+efl_layout_calc_force
+efl_layout_calc_freeze
+efl_layout_calc_parts_extends
+efl_layout_calc_size_min
+efl_layout_calc_thaw
+efl_layout_group_data_get
+efl_layout_group_part_exist_get
+efl_layout_group_size_max_get
+efl_layout_group_size_min_get
+efl_layout_signal_callback_add
+efl_layout_signal_callback_del
+efl_layout_signal_emit
+efl_layout_signal_message_send
+efl_layout_signal_process
+efl_loop_begin
+efl_loop_future_rejected
+efl_loop_future_resolved
+efl_loop_get
+efl_loop_idle
+efl_loop_iterate
+efl_loop_iterate_may_block
+efl_loop_job
+efl_loop_model_volatile_make
+efl_loop_promise_new
+efl_loop_quit
+efl_loop_throttle_get
+efl_loop_throttle_set
+efl_loop_time_get
+efl_loop_time_set
+efl_loop_timeout
+efl_loop_timer_delay
+efl_loop_timer_interval_get
+efl_loop_timer_interval_set
+efl_loop_timer_loop_reset
+efl_loop_timer_reset
+efl_loop_timer_time_pending_get
+efl_model_child_add
+efl_model_child_del
+efl_model_children_count_get
+efl_model_children_slice_get
+efl_model_properties_get
+efl_model_property_get
+efl_model_property_ready_get
+efl_model_property_set
+efl_name_find
+efl_name_get
+efl_name_set
+efl_pack
+efl_pack_after
+efl_pack_at
+efl_pack_before
+efl_pack_begin
+efl_pack_clear
+efl_pack_content_get
+efl_pack_end
+efl_pack_index_get
+efl_pack_layout_request
+efl_pack_layout_update
+efl_pack_table
+efl_pack_table_cell_column_get
+efl_pack_table_cell_column_set
+efl_pack_table_cell_row_get
+efl_pack_table_cell_row_set
+efl_pack_table_columns_get
+efl_pack_table_columns_set
+efl_pack_table_content_get
+efl_pack_table_contents_get
+efl_pack_table_rows_get
+efl_pack_table_rows_set
+efl_pack_table_size_get
+efl_pack_table_size_set
+efl_pack_unpack
+efl_pack_unpack_all
+efl_pack_unpack_at
+efl_parent_get
+efl_parent_set
+efl_part_get
+efl_player_paused_get
+efl_player_paused_set
+efl_player_playback_position_get
+efl_player_playback_position_set
+efl_player_playback_progress_get
+efl_player_playback_speed_get
+efl_player_playback_speed_set
+efl_player_playing_get
+efl_player_playing_set
+efl_provider_find
+efl_provider_register
+efl_provider_unregister
+efl_screen_dpi_get
+efl_screen_rotation_get
+efl_screen_scale_factor_get
+efl_screen_size_in_pixels_get
+efl_task_end
+efl_task_exit_code_get
+efl_task_flags_get
+efl_task_flags_set
+efl_task_priority_get
+efl_task_priority_set
+efl_task_run
+efl_text_get
+efl_text_set
+efl_ui_alert_popup_button_set
+efl_ui_autorepeat_enabled_get
+efl_ui_autorepeat_enabled_set
+efl_ui_autorepeat_gap_timeout_get
+efl_ui_autorepeat_gap_timeout_set
+efl_ui_autorepeat_initial_timeout_get
+efl_ui_autorepeat_initial_timeout_set
+efl_ui_box_homogeneous_get
+efl_ui_box_homogeneous_set
+efl_ui_collection_item_scroll
+efl_ui_collection_item_scroll_align
+efl_ui_collection_position_manager_get
+efl_ui_collection_position_manager_set
+efl_ui_collection_view_factory_get
+efl_ui_collection_view_factory_set
+efl_ui_collection_view_position_manager_get
+efl_ui_collection_view_position_manager_set
+efl_ui_datepicker_date_get
+efl_ui_datepicker_date_max_get
+efl_ui_datepicker_date_max_set
+efl_ui_datepicker_date_min_get
+efl_ui_datepicker_date_min_set
+efl_ui_datepicker_date_set
+efl_ui_factory_bind
+efl_ui_factory_create
+efl_ui_factory_release
+efl_ui_focus_manager_border_elements_get
+efl_ui_focus_manager_dirty_logic_freeze
+efl_ui_focus_manager_dirty_logic_unfreeze
+efl_ui_focus_manager_fetch
+efl_ui_focus_manager_focus_get
+efl_ui_focus_manager_focus_set
+efl_ui_focus_manager_logical_end
+efl_ui_focus_manager_move
+efl_ui_focus_manager_pop_history_stack
+efl_ui_focus_manager_redirect_get
+efl_ui_focus_manager_redirect_set
+efl_ui_focus_manager_request_move
+efl_ui_focus_manager_request_subchild
+efl_ui_focus_manager_reset_history
+efl_ui_focus_manager_root_get
+efl_ui_focus_manager_root_set
+efl_ui_focus_manager_setup_on_first_touch
+efl_ui_focus_manager_viewport_elements_get
+efl_ui_focus_object_child_focus_get
+efl_ui_focus_object_child_focus_set
+efl_ui_focus_object_focus_geometry_get
+efl_ui_focus_object_focus_get
+efl_ui_focus_object_focus_manager_get
+efl_ui_focus_object_focus_parent_get
+efl_ui_focus_object_focus_set
+efl_ui_focus_object_on_focus_update
+efl_ui_focus_object_setup_order
+efl_ui_focus_object_setup_order_non_recursive
+efl_ui_format_apply_formatted_value
+efl_ui_format_decimal_places_get
+efl_ui_format_formatted_value_get
+efl_ui_format_func_get
+efl_ui_format_func_set
+efl_ui_format_string_get
+efl_ui_format_string_set
+efl_ui_format_values_get
+efl_ui_format_values_set
+efl_ui_image_icon_get
+efl_ui_image_icon_set
+efl_ui_image_zoomable_gesture_enabled_get
+efl_ui_image_zoomable_gesture_enabled_set
+efl_ui_image_zoomable_image_region_get
+efl_ui_image_zoomable_image_region_set
+efl_ui_item_calc_locked_get
+efl_ui_item_calc_locked_set
+efl_ui_item_container_get
+efl_ui_item_container_set
+efl_ui_item_index_get
+efl_ui_item_parent_get
+efl_ui_item_parent_set
+efl_ui_layout_automatic_theme_rotation_get
+efl_ui_layout_automatic_theme_rotation_set
+efl_ui_layout_finger_size_multiplier_get
+efl_ui_layout_finger_size_multiplier_set
+efl_ui_layout_orientation_get
+efl_ui_layout_orientation_set
+efl_ui_layout_theme_get
+efl_ui_layout_theme_rotation_apply
+efl_ui_layout_theme_set
+efl_ui_popup_align_get
+efl_ui_popup_align_priority_get
+efl_ui_popup_align_priority_set
+efl_ui_popup_align_set
+efl_ui_popup_anchor_get
+efl_ui_popup_anchor_set
+efl_ui_popup_closing_timeout_get
+efl_ui_popup_closing_timeout_set
+efl_ui_popup_part_backwall_repeat_events_get
+efl_ui_popup_part_backwall_repeat_events_set
+efl_ui_property_bind
+efl_ui_radio_group_register
+efl_ui_radio_group_selected_value_get
+efl_ui_radio_group_selected_value_set
+efl_ui_radio_group_unregister
+efl_ui_radio_state_value_get
+efl_ui_radio_state_value_set
+efl_ui_range_limits_get
+efl_ui_range_limits_set
+efl_ui_range_step_get
+efl_ui_range_step_set
+efl_ui_range_value_get
+efl_ui_range_value_set
+efl_ui_scrollable_bounce_enabled_get
+efl_ui_scrollable_bounce_enabled_set
+efl_ui_scrollable_content_pos_get
+efl_ui_scrollable_content_pos_set
+efl_ui_scrollable_content_size_get
+efl_ui_scrollable_gravity_get
+efl_ui_scrollable_gravity_set
+efl_ui_scrollable_looping_get
+efl_ui_scrollable_looping_set
+efl_ui_scrollable_match_content_set
+efl_ui_scrollable_movement_block_get
+efl_ui_scrollable_movement_block_set
+efl_ui_scrollable_scroll
+efl_ui_scrollable_scroll_freeze_get
+efl_ui_scrollable_scroll_freeze_set
+efl_ui_scrollable_scroll_hold_get
+efl_ui_scrollable_scroll_hold_set
+efl_ui_scrollable_step_size_get
+efl_ui_scrollable_step_size_set
+efl_ui_scrollable_viewport_geometry_get
+efl_ui_scrollbar_bar_mode_get
+efl_ui_scrollbar_bar_mode_set
+efl_ui_scrollbar_bar_position_get
+efl_ui_scrollbar_bar_position_set
+efl_ui_scrollbar_bar_size_get
+efl_ui_scrollbar_bar_visibility_update
+efl_ui_selectable_fallback_selection_get
+efl_ui_selectable_fallback_selection_set
+efl_ui_selectable_last_selected_get
+efl_ui_selectable_selected_get
+efl_ui_selectable_selected_set
+efl_ui_spin_button_direct_text_input_get
+efl_ui_spin_button_direct_text_input_set
+efl_ui_spin_button_wraparound_get
+efl_ui_spin_button_wraparound_set
+efl_ui_table_homogeneous_get
+efl_ui_table_homogeneous_set
+efl_ui_timepicker_is_24hour_get
+efl_ui_timepicker_is_24hour_set
+efl_ui_timepicker_time_get
+efl_ui_timepicker_time_set
+efl_ui_view_model_children_bind_get
+efl_ui_view_model_children_bind_set
+efl_ui_view_model_get
+efl_ui_view_model_property_bind
+efl_ui_view_model_property_logic_add
+efl_ui_view_model_property_logic_del
+efl_ui_view_model_property_string_add
+efl_ui_view_model_property_string_del
+efl_ui_view_model_property_unbind
+efl_ui_view_model_set
+efl_ui_widget_access_info_get
+efl_ui_widget_access_info_set
+efl_ui_widget_cursor_get
+efl_ui_widget_cursor_set
+efl_ui_widget_cursor_style_get
+efl_ui_widget_cursor_style_set
+efl_ui_widget_cursor_theme_search_enabled_get
+efl_ui_widget_cursor_theme_search_enabled_set
+efl_ui_widget_disabled_get
+efl_ui_widget_disabled_set
+efl_ui_widget_factory_item_class_get
+efl_ui_widget_factory_item_class_set
+efl_ui_widget_focus_allow_get
+efl_ui_widget_focus_allow_set
+efl_ui_widget_focus_highlight_geometry_get
+efl_ui_widget_focus_manager_create
+efl_ui_widget_focus_move_policy_automatic_get
+efl_ui_widget_focus_move_policy_automatic_set
+efl_ui_widget_focus_move_policy_get
+efl_ui_widget_focus_move_policy_set
+efl_ui_widget_focus_state_apply
+efl_ui_widget_input_event_handler
+efl_ui_widget_interest_region_get
+efl_ui_widget_on_access_activate
+efl_ui_widget_on_access_update
+efl_ui_widget_parent_get
+efl_ui_widget_parent_set
+efl_ui_widget_resize_object_set
+efl_ui_widget_scroll_freeze_pop
+efl_ui_widget_scroll_freeze_push
+efl_ui_widget_scroll_hold_pop
+efl_ui_widget_scroll_hold_push
+efl_ui_widget_style_get
+efl_ui_widget_style_set
+efl_ui_widget_sub_object_add
+efl_ui_widget_sub_object_del
+efl_ui_widget_theme_apply
+efl_ui_win_accel_preference_get
+efl_ui_win_accel_preference_set
+efl_ui_win_activate
+efl_ui_win_alpha_get
+efl_ui_win_alpha_set
+efl_ui_win_autohide_get
+efl_ui_win_autohide_set
+efl_ui_win_borderless_get
+efl_ui_win_borderless_set
+efl_ui_win_center
+efl_ui_win_exit_on_all_windows_closed_get
+efl_ui_win_exit_on_all_windows_closed_set
+efl_ui_win_exit_on_close_get
+efl_ui_win_exit_on_close_set
+efl_ui_win_focus_highlight_animate_get
+efl_ui_win_focus_highlight_animate_set
+efl_ui_win_focus_highlight_enabled_get
+efl_ui_win_focus_highlight_enabled_set
+efl_ui_win_focus_highlight_style_get
+efl_ui_win_focus_highlight_style_set
+efl_ui_win_fullscreen_get
+efl_ui_win_fullscreen_set
+efl_ui_win_hint_base_get
+efl_ui_win_hint_base_set
+efl_ui_win_hint_step_get
+efl_ui_win_hint_step_set
+efl_ui_win_icon_object_get
+efl_ui_win_icon_object_set
+efl_ui_win_indicator_mode_get
+efl_ui_win_indicator_mode_set
+efl_ui_win_keyboard_mode_get
+efl_ui_win_keyboard_mode_set
+efl_ui_win_maximized_get
+efl_ui_win_maximized_set
+efl_ui_win_minimized_get
+efl_ui_win_minimized_set
+efl_ui_win_modal_get
+efl_ui_win_modal_set
+efl_ui_win_move_resize_start
+efl_ui_win_name_get
+efl_ui_win_name_set
+efl_ui_win_pointer_iterate
+efl_ui_win_prop_focus_skip_set
+efl_ui_win_role_get
+efl_ui_win_role_set
+efl_ui_win_rotation_get
+efl_ui_win_rotation_set
+efl_ui_win_screen_constrain_get
+efl_ui_win_screen_constrain_set
+efl_ui_win_stack_base_get
+efl_ui_win_stack_base_set
+efl_ui_win_stack_id_get
+efl_ui_win_stack_master_id_get
+efl_ui_win_stack_master_id_set
+efl_ui_win_stack_pop_to
+efl_ui_win_sticky_get
+efl_ui_win_sticky_set
+efl_ui_win_type_get
+efl_ui_win_type_set
+efl_ui_win_urgent_get
+efl_ui_win_urgent_set
+efl_ui_win_wm_available_profiles_get
+efl_ui_win_wm_available_profiles_set
+efl_ui_win_wm_available_rotations_get
+efl_ui_win_wm_available_rotations_set
diff --git a/public_html/data/pages/develop/api/start.txt b/public_html/data/pages/develop/api/start.txt
new file mode 100644
index 00000000..26a67521
--- /dev/null
+++ b/public_html/data/pages/develop/api/start.txt
@@ -0,0 +1,224 @@
+~~Title: EFL Reference~~
+====== EFL Reference ======
+
+{{page>:develop:api-include:reference:general&nouser&nolink&nodate}}
+
+===== efl =====
+
+^ Classes ^ Brief description ^
+| [[:develop:api:efl:app|Efl.App]] | %%Object representing the application itself.%% |
+| [[:develop:api:efl:class|Efl.Class]] | %%Abstract Efl class%% |
+| [[:develop:api:efl:composite_model|Efl.Composite_Model]] | %%Efl model for all composite class which provide a unified API to set source of data.%% |
+| [[:develop:api:efl:generic_model|Efl.Generic_Model]] | %%Generic model that allows any property to be manually set. Also children of the same type can be added and deleted.%% |
+| [[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]] | %%An %%[[:develop:api:efl:loop_consumer|Efl.Loop_Consumer]]%% is a class which requires one of the parents to provide an %%[[:develop:api:efl:loop|Efl.Loop]]%% interface when performing %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%. It will enforce this by only allowing parents which provide such an interface or %%''NULL''%%.%% |
+| [[:develop:api:efl:loop_model|Efl.Loop_Model]] | %%The Efl Loop Model class%% |
+| [[:develop:api:efl:loop_timer|Efl.Loop_Timer]] | %%Timers are objects that will call a given callback at some point in the future and repeat that tick at a given interval.%% |
+| [[:develop:api:efl:loop|Efl.Loop]] | %%The Efl Main Loop%% |
+| [[:develop:api:efl:object|Efl.Object]] | %%Abstract EFL object class.%% |
+| [[:develop:api:efl:task|Efl.Task]] | %%EFL's abstraction for a task (process).%% |
+^ Interfaces ^ Brief description ^
+| [[:develop:api:efl:container|Efl.Container]] | %%Common interface for objects (containers) that can have multiple contents (sub-objects).%% |
+| [[:develop:api:efl:content|Efl.Content]] | %%Common interface for objects that have a single sub-object as content.%% |
+| [[:develop:api:efl:file_save|Efl.File_Save]] | %%Efl file saving interface%% |
+| [[:develop:api:efl:model|Efl.Model]] | %%Basic Model abstraction.%% |
+| [[:develop:api:efl:pack_layout|Efl.Pack_Layout]] | %%Low-level APIs for objects that can lay their children out.%% |
+| [[:develop:api:efl:pack_linear|Efl.Pack_Linear]] | %%Common interface for objects (containers) with multiple contents (sub-objects) which can be added and removed at runtime in a linear fashion.%% |
+| [[:develop:api:efl:pack_table|Efl.Pack_Table]] | %%Interface for 2D containers which arrange their elements on a table with rows and columns.%% |
+| [[:develop:api:efl:pack|Efl.Pack]] | %%Common interface for objects (containers) with multiple contents (sub-objects) which can be added and removed at runtime.%% |
+| [[:develop:api:efl:part|Efl.Part]] | %%Interface for objects supporting named parts.%% |
+| [[:develop:api:efl:player|Efl.Player]] | %%Efl media player interface%% |
+| [[:develop:api:efl:screen|Efl.Screen]] | %%Efl screen interface%% |
+| [[:develop:api:efl:text|Efl.Text]] | %%Efl text interface%% |
+^ Mixins ^ Brief description ^
+| [[:develop:api:efl:file|Efl.File]] | %%Efl file interface%% |
+^ Aliases ^ Brief description ^
+| [[:develop:api:efl:callback_priority|Efl.Callback_Priority]] | %%Callback priority. Range is -32k - 32k. The lower the number, the higher the priority.%% |
+^ Structures ^ Brief description ^
+| [[:develop:api:efl:event_animator_tick|Efl.Event_Animator_Tick]] | %%EFL event animator tick data structure%% |
+| [[:develop:api:efl:event_description|Efl.Event_Description]] | %%This struct holds the description of a specific event.%% |
+| [[:develop:api:efl:file_save_info|Efl.File_Save_Info]] | %%Info used to determine various attributes when saving a file.%% |
+| [[:develop:api:efl:loop_arguments|Efl.Loop_Arguments]] | %%EFL loop arguments data structure%% |
+| [[:develop:api:efl:model_changed_event|Efl.Model_Changed_Event]] | %%Every time the model is changed on the object.%% |
+| [[:develop:api:efl:model_property_event|Efl.Model_Property_Event]] | %%EFL model property event data structure%% |
+| [[:develop:api:efl:time|Efl.Time]] | %%This type is a alias for struct tm. It is intended to be a standard way to reference it in .eo files.%% |
+| [[:develop:api:efl:version|Efl.Version]] | %%This type describes the version of EFL with an optional variant.%% |
+^ Enums ^ Brief description ^
+| [[:develop:api:efl:task_flags|Efl.Task_Flags]] | %%Flags to further customize task's behavior.%% |
+| [[:develop:api:efl:task_priority|Efl.Task_Priority]] | %%How much processor time will this task get compared to other tasks running on the same processor.%% |
+| [[:develop:api:efl:text_bidirectional_type|Efl.Text_Bidirectional_Type]] | %%Bidirectionaltext type%% |
+^ Constants ^ Brief description ^
+| [[:develop:api:efl:callback_priority_after|Efl.Callback_Priority_After]] | %%Slightly less prioritized than default.%% |
+| [[:develop:api:efl:callback_priority_before|Efl.Callback_Priority_Before]] | %%Slightly more prioritized than default.%% |
+| [[:develop:api:efl:callback_priority_default|Efl.Callback_Priority_Default]] | %%Default priority.%% |
+
+===== efl.canvas =====
+
+^ Classes ^ Brief description ^
+| [[:develop:api:efl:canvas:group|Efl.Canvas.Group]] | %%A group object is a container for other canvas objects. Its children move along their parent and are often clipped with a common clipper. This is part of the legacy smart object concept.%% |
+| [[:develop:api:efl:canvas:object|Efl.Canvas.Object]] | %%Efl canvas object abstract class%% |
+^ Interfaces ^ Brief description ^
+| [[:develop:api:efl:canvas:pointer|Efl.Canvas.Pointer]] | %%Efl Canvas Pointer interface%% |
+| [[:develop:api:efl:canvas:scene|Efl.Canvas.Scene]] | %%Interface containing basic canvas-related methods and events.%% |
+
+===== efl.gfx =====
+
+^ Interfaces ^ Brief description ^
+| [[:develop:api:efl:gfx:entity|Efl.Gfx.Entity]] | %%Efl graphics interface%% |
+| [[:develop:api:efl:gfx:hint|Efl.Gfx.Hint]] | %%Efl graphics hint interface%% |
+| [[:develop:api:efl:gfx:image_load_controller|Efl.Gfx.Image_Load_Controller]] | %%Common APIs for all loadable 2D images.%% |
+| [[:develop:api:efl:gfx:image_orientable|Efl.Gfx.Image_Orientable]] | %%Interface for images which can be rotated or flipped (mirrored).%% |
+| [[:develop:api:efl:gfx:image|Efl.Gfx.Image]] | %%This interface defines a set of common APIs which should be implemented by image objects.%% |
+| [[:develop:api:efl:gfx:stack|Efl.Gfx.Stack]] | %%Efl graphics stack interface%% |
+^ Mixins ^ Brief description ^
+| [[:develop:api:efl:gfx:color|Efl.Gfx.Color]] | %%Efl Gfx Color mixin class%% |
+| [[:develop:api:efl:gfx:mapping|Efl.Gfx.Mapping]] | %%Texture UV mapping for all objects (rotation, perspective, 3d, ...).%% |
+^ Structures ^ Brief description ^
+| [[:develop:api:efl:gfx:dash|Efl.Gfx.Dash]] | %%Type describing dash. %%[[:develop:api:efl:gfx:shape:property:stroke_dash|Efl.Gfx.Shape.stroke_dash.set]]%%%% |
+| [[:develop:api:efl:gfx:event:render_post|Efl.Gfx.Event.Render_Post]] | %%Data sent along a "render,post" event, after a frame has been rendered.%% |
+| [[:develop:api:efl:gfx:gradient_stop|Efl.Gfx.Gradient_Stop]] | %%Type defining gradient stops. Describes the location and color of a transition point in a gradient.%% |
+| [[:develop:api:efl:gfx:image_stretch_region|Efl.Gfx.Image_Stretch_Region]] | %%This struct holds the description of a stretchable region in one dimension (vertical or horizontal). Used when scaling an image.%% |
+^ Enums ^ Brief description ^
+| [[:develop:api:efl:gfx:cap|Efl.Gfx.Cap]] | %%These values determine how the end of opened sub-paths are rendered in a stroke. %%[[:develop:api:efl:gfx:shape:property:stroke_cap|Efl.Gfx.Shape.stroke_cap.set]]%%%% |
+| [[:develop:api:efl:gfx:center_fill_mode|Efl.Gfx.Center_Fill_Mode]] | %%How an image's center region (the complement to the border region) should be rendered by EFL%% |
+| [[:develop:api:efl:gfx:change_flag|Efl.Gfx.Change_Flag]] | %%What property got changed for this object%% |
+| [[:develop:api:efl:gfx:gradient_spread|Efl.Gfx.Gradient_Spread]] | %%Specifies how the area outside the gradient area should be filled. %%[[:develop:api:efl:gfx:gradient:property:spread|Efl.Gfx.Gradient.spread.set]]%%%% |
+| [[:develop:api:efl:gfx:hint_aspect|Efl.Gfx.Hint_Aspect]] | %%Aspect types/policies for scaling size hints.%% |
+| [[:develop:api:efl:gfx:image_content_hint|Efl.Gfx.Image_Content_Hint]] | %%How an image's data is to be treated by EFL, for optimization.%% |
+| [[:develop:api:efl:gfx:image_orientation|Efl.Gfx.Image_Orientation]] | %%An orientation type, to rotate and flip images.%% |
+| [[:develop:api:efl:gfx:image_scale_hint|Efl.Gfx.Image_Scale_Hint]] | %%How an image's data is to be treated by EFL, with regard to scaling cache.%% |
+| [[:develop:api:efl:gfx:image_scale_method|Efl.Gfx.Image_Scale_Method]] | %%Enumeration that defines scaling methods to be used when rendering an image.%% |
+| [[:develop:api:efl:gfx:join|Efl.Gfx.Join]] | %%These values determine how two joining lines are rendered in a stroker. %%[[:develop:api:efl:gfx:shape:property:stroke_join|Efl.Gfx.Shape.stroke_join.set]]%%%% |
+| [[:develop:api:efl:gfx:path_command_type|Efl.Gfx.Path_Command_Type]] | %%These values determine how the points are interpreted in a stream of points.%% |
+| [[:develop:api:efl:gfx:render_op|Efl.Gfx.Render_Op]] | %%Graphics render operation mode%% |
+^ Constants ^ Brief description ^
+| [[:develop:api:efl:gfx:hint_align_bottom|Efl.Gfx.Hint_Align_Bottom]] | %%Use with %%[[:develop:api:efl:gfx:hint:property:hint_align|Efl.Gfx.Hint.hint_align]]%%.%% |
+| [[:develop:api:efl:gfx:hint_align_center|Efl.Gfx.Hint_Align_Center]] | %%Use with %%[[:develop:api:efl:gfx:hint:property:hint_align|Efl.Gfx.Hint.hint_align]]%%.%% |
+| [[:develop:api:efl:gfx:hint_align_left|Efl.Gfx.Hint_Align_Left]] | %%Use with %%[[:develop:api:efl:gfx:hint:property:hint_align|Efl.Gfx.Hint.hint_align]]%%.%% |
+| [[:develop:api:efl:gfx:hint_align_right|Efl.Gfx.Hint_Align_Right]] | %%Use with %%[[:develop:api:efl:gfx:hint:property:hint_align|Efl.Gfx.Hint.hint_align]]%%.%% |
+| [[:develop:api:efl:gfx:hint_align_top|Efl.Gfx.Hint_Align_Top]] | %%Use with %%[[:develop:api:efl:gfx:hint:property:hint_align|Efl.Gfx.Hint.hint_align]]%%.%% |
+| [[:develop:api:efl:gfx:hint_expand|Efl.Gfx.Hint_Expand]] | %%Use with %%[[:develop:api:efl:gfx:hint:property:hint_weight|Efl.Gfx.Hint.hint_weight]]%%.%% |
+| [[:develop:api:efl:gfx:stack_layer_max|Efl.Gfx.Stack_Layer_Max]] | %%top-most layer number%% |
+| [[:develop:api:efl:gfx:stack_layer_min|Efl.Gfx.Stack_Layer_Min]] | %%bottom-most layer number%% |
+
+===== efl.input =====
+
+^ Classes ^ Brief description ^
+| [[:develop:api:efl:input:device|Efl.Input.Device]] | %%Represents a pointing device such as a touch finger, pen or mouse.%% |
+| [[:develop:api:efl:input:focus|Efl.Input.Focus]] | %%Represents a focus event.%% |
+| [[:develop:api:efl:input:hold|Efl.Input.Hold]] | %%Event data sent when inputs are put on hold or resumed.%% |
+| [[:develop:api:efl:input:key|Efl.Input.Key]] | %%Represents a single key event from a keyboard or similar device.%% |
+| [[:develop:api:efl:input:pointer|Efl.Input.Pointer]] | %%Event data carried over with any pointer event (mouse, touch, pen, ...)%% |
+^ Interfaces ^ Brief description ^
+| [[:develop:api:efl:input:interface|Efl.Input.Interface]] | %%An object implementing this interface can send pointer events.%% |
+| [[:develop:api:efl:input:state|Efl.Input.State]] | %%Efl input state interface.%% |
+^ Mixins ^ Brief description ^
+| [[:develop:api:efl:input:clickable|Efl.Input.Clickable]] | %%Efl input clickable interface.%% |
+| [[:develop:api:efl:input:event|Efl.Input.Event]] | %%Represents a generic event data.%% |
+^ Structures ^ Brief description ^
+| [[:develop:api:efl:input:clickable_clicked|Efl.Input.Clickable_Clicked]] | %%A struct that expresses a click in elementary.%% |
+^ Enums ^ Brief description ^
+| [[:develop:api:efl:input:device_type|Efl.Input.Device_Type]] | %%General type of input device.%% |
+| [[:develop:api:efl:input:flags|Efl.Input.Flags]] | %%Special flags set during an input event propagation.%% |
+| [[:develop:api:efl:input:lock|Efl.Input.Lock]] | %%Key locks such as Num Lock, Scroll Lock and Caps Lock.%% |
+| [[:develop:api:efl:input:modifier|Efl.Input.Modifier]] | %%Key modifiers such as Control, Alt, etc...%% |
+
+===== efl.io =====
+
+^ Interfaces ^ Brief description ^
+| [[:develop:api:efl:io:closer|Efl.Io.Closer]] | %%Generic interface for objects that can close themselves.%% |
+| [[:develop:api:efl:io:reader|Efl.Io.Reader]] | %%Generic interface for objects that can read data into a provided memory.%% |
+| [[:develop:api:efl:io:writer|Efl.Io.Writer]] | %%Generic interface for objects that can write data from a provided memory.%% |
+
+===== efl.layout =====
+
+^ Interfaces ^ Brief description ^
+| [[:develop:api:efl:layout:calc|Efl.Layout.Calc]] | %%This interface defines a common set of APIs used to trigger calculations with layout objects.%% |
+| [[:develop:api:efl:layout:group|Efl.Layout.Group]] | %%APIs representing static data from a group in an edje file.%% |
+| [[:develop:api:efl:layout:signal|Efl.Layout.Signal]] | %%Layouts asynchronous messaging and signaling interface.%% |
+
+===== efl.ui =====
+
+^ Classes ^ Brief description ^
+| [[:develop:api:efl:ui:alert_popup|Efl.Ui.Alert_Popup]] | %%A variant of %%[[:develop:api:efl:ui:popup|Efl.Ui.Popup]]%% which uses a layout containing a content object and a variable number of buttons (up to 3 total).%% |
+| [[:develop:api:efl:ui:bg|Efl.Ui.Bg]] | %%The bg (background) widget is used for setting (solid) background decorations for a window (unless it has transparency enabled) or for any container object. It works just like an image, but has some properties useful for backgrounds, such as setting it to tiled, centered, scaled or stretched.%% |
+| [[:develop:api:efl:ui:box_flow|Efl.Ui.Box_Flow]] | %%A Flow Box is a customized type of %%[[:develop:api:efl:ui:box|Efl.Ui.Box]]%%. It will fill along the axis selected with %%[[:develop:api:efl:ui:layout_orientable:property:orientation|Efl.Ui.Layout_Orientable.orientation]]%% (which defaults to Horizontal), until items will no longer fit in the available space, at which point it will begin filling items in a new row/column after the current one. This is useful if an application wants to e.g., present a group of items and wrap them onto subsequent lines when the number of items grows too large to fit on the screen. Adding or removing items in the middle re-arrange the rest of the items as expected.%% |
+| [[:develop:api:efl:ui:box_stack|Efl.Ui.Box_Stack]] | %%A custom layout engine for %%[[:develop:api:efl:ui:box|Efl.Ui.Box]]%% that stacks items.%% |
+| [[:develop:api:efl:ui:box|Efl.Ui.Box]] | %%A container that arranges children widgets in a vertical or horizontal fashion.%% |
+| [[:develop:api:efl:ui:button|Efl.Ui.Button]] | %%Push-button widget%% |
+| [[:develop:api:efl:ui:check|Efl.Ui.Check]] | %%Check widget.%% |
+| [[:develop:api:efl:ui:collection_view|Efl.Ui.Collection_View]] | %%This widget displays a list of items in an arrangement controlled by an external %%[[:develop:api:efl:ui:collection_view:property:position_manager|Efl.Ui.Collection_View.position_manager]]%% object. By using different %%[[:develop:api:efl:ui:collection_view:property:position_manager|Efl.Ui.Collection_View.position_manager]]%% objects this widget can show unidimensional lists or two-dimensional grids of items, for example.%% |
+| [[:develop:api:efl:ui:collection|Efl.Ui.Collection]] | %%This widget displays a list of items in an arrangement controlled by an external %%[[:develop:api:efl:ui:collection:property:position_manager|Efl.Ui.Collection.position_manager]]%% object. By using different %%[[:develop:api:efl:ui:collection:property:position_manager|Efl.Ui.Collection.position_manager]]%% objects this widget can show unidimensional lists or two-dimensional grids of items, for example.%% |
+| [[:develop:api:efl:ui:datepicker|Efl.Ui.Datepicker]] | %%Datepicker widget%% |
+| [[:develop:api:efl:ui:default_item|Efl.Ui.Default_Item]] | %%Default Item Class.%% |
+| [[:develop:api:efl:ui:grid_default_item|Efl.Ui.Grid_Default_Item]] | %%Default Item class to be used inside %%[[:develop:api:efl:ui:grid|Efl.Ui.Grid]]%% containers. The %%''icon''%% part is in the middle, the %%''extra''%% part overlaps it on its upper-right corner. The %%''text''%% part is centered below the %%''icon''%%. Theming can change this arrangement.%% |
+| [[:develop:api:efl:ui:grid|Efl.Ui.Grid]] | %%A scrollable grid of %%[[:develop:api:efl:ui:item|Efl.Ui.Item]]%% objects, typically %%[[:develop:api:efl:ui:grid_default_item|Efl.Ui.Grid_Default_Item]]%% objects.%% |
+| [[:develop:api:efl:ui:image_zoomable|Efl.Ui.Image_Zoomable]] | %%Elementary Image Zoomable class%% |
+| [[:develop:api:efl:ui:image|Efl.Ui.Image]] | %%Efl UI image class%% |
+| [[:develop:api:efl:ui:item|Efl.Ui.Item]] | %%Selectable Item abstraction.%% |
+| [[:develop:api:efl:ui:layout_base|Efl.Ui.Layout_Base]] | %%EFL layout widget abstract.%% |
+| [[:develop:api:efl:ui:layout_part_bg|Efl.Ui.Layout_Part_Bg]] | %%Elementary layout internal part background class%% |
+| [[:develop:api:efl:ui:layout_part_box|Efl.Ui.Layout_Part_Box]] | %%Represents a Box created as part of a layout.%% |
+| [[:develop:api:efl:ui:layout_part_content|Efl.Ui.Layout_Part_Content]] | %%Elementary layout internal part class%% |
+| [[:develop:api:efl:ui:layout_part_table|Efl.Ui.Layout_Part_Table]] | %%Represents a Table created as part of a layout.%% |
+| [[:develop:api:efl:ui:layout_part_text|Efl.Ui.Layout_Part_Text]] | %%Elementary layout internal part class%% |
+| [[:develop:api:efl:ui:layout_part|Efl.Ui.Layout_Part]] | %%Elementary layout internal part class%% |
+| [[:develop:api:efl:ui:layout|Efl.Ui.Layout]] | %%EFL layout widget class.%% |
+| [[:develop:api:efl:ui:list_default_item|Efl.Ui.List_Default_Item]] | %%Default Item class to be used inside %%[[:develop:api:efl:ui:list|Efl.Ui.List]]%% containers. It displays the three parts in horizontal order: %%''icon''%%, %%''text''%% and %%''extra''%%. Theming can change this arrangement.%% |
+| [[:develop:api:efl:ui:list|Efl.Ui.List]] | %%A scrollable list of %%[[:develop:api:efl:ui:item|Efl.Ui.Item]]%% objects, typically %%[[:develop:api:efl:ui:list_default_item|Efl.Ui.List_Default_Item]]%% objects.%% |
+| [[:develop:api:efl:ui:popup_part_backwall|Efl.Ui.Popup_Part_Backwall]] | %%A Popup backwall is the background object for an %%[[:develop:api:efl:ui:popup|Efl.Ui.Popup]]%% widget. It can be returned from a given Popup widget by using the %%[[:develop:api:efl:part|Efl.Part]]%% API to fetch the "backwall" part.%% |
+| [[:develop:api:efl:ui:popup|Efl.Ui.Popup]] | %%A styled container widget which overlays a window's contents.%% |
+| [[:develop:api:efl:ui:radio_group_impl|Efl.Ui.Radio_Group_Impl]] | %%Object with the default implementation for %%[[:develop:api:efl:ui:radio_group|Efl.Ui.Radio_Group]]%%.%% |
+| [[:develop:api:efl:ui:radio|Efl.Ui.Radio]] | %%Elementary radio button class.%% |
+| [[:develop:api:efl:ui:scroller|Efl.Ui.Scroller]] | %%Widget container that allows objects bigger than itself to be put inside it, and provides scrolling functionality so the whole content is visible.%% |
+| [[:develop:api:efl:ui:slider|Efl.Ui.Slider]] | %%Elementary slider class%% |
+| [[:develop:api:efl:ui:spin_button|Efl.Ui.Spin_Button]] | %%A Button Spin.%% |
+| [[:develop:api:efl:ui:spin|Efl.Ui.Spin]] | %%A Spin.%% |
+| [[:develop:api:efl:ui:table|Efl.Ui.Table]] | %%Widget container that arranges its elements in a grid.%% |
+| [[:develop:api:efl:ui:timepicker|Efl.Ui.Timepicker]] | %%Timepicker widget%% |
+| [[:develop:api:efl:ui:view_model|Efl.Ui.View_Model]] | %%Efl model providing helpers for custom properties used when linking a model to a view and you need to generate/adapt values for display.%% |
+| [[:develop:api:efl:ui:widget_factory|Efl.Ui.Widget_Factory]] | %%Efl Ui Factory that provides %%[[:develop:api:efl:ui:widget|Efl.Ui.Widget]]%%.%% |
+| [[:develop:api:efl:ui:widget_part_bg|Efl.Ui.Widget_Part_Bg]] | %%Elementary widget internal part background class%% |
+| [[:develop:api:efl:ui:widget_part_shadow|Efl.Ui.Widget_Part_Shadow]] | %%A drop-shadow or glow effect around any widget.%% |
+| [[:develop:api:efl:ui:widget_part|Efl.Ui.Widget_Part]] | %%This is the base class for all "Part" handles in Efl.Ui widgets.%% |
+| [[:develop:api:efl:ui:widget|Efl.Ui.Widget]] | %%Base class for all Efl.Ui.* widgets%% |
+| [[:develop:api:efl:ui:win|Efl.Ui.Win]] | %%Efl UI window class.%% |
+^ Interfaces ^ Brief description ^
+| [[:develop:api:efl:ui:autorepeat|Efl.Ui.Autorepeat]] | %%Interface for autorepeating clicks.%% |
+| [[:develop:api:efl:ui:factory_bind|Efl.Ui.Factory_Bind]] | %%Efl UI Property interface. view object can have %%[[:develop:api:efl:model|Efl.Model]]%% and need to set cotent with those model stored data. the interface can help binding the factory to create object with model property data. see %%[[:develop:api:efl:model|Efl.Model]]%% see %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%%%% |
+| [[:develop:api:efl:ui:factory|Efl.Ui.Factory]] | %%Interface for factory-pattern object creation.%% |
+| [[:develop:api:efl:ui:focus:manager_window_root|Efl.Ui.Focus.Manager_Window_Root]] | %%An interface to indicate the end of a focus chain.%% |
+| [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] | %%Interface for managing focus objects.%% |
+| [[:develop:api:efl:ui:layout_orientable|Efl.Ui.Layout_Orientable]] | %%Interface for UI objects which can have more than one orientation.%% |
+| [[:develop:api:efl:ui:property_bind|Efl.Ui.Property_Bind]] | %%Efl UI Property_Bind interface. view object can have %%[[:develop:api:efl:model|Efl.Model]]%% to manage the data, the interface can help loading and tracking child data from the model property. see %%[[:develop:api:efl:model|Efl.Model]]%% see %%[[:develop:api:efl:ui:factory|Efl.Ui.Factory]]%%%% |
+| [[:develop:api:efl:ui:radio_group|Efl.Ui.Radio_Group]] | %%Interface for manually handling a group of %%[[:develop:api:efl:ui:radio|Efl.Ui.Radio]]%% buttons.%% |
+| [[:develop:api:efl:ui:range_display|Efl.Ui.Range_Display]] | %%Interface that contains properties regarding the displaying of a value within a range.%% |
+| [[:develop:api:efl:ui:range_interactive|Efl.Ui.Range_Interactive]] | %%Interface that extends the normal displaying properties with usage properties.%% |
+| [[:develop:api:efl:ui:scrollable|Efl.Ui.Scrollable]] | %%Interface for widgets capable of displaying content through a viewport, which might be smaller than the actual content. This interface does not control how the content is added. This is typically done through %%[[:develop:api:efl:content|Efl.Content]]%%.%% |
+| [[:develop:api:efl:ui:scrollbar|Efl.Ui.Scrollbar]] | %%Interface used by widgets which can display scrollbars, enabling them to hold more content than actually visible through the viewport. A scrollbar contains a draggable part (thumb) which allows the user to move the viewport around the content. The size of the thumb relates to the size of the viewport compared to the whole content.%% |
+| [[:develop:api:efl:ui:selectable|Efl.Ui.Selectable]] | %%Selectable interface for UI objects%% |
+| [[:develop:api:efl:ui:single_selectable|Efl.Ui.Single_Selectable]] | %%Interface for getting access to a single selected item in the implementor.%% |
+| [[:develop:api:efl:ui:view|Efl.Ui.View]] | %%Efl UI view interface.%% |
+^ Mixins ^ Brief description ^
+| [[:develop:api:efl:ui:focus:object|Efl.Ui.Focus.Object]] | %%Functions of focusable objects.%% |
+| [[:develop:api:efl:ui:format|Efl.Ui.Format]] | %%Helper mixin that simplifies converting numerical values to text.%% |
+| [[:develop:api:efl:ui:widget_focus_manager|Efl.Ui.Widget_Focus_Manager]] | %%Helper mixin for widgets which also can act as focus managers.%% |
+^ Aliases ^ Brief description ^
+| [[:develop:api:efl:ui:format_func|Efl.Ui.Format_Func]] | %%A function taking an %%[[:develop:api:eina:value|Eina.Value]]%% and producing its textual representation. See %%[[:develop:api:efl:ui:format:property:format_func|Efl.Ui.Format.format_func]]%%.%% |
+^ Structures ^ Brief description ^
+| [[:develop:api:efl:ui:alert_popup_button_clicked_event|Efl.Ui.Alert_Popup_Button_Clicked_Event]] | %%Information for %%[[:develop:api:efl:ui:alert_popup:event:button,clicked|Efl.Ui.Alert_Popup.button,clicked]]%% event.%% |
+| [[:develop:api:efl:ui:factory_item_created_event|Efl.Ui.Factory_Item_Created_Event]] | %%EFL UI Factory event structure provided when an item was just created.%% |
+| [[:develop:api:efl:ui:focus:manager_logical_end_detail|Efl.Ui.Focus.Manager_Logical_End_Detail]] | %%Structure holding the focus object with extra information on logical end.%% |
+| [[:develop:api:efl:ui:format_value|Efl.Ui.Format_Value]] | %%A value which should always be displayed as a specific text string. See %%[[:develop:api:efl:ui:format:property:format_values|Efl.Ui.Format.format_values]]%%.%% |
+| [[:develop:api:efl:ui:property_event|Efl.Ui.Property_Event]] | %%EFL Ui property event data structure triggered when an object property change due to the interaction on the object.%% |
+| [[:develop:api:efl:ui:widget_focus_state|Efl.Ui.Widget_Focus_State]] | %%All relevant fields needed for the current state of focus registration%% |
+^ Enums ^ Brief description ^
+| [[:develop:api:efl:ui:alert_popup_button|Efl.Ui.Alert_Popup_Button]] | %%Defines the type of the alert button.%% |
+| [[:develop:api:efl:ui:focus:direction|Efl.Ui.Focus.Direction]] | %%Focus directions.%% |
+| [[:develop:api:efl:ui:focus:move_policy|Efl.Ui.Focus.Move_Policy]] | %%Focus Movement Policy.%% |
+| [[:develop:api:efl:ui:format_string_type|Efl.Ui.Format_String_Type]] | %%Type of formatting string.%% |
+| [[:develop:api:efl:ui:layout_orientation|Efl.Ui.Layout_Orientation]] | %%Orientation for UI objects and layouts that can have multiple configurations.%% |
+| [[:develop:api:efl:ui:popup_align|Efl.Ui.Popup_Align]] | %%This is the alignment method for positioning Popup widgets.%% |
+| [[:develop:api:efl:ui:scrollbar_mode|Efl.Ui.Scrollbar_Mode]] | %%When should the scrollbar be shown.%% |
+| [[:develop:api:efl:ui:win_indicator_mode|Efl.Ui.Win_Indicator_Mode]] | %%Defines the type indicator that can be shown.%% |
+| [[:develop:api:efl:ui:win_move_resize_mode|Efl.Ui.Win_Move_Resize_Mode]] | %%Define the move or resize mode of a window.%% |
+
diff --git a/public_html/data/pages/develop/apps_efl_debugging.txt b/public_html/data/pages/develop/apps_efl_debugging.txt
new file mode 100644
index 00000000..9b8b5b1c
--- /dev/null
+++ b/public_html/data/pages/develop/apps_efl_debugging.txt
@@ -0,0 +1,8 @@
+~~Title: Apps debugging~~
+==== EFL application debugging ====
+
+
+elm_drag_start(source_obj, ELM_SEL_FORMAT_TEXT,
+ "some/string", ELM_XDND_ACTION_COPY,
+ _create_drag_image_cb, "/path/to/myicon.png",
+ NULL, NULL,
+ NULL, NULL,
+ NULL, NULL);
+
+
+Apart from the source object, we also need to define the content format supported by the data (Elm_Sel_Format - in case above, we use ELM_SEL_FORMAT_TEXT just for sending some plain text) and the kind of action associated with the data for the drag and drop - here set to ELM_XDND_ACTION_COPY. The third argument defines the drag data in the form of a standard C string. The create icon callback needs to be set if an object is to be visible during the drag and drop. If it is not set, we are still able to move or copy an object by dropping it at valid location but we won't see its movement on screen because no object will be created to track that drag. The data parameter is passed to the create callback when it is called. The position of the image is not limited by the application's window's boundaries.
+
+{{ :docs:efl:advanced:dnd-3.png?240 |}}
+
+In the create icon callback a new image is created based on the image file of object that we passed to it.
+
+
+image = elm_image_add(win);
+elm_image_file_set(image, data, NULL);
+elm_image_aspect_fixed_set(image, EINA_FALSE);
+evas_object_color_set(image, 100, 100, 100, 100);
+
+
+By default the new image's position is (0,0) relative to application's window. To change that, we set the xoff and yoff coordinates offsets based on mouse pointer position and image's width and height.
+
+
+Evas_Coord x, y, w, h, x0, y0;
+
+evas_object_geometry_get(orig_image, &x, &y, &w, &h);
+evas_pointer_canvas_xy_get(evas_object_evas_get(orig_image), &x0, &y0);
+evas_object_resize(image, w, h);
+evas_object_move(image, x - (w / 2), y - (h / 2));
+
+*xoff = x0 - (w / 2);
+*yoff = y0 - (h / 2);
+
+
+You can also set 3 other callbacks that are invoked when the object's position changes, the target accepts (or not) the drop data or when drag and drop is finished. We didn't need them in this example so they're omitted.
+
+----
+
+The gengrid in the second application needs to register itself as a target for drops for DnD to know to listen to that region for drops. To do so the elm_drop_item_container_add() function is used.
+
+
+elm_drop_item_container_add(viewdata_s.gengrid, ELM_SEL_FORMAT_TEXT, _item_get_cb,
+ NULL, NULL,
+ NULL, NULL,
+ _item_pos_cb, NULL,
+ _item_drop_cb, NULL);
+
+
+This function helps to manage dropping an object into gengrid's items easily, by passing the item the mouse was over when the drop happened as an argument to drag-and-drop callbacks. We set ''_item_get_cb()'' function as the callback to get ''Elm_Object_Item'' at (x, y) - it simply returns the item at mouse position (x, y).
+
+
+Elm_Object_Item *
+_item_get_cb(Evas_Object *obj, Evas_Coord x, Evas_Coord y, int *xposret, int *yposret)
+ {
+ return elm_gengrid_at_xy_item_get(viewdata_s.gengrid, x, y, NULL, NULL);
+ }
+
+
+The content format supported by the data is set to ELM_SEL_FORMAT_TEXT, as is on the other end of drag and drop in this example. A callback for the dragged object's position update - ''_item_pos_cb()'' - is set to monitor the dragged image's position and highlight a gengrid item when the image is over it and ''_item_drop_cb()'' is called to actually copy the image to the destination when the mouse or finger is released from the object.
+
+{{ :docs:efl:advanced:dnd-4.png?240 |}}
+
+When an object is dropped, ''_item_drop_cb()'' is invoked. An Elm_Selection_Data structure pointer is passed to ''_item_drop_cb()'' callback. It contains the drag-and-drop data as well as the drop coordinates. The dragged image's path was set as the drag-and-drop data so the only thing that needs to be done in ''_item_drop_cb()'' is to create an image based on given path and put in inside the gengrid item.
+
+
+Eina_Bool
+_item_drop_cb(void *data, Evas_Object *obj, Elm_Object_Item *it, Elm_Selection_Data *ev, int xposret, int yposret)
+ {
+ if (ev->format == ELM_SEL_FORMAT_TEXT)
+ return view_item_update_image(it, ev->data);
+ return EINA_FALSE;
+ }
+
+
+The ''view_item_update_image()'' function takes Elm_Object_Item * and char * as arguments and creates a new image object based on given path string and sets it in given gengrid item.
+
+{{ :docs:efl:advanced:dnd-5.png?240 |}}
+
+Other callbacks you can set for the drop target are:
+
+ * //enter callback// - called when the object enters target's area. It can be used for example for highlighting the target to indicate that it accepts dragged objects.
+ * //leave callback// - called when the objects leaves target's area.
+
+To receive the dragged data in an object that isn't a container, you have to use elm_drop_target_add() instead of elm_drop_item_container_add(). The only difference between them is that you don't set the callback for getting the Elm_Object_Item at given coordinates.
+
+----
+
+~~DISCUSSIONS~~
\ No newline at end of file
diff --git a/public_html/data/pages/develop/efl/advanced/eflgfxfilter/blend.txt b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/blend.txt
new file mode 100644
index 00000000..3eb07121
--- /dev/null
+++ b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/blend.txt
@@ -0,0 +1,24 @@
+Go back to [[:develop:efl:advanced:eflgfxfilters|Efl.Gfx.Filter]].
+
+==== Blend ====
+
+Blend a buffer onto another. This is the simplest filter, as it just renders one buffer on another, potentially using a color, an offset and fill options.
+
+
+blend ({ src = input, dst = output, ox = 0, oy = 0, color = 'white', fillmode = 'none' })
+
+
+== Parameters ==
+| ''src'' |Source buffer to blend. |
+| ''dst'' |Destination buffer for blending. |
+| ''ox'' |X offset. Moves the buffer to the right (ox > 0) or to the left (ox < 0) by N pixels. |
+| ''oy'' |Y offset. Moves the buffer to the bottom (oy > 0) or to the top (oy < 0) by N pixels. |
+| ''color'' |A color to use for alpha to RGBA conversion. See [[colors]]. \\ If the input is an alpha buffer and the output is RGBA, this will draw the buffer in this color. If both buffers are RGBA, this will multiply the colors. |
+| ''fillmode'' |Map the input onto the whole surface of the output by stretching or repeating it. See [[fillmodes]]. |
+
+== Example ==
+
+
+blend ({ color = '#fff8' })
+
+{{:docs:efl:advanced:filter-blend.png|}}
diff --git a/public_html/data/pages/develop/efl/advanced/eflgfxfilter/blur.txt b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/blur.txt
new file mode 100644
index 00000000..41653f9a
--- /dev/null
+++ b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/blur.txt
@@ -0,0 +1,46 @@
+Go back to [[:develop:efl:advanced:eflgfxfilters|Efl.Gfx.Filter]].
+
+==== Blur ====
+
+Applies a [[https://en.wikipedia.org/wiki/Gaussian_blur|gaussian blur]] or [[https://en.wikipedia.org/wiki/Box_blur|box blur]] filter to a buffer and blends it onto a destination buffer.
+
+Blurs can be used to create **drop shadows** and **glow** effects.
+
+== Syntax ==
+
+blur ({ rx = 3, ry = nil, type = 'default', ox = 0, oy = 0, color = 'white', src = input, dst = output, count = 3 })
+
+
+== Parameters ==
+|''rx'' |X radius. Specifies the radius of the blurring kernel (X direction). |
+|''ry'' |Y radius. Specifies the radius of the blurring kernel (Y direction). If -1 is used, then ry = rx. |
+|''type'' |Blur type to apply. One of default, box or gaussian. See below for details about default. |
+|''ox'' |X offset. Moves the buffer to the right (ox > 0) or to the left (ox < 0) by N pixels. |
+|''oy'' |Y offset. Moves the buffer to the bottom (oy > 0) or to the top (oy < 0) by N pixels. |
+|''color'' |A color to use for alpha to RGBA conversion. See ''colors''. \\ If the input is an alpha buffer and the output is RGBA, this will draw the buffer in this color. |
+|''src'' |Source buffer to blur. |
+|''dst'' |Destination buffer for blending. |
+|''count'' |Number of times to repeat the blur. Only valid with box blur. Valid range is: 1 to 6 |
+
+== Notes ==
+
+The blur type ''default'' is recommended in **all situations** as it will select the smoothest and fastest operation possible depending on the kernel size. Instead of running a real gaussian blur (very slow), 2 or 3 box blurs may be chained to produce a similar effect at a much higher speed. The value count can be set to a value from 1 to 6 if blur type box has been specified.
+
+The speedups of box over gaussian are of orders of 4x to more than 20x faster.
+
+If ''src'' is an alpha buffer and ''dst'' is an RGBA buffer, then the ''color'' option should be set.
+
+''ox'' and ''oy'' can be used to move the blurry output by a few pixels, like a drop shadow.
+
+== Examples ==
+
+
+blur { 15 }
+
+{{:docs:efl:advanced:filter-blur.png|}}
+
+
+blur { 10, ox = 5, oy = 5, color = 'black' }
+blend {}
+
+{{:docs:efl:advanced:filter-dropshadow.png|}}
diff --git a/public_html/data/pages/develop/efl/advanced/eflgfxfilter/buffer.txt b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/buffer.txt
new file mode 100644
index 00000000..75ec4024
--- /dev/null
+++ b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/buffer.txt
@@ -0,0 +1,50 @@
+Go back to [[:develop:efl:advanced:eflgfxfilters|Efl.Gfx.Filter]].
+
+==== Buffer ====
+
+Apart from the predefined buffers ''input'' and ''output'', buffers can also be created using the ''buffer'' command, and their contents will either be transparency (all pixels are ''rgba(0,0,0,0)'') or they will reflect the contents of another [[Evas.Object]]. The latter case can be used to import external images and textures into a filter.
+
+All buffers have the same size unless they come from an external source, in which case their size is equal to the geometry of the [[Evas.Object]].
+
+Buffers are either Alpha surfaces (8 bit, values in the range 0-255) or full RGBA bitmaps (32 bits).
+
+Various buffers can be combined together with commands such as [[:develop:efl:advanced:eflgfxfilter:blend|blend]], [[:develop:efl:advanced:eflgfxfilter:blur|blur]], [[:develop:efl:advanced:eflgfxfilter:mask|mask]], etc...
+
+== Syntax ==
+
+
+buffer ({ type = 'rgba', src = nil })
+
+
+== Parameters ==
+|''type'' |Can be either ''"alpha"'' or ''"rgba"'' |
+|''src'' |A source name, specified in [[Efl.Gfx.Filter.source.set]] or in EDC with ''filter.source: "srcname";'' |
+
+
+== Examples ==
+
+-- create a buffer (RGBA)
+name1 = buffer()
+-- create an Alpha buffer
+name2 = buffer("alpha")
+-- create an RGBA buffer
+name3 = buffer("rgba")
+name4 = buffer({ type = "rgba" })
+
+-- create a proxy buffer whose pixels come from an external object
+name5 = buffer({ src = "partname" })
+
+
+''partname'' above is either:
+ * The argument to [[Efl.Gfx.Filter.source.set]];
+ * The binding name set in EDC with the syntax:
+
+ filter.source: "/edje/part/name" "partname";
+ filter.source: "partname";
+
+
+== Temporary buffers ==
+
+Some commands might require the creation of internal buffers, which the script can not use directly, and that serve only as intermediate image processing surfaces.
+
+This means that the memory usage of a filter operation might be larger than just that of the ''input'' and ''output'' buffers.
diff --git a/public_html/data/pages/develop/efl/advanced/eflgfxfilter/bump.txt b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/bump.txt
new file mode 100644
index 00000000..b9da266a
--- /dev/null
+++ b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/bump.txt
@@ -0,0 +1,40 @@
+Go back to [[:develop:efl:advanced:eflgfxfilters|Efl.Gfx.Filter]].
+
+==== Bump mapping ====
+
+The bump effect is based on the concept of [[https://en.wikipedia.org/wiki/Bump_mapping|bump mapping]]. It basically consists in casting a light source onto the object, and using a bump map as a relief information.
+
+== Syntax ==
+
+bump ({ map, azimuth = 135.0, elevation = 45.0, depth = 8.0, specular = 0.0,
+ color = 'white', compensate = false, src = input, dst = output,
+ black = 'black', white = 'white', fillmode = 'repeat' })
+
+
+== Parameters ==
+|''map'' |An alpha buffer treated like a Z map for the light effect (bump map). Must be specified. |
+|''azimuth'' |The angle in degrees between the light vector and the X axis in the XY plane (Z = 0). ''135.0'' means 45 degrees from the top-left. Counter-clockwise notation. |
+|''elevation'' |The angle between the light vector and the Z axis. 45.0 means 45 degrees to the screen's plane. Ranges from 0 to 90 only. |
+|''depth'' |The depth of the object in an arbitrary unit. More depth means the shadows will be stronger. Default is ''8.0''. |
+|''specular'' |An arbitrary unit for the specular light effect. Default is ''0.0'' (i.e. disabled), but a common value would be ''40.0''. |
+|''color'' |The main color of the object if ''src'' is an alpha buffer. This represents the light's normal color. See [[colors]]. |
+|''compensate'' |If set to ''true'', compensate for whitening or darkening on flat surfaces. \\ Default is ''false'' but it is recommended to set it to ''true'' if specular light is wanted. |
+|''src'' |Source buffer. This should be an alpha buffer. |
+|''dst'' |Destination buffer. This should be an RGBA buffer (although alpha is supported). Must be of the same size as ''src''. |
+|''black'' |The shadows' [[colors|color]]. Usually this will be black (''"#000"''). |
+|''white'' |The specular light's [[colors|color]]. Usually this will be white (''"#FFF"''). |
+|''fillmode'' |This specifies how to handle map when its dimensions don't match those of ''src'' and ''dst''. Default is to ''"repeat"''. See [[fillmodes]]. |
+
+
+== Example ==
+
+In the following example, the bump map is constructed from the input image. For text, this means we can create 3d looks on the characters by casting specular light and shadows.
+
+
+a = buffer { 'alpha' } -- this will be our bump map
+grow { 5, dst = a }
+blur { 6, src = a , dst = a }
+bump { map = a, color = '#f60', specular = 1, compensate = true }
+
+^ Input ^ Bump map ^ Output ^
+| {{ :docs:efl:advanced:filter-input-bg.png |}} | {{ :docs:efl:advanced:filter-bumpmap.png |}} | {{ :docs:efl:advanced:filter-bump.png |}} |
diff --git a/public_html/data/pages/develop/efl/advanced/eflgfxfilter/colors.txt b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/colors.txt
new file mode 100644
index 00000000..1dcdd7bc
--- /dev/null
+++ b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/colors.txt
@@ -0,0 +1,64 @@
+Go back to [[:develop:efl:advanced:eflgfxfilters|Efl.Gfx.Filter]].
+
+==== Colors ====
+
+Many filter operations will take one (or more) color arguments. \\ Since EFL 1.15, the supported syntax to create colors has expanded using Lua class appropriately named ''color''.
+
+
+-- default is black
+color()
+color(nil)
+
+-- with r,g,b,a integers in the range [0-255]
+color(r,g,b)
+color(r,g,b,a)
+color({r = 0, g = 255, b = 128, a = 64})
+
+-- with r,g,b,a hexadecimal values [0-F]
+color('#rgb')
+color('#rgba')
+color('#rrggbb')
+color('#rrggbbaa')
+
+-- predefined colors
+color('red')
+
+
+== Predefined colors ==
+
+Here is the list of predefined colors, based on their equivalent HTML names.
+
+^ Name ^ Value ^ Example ^
+| 'white' | '#FFFFFF' | {{ :docs:efl:advanced:filter-color-white.png |}} |
+| 'black' | '#000000' | {{ :docs:efl:advanced:filter-color-black.png |}} |
+| 'red' | '#FF0000' | {{ :docs:efl:advanced:filter-color-red.png |}} |
+| 'green' | '#008000' | {{ :docs:efl:advanced:filter-color-green.png |}} |
+| 'blue' | '#0000FF' | {{ :docs:efl:advanced:filter-color-blue.png |}} |
+| 'darkblue' | '#0000A0' | {{ :docs:efl:advanced:filter-color-darkblue.png |}} |
+| 'yellow' | '#FFFF00' | {{ :docs:efl:advanced:filter-color-yellow.png |}} |
+| 'magenta' | '#FF00FF' | {{ :docs:efl:advanced:filter-color-magenta.png |}} |
+| 'cyan' | '#00FFFF' | {{ :docs:efl:advanced:filter-color-cyan.png |}} |
+| 'orange' | '#FFA500' | {{ :docs:efl:advanced:filter-color-orange.png |}} |
+| 'purple' | '#800080' | {{ :docs:efl:advanced:filter-color-purple.png |}} |
+| 'brown' | '#A52A2A' | {{ :docs:efl:advanced:filter-color-brown.png |}} |
+| 'maroon' | '#800000' | {{ :docs:efl:advanced:filter-color-maroon.png |}} |
+| 'lime' | '#00FF00' | {{ :docs:efl:advanced:filter-color-lime.png |}} |
+| 'gray' \\ 'grey' | '#808080' | {{ :docs:efl:advanced:filter-color-gray.png |}} |
+| 'silver' | '#C0C0C0' | {{ :docs:efl:advanced:filter-color-silver.png |}} |
+| 'olive' | '#808000' | {{ :docs:efl:advanced:filter-color-olive.png |}} |
+| 'invisible' \\ 'transparent' | '#0000' | {{ :docs:efl:advanced:filter-color-invisible.png |}} |
+
+== Usage examples ==
+
+
+blur { 15, color = color('yellow') }
+blur { 5, color = '#f0f8' }
+blur { 2, color = state.color }
+blend { color = 'white' }
+
diff --git a/public_html/data/pages/develop/efl/advanced/eflgfxfilter/curve.txt b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/curve.txt
new file mode 100644
index 00000000..08e763b6
--- /dev/null
+++ b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/curve.txt
@@ -0,0 +1,88 @@
+Go back to [[:develop:efl:advanced:eflgfxfilters|Efl.Gfx.Filter]].
+
+=== Color curves ===
+
+The color curve function is based on the classic [[https://en.wikipedia.org/wiki/Curve_%28tonality%29|curve]] image filtering operation. It works by remapping one or more color channels (R, G, B, A, or RGB together) by applying a function over the range [0-255]. A table can also be passed in, containing a series of key points to be interpolated.
+
+== Syntax ==
+
+
+curve ({ points, interpolation = 'linear', channel = 'rgb', src = input, dst = output })
+
+
+== Parameters ==
+|''points'' |The color curve to apply. See below for the syntax. |
+|''interpolation'' |How to interpolate between points. One of linear (y = ax + b) or none (y = Yk). |
+|''channel'' |Target channel for the color modification. One of R(ed), G(reen), B(lue), A(lpha), RGB and RGBA. If ''src'' is an alpha buffer, this parameter will be ignored. |
+|''src'' |Source buffer. |
+|''dst'' |Destination buffer, must be of same dimensions and color space as ''src''. |
+
+
+== Specifying the curve ==
+
+The ''points'' argument is a function or table taking input values from 0 to 255 and mapping those to the same range 0 to 255. //The old string-based syntax is still supported but not recommended.//
+
+The easiest way to specify a curve is to create a sparse table with keys and values from 0 to 255 (//yes, the table starts at 0 and not 1 as is usual in Lua//):
+
+
+-- color invert
+p = {}
+p[0] = 255
+p[255] = 0
+curve ({ points = p })
+
+
+This can of course be inlined:
+
+curve ({ points = { [0] = 255, [255] = 0 } })
+
+
+Another solution is to pass in a function ''f(x)'' that will output values in the 0-255 range. For example:
+
+
+p = function(x)
+ return 255 * math.sin(x / 255 * math.pi)
+end
+curve ({ points = p })
+
+== Examples ==
+
+
+a = buffer ('alpha')
+b = buffer ('alpha')
+blur { 6, dst = a }
+
+c = {}
+c[0] = 0
+c[50] = 255
+c[100] = 0
+c[150] = 255
+c[200] = 0
+c[255] = 255
+
+curve { src = a, points = c, dst = b }
+blend {src = b }
+
+
+^ Input ^ Color curve function ^ Output ^
+| {{ :docs:efl:advanced:filter-blur6.png |}} | {{ :docs:efl:advanced:filter-colorcurve.png |}} | {{ :docs:efl:advanced:filter-curve.png |}} |
+| {{ :docs:efl:advanced:filter-blur6.png |}} | {{ :docs:efl:advanced:filter-colorcurve2.png |}} | {{ :docs:efl:advanced:filter-curve-1.png |}} |
+
+Color curves can thus be used to draw contours of text characters:
+
+
+a = buffer ('alpha')
+blur ({ 4, dst = a })
+
+p = {}
+p[0] = 0
+p[20] = 0
+p[60] = 255
+p[160] = 255
+p[200] = 0
+p[255] = 0
+
+curve ({ points = p, src = a, dst = a })
+blend ({ src = a, color = 'white' })
+
+{{:docs:efl:advanced:filter-curve-3.png|}}
diff --git a/public_html/data/pages/develop/efl/advanced/eflgfxfilter/displace.txt b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/displace.txt
new file mode 100644
index 00000000..85d718cd
--- /dev/null
+++ b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/displace.txt
@@ -0,0 +1,45 @@
+Go back to [[:develop:efl:advanced:eflgfxfilters|Efl.Gfx.Filter]].
+
+==== Displacement mapping ====
+
+Apply a [[https://en.wikipedia.org/wiki/Displacement_mapping|displacement map]] on a buffer. This has the effect of moving the input pixels based on the values of the corresponding pixels in the displacement buffer.
+
+== Syntax ==
+
+displace ({ map, intensity = 10, flags = 0, src = input, dst = output, fillmode = 'repeat' })
+
+
+== Parameters ==
+|''map'' |An RGBA buffer containing a displacement map. See below for more details. |
+|''intensity'' |Maximum distance for the displacement. The value 255 in the displacement map will then represent a displacement of ''intensity'' pixels. |
+|''flags'' |This defines how pixels should be treated when going out of the source image bounds. \\ Must be one of ''"default"'', ''"nearest"'', ''"smooth"'', ''"nearest_stretch"'' or ''"smooth_stretch"''. ''"default"'' is equivalent to ''"smooth_stretch"''. |
+|''src'' |Source buffer. |
+|''dst'' |Destination buffer. Must be of same color format and size as src. |
+|''fillmode'' |Defines how to handle cases where the map has a different size from src and dst. It should be a combination of stretch or repeat: none is not supported. See [[fillmodes]]. |
+
+The map buffer is an RGBA image containing displacement and alpha values. Its size can be different from src or dst.
+
+ * The red channel is used for X displacements while the green channel is used for Y displacements. All subpixel values are in the range 0..255. A value of 128 means 0 displacement, lower means displace to the top/left and higher than 128 displace to the bottom/right.
+ * The alpha channel is used as an alpha multiplier for blending.
+ * The blue channel is ignored.
+
+Considering I(x, y) represents the pixel at position (x, y) in the image I, then here is how the displacement is applied to dst:
+
+
+D = map (x, y)
+dst (x, y) = D.alpha / 255 * src (x + (D.red - 128) * intensity / 128,
+ y + (D.green - 128) * intensity / 128)
+ + (255 - D.alpha) / 255 * dst (x, y)
+
+
+Of course, the real algorithm takes into account interpolation between pixels as well.
+
+== Example ==
+
+
+a = buffer { 'alpha' }
+displace { 'image1', intensity = 20, fillmode = 'stretch', dst = a }
+blend { a }
+
+^ Displacement map ^ Output ^
+| {{ :docs:efl:advanced:filter-texture.png |}} | {{ :docs:efl:advanced:filter-displace.png |}} |
diff --git a/public_html/data/pages/develop/efl/advanced/eflgfxfilter/fill.txt b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/fill.txt
new file mode 100644
index 00000000..c77d1368
--- /dev/null
+++ b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/fill.txt
@@ -0,0 +1,33 @@
+Go back to [[:develop:efl:advanced:eflgfxfilters|Efl.Gfx.Filter]].
+
+==== Fill ====
+
+Fill a buffer with a specific color. Does not blend, can be used to clear a buffer.
+
+
+fill ({ dst = output, color = 'transparent', l = 0, r = 0, t = 0, b = 0 })
+
+
+== Parameters ==
+|''dst'' |Target buffer to fill with color. |
+|''color'' |The color used to fill the buffer. All pixels within the fill area will be reset to this value. See [[colors]]. |
+|''l'' |Left padding: skip ''l'' pixels from the left border of the buffer. |
+|''r'' |Right padding: skip ''r'' pixels from the right border of the buffer. |
+|''t'' |Top padding: skip ''t'' pixels from the top border of the buffer. |
+|''b'' |Bottom padding: skip ''b'' pixels from the bottom border of the buffer. |
+
+== Examples ==
+
+fill { color = 'darkblue' }
+
+{{:docs:efl:advanced:filter-fill.png|}}
+
+
+padding_set(20)
+fill { output, 'blue', 5, 10, 20, 50 }
+blend { color = 'silver' }
+
+{{:docs:efl:advanced:filter-fillpad.png|}}
diff --git a/public_html/data/pages/develop/efl/advanced/eflgfxfilter/fillmodes.txt b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/fillmodes.txt
new file mode 100644
index 00000000..4b2dd2bc
--- /dev/null
+++ b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/fillmodes.txt
@@ -0,0 +1,28 @@
+Go back to [[:develop:efl:advanced:eflgfxfilters|Efl.Gfx.Filter]].
+
+==== Fill modes ====
+
+Similar to [[Evas.Fill_Mode]], the [[:develop:efl:advanced:eflgfxfilters|Efl.Gfx.Filter]] fill modes specify how to use an input buffer to paint in a buffer of different size, by stretching or repeating the image.
+
+Here is the list of all accepted fill modes that can be passed as value for ''fillmode'' arguments (in ''mask'', ''blend'', etc...).
+
+^ Value ^ Meaning ^ Effect ^
+| 'none' | Does not stretch or tile | {{:docs:efl:advanced:filter-fillmode-none.png|}} |
+| 'stretch_x' | Stretch horizontally only | {{:docs:efl:advanced:filter-fillmode-sx.png|}} |
+| 'stretch_y' | Stretch vertically only | {{:docs:efl:advanced:filter-fillmode-sy.png|}} |
+| 'stretch' \\ 'stretch_xy' | Stretch in both directions | {{:docs:efl:advanced:filter-fillmode-sxy.png|}} |
+| 'repeat_x' | Tile horizontally only | {{:docs:efl:advanced:filter-fillmode-rx.png|}} |
+| 'repeat_y' | Tile vertically only | {{:docs:efl:advanced:filter-fillmode-ry.png|}} |
+| 'repeat' \\ 'repeat_xy' | Tile in both directions | {{:docs:efl:advanced:filter-fillmode-rxy.png|}} |
+| 'stretch_x_repeat_y' \\ 'repeat_y_stretch_x' | Stretch horizontally, repeat vertically | {{:docs:efl:advanced:filter-fillmode-sxry.png|}} |
+| 'repeat_x_stretch_y' \\ 'stretch_y_repeat_x' | Stretch vertically, repeat horizontally | {{:docs:efl:advanced:filter-fillmode-rxsy.png|}} |
+
+== Example ==
+
+The above images have been generated with the following filter code:
+
+b = buffer{ src = 'image2' }
+padding_set(20)
+fill { color = white }
+blend { src = b, fillmode = 'none' }
+
diff --git a/public_html/data/pages/develop/efl/advanced/eflgfxfilter/grow.txt b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/grow.txt
new file mode 100644
index 00000000..7cc65f22
--- /dev/null
+++ b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/grow.txt
@@ -0,0 +1,33 @@
+Go back to [[:develop:efl:advanced:eflgfxfilters|Efl.Gfx.Filter]].
+
+==== Grow and shrink ====
+
+The ''grow'' function is used to apply [[https://en.wikipedia.org/wiki/Mathematical_morphology|morphology]] filters to a buffer.
+
+
+grow ({ radius, smooth = true, src = input, dst = output })
+
+
+== Parameters ==
+|''radius'' |The radius of the grow kernel. If a negative value is specified, the contents will shrink rather than grow. |
+|''smooth'' |If true, use a smooth transitions between black and white (smooth blur and smoother curve). |
+|''src'' |Source buffer to blur. |
+|''dst'' |Destination buffer for blending. This must be of same size and colorspace as ''src''. |
+
+== Examples ==
+
+a = buffer { 'rgba' }
+blend { dst = a }
+grow { 6, src = a }
+
+{{:docs:efl:advanced:filter-grow.png|}}
+
+
+a = buffer { 'rgba' }
+blend { dst = a }
+grow { -4, src = a }
+
+{{:docs:efl:advanced:filter-shrink.png|}}
diff --git a/public_html/data/pages/develop/efl/advanced/eflgfxfilter/mask.txt b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/mask.txt
new file mode 100644
index 00000000..e2b17894
--- /dev/null
+++ b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/mask.txt
@@ -0,0 +1,40 @@
+Go back to [[:develop:efl:advanced:eflgfxfilters|Efl.Gfx.Filter]].
+
+==== Masking and texturing ====
+
+The ''mask'' function is used to blend together 3 buffers instead of just two. As such this means input ''A'' can be masked by input ''B'' and blended on target ''C''.
+
+''mask'' can be used to apply textures to text characters or apply alpha masks to RGBA buffers.
+
+== Syntax ==
+
+mask ({ mask, src = input, dst = output, color = 'white', fillmode = 'repeat' })
+
+
+== Parameters ==
+|''mask'' |A mask or texture to blend with the input src into the target dst. |
+|''src'' |Source buffer. This can also be thought of a mask if src is alpha and mask is RGBA. |
+|''dst'' |Destination buffer for blending. This must be of same size and colorspace as src. |
+|''color'' |A color to use for alpha to RGBA conversion for the blend operations. White means no change. See [[colors]]. \\ This will have no effect on RGBA sources. |
+|''fillmode'' |Defines whether to stretch or repeat the mask if its size differs from the ''input'' size. \\ Should be set when masking with external textures. Default is ''"repeat"''. See [[fillmodes]]. |
+
+== Examples ==
+This example requires an external object named ''"image1"'':
+
+mask { mask = 'image1', fillmode = 'stretch' }
+
+{{:docs:efl:advanced:filter-mask.png|}}
+
+The following example does not require any external texture:
+
+a = buffer ('alpha')
+blur ({ 6, dst = a })
+p = {}
+p[0] = 255
+p[128] = 255
+p[255] = 0
+curve ({ points = p, src = a, dst = a })
+blend ({ color = 'black' })
+mask ({ mask = a, color = 'cyan' })
+
+{{:docs:efl:advanced:filter-innershadow.png|}}
diff --git a/public_html/data/pages/develop/efl/advanced/eflgfxfilter/padding.txt b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/padding.txt
new file mode 100644
index 00000000..d9e25baa
--- /dev/null
+++ b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/padding.txt
@@ -0,0 +1,33 @@
+Go back to [[:develop:efl:advanced:eflgfxfilters|Efl.Gfx.Filter]].
+
+==== Padding ====
+
+The function ''padding_set'' can be used to forcily set a specific padding for this filter, regardless of the other operations.
+
+== Syntax ==
+
+padding_set ({ l, r = [l], t = [r], b = [t] })
+
+
+== Parameters ==
+|''l'' |Padding on the left side in pixels. |
+|''r'' |Padding on the right side in pixels. If unset, defaults to ''l''. |
+|''t'' |Padding on the top in pixels. If unset, defaults to ''r''. |
+|''b'' |Padding on the bottom in pixels. If unset, defaults to ''t''. |
+
+All values must be >= 0. When filtering 'filled' images, some values may be too high and would result in completely hiding the image.
+
+It is not possible to set only one of those without forcing the others as well. A common use case will be when changing a blur size during an animation, or when applying a mask that will hide most of the (blurred) text.
+
+== Example ==
+This will set the left, right, top and bottom paddings to their respective values, and some effects may look like they've been "clipped" out.
+
+fat = buffer ('alpha')
+padding_set ({ l = 10, r = 20, t = 15, b = 25 })
+fill ({ color = 'black' })
+fill ({ color = 'darkblue', l = 2, r = 2, t = 2, b = 2 })
+grow ({ 30, dst = fat })
+blur ({ 40, src = fat, color = 'white' })
+blend ({ color = 'darkblue' })
+
+{{:docs:efl:advanced:filter-padding.png|}}
diff --git a/public_html/data/pages/develop/efl/advanced/eflgfxfilter/state.txt b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/state.txt
new file mode 100644
index 00000000..97b518eb
--- /dev/null
+++ b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/state.txt
@@ -0,0 +1,36 @@
+Go back to [[:develop:efl:advanced:eflgfxfilters|Efl.Gfx.Filters]].
+
+
+state = {
+ color = ,
+ scale =
+
diff --git a/public_html/data/pages/develop/efl/advanced/eflgfxfilter/transform.txt b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/transform.txt
new file mode 100644
index 00000000..5f1b04f3
--- /dev/null
+++ b/public_html/data/pages/develop/efl/advanced/eflgfxfilter/transform.txt
@@ -0,0 +1,30 @@
+Go back to [[:develop:efl:advanced:eflgfxfilters|Efl.Gfx.Filter]].
+
+==== Transformations ====
+
+Apply a geometrical transformation to a buffer.
+
+
+transform ({ dst, op = 'vflip', src = input, oy = 0 })
+
+
+== Parameters ==
+|''dst'' |Destination buffer. Must be of the same colorspace as src. Must be specified. |
+|''op'' |Must be ''"vflip"''. There is no other operation yet. |
+|''src'' |Source buffer to transform. |
+|''oy'' |Y offset. |
+
+== Example ==
+This will create a mirrored text effect, for a font of 50px.
+
+t = buffer ('alpha')
+transform ({ oy = 20, dst = t })
+blend ({ src = t, color = '#fff8' })
+blend ({ color = 'white' })
+
+{{:docs:efl:advanced:filter-mirror.png|}}
diff --git a/public_html/data/pages/develop/efl/advanced/eflgfxfilters.txt b/public_html/data/pages/develop/efl/advanced/eflgfxfilters.txt
new file mode 100644
index 00000000..f1e0726f
--- /dev/null
+++ b/public_html/data/pages/develop/efl/advanced/eflgfxfilters.txt
@@ -0,0 +1,109 @@
+====== EFL Graphics Filters ======
+
+Supported since 1.15.
+
+This page presents an overview of [[Efl.Gfx.Filter]] used for advanced text effects and basic image filtering.
+
+Since 1.19 textblock also supports filters by using the "gfx_filter" format tag. Since 1.20 most filters have GL acceleration.
+
+===== Functions =====
+Summary of the supported filtering functions:
+ *[[:develop:efl:advanced:eflgfxfilter:blend|blend]]
+ *[[:develop:efl:advanced:eflgfxfilter:blur|blur]]
+ *[[:develop:efl:advanced:eflgfxfilter:grow|grow]]
+ *[[:develop:efl:advanced:eflgfxfilter:curve|curve]]
+ *[[:develop:efl:advanced:eflgfxfilter:fill|fill]]
+ *[[:develop:efl:advanced:eflgfxfilter:mask|mask]]
+ *[[:develop:efl:advanced:eflgfxfilter:bump|bump]]
+ *[[:develop:efl:advanced:eflgfxfilter:displace|displace]]
+ *[[:develop:efl:advanced:eflgfxfilter:transform|transform]]
+ *[[:develop:efl:advanced:eflgfxfilter:buffer|buffer]]
+ *[[:develop:efl:advanced:eflgfxfilter:padding_set|padding_set]]
+ *[[:develop:efl:advanced:eflgfxfilter:state|state]]
+
+===== Core concepts =====
+
+The Eo class [[Efl.Gfx.Filter]] provides an interface for Evas objects (currently only [[Evas.Text]] and [[Evas.Image]]) to alter their appearance by applying a series of filtering operations. Filtered objects will be rendered in internal surfaces and transformed before being drawn on the canvas. Objects without a filter are rendered directly on the canvas.
+
+EFL provides a set of standard core filters that can be combined by using a simple script. Custom filters can be written in [[http://www.lua.org/|Lua (5.1)]] and can be a combinaison of any number of the base filters presented below.
+
+==== Input, output and buffers ====
+
+The filters work by taking an ''input'' buffer (or image), applying some effects on it, and drawing the result to an ''output'' buffer. This final image is rendered on the canvas.
+
+Since [[Efl.Gfx.Filter]] works on both [[Evas.Image]] and [[Evas.Text]] objects, the ''input'' buffer can contain respectively a scaled copy of the source image (RGBA), or the text string rendered as an Alpha-only buffer, like this:
+
+{{:docs:efl:advanced:filter-input.png|}}
+
+=== Buffer management ===
+
+It is also possible to manually create more buffers using the [[:develop:efl:advanced:eflgfxfilter:buffer|buffer]] function.
+
+Read more [[:develop:efl:advanced:eflgfxfilter:buffer|here]].
+
+=== Padding ===
+
+Since the filters may modify pixels based on their neighbors (blur) or move pixels around (displace, transform), a filter ends up requiring the input buffer to be padded to avoid cropping of the effect. The filter engine will automatically compute the necessary padding for you, but this may be too much in some situations (eg. blur 10 + blur 20 will add a padding of 30 but most pixels will be blank).
+
+You can set the padding to a fixed value with the [[:develop:efl:advanced:eflgfxfilter:padding|padding_set]] command.
+
+==== Base filters ====
+
+The following table lists all the core filter functions, applied to an [[Evas.Text]] object.
+
+^ Feature ^ Function ^ Example ^
+| [[:develop:efl:advanced:eflgfxfilter:blend|Blend]] | ''blend'' | {{ :docs:efl:advanced:filter-blend.png |}} |
+| [[:develop:efl:advanced:eflgfxfilter:blur|Blurs, glows and shadows]] | ''blur'' | {{ :docs:efl:advanced:filter-blur.png |}} |
+| [[:develop:efl:advanced:eflgfxfilter:grow|Grow and shrink]] | ''grow'' | {{ :docs:efl:advanced:filter-grow.png |}} {{ :docs:efl:advanced:filter-shrink.png |}} |
+| [[:develop:efl:advanced:eflgfxfilter:curve|Color curves]] | ''curve'' | {{ :docs:efl:advanced:filter-curve.png |}} |
+| [[:develop:efl:advanced:eflgfxfilter:fill|Solid color fill]] | ''fill'' | {{ :docs:efl:advanced:filter-fill.png |}} |
+| [[:develop:efl:advanced:eflgfxfilter:mask|Masking and texturing]] | ''mask'' | {{ :docs:efl:advanced:filter-mask.png |}} |
+| [[:develop:efl:advanced:eflgfxfilter:bump|Bump maps]] | ''bump'' | {{ :docs:efl:advanced:filter-bump.png |}} |
+| [[:develop:efl:advanced:eflgfxfilter:displace|Displacement maps]] | ''displace'' | {{ :docs:efl:advanced:filter-displace.png |}} |
+| [[:develop:efl:advanced:eflgfxfilter:transform|Transformation]] | ''transform'' | {{ :docs:efl:advanced:filter-transform.png |}} |
+
+==== Complex filters ====
+
+Graphics filters in EFL can be described by short Lua scripts. Various graphics buffers can be combined and mixed together using other objects from the canvas as sources.
+
+=== Example 1 ===
+
+{{:docs:efl:advanced:filter1.png|}}
+
+Here is an example of a very simple filter using only the ''blur'' and ''grow'' functions:
+
+
+blur { 10, color = '#009' }
+blur { 4, color = '#f00' }
+grow { -4 }
+
+
+Step by step, this is how Evas generates the final output.
+
+ - First, we ask Evas to blur the input by 10 pixels, and use the color ''#009'', which is equivalent to ''#000099'' or ''rgba(0, 0, 0x99, 0xff)''.
+ - Then we do the same operation with a 4-pixels radius and the red color.
+ - Finally we use a shrinking algorithm (grow with a negative radius) and blend on top with the default color (here, white).
+
+^ Input ^ Step 1 ^ Step 2 ^ Step 3 ^
+| {{ :docs:efl:advanced:filter-input-bg.png |}} | {{ :docs:efl:advanced:filter1-1.png |}} | {{ :docs:efl:advanced:filter1-2.png |}} | {{ :docs:efl:advanced:filter1.png |}} |
+
+=== Example 2 ===
+
+{{:docs:efl:advanced:filter2.png|}}
+
+The Evas filter system is based around the use of various //"buffers"//, which can be either Alpha masks or full RGBA color images. The following example uses an intermediate buffer to store the output of the ''grow'' command, and use that as input for the ''blur'' command:
+
+
+a = buffer { 'alpha' } -- step 1
+grow { 6, dst = a } -- step 2
+blur { 4, src = a, color = '#009' } -- step 3
+blend { src = input } -- step 4
+
+
+Step by step, this is what happens to the contents of our buffers.
+
+^ Step ^ ''input'' ^ ''a'' ^ ''output'' ^
+| Step 1 | {{ :docs:efl:advanced:filter-input-bg.png |}} | {{ :docs:efl:advanced:filter-bg-full.png |}} | {{ :docs:efl:advanced:filter-bg-full.png |}} |
+| Step 2 | {{ :docs:efl:advanced:filter-input-bg.png |}} | {{ :docs:efl:advanced:filter2-a.png |}} | {{ :docs:efl:advanced:filter-bg-full.png |}} |
+| Step 3 | {{ :docs:efl:advanced:filter-input-bg.png |}} | {{ :docs:efl:advanced:filter2-a.png |}} | {{ :docs:efl:advanced:filter2-3.png |}} |
+| Step 4 | {{ :docs:efl:advanced:filter-input-bg.png |}} | {{ :docs:efl:advanced:filter2-a.png |}} | {{ :docs:efl:advanced:filter2.png |}} |
diff --git a/public_html/data/pages/develop/efl/advanced/start.txt b/public_html/data/pages/develop/efl/advanced/start.txt
new file mode 100644
index 00000000..b40a8efd
--- /dev/null
+++ b/public_html/data/pages/develop/efl/advanced/start.txt
@@ -0,0 +1,13 @@
+~~Title: Advanced EFL Topics~~
+~~CODE-c~~
+
+==== Advanced topics with more detail ====
+
+These are some more advanced topics for developers, once they have gotten up to speed with the [[/docs/efl/start|getting started]] documentation.
+
+ * [[dnd|DND (Drag and Drop)]]
+ * [[eflgfxfilters|EFL Graphics Filters]]: Advanced text effects and image filters
+
+----
+
+~~DISCUSSIONS~~
\ No newline at end of file
diff --git a/public_html/data/pages/develop/efl/ecore_idlers.txt b/public_html/data/pages/develop/efl/ecore_idlers.txt
new file mode 100644
index 00000000..1fa3b269
--- /dev/null
+++ b/public_html/data/pages/develop/efl/ecore_idlers.txt
@@ -0,0 +1,53 @@
+~~Title: Idlers~~
+~~CODE-c~~
+
+{{page>index}}
+
+=== Idlers ===
+
+When your application is sleeping and waiting on something to wake it up, it is in the //Idle// state. It will normally sit here and consume no CPU cycles (in the [[mainloop]] during this time, waiting to wake up). There is an option to set up functions to run in a tight loop during this time, instead of sleeping. These are known as //Idlers//
+
+Idlers are rarely needed, and if you find yourself using them, be careful. If you do things like change the state of a canvas (widgets, other UI objects), such changes will not be automatically updated because the [[mainloop]] doesn't even know it should wake up and begin its usual processing, at the end of which before going idle again, it will begin UI updates. If you find yourself needing to do this, you will need to wake up the main loop. You could do this in various ways, by adding a [[ecore_timers|timer]] for 0.0 seconds from now (with a dummy function that does nothing), or a dummy callback for an [[ecore_jobs|job]] for example.
+
+Every Idler registered will be called, one after the other, and when each idler callback returns, the [[mainloop]] will check if it should wake up from the idle state and process as normal, so keep your idler callbacks as short as possible to ensure the latency for a wake-up event is as low as possible.
+
+You add an idler with ecore_idler_add() which will return a handle to the idler object and take a callback with data pointer to pass to it as parameters. The return value of the function determines if it is deleted or not. If you return EINA_FALSE, then the idler will be deleted automatically for you, otherwise returning EINA_TRUE means it will keep being called until it is deleted with ecore_idler_del(). As follows:
+
+
+Ecore_Idler *my_idler;
+double start_time = 0.0;
+
+static Eina_Bool
+on_idle(void *data)
+{
+ const char *string = data;
+
+ printf("String passed in is '%s'\n", string);
+ if ((ecore_time_get() - start_time) > 0.5)
+ {
+ my_idler = NULL;
+ return EINA_FALSE;
+ }
+ return EINA_TRUE;
+}
+
+static void
+my_init(void)
+{
+ static const char *string = "Hello World";
+
+ start_time = ecore_time_get();
+ my_idler = ecore_idler_add(on_idle, string);
+ if ((rand() % 4) == 0)
+ {
+ ecore_idler_del(my_idler);
+ my_idler = NULL;
+ }
+}
+
+
+Note that the first (and only) parameter to the callback function is the ''data'' parameter which can be a pointer to anything at all. Exactly this pointer is passed to your callback every time it is called. If this no longer points to valid data, it is your job to ensure it is not used or the idler is no longer called before that happens. Pointers are simply numbers with an address in memory (for all intents and purposes) and so thus imagine your pointer first says "Fred is at 213 Jones St.", but in the meantime Fred moves to "27 Bank St.". If the callback looks for Fred at 213 Jones St. - it may find someone else there or nothing at all but a pile of garbage. So be aware of what you pass into callbacks as data pointers and "do the right thing".
+
+----
+
+~~DISCUSSIONS~~
\ No newline at end of file
diff --git a/public_html/data/pages/develop/efl/index.txt b/public_html/data/pages/develop/efl/index.txt
new file mode 100644
index 00000000..be0b8cee
--- /dev/null
+++ b/public_html/data/pages/develop/efl/index.txt
@@ -0,0 +1,15 @@
+++++ Topics Shortcut |
+ * [[start]]
+ * [[mainloop]]
+ * [[ecore_idlers]]
+ * [[ecore_idle_exiters]]
+ * [[ecore_idle_enterers]]
+ * [[ecore_fd_handlers]]
+ * [[ecore_event_filters]]
+ * [[ecore_event_handlers]]
+ * [[ecore_timers]]
+ * [[ecore_animators]]
+ * [[ecore_jobs]]
+ * [[threads]]
+ * [[evas_rendering]]
+++++
\ No newline at end of file
diff --git a/public_html/data/pages/develop/efl/mainloop.txt b/public_html/data/pages/develop/efl/mainloop.txt
new file mode 100644
index 00000000..2fb1d03b
--- /dev/null
+++ b/public_html/data/pages/develop/efl/mainloop.txt
@@ -0,0 +1,84 @@
+~~Title: EFL Mainloop~~
+~~CODE-c~~
+
+{{page>index}}
+
+=== Mainloop in detail ===
+
+{{ :docs:efl:mainloop.svg?nolink |Application Mainloop}}
+
+The mainloop will sit and iterate forever until something flags it to stop. This is your "event pump" for your application and it has many stages in it for different purposes to allow fine-grained control over your loop. Of course threads can be used and interact with this mainloop almost like it was another process, by sending messages to it and waking it up. But first let us deal with it in a simple single-threaded form. The mainloop has the following stages:
+
+== Stages in each mainloop iteration ==
+
+^Stage ^Description ^Callbacks called^
+|[[#Idle]] |Totally asleep waiting on timeouts or I/O UNLESS idlers are registered | [[ecore_idlers]] are called in a tight loop, one after the other during this time |
+|**[[#Wake Up]]** | This is a special timepoint and it is stored and can be retrieved with ecore_loop_time_get() | |
+|**[[#Idle Exit]]** |Coming out of the idle state due to a timeout or I/O event |[[ecore_idle_exiters]] all called here, if registered|
+|**[[#FD Event handling]]** |File Descriptors (fd's) are processed here (read from or written to) and events queued |[[ecore_fd_handlers]] callbacks called here (read, write, buffer) |
+|**[[#Event Filtering]]** |Filter out events we don't want now that we have gathered all pending I/O | [[ecore_event_filters]] callbacks called here |
+|**[[#Event Handling]]** |Regular event handling (in order) and events may still be generated and added to the queue as a result of event handling via ecore_event_add() or ecore_job_add() for example |[[ecore_event_handlers]] callbacks called here as well as [[ecore_timers]] callbacks, [[ecore_animators]] callbacks for animation, [[ecore_jobs]] callbacks, and almost all the UI callbacks (such as mouse click events, enter/leave, key events, other widget changes etc.) |
+|**[[#Entering Idle]]** |The mainloop is about to go idle again now that everything has been processed | [[ecore_idle_enterers]] are called here (the first of which may be the [[evas_rendering]] related callbacks which will calculate widget and object changes, actually trigger rendering etc., depending on the order of idlers added via ecore_idle_enterer_add() to the end of the idle enterer queue or ecore_idle_enterer_before_add() which adds to the start of the idle enterer queue |
+|REPEAT |Go back to the top of this table and repeat | |
+
+== Idle ==
+
+Most applications spend the vast majority of their lives being idle. They are waiting on something. On input from the user. On data from a network to arrive. It is rare that applications are continually processing. Often they want to process in quick batches to get an update to the user as soon as possible then go back to sleep.
+
+Sometimes they do have specific processing needs, and those might impact the mainloop if executed directly in-line. EFL Has support for various ways of [[threads|interacting and managing threads]], and highly encourages clear separation of tasks, rather than mixing control of an application state between many threads.
+
+EFL pushes you to a design where you isolate work on something heavy inside of a thread, and once that work is ready to be seen, the mainloop is informed and does the appropriate state/UI etc. changes to make that happen. These threads may continue to process while the mainloop is idle, or whilst it is busy.
+
+Developers can [[ecore_idlers|register callbacks]] with ecore_ilder_add() to be called whilst sleeping in idle, instead of actually sleeping. This would be pretty poor behavior to use often and is highly discouraged. It is a very rare day that you need this. If you find yourself using idlers, chances are you are "doing it wrong" and re-think what you are doing.
+
+If you must register an idler, ensure you delete it as soon as it is no longer needed, and that an idler callback itself starts and finishes as rapidly as possible so it does not affect the time it takes to wake up from idle too badly.
+
+Of course setting up such idlers will result in users seeing "high CPU usage" and complaining, so stay clear of them whenever possible.
+
+== Wake Up ==
+
+When a process wakes up from idle is a special time in its life. The mainloop records this time-point and it can be queried with ecore_loop_time_get(). This will return the "logical" wake-up time as a time-point (since some point in the past) in seconds. As this function returns a double, there is plenty of precision for sub-second accuracy. The zero time is system dependent, but it likely will be something like the time when the system last booted.
+
+In some cases the loop time is manipulated during the event loop. For example if screen refresh is tied into the [[ecore_animators]], then they will attempt to get the exact time-stamp from the video driver event itself, if possible. If this is possible, some of the I/O handling may adjust the time-point to be when the hardware event happened (probably a very short time before the actual wake up).
+
+For the vast majority of callbacks in your app then (animators, etc.) then getting the loop time will make things nicely accurate for synchronizing animation.
+
+You are highly encouraged to only ever use [[ecore_animators]] for animation (not [[ecore_timers]] unless you have very specific frame rates to keep), and to use ecore_loop_time_get() in both situations to get the most accurate time-point measurement possible for your animation needs.
+
+== Idle Exit ==
+
+At this point the mainloop is seriously waking up but has yet to actually figure out what is going on. Imagine this as being what it is like after being woken up yourself first thing in the morning by your alarm clock. You are bleary-eyed and not quite sure of what is happening and what has happened since you went to sleep last night. The application won't have adjusted the loop time yet, if needed by VSYNC, and have no idea what I/O woke it up yet, or know of any pending events.
+
+At this stage you can have some [[ecore_idle_exiters]] callbacks called, if you registered them with ecore_idle_exiter_add(). It is very rare that you need such functions, but this stage exists for loop management purposes, and EFL itself uses things like this to do timing of how long mainloop stages take for debugging purposes, performance measurement etc.
+
+== FD Event Handling ==
+
+This is where the core of I/O handling happens. This is where fds are looked at to see if they woke us up and have data available to read, or their buffers are available for writing. EFL has [[ecore_fd_handlers]] precisely for this purpose, where ecore_fd_handler_add() creates an object whose point it is to manage a system file descriptor and watch it.
+
+The appropriate callbacks will be called on the handler based on the expected mode (are we interested in listening for reads, or do we have buffered data awaiting a write and want to be told when the fd is available for writing?).
+
+The callbacks here will actually read and write data to and from the fds. The assumption here is that since the fd is active, all of this data is local and in RAM already, so these reads and writes should never block, but simply gather (or output) data without waiting on anything, and transform data into events for the ecore event queue as fast as possible by adding events with ecore_event_add(). Almost all of this I/O work has been done for you in EFL itself, and most of EFL's core is built on top of these handlers and events. These handlers exist for developers to glue in foreign fds that they may have to deal with from time to time. It is a relatively advanced topic as most of the day-to-day needs are already wrapped and covered by EFL.
+
+== Event Filtering ==
+
+It is a very rare occasion where events already posted to the event queue. These filters are called, if registered, on every event in the queue before event handler callbacks are processed, and these callbacks can modify an event or remove it from the queue. They could even add events. This is an advanced topic, but see [[ecore_event_filters]] for more information if you really need this.
+
+== Event Handling ==
+
+This is the core of most of what is going on in your application or library. It is here that you will find your UI event callback being processed, animation and timer callbacks and more. It is here that state changes are made, decisions as to what to do next are made and so on. The idea is that all these little decisions should be light and simple and not take too much time. If they do, performance will be affected. If you have heavy decision making to do, such as some AI or scripting system, it may be a good idea to farm that decision off to a [[threads|thread, have it decide what to do]], and then come back with a result.
+
+Ecore events are called in strict order that they find themselves added to the queue. This ordering is important and guaranteed. you can take advantage of this with things like [[ecore_jobs]] which actually add another event to the queue to be called later (when you add with ecore_job_add(), the job is posted to the very end of the event queue at the time). This is a great way to say "well, I don't know yet what I want to do, so let's handle everything else first, then deal with this later". A common trick is to defer by adding jobs, and if you already added a job and find yourself needing to add another, delete the old job, and add a new one. Deleted jobs will not be called. You can put off heavier work like this for a long time during event processing, so take advantage of it if needed and you will have better performing applications as a result.
+
+== Entering Idle ==
+
+This is another very important stage for EFL. This is where EFL evaluates everything that has changed during the event handling and before, and will do things such as render updates to canvases, call pending/flagged calculation callbacks on objects and so on.
+
+EFL likes to defer work as long as possible to avoid doing it multiple times. thus doing a simple state change and deferring the hard "calculation" work until later does save doing it more often than needed a lot of the time. This is a general across EFL - to defer work until later whenever possible.
+
+As a result of calculating and implementing such calculations, it can happen that you may add jobs, which will be processed now after going idle. If you post events or jobs here, then the mainloop will go idle and immediately wake up (not calling any idlers as it spends no time sleeping due to pending events). Also actual UI events may be called here due to changing of object states, so be aware that this can happen early during entering idle, before rendering begins.
+
+Rendering may render inline in the mainloop or may farm off rendering to threads to do in parallel, depending on the engine being used. This may change over time, but in the long-run we aim to move more and more of our rendering off into many slave threads to free up the mainloop as much as possible.
+
+----
+
+~~DISCUSSIONS~~
\ No newline at end of file
diff --git a/public_html/data/pages/develop/efl/ref/c/key/evas_object_del.txt b/public_html/data/pages/develop/efl/ref/c/key/evas_object_del.txt
new file mode 100644
index 00000000..ef4a81cd
--- /dev/null
+++ b/public_html/data/pages/develop/efl/ref/c/key/evas_object_del.txt
@@ -0,0 +1,50 @@
+~~Title: evas_object_del()~~
+~~CODE-c~~
+
+void evas_object_del(Evas_Object *obj)
+
+
+This marks the given Evas object ''obj'' for deletion (when Evas will free
+its memory). Objects are not freed immediately. They are deferred until
+after 1 or more render cycles because objects present a graph in the
+Evas canvas (one object may clip another for example) and thus must be kept
+around for update calculation. Over time such objects will be garbage
+collected by the rendering of the canvas. This will also hide the
+object, if it has been shown.
+
+Note that if the object has more references (created by
+evas_object_ref() and evas_object_unref() for example), then
+deletion will wait until all these references have been given up with
+evas_object_unref().
+
+If the object has no outstanding references, at this point the
+EVAS_CALLBACK_DEL callback will be called on this object, informing
+all listeners of the callback of this deletion. At a later point when
+the object is actually really cleaned up, the EVAS_CALLBACK_FREE
+event callback will get called.
+
+If the object had the focus at the time of deletion, the
+EVAS_CALLBACK_FOCUS_OUT event callbacks will also be called at this
+time.
+
+Note that all objects contained in an Evas canvas are deleted when the
+canvas is deleted, so there is no need to go delete them separately.
+
+> //Since 1.0//
+
+== See Also ==
+
+evas_object_hide()
+evas_object_ref()
+evas_object_unref()
+
+
+
+EVAS_CALLBACK_DEL
+EVAS_CALLBACK_FREE
+EVAS_CALLBACK_FOCUS_OUT
+
+
+
+Evas_Object
+
diff --git a/public_html/data/pages/develop/efl/ref/c/key/evas_object_ref.txt b/public_html/data/pages/develop/efl/ref/c/key/evas_object_ref.txt
new file mode 100644
index 00000000..3682f73d
--- /dev/null
+++ b/public_html/data/pages/develop/efl/ref/c/key/evas_object_ref.txt
@@ -0,0 +1,42 @@
+~~Title: evas_object_ref()~~
+~~CODE-c~~
+
+void evas_object_ref(Evas_Object *obj)
+
+
+This increments the reference count of the object ''obj'', which, if greater
+than 0, will defer deletion by evas_object_del() until all references
+are released back (counter back to 0). References cannot go below 0 and
+unreferencing past that will result in the reference count being limited to
+0. References are limited to //(2^32) -1// for an object. Referencing it
+more than this will result in it being limited to this value.
+
+This is a **very simple** reference counting mechanism! For
+instance, Evas is not ready to check for pending references on a
+canvas deletion, or things like that. This is useful in scenarios
+where, inside a code block, callbacks exist which would possibly
+delete an object we are operating on afterwards. Then, one would
+evas_object_ref() it at the beginning of the block and
+evas_object_unref() it at the end. It would then be deleted at
+this point, if it should be.
+
+== Example ==
+
+ evas_object_ref(obj);
+ // action here...
+ evas_object_smart_callback_call(obj, SIG_SELECTED, NULL);
+ // more action here...
+ evas_object_unref(obj);
+
+
+> //Since 1.0//
+
+== See Also ==
+
+evas_object_del()
+evas_object_unref()
+
+
+
+Evas_Object
+
diff --git a/public_html/data/pages/develop/efl/ref/c/keyword-link.txt b/public_html/data/pages/develop/efl/ref/c/keyword-link.txt
new file mode 100644
index 00000000..8332598e
--- /dev/null
+++ b/public_html/data/pages/develop/efl/ref/c/keyword-link.txt
@@ -0,0 +1 @@
+/develop/efl/ref/c/key/{FNAME}
diff --git a/public_html/data/pages/develop/efl/ref/c/keyword-list.txt b/public_html/data/pages/develop/efl/ref/c/keyword-list.txt
new file mode 100644
index 00000000..bc84a399
--- /dev/null
+++ b/public_html/data/pages/develop/efl/ref/c/keyword-list.txt
@@ -0,0 +1,31 @@
+ecore_idler_add
+ecore_idler_del
+ecore_time_get
+ecore_loop_time_get
+evas_object_del
+evas_object_ref
+evas_object_unref
+evas_object_show
+evas_object_hide
+evas_object_smart_callback_add
+evas_object_smart_callback_call
+elm_init
+elm_shutdown
+elm_run
+elm_exit
+elm_policy_set
+elm_win_util_standard_add
+elm_win_autodel_set
+elm_win_resize_object_add
+elm_button_add
+elm_object_text_set
+Evas_Object
+Ecore_Idler
+ELM_MAIN
+ELM_POLICY_QUIT
+ELM_POLICY_QUIT_LAST_WINDOW_CLOSED
+EINA_FALSE
+EINA_TRUE
+EVAS_CALLBACK_DEL
+EVAS_CALLBACK_FREE
+EVAS_CALLBACK_FOCUS_OUT
diff --git a/public_html/data/pages/develop/efl/start.txt b/public_html/data/pages/develop/efl/start.txt
new file mode 100644
index 00000000..a87be4bd
--- /dev/null
+++ b/public_html/data/pages/develop/efl/start.txt
@@ -0,0 +1,297 @@
+~~Title: Getting started with EFL~~
+~~CODE-c~~
+
+{{page>index}}
+
+==== EFL ====
+
+EFL is a range of libraries that cover APIs to solve every day problems we, and others have encountered. You can see it having various API layers, with some intended for very low-level controls and access that no one but specialists (e.g. those writing a window manager itself) will need, through to higher level "just writing a notepad" application. The lower you go, the less portable things can be. Here we will cover the EFL features and APIs used to make things portably and cleanly. We will cover these topics here:
+
+ * Data structures (lists, hash tables, growable buffers/strings etc.)
+ * Main loop event, I/O and timing core
+ * Event queue and call handling
+ * Canvas scene graph and rendering
+ * UI object element layout, animation and theme abstraction
+ * Widgets/controls (buttons, sliders, scrollers etc.)
+ * Input method framework
+ * Data archive storage & retrieval
+ * Data structure (de)serialization
+ * Video & audio codec playback, control and display
+ * IPC and network connectivity (TCP, UDP, unix domain & abstract sockets, HTTP)
+ * File utilities
+ * Freedesktop.org standards (desktop files, menus, mime types, icons)
+ * Async I/O
+ * D-Bus IPC integration
+ * Location API
+ * Basic Audio playback, recording and mixing
+
+You will use a range of libraries to make use of the above, and so learning the naming of these is important to know where to look. They will be in Ecore, Evas, Edje, Elementary (Elm), Ecore_IMF, Eet, Emotion, Ecore_Con, Ecore_IPC, Eio, Eldbus, Elocation, Ecore_Audio, Ecore_File and Efreet. It is very useful to know the names of parts of EFL and what they are responsible for:
+
+^Component ^Domain ^Description ^
+|Ecore |Mainloop Input & Display |Mainloop, low level display and input system, connections and IPC |
+|Ector |Vector Graphics |*INTERNAL* Vector rendering API used by Evas |
+|Edje |Theme Graphics & Animation |Layout and abstraction for graphical elements that lay out items to define a look and feel with animation and basic event response |
+|Eet |Data Storage & Serialization |Data structure serialization and multi-key data storage in files with compression and encryption with fast random-access read |
+|Eeze |Device UDev Wrapper |A thin wrapper over UDev for finding devices on Linux |
+|Efl |Core Shared |*INTERNAL* Core things shared between EFL libraries |
+|Efreet |Standards |Handle desktop file, menus and icons from freedesktop.org |
+|Eina |Core Data Types |Core utilities for threading, data types (lists, hashes etc.) and more |
+|Eio |Async I/O |Handle async File I/O |
+|Eldbus |D-Bus & Event Glue |Glue in D-Bus protocol handling as a client and server into EFL |
+|Elementary |High Level & Widgets |High level wrapper on EFL as well as a full widget set with buttons, boxes, scrollers, sliders etc. |
+|Elocation |Location |Used for location and mapping services |
+|Elua |Lua Execution |*INTERNAL* Lua wrapper and convenience layer for running a Lua script engine |
+|Embryo |Bytecode VM & Compiler |A compiler and tiny VM execution library for the Small/Pawn language used by Edje for scripting |
+|Emile |Compression & Encryption |*INTERNAL* Compression and encryption utilities and abstractions |
+|Emotion |Video & Audio Playback |Wrapping GStreamer, Xine and/or VLC to provide Video playback in Evas objects as well as audio playback controls |
+|Eo |Object System |Core object system for EFL with handling of classes, references, inheritance, safe object access and method execution etc. |
+|Eolian |Object Code Generation |Used with Eo to generate both C boilerplate src, and for generating bindings |
+|Ephysics |Physics & Object Glue |Glues the Bullet physics library to Evas objects and is used by Edje |
+|Escape |PS3 LibC Filler |*INTERNAL* Fills in missing LibC functionality for PS3 |
+|Ethumb |Image Thumbnailer |A library and service for async thumbnail generation and caching |
+|Evas |Scene Graph & Rendering |A complete scene graph and rendering abstraction as well as event router for UI and general graphics needs |
+|Evil |Windows LibC Filler |*INTERNAL* Fills in missing LibC functionality for Windows |
+
+We will make an assumption that you have a reasonable grasp of the C programming language here. Perhaps you might want to read the [[/docs/c/start]] if you are new to C, or need a refresher.
+
+----
+
+=== Application Mainloop ===
+
+It is assumed every application has a [[mainloop]], and that EFL is
+in charge of that. If you are writing a library, then that assumption
+would be made ultimately of the application using that library as well.
+For the purposes of this introduction to EFL, we will talk about an
+application, how it starts, runs and shuts down.
+
+Every application is expected to have a life-cycle as follows. If you
+have a design that is significantly different then you will be
+struggling against EFL and what it is pushing you to use. This does
+not mean we do not support threads, we just push you into a specific
+design pattern.
+
+{{ :docs:efl:mainloop.svg?nolink |Application Mainloop}}
+
+An application would spend almost it's entire life inside the
+[[mainloop]] sleeping, processing events and then updating it's UI,
+until it decides to exit. All of this would take place inside the
+[[mainloop]] processing function elm_run() which will only return
+once the [[mainloop]] voluntarily exits if an elm_exit() function is
+called while it runs, which marks the loop to exit, next time it has a
+chance. Before and after this, will be initialization and shutdown of the
+application. Your most basic application that just does nothing but
+wait forever for events would be:
+
+
+#include
+
+EAPI_MAIN int
+elm_main(int argc, char **argv)
+{
+ elm_run();
+ return 0;
+}
+ELM_MAIN()
+
+
+Compile it (and other examples on this page) with:
+
+ cc example.c -o example `pkg-config --cflags --libs elementary`
+
+If ''pkg-config'' is complaining about not finding Elementary you may
+want to adjust your ''PKG_CONFIG_PATH'' environment variable to point
+to where the ''.pc'' files are installed. Perhaps like:
+
+ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
+
+Please see this nice page
+[[http://people.freedesktop.org/~dbn/pkg-config-guide.html|about pkg-config]]
+Which should tell you what it is and how it works if you are having trouble.
+
+Expanding on this, let us make our first application with an actual
+visible window and a button inside to click to exit. This will be our
+proverbial "Hello world" application.
+
+
+#include
+
+static void
+on_click(void *data, Evas_Object *obj, void *event_info)
+{
+ evas_object_del(data);
+}
+
+EAPI_MAIN int
+elm_main(int argc, char **argv)
+{
+ Evas_Object *win, *btn;
+
+ elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
+
+ win = elm_win_util_standard_add("Main", "Hello, World!");
+ elm_win_autodel_set(win, EINA_TRUE);
+
+ btn = elm_button_add(win);
+ elm_object_text_set(btn, "Goodbye Cruel World");
+ elm_win_resize_object_add(win, btn);
+ evas_object_smart_callback_add(btn, "clicked", on_click, win);
+ evas_object_show(btn);
+
+ evas_object_show(win);
+
+ elm_run();
+
+ return 0;
+}
+ELM_MAIN()
+
+
+When the application runs, the ELM_MAIN() macro sets up a normal
+main() function, inits EFL for you and then calls elm_main() with
+the usual application argc & argv parameters you get in C. When
+elm_main() returns, it will pass the return value to the return
+value of main() for the application exit code. Before it does this,
+EFL will be cleanly shut down for you. You are encouraged to use this
+setup above to ensure this happens.
+
+
+elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
+
+
+The first thing we do is enable a policy where if our last window is
+deleted, the [[mainloop]] started by elm_run() is automatically
+quit when this last window is closed. This is really handy for
+applications with multiple windows that want to just go away when they
+are no longer presenting any UI.
+
+
+win = elm_win_util_standard_add("Main", "Hello, World!");
+
+
+We now create a standard window with a standard background using a
+utility function. It has the **name** set to "Main". This is normally
+not a user-visible property of a window. It is used to identify that
+window separately from other windows the app may create. A dialog, a
+file selector window, a settings dialog etc. so name appropriately
+here. The window will display a title of "Hello, World!" in the
+titlebar (if such a thing exists on your platform). This title may be
+used in other places on a platform such as a window switcher, a
+taskbar or some other interface control element. The window will have a
+background already placed as the resize object of a window.
+
+
+elm_win_autodel_set(win, EINA_TRUE);
+
+
+Next we enable **autodel** on the window. This means that if someone
+hits the close button, or otherwise uses some normal environment
+mechanism (keybinding, menu) to close the window, the window object is
+automatically deleted on the application side. If you do not do this,
+these mechanisms will not work and the window will stay around. It is
+expected that you would add a callback to handle the "delete,request"
+event on the window and then either delete it or do something like
+prompt the user if they are sure they wish to close the window
+(unsaved content?) etc.
+
+
+btn = elm_button_add(win);
+
+
+Next we create a button (relative to the window). You must create all
+objects relative to some object inside a window or the window itself.
+All graphical objects belong to a window of some sort. This will not
+have set up the parent/child containering and control relationships
+yet. That comes later.
+
+
+elm_object_text_set(btn, "Goodbye Cruel World");
+elm_win_resize_object_add(win, btn);
+
+
+We now set the label of the button to "Goodbye Cruel World", then add
+the button as a window resize object. If we did not set the label
+text, the button would be empty (and quite small by default). Windows
+have a special list of resize objects (can be more than one) stacked
+one on top of the other which resize when the window resizes. In turn
+they also affect the window sizing with their minimum and maximum
+sizes as well as sizing hints for weight and alignment (which we will
+come to later).
+
+
+static void
+on_click(void *data, Evas_Object *obj, void *event_info)
+{
+ evas_object_del(data);
+}
+
+
+evas_object_smart_callback_add(btn, "clicked", on_click, win);
+
+
+We now add a callback for the "clicked" smart event on the button.
+This will call the ''on_click'' function when a user clicks on the
+button. The [[mainloop]] drives event handling and thus calling of
+this callback. All event callbacks can pass in an arbitrary pointer to
+anything the like. This will be passed as the first data pointer to
+the callback above. In this case we will passing our window pointer as
+we want to delete the window when someone presses the button. Due to
+our policy settings, this will end up deleting the last window we have
+and automatically exiting the [[mainloop]], and then of course the
+application. The example works this way to show how it might be
+extended to open multiple windows and only have the window you click
+the button in be deleted, until all windows are gone and application
+cleanly exits.
+
+
+evas_object_show(btn);
+
+
+Next we show the button. All graphical objects are hidden by default.
+This avoids unwanted events like mouse in, move and out events due to
+objects being created underneath the current pointer position. It
+makes things more efficient as you can show the object after you have
+finished defining its state.
+
+
+evas_object_show(win);
+
+
+Now we show the window. It is best to show it last just before you
+jump into the [[mainloop]] to process everything. This means all
+window setup is invisible until it is finished.
+
+
+elm_run();
+
+
+Finally we begin the [[mainloop]]. This function will not exit until
+the [[mainloop]] is done and exits (with an elm_exit() being
+called from inside some callback there). So at this point your
+application is handing full control over it's execution to EFL and the
+[[mainloop]] to deal with events and rendering of updates. From inside the mainloop function run by EFL, all your callbacks (functions you register to be called when events, state changes etc. etc. happen) will be called.
+
+----
+
+**NOTE**: If you don't want to use ELM_MAIN(), you can use
+elm_init() and elm_shutdown() manually yourself. You **MUST**
+call elm_init() before you call any EFL functions. It could fail
+too. Also never call any EFL functions after elm_shutdown().
+
+
+#include
+
+int
+main(int argc, char **argv)
+{
+ if (!elm_init(argc, argv)) return -1;
+
+ elm_run();
+
+ elm_shutdown();
+ return 0;
+}
+
+
+----
+
+~~DISCUSSIONS~~
diff --git a/public_html/data/pages/develop/guides/c/core/events.md.txt b/public_html/data/pages/develop/guides/c/core/events.md.txt
new file mode 100644
index 00000000..35a66e7e
--- /dev/null
+++ b/public_html/data/pages/develop/guides/c/core/events.md.txt
@@ -0,0 +1,130 @@
+---
+~~Title: Events Programming Guide~~
+~~NOCACHE~~
+---
+
+# Events Programming Guide #
+
+EFL is event-driven. This means that execution usually takes place within an internal EFL *Main Loop*. The application receives notifications through function callbacks. These can apply to virtually any event which occurs on a computer.
+
+Events play a central role in EFL. In this guide, you'll learn more about the required methods to handle them.
+
+You can also find usage examples in the EFL examples repository: [reference/c/core/src/core_event.c](https://git.enlightenment.org/tools/examples.git/tree/reference/c/core/src/core_event.c)
+
+## Prerequisites ##
+
+* Read the [Introduction to Eo](/develop/tutorials/c/eo-intro.md) to understand how Eo objects are created and destroyed.
+
+## Listening to Events from Objects ##
+
+All Eo objects can emit events. You can discover more about this in the Events sections of their respective [API Reference documentation](/develop/api/).
+
+To register a callback method to be called when an object emits a given event use ``efl_event_callback_add()``:
+
+```c
+efl_event_callback_add(object, event, callback, data);
+```
+
+Substitute *object* for any ``Eo *`` or derived object and *event* for the identifier of the event (such as ``EFL_LOOP_EVENT_POLL_HIGH`` or ``EFL_LOOP_TIMER_EVENT_TICK``). Set *callback* to the method to be called when the event occurs and *data* to any data you want to pass to your callback (if you have no need of this use ``NULL``).
+
+The method signature for the callback is:
+
+```c
+void callback(void *data, const Efl_Event *event);
+```
+
+In the above example *data* is the last parameter you used when registering the callback with ``efl_event_callback_add()``. *event* contains information about the event itself:
+
+| Attribute | Type | Content |
+| --------------------- | ---------------- | --------------------------------- |
+| ``event->object`` | ``Eo *`` | The Object that emitted the event |
+| ``event->info`` | ``void *`` | Used by some events to provide additional information. Must be cast to the appropriate type (see below). |
+| ``event->desc->name`` | ``const char *`` | Name of the event |
+
+The [API Reference documentation](/develop/api/) for each event tells you how to use ``event->info``. See [EFL_EVENT_POINTER_DOWN](/develop/api/efl/input/interface/event/pointer_down) for more examples.
+
+To stop receiving notifications for a particular event (unregister a callback) use ``efl_event_callback_del()``:
+
+```c
+efl_event_callback_del(object, event, callback, data);
+```
+
+The parameters here have the same meaning as for ``efl_event_callback_add()``. Note that in order to unregister the callback you have to provide **the same parameters** you used to register it. This is because you can register different callbacks to the same event or even the same callback with different *data*.
+
+> **NOTE:**
+> Registering and unregistering callbacks is an resource-intensive process. If you perform these operations continuously on several callbacks at the same time do so in a batch as this is more efficient. You can use ``efl_even_callback_array_add()`` and ``efl_even_callback_array_del()`` to accomplish this. Remember however that you can't unregister an individual callback which has been registered in a batch. They must all be unregistered together.
+
+Below is an example code snippet based on [reference/c/core/src/core_event.c](https://git.enlightenment.org/tools/examples.git/tree/reference/c/core/src/core_event.c):
+
+```c
+static void
+callback(void *data, const Efl_Event *event)
+{
+ Efl_Loop *polled = data;
+ printf(" Polled %s from %s\n", efl_name_get(polled), efl_name_get(event->object));
+}
+
+void
+setup()
+{
+ [...]
+ efl_add(EFL_LOOP_TIMER_CLASS, mainloop,
+ efl_name_set(efl_added, "timer2"),
+ efl_loop_timer_interval_set(efl_added, .1),
+ efl_event_callback_add(efl_added, EFL_LOOP_TIMER_EVENT_TICK, callback, polled));
+ [...]
+}
+```
+
+Here a new timer object is created and added to ``mainloop``. The configuration of this timer takes place entirely inside the ``efl_add()`` call, as explained in the [Introduction to Eo](/develop/tutorials/c/eo-intro.md) tutorial.
+
+Note how the ``polled`` object is passed as the *data* parameter to ``efl_event_callback_add()`` and recovered from the callback. The object that emitted the event (the timer) is also recovered from the callback through the ``event`` parameter.
+
+## Pausing and Resuming Event Notifications ##
+
+All event emissions from a given object can be paused (*frozen*) using ``efl_event_freeze()`` and resumed with ``efl_event_thaw()``:
+
+```c
+ efl_event_freeze(object);
+ efl_event_thaw(object);
+```
+
+While an object is frozen only high-priority events (marked as *hot*) will be emitted. Hot events cannot be stopped.
+
+Remember that ALL events emitting from a object are stopped if its frozen, except for hot events. If you need to stop individual events you can unregister their callback temporarily and then re-register later.
+
+## Defining Custom Events ##
+
+You can define any number of custom events and emit them from any Eo object. You can then register callbacks to be activated by these events.
+
+First create a ``Efl_Event_Description`` variable. Next, initialize it with ``EFL_EVENT_DESCRIPTION()`` and make it available everywhere you want to use this new event:
+
+```c
+ Efl_Event_Description CUSTOM_EVENT = EFL_EVENT_DESCRIPTION("custom-event");
+```
+
+Register to this event as you would normally do for EFL events with ``efl_event_callback_add()``:
+
+```c
+ efl_event_callback_add(object, &CUSTOM_EVENT, callback, data);
+```
+
+*data* works as usual and can be recovered from the callback through the ``data`` parameter.
+
+Now emit the event using ``efl_event_callback_call()``:
+
+```c
+ efl_event_callback_call(object, &CUSTOM_EVENT, event_info);
+```
+
+*event_info* will be passed to the callback through the ``event->info`` parameter. Its meaning is completely up to you as the event creator.
+
+## Further Reading ##
+[reference/c/core/src/core_event.c](https://git.enlightenment.org/tools/examples.git/tree/reference/c/core/src/core_event.c)
+: EFL examples repository
+
+[``Efl.Object`` API Reference](/develop/api/efl/object)
+: Detailed documentation for the EFL object, which implements the events mechanism
+
+[Introduction to Eo](/develop/tutorials/c/eo-intro.md)
+: Tutorial on instantiating and configuring Eo objects
\ No newline at end of file
diff --git a/public_html/data/pages/develop/guides/c/core/io.md.txt b/public_html/data/pages/develop/guides/c/core/io.md.txt
new file mode 100644
index 00000000..7304fcdc
--- /dev/null
+++ b/public_html/data/pages/develop/guides/c/core/io.md.txt
@@ -0,0 +1,309 @@
+---
+~~Title: EFL IO Programming Guide~~
+~~NOCACHE~~
+---
+
+# EFL IO Programming Guide #
+
+EFL offers some facilities for handling classic input/output (I/O) operations such as reading and writing files, Unix file descriptors and network sockets.
+
+These facilities reside in the ``Efl.Io`` namespace and are built around a common set of interfaces. This guide lists these interfaces and their purpose. It also describes the available I/O classes and how to use them.
+
+Network communication classes are built on top of ``Efl.Io`` and grouped in the ``Efl.Net`` namespace (Not documented in this guide).
+
+## Prerequisites ##
+
+* Make sure you're familiar with EFL objects: read the [Introduction to Eo](/develop/tutorials/c/eo-intro.md) tutorial to learn more.
+
+* You should also be familiar with Eolian interfaces: read the [Multiple Inheritance with Eolian](/develop/tutorials/c/eo-multiinherit.md) tutorial to understand these.
+
+## I/O Interfaces ##
+
+The sub-sections below describe Eolian interfaces. You cannot instantiate them directly. Instead, they are implemented by the ``Efl.Io`` classes listed in Classes section. Through understanding these interfaces you will learn most of the methods exposed by the EFL I/O classes which implement them.
+
+### ``Efl.Io.Reader`` ###
+
+Read the entire documentation in ``Efl.Io.Reader`` [API Reference guide](/develop/api/efl/io/reader).
+
+This interface provides a method to read (input) data into a pre-allocated memory buffer (an ``Eina_Rw_Slice``). It also provides properties to know if more data is available and whether the end of the stream (EOS) has been reached. It also emits events for asynchronous notification of changes in these properties.
+
+* ``efl_io_reader_read()`` method: allocate an ``Eina_Rw_Slice`` of any size you wish and ``efl_io_reader_read()`` will fill it up to that size (maybe less). Whether this call blocks or not depends on the class implementing it. [Read more about Eina Memory Slices](/develop/legacy/api/c/start#group__Eina__Slice__Group.html).
+
+* ``efl_io_reader_can_read_get()`` property: when ``TRUE`` it guarantees that ``efl_io_reader_read()`` will not block.
+
+* ``efl_io_reader_eos_get()`` property: when ``TRUE`` the stream has ended and no more data is to be expected.
+
+* ``EFL_IO_READER_EVENT_CAN_READ_CHANGED`` event: the ``can_read`` property has changed.
+
+* ``EFL_IO_READER_EVENT_EOS`` event: the ``eos`` property has changed.
+
+### ``Efl.Io.Writer`` ###
+
+Read the entire documentation in ``Efl.Io.Writer`` [API Reference guide](/develop/api/efl/io/writer).
+
+In juxtaposition to ``Efl.Io.Reader``, this interface provides a method to write (output) data from a pre-allocated memory buffer (an ``Eina_Rw_Slice``) and a property to know if the output is ready to receive more. It also emits an event for asynchronous notification of changes in this property.
+
+* ``efl_io_writer_write()`` method: You need to allocate an ``Eina_Rw_Slice`` of any size you want and ``efl_io_writer_write()`` will output up to that size (maybe less). Whether this call blocks or not depend on the class implementing it. [Read more about Eina Memory Slices](/develop/legacy/api/c/start#group__Eina__Slice__Group.html).
+
+* ``efl_io_writer_can_write_get()`` property: when ``TRUE``, it guarantees that ``efl_io_writer_write()`` will not block.
+
+* ``EFL_IO_WRITER_EVENT_CAN_WRITE_CHANGED`` event: the ``can_write`` property has changed.
+
+### ``Efl.Io.Closer`` ###
+
+Read the entire documentation in ``Efl.Io.Closer`` [API Reference guide](/develop/api/efl/io/closer).
+
+This interface provides a method to close a stream (be it an input or output stream) and convenient properties to close it automatically.
+
+* ``efl_io_closer_close()`` method: Closes the stream, deallocating all related resources.
+
+* ``efl_io_closer_close_on_destructor_get/set()`` property: when ``TRUE``, the stream will be automatically closed when the object is destroyed.
+
+* ``efl_io_closer_close_on_exec_get/set()`` property: when ``TRUE``, the stream will be automatically closed on exec() calls.
+
+* ``efl_io_closer_closed_get()`` property: whether the stream has been already closed or not.
+
+* ``EFL_IO_CLOSER_EVENT_CLOSED`` event: the stream has just been closed.
+
+### ``Efl.Io.Positioner`` ###
+
+Read the entire documentation in ``Efl.Io.Positioner`` [API Reference guide](/develop/api/efl/io/positioner).
+
+This interface provides methods, properties and events to track the current position inside a data stream.
+
+* ``efl_io_positioner_seek()`` method: moves the current position in the stream. Akin to the ``seek()`` C method.
+
+* ``efl_io_positioner_position_get()`` property: contains the current position the stream.
+
+* ``EFL_IO_POSITIONER_EVENT_POSITION_CHANGED`` event: the current position in the stream has changed.
+
+### ``Efl.Io.Sizer`` ###
+
+Read the entire documentation in ``Efl.Io.Sizer`` [API Reference guide](/develop/api/efl/io/sizer).
+
+This interface provides methods, properties and events to track the size of a data stream.
+
+* ``efl_io_sizer_resize()`` method: changes the size of the stream. This is useful for files, for instance.
+
+* ``efl_io_sizer_size_get()`` property: returns the current size of the stream.
+
+* ``EFL_IO_SIZER_EVENT_SIZE_CHANGED`` event: the size of the stream has changed.
+
+## Classes ##
+
+This sections details a set of classes which you can instantiate to perform miscellaneous I/O tasks and the interfaces they implement. You can use the interface methods listed above on the classes that support them. The most relevant class-specific methods are given below but for a complete list of methods use the [API Reference guide](/develop/api/). A direct link to the appropriate page is given for each class.
+
+### ``Efl.Io.File`` ###
+
+Read the entire documentation in ``Efl.Io.File`` [API Reference guide](/develop/api/efl/io/file). It implements the ``Efl.Io.Reader``, ``Efl.Io.Writer``, ``Efl.Io.Closer``, ``Efl.Io.Positioner`` and ``Efl.Io.Sizer`` interfaces.
+
+You can use this object in a similar way as you would a plain ``FILE *`` in C in that you create it, give it a filename, perform some read or write operations and then destroy the object.
+
+Here's an example from the EFL examples repository: [reference/c/core/src/core_io.c](https://git.enlightenment.org/tools/examples.git/tree/reference/c/core/src/core_io.c)
+
+```c
+ Eina_Slice content = EINA_SLICE_STR("### This is a sample string for the file io test ###");
+ Efl_Io_File *file;
+
+ file = efl_add_ref(EFL_IO_FILE_CLASS, NULL,
+ efl_file_set(efl_added, filename, NULL),
+ efl_io_file_flags_set(efl_added, O_WRONLY | O_CREAT),
+ efl_io_file_mode_set(efl_added, 0644),
+ efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE));
+
+ if (efl_io_writer_write(file, &content, NULL) != EINA_ERROR_NO_ERROR)
+ fprintf(stderr, " Failed to write test file\n");
+ else
+ {
+ char *string = eina_slice_strdup(content);
+ printf(" Wrote content: %s\n", string);
+ free(string);
+ }
+
+ efl_unref(file);
+```
+
+### ``Efl.Io.Queue`` ###
+
+Read the entire documentation in ``Efl.Io.Queue`` [API Reference guide](/develop/api/efl/io/queue). It implements the ``Efl.Io.Reader``, ``Efl.Io.Writer`` and ``Efl.Io.Closer`` interfaces.
+
+This is a *first-in first-out* (FIFO) memory queue where data can be enqueued using the ``Efl.Io.Writer`` interface and dequeued using the ``Efl.Io.Reader`` interface.
+
+It's convenient, for example, to decouple two processes as reads and writes can happen independently. The queue automatically shrinks and grows to adapt to its content.
+
+Its maximum size can be bounded through the ``limit`` property. Any attempted writes to a full queue or reads from an empty queue will fail.
+
+The most representative methods of the ``Efl.Io.Queue`` are:
+
+* ``efl_io_queue_clear()`` empties the queue.
+
+* ``efl_io_queue_discard()`` discards the given number of bytes.
+
+* ``efl_io_queue_eos_mark()`` marks the end-of-stream. Future writes will fail and the reader process will receive the EOS message once the queue is empty.
+
+* ``efl_io_queue_limit_get/set()`` sets the upper bound for the size of the queue.
+
+* ``efl_io_queue_usage_get()`` retrieves the number of bytes currently in the queue.
+
+Example:
+```c
+Eo *send_queue;
+send_queue = efl_add_ref(EFL_IO_QUEUE_CLASS, NULL,
+ efl_name_set(efl_added, "send_queue"),
+ efl_io_queue_limit_set(efl_added, buffer_limit));
+efl_io_writer_write(send_queue, &slice, NULL);
+efl_io_queue_eos_mark(send_queue);
+[...]
+efl_io_reader_read(send_queue, &slice);
+efl_io_closer_close(send_queue);
+efl_unref(send_queue);
+```
+
+More usage examples can be found in the EFL examples repository: [reference/c/net/src/net_io.c](https://git.enlightenment.org/tools/examples.git/tree/reference/c/net/src/net_io.c)
+
+### ``Efl.Io.Buffer`` ###
+
+Read the entire documentation in the ``Efl.Io.Buffer`` [API Reference guide](/develop/api/efl/io/buffer). It implements the ``Efl.Io.Reader``, ``Efl.Io.Writer``, ``Efl.Io.Closer``, ``Efl.Io.Positioner`` and ``Efl.Io.Sizer`` interfaces.
+
+Buffers are similar to Queues in that they act as in-memory storage for data but they allow independent handling of the read and write pointers. This effectively provides complete access to the whole memory block.
+
+If only the ``Efl.Io.Reader`` and ``Efl.Io.Writer`` interfaces are used, it acts as a FIFO exactly like ``Efl.Io.Queue``. Random access to any portion of the memory block can be gained however through the ``position_read`` and ``position_write`` properties, which move the read and write pointers independently.
+
+Its maximum size can be set through the ``limit`` property. Attempted writes to a full queue or reads from an empty queue will fail.
+
+The most representative methods of the ``Efl.Io.Buffer`` are:
+
+* ``efl_io_buffer_position_read_get/set()`` sets the position to read from.
+
+* ``efl_io_buffer_position_write_get/set()`` sets the position to write to.
+
+* ``efl_io_buffer_limit_get/set()`` sets the upper bound for the size of the buffer.
+
+### ``Efl.Io.Copier`` ###
+
+Read the entire documentation in the ``Efl.Io.Copier`` [API Reference guide](/develop/api/efl/io/copier). It implements the ``Efl.Io.Closer`` interface.
+
+This is a convenient object which copies data asynchronously from any source object implementing the ``Efl.Io.Reader`` interface into any destination object implementing the ``Efl.Io.Writer`` interface until the End-of-Stream event is received or an error occurs.
+
+Usage scenarios include downloading a URL to memory or to a file, copying files around the hard drive or copying data from/to any file descriptor.
+
+To use the ``Efl.Io.Copier`` class you only need to instantiate it. Next set the ``source`` and ``destination`` properties then register to receive the ``EVENT_DONE`` or ``EVENT_ERROR`` callbacks.
+
+Data can be copied in blocks of fixed size (controlled through the ``read_chunk_size`` property) or of variable size, using a delimiter (configured through the ``line_delimiter`` property).
+
+The most representative methods of ``Efl.Io.Copier`` are:
+
+* ``efl_io_copier_source_get/set()`` sets the source object which must implement the ``Efl.Io.Reader`` interface.
+
+* ``efl_io_copier_destination_get/set()`` sets the destination object which must implement the ``Efl.Io.Writer`` interface.
+
+* ``efl_io_copier_done_get()`` returns ``TRUE`` when the copy has finished. Use the ``EFL_IO_COPIER_EVENT_DONE`` event for asynchronous operation.
+
+* ``efl_io_copier_line_delimiter_get/set()`` sets the delimiter to use.
+
+* ``efl_io_copier_progress_get()`` returns the amount of bytes read and written and the total, if known. Use the ``EFL_IO_COPIER_EVENT_PROGRESS`` for asynchronous operation.
+
+* ``efl_io_copier_read_chunk_size_get/set()`` sets the amount of bytes to fetch in each read operation, if no delimiter is being used.
+
+* ``efl_io_copier_timeout_inactivity_get/set()`` sets the amount of seconds of inactivity to wait before aborting the operation with a timeout error.
+
+* ``EFL_IO_COPIER_EVENT_DATA`` is emitted every time new data is read.
+
+* ``EFL_IO_COPIER_EVENT_DONE`` is emitted when all data has been copied from source to destination.
+
+* ``EFL_IO_COPIER_EVENT_ERROR`` is emitted when an error occurs.
+
+* ``EFL_IO_COPIER_EVENT_LINE`` is emitted when a line (block of data separated by the configured delimiter) is read.
+
+* ``EFL_IO_COPIER_EVENT_PROGRESS`` is emitted when the amount of bytes read, written or total changes.
+
+Here's an usage example extracted from the EFL examples repository [reference/c/core/src/core_io.c](https://git.enlightenment.org/tools/examples.git/tree/reference/c/core/src/core_io.c). It copies data from *stdin* to *stdout* until ``Ctrl+D`` is pressed:
+
+```c
+EFL_CALLBACKS_ARRAY_DEFINE(copier_cbs,
+ { EFL_IO_COPIER_EVENT_DONE, _copier_done },
+ { EFL_IO_COPIER_EVENT_ERROR, _copier_error });
+
+ [...]
+
+ Eo *input, *output;
+ Eo *copier = NULL;
+
+ printf("TEST 2: Efl.Io.Copier\n");
+ // set up our objects to copy, use stdin and stdout
+ input = efl_add(EFL_IO_STDIN_CLASS, loop);
+ output = efl_add(EFL_IO_STDOUT_CLASS, loop);
+
+ // copier: set up a copy from input to output
+ copier = efl_add(EFL_IO_COPIER_CLASS, loop,
+ efl_name_set(efl_added, "Copier"),
+ efl_io_copier_source_set(efl_added, input),
+ efl_io_copier_destination_set(efl_added, output),
+ efl_event_callback_array_add(efl_added, copier_cbs(), NULL));
+```
+
+To discover how different events are registered through a single callback array read the [Events Programming Guide](/develop/guides/c/core/events.md).
+
+A more complex usage example can be found in the EFL examples repository [reference/c/net/src/net_io.c](https://git.enlightenment.org/tools/examples.git/tree/reference/c/net/src/net_io.c). It sends commands to an HTTP server using an ``Efl.Io.Copier`` which reads from an ``Efl.Io.Queue``. It then receives answers using a second ``Efl.Io.Copier`` and another ``Efl.Io.Queue``.
+
+### ``Efl.Io.Buffered_Stream`` ###
+
+Read the entire documentation in the ``Efl.Io.Buffered_Stream`` [API Reference guide](/develop/api/efl/io/buffered_stream). It implements the ``Efl.Io.Reader``, ``Efl.Io.Writer`` and ``Efl.Io.Closer`` interfaces.
+
+This is a convenient object which adds buffered input and output to an existing object (called the *inner* object) implementing the ``Efl.Io.Reader`` and/or ``Efl.Io.Writer`` interfaces.
+
+The purpose of ``Efl.Io.Buffered_Stream`` is to overcome the following limitations of these interfaces: The basic writer interface might write less data than actually provided and the user is then responsible for retrying later on when the interface is ready. Similarly the basic reader interface might provide less data than requested and the user must wait and retry until all data is read.
+
+``Efl.Io.Buffered_Stream`` uses internal Queues and Copier objects so that you can simply "write and forget". You only need to write all your data in one operation and the Buffered_Stream object will take care of retrying and guarantee that all your data is sent. You can also simply "read when ready": Incoming data will be automatically accumulated and you can perform your read when enough has been received.
+
+To achieve this the writer interface of the Buffered_Stream object is connected to an *output* ``Efl.Io.Queue`` and an ``Efl.Io.Copier`` connects this queue to the writer interface of the inner object. Simultaneously, another ``Efl.Io.Copier`` connects the reader interface of the inner object to an *input* ``Efl.Io.Queue`` which is accessible through the Buffered_Stream reader interface.
+
+The most commonly used methods of ``Efl.Io.Buffered_Stream`` are:
+
+* ``efl_io_buffered_stream_inner_io_get/set()`` sets the inner object to wrap. You must set it at least once for the Buffered_Stream object to work.
+
+* ``efl_io_buffered_stream_clear()`` clears all data from the *input* queue.
+
+* ``efl_io_buffered_stream_discard()`` discards the given number of bytes from the *input* queue.
+
+* ``efl_io_buffered_stream_eos_mark()`` marks the end-of-stream. Future writes will fail and EOS marker will be sent once the *output* queue becomes empty.
+
+* ``efl_io_buffered_stream_read_chunk_size_get()`` and ``efl_io_buffered_stream_line_delimiter_get/set()`` control whether data is *read* in blocks of fixed or variable size (bounded by this delimiter). See ``Efl.Io.Copier`` for more information.
+
+* ``efl_io_buffered_stream_max_queue_size_input_get/set()`` and ``efl_io_buffered_stream_max_queue_size_output_get/set()`` set the maximum number of bytes to store in the input and output queues, respectively.
+
+* ``efl_io_buffered_stream_progress_get()`` returns the amount of bytes written to and read from the inner object.
+
+* ``efl_io_buffered_stream_pending_read_get()`` and ``efl_io_buffered_stream_pending_write_get()`` return the amount of bytes in the input and output queues respectively.
+
+* ``EFL_IO_BUFFERED_STREAM_EVENT_ERROR`` is emitted when an error occurred.
+
+* ``EFL_IO_BUFFERED_STREAM_EVENT_FINISHED`` is emitted when all pending read and write operations are finished.
+
+* ``EFL_IO_BUFFERED_STREAM_EVENT_LINE`` is emitted when a line is received (bounded by the configured delimiter).
+
+* ``EFL_IO_BUFFERED_STREAM_EVENT_PROGRESS`` is emitted when the ``progress`` property has changed. You can also read the ``pending_write`` or ``pending_read`` properties to check the status of these operations.
+
+* ``EFL_IO_BUFFERED_STREAM_EVENT_READ_FINISHED`` is emitted when the end-of-stream marker is received from the inner object, indicating that no more data is to be expected.
+
+* ``EFL_IO_BUFFERED_STREAM_EVENT_WRITE_FINISHED`` is emitted when ``efl_io_buffered_stream_eos_mark()`` has been used and all data has already been written into the inner object.
+
+### ``Efl.Io.Stdin``, ``Efl.Io.Stdout`` and ``Efl.Io.Stderr`` ###
+
+EFL provides wrappers around the standard *input*, *output* and *error* file descriptors available on most operating systems. Just instantiate an ``EFL_IO_STDIN_CLASS`` or ``EFL_IO_STDERR_CLASS`` and you can output to the console using the ``Efl.Io.Writer`` interface. To read from the console instantiate an ``EFL_IO_STDOUT_CLASS`` and use the ``Efl.Io.Reader`` interface on it.
+
+See the ``Efl.Io.Copier`` section above for an usage example.
+
+## Further Reading ##
+
+[Introduction to Eo](/develop/tutorials/c/eo-intro.md)
+: Explains how to create and destroy EFL objects.
+
+[Multiple Inheritance with Eolian](/develop/tutorials/c/eo-multiinherit.md)
+: Explains what are Eolian interfaces.
+
+[Events Programming Guide](/develop/guides/c/core/events.md)
+: Explains how events and event callbacks are handled in EFL.
+
+[EFL API Reference guide](/develop/api/)
+: Detailed documentation on the EFL API.
diff --git a/public_html/data/pages/develop/guides/c/core/main-loop.md.txt b/public_html/data/pages/develop/guides/c/core/main-loop.md.txt
new file mode 100644
index 00000000..01d3a08f
--- /dev/null
+++ b/public_html/data/pages/develop/guides/c/core/main-loop.md.txt
@@ -0,0 +1,204 @@
+---
+~~Title: Main Loop Programming Guide~~
+~~NOCACHE~~
+---
+
+# Main Loop Programming Guide #
+
+The EFL is event-driven. This means that execution usually takes place within an internal EFL *Main Loop*. The application is notified through function callbacks of virtually any event happening on the computer. This is typically more efficient than *polling* for events, whereby the application has to repeatedly ask if a certain event has occurred. When nothing is happening (no events are pending) the main loop enters the *idle state* during which the CPU consumes very little power.
+
+EFL manages timers, file descriptors, user interface events amongst other things and even provides a simple mechanism for applications to perform conventional data polling if required.
+
+## Prerequisites ##
+
+* Read the [Introduction to Eo](/develop/tutorials/c/eo-intro.md) to understand how Eo objects are created and destroyed.
+
+* Read the [Events Programming Guide](events.md) to learn how to register callbacks, which can be triggered by events.
+
+## The Application Main Loop ##
+
+For convenience, when your application starts, EFL creates one Main Loop for you, called the *Application Main Loop*. You can use it as the parent for any object you create that requires a main loop (Like [Promises and Futures](/develop/guides/c/eina/futures.md), for example).
+
+In the [Hello World](/develop/tutorials/c/hello-world.md) tutorial you learned that all EFL applications start with the ``efl_main()`` method. You can retrieve the Application Main Loop from the ``Efl_Event *`` parameter like this:
+
+```c
+EAPI_MAIN void
+efl_main(void *data, const Efl_Event *ev)
+{
+ Efl_Loop *loop = ev->object;
+}
+```
+
+## Timers ##
+
+Timers allow events to be triggered periodically after the given time has elapsed. After an event callback has been registered with the timer, it will be called at regular intervals.
+
+You can find usage examples in the EFL repository: [reference/c/core/src/core_idler.c](https://git.enlightenment.org/tools/examples.git/tree/reference/c/core/src/core_idler.c) and [reference/c/core/src/core_poll.c](https://git.enlightenment.org/tools/examples.git/tree/reference/c/core/src/core_poll.c).
+
+### Creating and Destroying Timers ###
+
+Timers are Eo objects. You can create and destroy them with ``efl_add()`` as for all other Eo objects (see [Introduction to Eo](/develop/tutorials/c/eo-intro.md)). Their class is `EFL_LOOP_TIMER_CLASS`:
+
+```c
+timer_object = efl_add(EFL_LOOP_TIMER_CLASS, ...);
+```
+
+Timers do not need to have a parent. However it is convenient to create them under the application Main Loop, so the parent can manage destroying the timer.
+
+If you want to manually destroy a timer use the regular ``efl_unref()`` or ``efl_del()``.
+
+### The Timer Callback ###
+
+Register the callback using ``efl_event_callback_add()`` and the ``EFL_LOOP_TIMER_EVENT_TICK`` event as explained in the [Events Programming Guide](events.md).
+
+```c
+efl_event_callback_add(timer_object, EFL_LOOP_TIMER_EVENT_TICK, _timer_cb, NULL);
+```
+
+The callback has the usual event handler signature:
+
+```c
+static void
+_timer_cb(void *data, const Efl_Event *event)
+{
+ Efl_Loop_Timer *timer = event->object;
+
+ [...]
+}
+```
+
+Notice how the timer object is recovered from the event structure.
+
+### Configuring a Timer ###
+
+The ``interval`` property controls the amount of time between callback triggers in *seconds*:
+
+```c
+efl_loop_timer_interval_set(timer_object, seconds);
+efl_loop_timer_interval_get(timer_object);
+```
+
+The time left before the next trigger of the timer can be retrieved through the ``pending`` read-only property:
+
+```c
+efl_loop_timer_pending_get(timer_object);
+```
+
+The current interval can be reset with:
+
+```c
+efl_loop_timer_reset(timer_object);
+```
+
+The current interval can also be extended, effectively delaying all future triggers of the timer by a given number of *seconds*:
+
+```c
+efl_loop_timer_delay(timer_object, seconds);
+```
+
+### Pausing a Timer ###
+
+Pause a timer with:
+
+```c
+efl_event_freeze(timer_object);
+```
+
+Resume from the previous time index:
+
+```c
+efl_event_thaw(timer_object);
+```
+
+## File Descriptor Monitors ##
+
+EFL can monitor the system's file descriptor activity through ``Efl.Loop.Fd`` objects and trigger relevant events.
+
+You can find usage examples in the EFL examples repository: [reference/c/core/src/core_loop.c](https://git.enlightenment.org/tools/examples.git/tree/reference/c/core/src/core_loop.c)
+
+### Creating and Destroying FD Monitors ###
+
+FD monitors are Eo objects that wrap system file descriptors, and are instantiated and destroyed with ``efl_add()`` as for all other Eo objects (see [Introduction to Eo](/develop/tutorials/c/eo-intro.md)). Their class is `EFL_LOOP_FD_CLASS,`:
+
+```c
+fd_object = efl_add(EFL_LOOP_FD_CLASS, ...);
+```
+
+To destroy an FD monitor use the regular ``efl_unref()`` or ``efl_del()``.
+
+### FD Monitor callbacks ###
+
+Register to receive events on the FD monitor object with ``efl_event_callback_add()``:
+
+```c
+efl_event_callback_add(fd_object, EFL_LOOP_FD_EVENT_READ, _read_fd_cb, NULL);
+```
+
+The available events include:
+
+* ``EFL_LOOP_FD_EVENT_READ``: The file descriptor is ready to be read.
+
+* ``EFL_LOOP_FD_EVENT_WRITE``: The file descriptor is ready to be written to.
+
+* ``EFL_LOOP_FD_EVENT_ERROR``: An error has occurred on the file descriptor. You can retrieve more information from the callback using the ``event->info`` field:
+ ```c
+ void
+ _fd_error(void *data, const Efl_Event *event)
+ {
+ const Eina_Error *perr = event->info;
+
+ fprintf(stderr, " %s error: #%d '%s'\n",
+ efl_name_get(event->object), *perr, eina_error_msg_get(*perr));
+ ```
+
+### Accessing the File Descriptor ###
+
+Set and get the internal file descriptor wrapped by an FD monitor object with the ``fd`` property:
+
+```c
+efl_loop_fd_get(fd_object);
+efl_loop_fd_set(fd_object, fd);
+```
+
+When the file descriptor corresponds to a file instead of a network socket, for instance, use ``fd_file`` instead. Otherwise you may face errors when using Windows:
+
+```c
+efl_loop_fd_file_get(fd_object);
+efl_loop_fd_file_set(fd_object, fd);
+```
+
+## Idlers ##
+
+When there are no events to process the EFL main loop enters the Idle state, consuming very little CPU power. You can receive a notification when the Idle state starts or stops.
+
+EFL defines three different events you can use to be notified of the above conditions:
+
+* ``EFL_LOOP_EVENT_IDLE_ENTER``: Main loop enters the idle state.
+
+* ``EFL_LOOP_EVENT_IDLE_EXIT``: Main loop exits the idle state.
+
+* ``EFL_LOOP_EVENT_IDLE``: Main loop is in the idle state, meaning that it has nothing else to do. **Be warned** that this callback will be invoked frequently consuming a significant amount of CPU resources. This also defeats the point of an event-driven application: heavy calculations should be performed on a separate thread or they will block the main loop. This can lead to an unresponsive user interface and other issues.
+
+Register a callback to be notified of these events using ``efl_event_callback_add()``, as outlined in the [Events Programming Guide](events.md).
+
+You can also view the example in the EFL examples repository: [reference/c/core/src/core_idler.c](https://git.enlightenment.org/tools/examples.git/tree/reference/c/core/src/core_idler.c).
+
+## Polling ##
+
+In the rare case where EFL does not provide the event you want, you can resort to conventional application-driven polling. EFL can still manage the scheduling of the periodic polling, calling you back when it is time to perform the poll.
+
+You can choose from among the predefined polling priorities depending on which event you use to register your callback:
+
+* ``EFL_LOOP_EVENT_POLL_HIGH``: For events that may happen multiple times per second.
+
+* ``EFL_LOOP_EVENT_POLL_MEDIUM``: For events that may happen multiple times per minute.
+
+* ``EFL_LOOP_EVENT_POLL_LOW``: For events that may happen multiple times every 15 minutes.
+
+The actual polling period is controlled by EFL and can be changed system-wide.
+
+You can find usage examples in the EFL examples repository: [reference/c/core/src/core_poll.c](https://git.enlightenment.org/tools/examples.git/tree/reference/c/core/src/core_poll.c)
+
+## Further Reading ##
+[``Efl.Loop`` API Reference](/develop/api/efl/loop)
+: Detailed documentation for the Loop object
diff --git a/public_html/data/pages/develop/guides/c/eina/arrays.md.txt b/public_html/data/pages/develop/guides/c/eina/arrays.md.txt
new file mode 100644
index 00000000..790b7a2b
--- /dev/null
+++ b/public_html/data/pages/develop/guides/c/eina/arrays.md.txt
@@ -0,0 +1,702 @@
+---
+~~Title: Arrays~~
+---
+
+# Arrays #
+
+An array is a data type which describes an ordered collection of values. Values are accessed by their index.
+
+|INDEX |VALUE |
+|------|------|
+|0 |value0|
+|1 |value1|
+|2 |value2|
+|3 |value3|
+|4 |value4|
+|5 |value5|
+|6 |value6|
+|7 |value7|
+
+Eina provides 2 array types: the **classic array** and an **inline array**.
+
+## Create and Destroy a Classic Array ##
+
+The ``eina_array_new()`` function creates a new array. You can store strings or objects within it. The function returns either a new array or if memory allocation fails ``NULL``.
+
+The first parameter of the ``eina_array_new()`` function defines the size of the array allocation step. For example, if you set it to 4 the function returns an array of 4 elements. The next time you expand the array it increases by 4 elements. Unless you have pushed 4 elements inside it does not increase in size. Once you add the 5th element however it expands again into an array of 8 elements. The allocation step feature is very useful for optimizing performance and also reduces memory fragmentation by matching the size to array usage. If you set the step to 0 the function sets a default safe value.
+
+### Create an Array to Store Strings ###
+
+First create the array:
+
+```c
+[...]
+
+// Strings to store in the array
+const char* strings[] =
+{
+ "helo", "hera", "starbuck", "kat", "boomer",
+ "hotdog", "longshot", "jammer", "crashdown", "hardball",
+ "duck", "racetrack", "apolo", "husker", "freaker",
+ "skulls", "bulldog", "flat top", "hammerhead", "gonzo"
+};
+// Declaring the array (type Eina_Array)
+Eina_Array *array;
+unsigned int i;
+
+// Creating the array
+array = eina_array_new(20);
+
+// Inserting elements in the array
+for (i = 0; i < 20; i++)
+ eina_array_push(array, strdup(strings[i]));
+
+[...]
+```
+> **NOTE:**
+> ``[...]`` in a Code Block indicates there will usually be code above and below the shown snippet but that it has been excluded for the sake of brevity. There is no need to type ``[...]`` into your program.
+
+To change the allocation step use the function ``eina_array_step_set()``. The first parameter is the array you want to change, the second parameter is the size of that specific array (retrieved with the ``sizeof()`` function). The final parameter is the new step size.
+
+In this example the array step changes from 20 to 30:
+
+```c
+[...]
+eina_array_step_set(array, sizeof(*array), 30);
+[...]
+```
+
+When you no longer require the array, use the ``eina_array_free()`` function to free it. This will first call the ``eina_array_flush()`` function and free the memory of the pointer. It does not free the memory allocated for the elements of the array. To do this use a ``while`` statement with the ``eina_array_pop`` function:
+
+
+```c
+[...]
+// Freeing the array elements
+while (eina_array_count(array))
+ free(eina_array_pop(array));
+
+ // Freeing the array itself
+eina_array_free(array);
+[...]
+```
+
+## Modify Classic Array Content ##
+
+### Set the Data of an Element ###
+
+Use the ``eina_array_data_set()`` function to set the data of an element. The first parameter is the array. The second parameter is the index of the element you want to set and the final parameter is the data itself. You must first get the related pointer if you need to free it, as this function replaces the previously held data. Be careful as there is no array or index check. If the value is ``NULL`` or invalid the application may crash.
+
+```c
+[...]
+free(eina_array_data_get(array, 0));
+eina_array_data_set(array, 0, strdup(strings[3]);
+[...]
+```
+
+### Add Elements to the End of an Array ###
+
+Use the ``eina_array_push()`` function to add elements to the end of an array. The function returns ``EINA_TRUE`` on success and ``EINA_FALSE`` on failure. The first parameter is the array which will store the element. The second is the data you want to store. If you store strings, remember to allocate the necessary memory first. The following example uses the ``strdup`` function to duplicate the value contained in ``strings[]``. This function allocates the memory of the returned string so you do not have to do it yourself:
+
+```c
+[...]
+for (i = 0; i < 20; i++)
+ eina_array_push(array, strdup(strings[i]));
+[...]
+```
+
+### Remove the Last Element of an Array ###
+
+Use the ``eina_array_pop()`` function to remove the last element. The function takes the array as a parameter. If the operation is successful it returns a pointer to the data of the removed element:
+
+```c
+[...]
+while (eina_array_count(array))
+ free(eina_array_pop(array));
+[...]
+```
+
+### Rebuild an Array by Specifying the Data to be Kept ###
+
+Use the ``eina_array_remove()`` function to rebuild an array. The first parameter is the array to be changed. The second is the function which selects the data to keep in the rebuilt array. The final parameter is the data to pass to the selector function, defined as the second parameter.
+
+The selector function has to return an ``Eina_Bool`` ``EINA_TRUE`` if the element is to remain and ``EINA_FALSE`` if it has to be removed.
+
+The following example shows how to remove all strings that are longer than 5 characters from an array :
+
+```c
+[...]
+// Selector function
+Eina_Bool keep(void *data, void *gdata)
+{
+ if (strlen((const char*)data) <= 5)
+ return EINA_TRUE;
+
+ return EINA_FALSE;
+}
+
+int remove_array()
+{
+ Eina_Array *array;
+ Eina_Array_Iterator iterator;
+ const char *item;
+ unsigned int i;
+
+ // Creating and populating an array
+
+ // Removing the undesired elements
+ eina_array_remove(array, keep, NULL);
+
+ // Flushing and freeing the array
+
+ return 0;
+}
+[...]
+```
+
+### Wipe all Data from an Array ###
+
+Use the ``eina_array_flush()`` function. This function sets the count and total elements of an array to 0, and frees and sets its data elements to ``NULL``. For performance reasons, there is no array check. If the value is ``NULL`` or invalid, the program can crash. The only parameter of this function is a pointer to the ``Eina_Array`` array you want to flush.
+
+```c
+[...]
+eina_array_flush(array);
+[...]
+```
+
+### Empty an Array Quickly ###
+
+Use the ``eina_array_clean()`` function to empty an array. This function sets the elements count in the array to 0. It does not free any space so use it carefully. For performance reasons there is no array check. If the value is ``NULL`` or invalid the program may crash.
+
+
+```c
+[...]
+eina_array_clean(array);
+[...]
+```
+
+## Accessing Classic Array Data ##
+
+### Access Data in an Array ###
+
+Use the ``eina_array_data_get()`` function with the array and the index of the element you want to access. The function returns a pointer to the data:
+
+```c
+[...]
+// Getting the data of the first element
+char *mydata;
+mydata = eina_array_data_get(array, 0);
+[...]
+```
+
+### Get the Number of Elements in an Array ###
+
+Use the ``eina_array_count()`` function. The first parameter is a pointer to the array variable returned by the ``eina_array_new()`` function. The function returns the number of elements:
+
+```c
+[...]
+unsigned int nb_elm;
+nb_elm = eina_array_count(array);
+[...]
+```
+
+### Iterate through an Array ###
+
+You can use various methods:
+
+#### Use the ``ITER_NEXT`` iterator ####
+
+You can use the iterator by calling the macro ``EINA_ARRAY_ITER_NEXT()``. It takes the array to iterate as the first parameter, a counter for the current index during the iteration and a variable of the same type as the item data and an ``Eina_Iterator``. To use it declare an ``Eina_Iterator``, an ``int`` counter, and a ``char *`` item if your array contains strings:
+
+```c
+[...]
+Eina_Array_Iterator iterator;
+const char *item;
+unsigned int i;
+
+EINA_ARRAY_ITER_NEXT(array, i, item, iterator)
+ printf("item #%d: %s\n", i, item);
+[...]
+```
+
+#### Use the ``eina_array_foreach()`` Function ####
+
+The first parameter is the array to iterate, the second is a callback function which determines whether the iteration can continue. The final parameter is the data passed to the callback function.
+
+To iterate over the array and to print the data of each array element use:
+
+```c
+[...]
+// Callback function
+static Eina_Bool
+elm_print(const void *container, void *data, void *fdata)
+{
+ printf("%s\n", (char *)data);
+
+ return EINA_TRUE;
+}
+
+int iterating_array()
+{
+ Eina_Array *array;
+ unsigned int i;
+
+ // Creating and populating an array
+
+ // Iterating over the array and calling elm_print on each element
+ eina_array_foreach(array, elm_print, NULL);
+
+ // Freeing the element data and array
+
+ return 0;
+}
+[...]
+```
+#### Use the ``eina_array_iterator_new()`` Function ####
+
+This function returns a newly allocated iterator associated with the array. If the array is ``NULL`` or the count of the array elements is less than or equal to 0, the function returns ``NULL``. If the memory cannot be allocated, ``NULL`` is returned and ``EINA_ERROR_OUT_OF_MEMORY`` occurs. Otherwise, a valid iterator is returned. Pass the array for which you want to create a new iterator to this function. The iterator is used to run a sequential walk through the array just like the ``eina_array_foreach()`` function.
+
+To create an iterator and use it to print the data of each array element try:
+
+```c
+[...]
+static Eina_Bool
+print_one(const void *container, void *data, void *fdata)
+{
+ printf("%s\n", (char*)data);
+
+ return EINA_TRUE;
+}
+
+int new_iterator()
+{
+ Eina_Array *array;
+ Eina_Iterator *it;
+ unsigned short int i;
+ void *uninteresting;
+ Eina_Bool rt;
+
+ // Creating and populating an array
+
+ it = eina_array_iterator_new(array);
+
+ it = eina_iterator_next(it, &uninteresting);
+ eina_iterator_foreach(it, print_one, NULL);
+ eina_iterator_free(it);
+
+ return 0;
+}
+[...]
+```
+
+#### Use the ``eina_array_accessor_new()`` Function to Randomly access Array Elements ####
+
+This function returns a newly allocated accessor associated with the array. If the array is ``NULL`` or the counting of array elements is less than or equal to 0, this function returns ``NULL``. If the memory cannot be allocated, ``NULL`` is returned and ``EINA_ERROR_OUT_OF_MEMORY`` appears. Otherwise, a valid accessor is returned.
+
+To use the accessor to retrieve and print the data of every other array element use:
+
+```c
+[...]
+int random_access()
+{
+ Eina_Array *array; // Declaration of the array
+ Eina_Accessor *acc; // Declaration of the accessor
+
+ unsigned short int i; // Generic counter
+
+ void *data; // Variable to put the data retrieved from an array element
+
+ // Creating and populating an array
+
+ // Creating the array accessor
+ acc = eina_array_accessor_new(array);
+
+ // Random access to the data of the array elements
+ for(i = 1; i < 10; i += 2)
+ {
+ // Putting the data in the variable 'data'
+ eina_accessor_data_get(acc, i, &data);
+ printf("%s\n", (const char *)data);
+ }
+
+ eina_accessor_free(acc); // Freeing the accessor
+
+ // Freeing the array
+ return 0;
+}
+[...]
+```
+
+## Create and Destroy Inline Arrays ##
+
+An inline array is a container that stores the data itself, not the pointers to it. This means there is no memory fragmentation. For small data types such as char, short, and int this is more memory-efficient as data is stored in the cache and is faster to access. The bigger the data gets, however, the less efficient this becomes.
+
+To create an inline array, use the ``eina_inarray_new()`` function. The first parameter of this function is the size of the value. In this example, only the characters are stored, and because of that, only ``sizeof(char)`` is passed to the function. The second parameter defines the size of the array allocation step. For example, if you set it to 4, the function returns an inline array of 4 elements, and the next time you grow the inline array, it grows by 4 elements and becomes an array of 8 elements. If you set the step to 0, the function sets a default safe value. The step can be changed later on using the ``eina_inarray_step_set()`` function.
+
+The ``eina_inarray_new()`` function returns a pointer to the new ``Eina_Inarray`` variable.
+
+```c
+[...]
+int inline_array()
+{
+ Eina_Inarray *iarr; // Declare an inline array variable of the type Eina_Inarray
+
+ iarr = eina_inarray_new(sizeof(char), 0); // Create an inline array of "char"
+
+ eina_inarray_free(iarr); // When no longer needed, free the array memory
+
+ return 0;
+}
+[...]
+```
+
+## Modify Inline Array Content ##
+
+### Add Data to the end of an Inline Array ###
+
+Use the ``eina_inarray_push()`` function. The first parameter is a pointer to the array variable returned by the ``eina_inarray_new()`` function. The second parameter is the data you want to push to the inline array.
+
+If everything runs fine, the function returns the index of the new element. If something goes wrong, it returns ``-1``.
+
+```c
+[...]
+ch = 'a';
+eina_inarray_push(iarr, &ch);
+[...]
+```
+
+### Insert Data at a Given Position within an Inline Array ###
+
+Use the ``eina_inarray_insert_at()`` function. The first parameter is a pointer to the array variable returned by the ``eina_inarray_new()`` function. The second parameter is the index of the element you want to add to the inline array. The last parameter is a pointer to the content to be added.
+
+The content of the pointer is copied to the given position in the inline array. All the elements from the position at the end of the array are shifted towards the end. If the position is equal to the end of the array, the element is appended. If the position is bigger than the array length, the function fails:
+
+
+```c
+[...]
+ch = 'a';
+eina_inarray_push(iarr, &ch);
+ch = 'b';
+eina_inarray_push(iarr, &ch);
+ch = 'd';
+eina_inarray_push(iarr, &ch);
+
+// Adding data on position 3
+ch = 'c';
+eina_inarray_insert_at(iarr, 2, &ch)
+[...]
+```
+
+### Insert Data Using your own Position Criteria ###
+
+Use the ``eina_inarray_insert()`` or ``eina_inarray_insert_sorted()`` function. The only difference between these functions is that the ``eina_inarray_insert_sorted()`` function assumes that the array is already sorted and consequently optimizes the insertion position by doing a binary search.
+
+In both functions the first parameter is a pointer to the array variable returned by the ``eina_inarray_new()`` function. The second parameter is the data you want to push to the inline array. The last parameter is the callback comparison function.
+
+The ``Eina_Compare_Cb`` callback function compares *data1* and *data2*, *data1* being the value contained in the inline array and *data2* the data you pass to the ``eina_inarray_insert()`` or ``eina_inarray_insert_sorted()`` function as the second parameter. If *data1* is less than *data2* the function returns -1. If it is greater it returns 1. If they are equal it returns 0.
+
+The following example shows how to insert a value before a greater value:
+
+```c
+[...]
+// Defining the comparison function with the position criteria
+Eina_Compare_Cb cmp(const void *a, const void *b)
+{
+ return *(int*)a > *(int*)b;
+}
+
+int inline_insert()
+{
+ Eina_Inarray *iarr;
+ char ch, *ch3;
+ int a, *b;
+
+ // Creating an inline array
+
+ // Adding data to the inline array
+ a = 97;
+ eina_inarray_push(iarr, &a);
+ a = 98;
+ eina_inarray_push(iarr, &a);
+ a = 100;
+ eina_inarray_push(iarr, &a);
+
+ // Inserting data with the criteria
+ a = 99;
+ eina_inarray_insert_sorted(iarr, &a, cmp);
+
+ eina_inarray_free(iarr);
+}
+[...]
+```
+
+### Remove the Last Element from an Inline Array ###
+
+Use the ``eina_inarray_pop()`` function. The only parameter is a pointer to the array variable returned by the ``eina_inarray_new()`` function. This function returns the data removed from the inline array.
+
+```c
+[...]
+eina_inarray_pop(iarr);
+[...]
+```
+
+### Remove Specific Data from an Inline Array ###
+
+Use the ``eina_inarray_remove()`` function. The first parameter is a pointer to the array variable returned by the ``eina_inarray_new()`` function. The second parameter is the data you want to remove from the inline array.
+
+The ``eina_inarray_remove()`` function finds the data and removes the matching elements from the array. The data can be an existing element of an inline array for optimized usage. In other cases, the content is matched using the ``memcmp()`` function.
+
+The ``eina_inarray_remove()`` function returns the index of the removed element, or -1 if it failed.
+
+```c
+[...]
+iarr = eina_inarray_new(sizeof(char), 0);
+
+ch = 'a';
+eina_inarray_push(iarr, &ch);
+
+// Removing data from the array
+eina_inarray_remove(iarr, &ch);
+[...]
+```
+
+### Remove Data from a Specific Position within an Inline Array ###
+
+Use the ``eina_inarray_remove_at()`` function. The first parameter is a pointer to the array variable returned by the ``eina_inarray_new()`` function. The second parameter is the index of the element you want to remove from the inline array.
+
+The function returns ``EINA_TRUE`` on success and ``EINA_FALSE`` if something goes wrong. The element is removed from the inline array and any elements after it are moved forward towards the array head:
+
+```c
+[...]
+// Removing data from position 2
+eina_inarray_remove_at(iarr, 2);
+[...]
+```
+
+### Remove all Elements from an Array ###
+
+Use the ``eina_inarray_flush()`` function. The first parameter is a pointer to the array variable returned by the ``eina_inarray_new()`` function. The function removes every element from the array:
+
+
+```c
+[...]
+eina_inarray_flush(iarr);
+[...]
+```
+
+### Replace Values in an Inline Array ###
+
+Use the ``eina_inarray_replace_at()`` function, which copies the data over the given position. The first parameter is a pointer to the array variable returned by the ``eina_inarray_new()`` function. The second parameter is the index of the element you want to remove from the inline array. The last parameter is the data you want to copy in place of the current data.
+
+The function returns ``EINA_TRUE`` on success, and ``EINA_FALSE`` on failure. The given pointer content is copied to the given position in the array. The pointer is not referenced, instead its contents are copied to the element's array using the previously defined ``member_size``. If the position does not exist, the function fails:
+
+
+```c
+[...]
+// Replacing the element at position 3
+ch = 'd';
+eina_inarray_replace_at(iarr, 3, &ch);
+[...]
+```
+
+### Sort an Inline Array ###
+
+Use the ``eina_inarray_sort()`` function, which applies a quick sorting algorithm to the inline array. The first parameter is a pointer to the array returned by the ``eina_inarray_new()`` function. The last parameter is the ``Eina_Compare_Cb`` callback comparison function, which compares *data1* and *data2*. These are values contained in the inline array. If the data matches, the function returns 0. If data1 is smaller than data2, it returns -1. If it is greater it returns 1.
+
+```c
+[...]
+static int
+short_cmp(const void *pa, const void *pb)
+{
+ const short *a = pa, *b = pb;
+
+ return *a - *b;
+}
+
+int sorting_inline_array()
+{
+ Eina_Inarray *array;
+ int i;
+
+ // Creating and populating the inline array
+
+ eina_inarray_sort(array, short_cmp);
+ eina_inarray_free(array);
+}
+[...]
+```
+
+Remember that the data given to the compare function is the pointer to the element memory itself. Do not change it.
+
+## Accessi Inline Array Data ##
+
+### Search for an element in an Inline Array ###
+
+Use the ``eina_inarray_search()`` function that runs a linear walk looking for the given data.
+
+The first parameter is a pointer to the array variable returned by the ``eina_inarray_new()`` function. The second parameter is the data used by the callback function to run the comparison. The last parameter is the ``Eina_Compare_Cb`` callback comparison function, which compares *data1* and *data2*. *data1* is the value contained in the inline array and *data2* is the data you pass to the ``eina_inarray_search()`` function as the second parameter. If the data matches the function returns 0. If *data1* is smaller than *data2* it returns -1. If it is greater, it returns 1.
+
+The function returns the element index, or -1 if not found.
+
+```c
+[...]
+
+Eina_Compare_Cb
+compare(const void *pa, const void *pb)
+{
+ const short *a = pa, *b = pb;
+ if (*a == *b)
+ return EINA_TRUE;
+
+ return EINA_FALSE;
+}
+
+int search_inline_array()
+{
+ Eina_Inarray *array;
+ int i;
+ int elm_index;
+ int to_search = 3;
+
+ // Creating and populating the inline array
+
+ elm_index = eina_inarray_search(array, &to_search, compare);
+ eina_inarray_free(array);
+}
+[...]
+```
+
+Remember that the data given to the compare function is the pointer to the element memory itself. Do not change it.
+
+The ``eina_inarray_search_sorted()`` function does exactly the same as ``eina_inarray_search()`` but executes a binary search for the given data.
+
+### Retrieve the Number of Elements in an Inline Array ###
+
+Use the ``eina_inarray_count()``. The parameter is a pointer to the array returned by the ``eina_inarray_new()`` function. The function returns an ``unsigned int``, the number of elements.
+
+```c
+[...]
+printf("Inline array of integers with %d elements:\n", eina_inarray_count(iarr));
+[...]
+```
+
+### Iterating over an Inline Array ###
+
+You can use two methods to iterate over the items contained in an inline array:
+
+1. You can use the iterator macros for the inline arrays: ``FOREACH`` and ``REVERSE_FOREACH``.
+
+2. Running a linear walk over an array of elements, use the ``EINA_INARRAY_FOREACH()`` macro. The first parameter is a pointer to the array variable returned by ``eina_inarray_new()``, and the second parameter is the variable into which the current value is put during the walk. The ``EINA_INARRAY_REVERSE_FOREACH()`` macro does the same thing but starts from the last element.
+
+The following example illustrates the printing of each element and its pointer:
+
+
+```c
+[...]
+iarr = eina_inarray_new(sizeof(char), 0);
+int a, *b;
+
+a = 97;
+eina_inarray_push(iarr, &a);
+a = 98;
+eina_inarray_push(iarr, &a);
+a = 99;
+eina_inarray_push(iarr, &a);
+
+EINA_INARRAY_FOREACH(iarr, b)
+ printf("int: %d(pointer: %p)\n", *b, b);
+[...]
+```
+
+To process the array data, use the ``eina_inarray_foreach()`` function, which invokes the given function on each element of the array with the given data. The first parameter is a pointer to the array variable returned by ``eina_inarray_new()``. The second parameter is the function to run on each element. The function must return ``EINA_TRUE`` as long as you want to continue iterating. By returning ``EINA_FALSE``, you stop the iteration and make the ``eina_inarray_foreach()`` function return ``EINA_FALSE``. The data given to the function is the pointer to the element itself.
+
+The last parameter is the data passed to the function called on each element.
+
+The ``eina_inarray_foreach()`` function returns ``EINA_TRUE`` if it successfully iterates through all items of the array. Call the function for every given data in the array. This is a safe way to iterate over an array.
+
+
+```c
+[...]
+static Eina_Bool
+array_foreach(const void *array __UNUSED__, void *p, void *user_data __UNUSED__)
+{
+ short *member = p;
+ int *i = user_data;
+ (*p)++;
+ (*i)++;
+
+ return EINA_TRUE;
+}
+
+int inline_array_foreach()
+{
+ Eina_Inarray *iarr;
+ iarr = eina_inarray_new(sizeof(char), 1);
+ int i;
+
+ for (i = 0; i < numbers_count; i++)
+ {
+ short val = i;
+ eina_inarray_push(iarr, &val);
+ }
+
+ i = 0;
+ eina_inarray_foreach(iarr, array_foreach, &i);
+
+ eina_inarray_free(iarr);
+
+ return 0;
+}
+[...]
+```
+
+### Remove some Elements Based on Your Own Criteria ###
+
+Use the ``eina_inarray_foreach_remove()`` function, which walks through the array. If a value matches in the callback function the function removes the element. The first parameter is a pointer to the array returned by ``eina_inarray_new()`` function. The second parameter is the callback function to run on each element. \\ \\ The callback function returns ``EINA_TRUE`` if the value matches, or ``EINA_FALSE`` if it does not match. The last parameter is the data passed to the callback function.
+
+The function returns the number of removed entries or -1 if something goes wrong.
+
+```c
+[...]
+static Eina_Bool
+array_foreach(const void *array __UNUSED__, void *p, void *user_data __UNUSED__)
+{
+ short *member = p;
+ int *i = user_data;
+ if (*i == *p)
+ return EINA_TRUE;
+
+ return EINA_FALSE;
+}
+
+int inline_array_foreach_remove()
+{
+ Eina_Inarray *iarr;
+ iarr = eina_inarray_new(sizeof(char), 1);
+ int i;
+
+ for (i = 0; i < numbers_count; i++)
+ {
+ short val = i;
+ eina_inarray_push(iarr, &val);
+ }
+
+ i = 6;
+ eina_inarray_foreach_remove(iarr, array_foreach, &i);
+
+ eina_inarray_free(iarr);
+
+ return 0;
+}
+[...]
+```
+
+## Further Reading ##
+
+[Array API](https://www.enlightenment.org/develop/legacy/api/c/start#group__Eina__Array__Group.html)
+: A reference for the Array API.
+
+[Inline Array API](https://www.enlightenment.org/develop/legacy/api/c/start#group__Eina__Inline__Array__Group.html)
+: A reference for the Inline Array API.
+
+[Array Example](https://git.enlightenment.org/tools/examples.git/tree/reference/c/eina/src/eina_array.c)
+: An example use of the Array API.
\ No newline at end of file
diff --git a/public_html/data/pages/develop/guides/c/eina/futures.md.txt b/public_html/data/pages/develop/guides/c/eina/futures.md.txt
new file mode 100644
index 00000000..cbfe7b2b
--- /dev/null
+++ b/public_html/data/pages/develop/guides/c/eina/futures.md.txt
@@ -0,0 +1,228 @@
+---
+~~Title: Promises and Futures~~
+~~NOCACHE~~
+---
+
+# Promises and Futures #
+
+[Promises and Futures](https://en.wikipedia.org/wiki/Futures_and_promises) is a programming paradigm that simplifies synchronization when concurrent execution is present.
+
+Since C does not natively support this feature the Eina library provides the ``Eina_Promise`` and ``Eina_Future`` objects described in this programming guide.
+
+## Introduction ##
+
+In procedural languages like C if you need a value which is not yet available, for instance because it takes a long time to calculate or has to be fetched from a remote server, you typically have to *wait*.
+
+In other words, the following code completely blocks execution until the function call returns:
+
+```c
+int item_price = go_fetch_item_price();
+int total_price = item_price * number_of_items;
+```
+
+[Other languages](https://en.wikipedia.org/wiki/Futures_and_promises#List_of_implementations) however can return a *Promise* and continue execution immediately. A promise acts as a placeholder for the requested value: the value is not available *yet* but will be at some point in the future.
+
+With a promise in hand you can attach callbacks to be triggered when the value becomes available (i.e. when the promise is fulfilled), then continue your calculations. You can even pass the promise to other methods which will then be executed as values become available, forming complex chains.
+
+An ``Eina_Promise`` can be considered as an object with the sole purpose of emitting the "Promise Resolved" event. ``Eina_Future`` are callbacks attached to this object to be called when the event is emitted. The promised value (``item_price`` in the example above) is passed to the callbacks whenever it's available.
+
+The following sections explain how to use ``Eina_Promise`` and ``Eina_Future`` along with details such as how to handle error conditions and cancel pending promises.
+
+## Creating a Promise ##
+
+The code returning the delayed value (the promise of a value) creates an ``Eina_Promise`` using ``eina_promise_new()`` like so:
+
+```c
+ Efl_Loop *loop;
+ Eina_Future_Scheduler *scheduler;
+ Eina_Promise *promise;
+ void *data;
+
+ [...]
+ scheduler = efl_loop_future_scheduler_get(loop);
+ promise = eina_promise_new(scheduler, _promise_cancel_cb, data);
+```
+
+Most of the time you'll be using the *application loop* you received in the ``efl_main()`` method of your application (see the [Main Loop Programming Guide](/develop/guides/c/core/main-loop.md)) and its scheduler so you can cache the ``loop`` and ``scheduler`` variables from the above snippet in your code. There is no need to free them.
+
+> **NOTE**:
+> You can also use ``efl_loop_promise_new()`` to simplify your code a bit:
+> ```c
+> promise = efl_loop_promise_new(loop, _promise_cancel_cb, data);
+> ```
+
+You can attach arbitrary data to ``Eina_Promise``s which you can later retrieve with ``eina_promise_data_get()``.
+
+Finally when creating ``Eina_Promise``s you should **always** provide a ``_cancel_callback`` as above, so you're notified if the promise is cancelled. This is chiefly because any pointer you might be keeping to the cancelled promise will be invalid after the callback but also because you have a chance to stop whatever process you had running to obtain the promised value.
+
+See an example in [Test 1 of eina_future.c](https://git.enlightenment.org/tools/examples.git/tree/reference/c/eina/src/eina_future.c#n91).
+
+## Creating a Future ##
+
+The code receiving an ``Eina_Promise`` (i.e. the promise of a value instead of the value itself) must associate it with a callback in order to be notified when the value becomes available. The ``Eina_Future`` object contains such a callback amongst others along with associated information (see below).
+
+You can create an ``Eina_Future`` using ``eina_future_new()`` and assign callbacks to it using one of the ``eina_future_then*()`` family of functions:
+
+```c
+ Eina_Future *future;
+
+ future = eina_future_new(promise);
+ eina_future_then_easy(future,
+ .success = _promise_resolved_cb,
+ .error = _promise_error_cb,
+ .free = _cleanup_data_cb,
+ .data = NULL);
+```
+
+The benefit of ``eina_future_then_easy()`` is that you can define the callbacks you want without worrying about the others. There's no need to pass a string of ``NULL``s for unneeded callbacks.
+
+The ``success`` callback will be triggered when the promise is fulfilled and will receive the promised value as a parameter. The ``error`` callback will be triggered if any error prevented the promise from being resolved for instance if it was rejected or cancelled, (see below). You can be certain that either one will be called.
+
+You can pass any data you want when registering callbacks. They will receive it through the ``data`` parameter. Use the ``free`` callback to free it since it will be called no matter what way the promise ends (successfully resolved or cancelled).
+
+See an example in [Test 1 of eina_future.c](https://git.enlightenment.org/tools/examples.git/tree/reference/c/eina/src/eina_future.c#n97).
+
+## Resolving a Promise ##
+
+Once the code that delivered an ``Eina_Promise`` instead of a value has the actual value, it's time to fulfill the promise. This is called *promise resolution* and is performed through the ``eina_promise_resolve()`` method:
+
+```c
+ Eina_Promise *promise;
+ Eina_Value *value;
+
+ [...]
+ eina_promise_resolve(promise, value);
+```
+
+Resolving a promise means delivering the promised value. This is done through an ``Eina_Value`` object since it can accommodate any kind of value. Read more about these in the [Eina Generic Values Programming Guide](/develop/guides/c/eina/generic-value.md).
+
+All the callback methods registered with this promise (through ``Eina_Future`` objects as seen above) will be called and the ``Eina_Value`` will be delivered to them.
+
+See an example in [Test 1 of eina_future.c](https://git.enlightenment.org/tools/examples.git/tree/reference/c/eina/src/eina_future.c#n69).
+
+## Rejecting a Promise ##
+
+Sometimes the code that delivers a promise can't fulfill it (think of a server returning an error instead of a file, or a calculation unexpectedly dividing by zero). However, there might be code waiting for the promised value and it must be notified of the failure or it will keep waiting forever. Eina allows promises to be *rejected* using ``eina_promise_reject()`` to resolve issues like these:
+
+```c
+ Eina_Promise *promise;
+ Eina_Value *value;
+
+ [...]
+ eina_promise_reject(promise, EINA_ERROR_NOT_IMPLEMENTED);
+```
+
+Instead of the ``success`` callback used in normal promise resolution, all ``Eina_Future`` objects registered to the rejected ``Eina_Promise`` will have their ``error`` callback triggered. Instead of the promised ``Eina_Value`` they'll receive the ``Eina_Error`` provided to ``eina_promise_reject()``.
+
+See an example in [Test 2 of eina_future.c](https://git.enlightenment.org/tools/examples.git/tree/reference/c/eina/src/eina_future.c#n118).
+
+## Cancelling a Future ##
+
+Sometimes, the code no longer requires a value it requested (think of a user requesting a file and then quitting the application before the file arrives). You could simply disregard the delivered value once the callback is triggered but that would be a waste of resources as there may still be code running trying to fulfill the promise.
+
+It's more efficient to *cancel* the ``Eina_Future`` once you know you're no longer interested in the value. This has benefits beyond saving system resources:
+
+* Once the ``Eina_Future`` is cancelled its callbacks won't be triggered. This means you don't have to bother checking whether you are still interested in the delivered value in the callback code.
+
+* The code trying to fulfill the promise will receive a cancellation callback (registered with ``eina_promise_new()``) so it has a chance to stop whatever process it started to retrieve the requested value. For instance, if this process involves a CPU-intensive calculation the power-saving gains can be significant.
+
+Future cancellation is achieved through ``efl_future_cancel()``:
+
+```c
+ promise = efl_loop_promise_new(loop, _promise_cancel_cb, data);
+ future = eina_future_new(promise);
+ eina_future_then_easy(future,
+ .success = _promise_resolved_cb,
+ .error = _promise_error_cb,
+ .free = _cleanup_data_cb);
+
+ [...]
+ eina_future_cancel(future);
+```
+
+In the above example, ``_promise_cancel_cb()`` will be called to notify the promise-fulfilling code that it has been cancelled. In addition to this ``_promise_error_cb()`` will be called to notify any code waiting on the promised value that it will never arrive (the reported error will be ``EINA_ERROR_FUTURE_CANCEL``).
+
+See an example in [Test 3 of eina_future.c](https://git.enlightenment.org/tools/examples.git/tree/reference/c/eina/src/eina_future.c#n196).
+
+## Chaining Futures ##
+
+Typically, values are not needed on their own but as part of a calculation. Therefore when waiting for a promised value to become available, there are probably other parts of the code waiting on *us* to deliver our value too.
+
+In this scenario, Eina's ability to chain futures is very handy. Using ``eina_future_chain()`` you can specify multiple callbacks to be triggered *in order* when an ``Eina_Promise`` is resolved. The value delivered by the promise then *trickles down* the chain, and each callback has a chance to modify the value before passing it along to the next callback.
+
+Compare this behavior with attaching multiple *independent* ``Eina_Future`` to the same promise: all callbacks will be triggered when the promise is resolved but they will all get the same value, without the chance to build on top of each other's results.
+
+Future chains are built with ``eina_future_chain()``, which works similarly to ``eina_future_then_easy()`` explained before:
+
+```c
+ eina_future_chain(eina_future_new(promise),
+ {.cb = _step1_cb, .data = NULL},
+ {.cb = _step2_cb, .data = NULL},
+ {.cb = _step3_cb, .data = NULL});
+```
+
+``_step1_cb()`` will be given the ``Eina_Value`` delivered by the ``Eina_Promise`` and it will return a new ``Eina_Value`` which will in turn be passed onto ``_step2_cb()``, and so on.
+
+Note also how each callback can have different data passed to it.
+
+A rejection of the promise or the cancellation of any of the futures will cancel the whole chain.
+
+See an example in [Test 4 of eina_future.c](https://git.enlightenment.org/tools/examples.git/tree/reference/c/eina/src/eina_future.c#n265).
+
+## Callbacks and Easy Callbacks ##
+
+You might have noticed how ``eina_future_then_easy()`` accepted callbacks for ``success``, ``error`` and ``free`` (all of them optional), whereas ``eina_future_chain()`` only accepted one callback, ``cb``. That's because most of the ``Eina_Promise`` and ``Eina_Future`` methods come in two flavors: *regular* and *easy*.
+
+*Regular* methods only provide one callback (called ``cb``). This single callback will be triggered if the promise is resolved and also if it is rejected (or if the future is cancelled). Your callback code has to distinguish each case by inspecting the type of the ``Eina_Value`` that the promise delivers to you.
+
+If you receive an ``Eina_Value`` of type ``EINA_VALUE_TYPE_ERROR`` the promise has not been resolved, and the value contains information about the problem:
+
+```c
+static Eina_Value
+_step1_cb(void *data, const Eina_Value value, const Eina_Future *dead_future EINA_UNUSED)
+{
+ if (value.type == EINA_VALUE_TYPE_ERROR)
+ {
+ Eina_Error err;
+ eina_value_get(&value, &err);
+ fprintf(stderr, "Operation failed. Reason: %s\n", eina_error_msg_get(err));
+ return value;
+ }
+}
+```
+
+Note how the error value is also returned so it can be passed along to other callbacks if used inside a chain.
+
+If the ``data`` you pass to your callback needs to be freed, you must do it in the callback.
+
+*Easy* methods require that you provide separate callbacks for ``success``, ``error`` and ``free`` conditions making it a bit more cumbersome to use. The benefit however is that the actual callback code can be simplified, since you do not need to check whether the promise resolved OK or not.
+
+Due to the particular syntax of these methods (making use of ISO C99's Designated Initializers) you do not need to provide all callbacks. If, for instance, your ``data`` does not need to be freed you don't need to provide the ``free`` callback to ``eina_future_then_easy()``. Similarly you don't need to provide the ``data`` pointer if it's not required.
+
+## Summary ##
+
+* If you cannot deliver a requested result immediately and do not want to block program execution, return an ``Eina_Promise`` and resolve it at a later stage.
+
+* If you are given an ``Eina_Promise`` instead of an actual value, create an ``Eina_Future`` containing callbacks to be triggered when the value is available and continue your calculations there.
+
+* ``Eina_Promise`` can be resolved or rejected.
+
+* ``Eina_Future`` can be cancelled if you are no longer interested in the promised value.
+
+* Always provide cancellation callbacks for your promises.
+
+* ``Eina_Future`` callbacks can be chained to perform calculations in multiple stages in separate parts of the code.
+
+## Further Reading ##
+
+[Eina Promise Reference Guide](/develop/legacy/api/c/start#group__Eina__Promise.html)
+: Reference Guide for the ``Eina_Promise`` class.
+
+[Eina Future Reference Guide](/develop/legacy/api/c/start#group__Eina__Future.html)
+: Reference Guide for the ``Eina_Future`` class.
+
+[Eina Generic Value Programming Guide](/develop/guides/c/eina/generic-value.md)
+: Programming guide for the ``Eina_value`` class.
+
+[reference/c/eina/src/eina_future.c](https://git.enlightenment.org/tools/examples.git/tree/reference/c/eina/src/eina_future.c)
+: Set of examples using ``Eina_Promise`` and ``Eina_Future``.
diff --git a/public_html/data/pages/develop/guides/c/eina/generic-value.md.txt b/public_html/data/pages/develop/guides/c/eina/generic-value.md.txt
new file mode 100644
index 00000000..1215646e
--- /dev/null
+++ b/public_html/data/pages/develop/guides/c/eina/generic-value.md.txt
@@ -0,0 +1,285 @@
+---
+~~Title: Generic Value~~
+---
+
+# Generic Value #
+
+The ``Eina_Value`` object provides storage of and access to generic data, allowing you to store whatever you want in a single ``Eina_Value`` type. It is meant for simple data types, providing uniform access and release functions for the exchange of data while preserving their types. ``Eina_Value`` supports a number of predefined types, can be extended with additional user-provided types and can convert between differing data types including strings.
+
+Examples of ``Eina_Value`` usage can be found in the [EFL examples git repository](https://git.enlightenment.org/tools/examples.git/) in the file [reference/c/eina/src/eina_value.c](https://git.enlightenment.org/tools/examples.git/tree/reference/c/eina/src/eina_value.c).
+
+## Value Types ##
+
+``Eina_Value`` can handle the following common *simple* types:
+
+* ``EINA_VALUE_TYPE_UCHAR`` - Unsigned char
+* ``EINA_VALUE_TYPE_USHORT`` - Unsigned short
+* ``EINA_VALUE_TYPE_UINT`` - Unsigned int
+* ``EINA_VALUE_TYPE_ULONG`` - Unsigned long
+* ``EINA_VALUE_TYPE_TIMESTAMP`` An unsigned long variant used for timestamps
+* ``EINA_VALUE_TYPE_UINT64`` - Unsigned 64-bit integer
+* ``EINA_VALUE_TYPE_CHAR`` - Char
+* ``EINA_VALUE_TYPE_SHORT`` - Short
+* ``EINA_VALUE_TYPE_INT`` - Int
+* ``EINA_VALUE_TYPE_LONG`` - Long
+* ``EINA_VALUE_TYPE_INT64`` - 64-bit integer
+* ``EINA_VALUE_TYPE_FLOAT`` - Float
+* ``EINA_VALUE_TYPE_DOUBLE`` - Double
+* ``EINA_VALUE_TYPE_STRINGSHARE`` - Stringshared string
+* ``EINA_VALUE_TYPE_STRING`` - String
+* ``EINA_VALUE_TYPE_TIMEVAL`` - 'Struct timeval'
+
+In addition ``Eina_Value`` has a number of specializations to handle the following *aggregate* types:
+
+* ``EINA_VALUE_TYPE_ARRAY`` - Manages arrays of elements through the ``Eina_Value_Array`` object
+* ``EINA_VALUE_TYPE_LIST`` - Manages lists of elements through the ``Eina_Value_List`` object
+* ``EINA_VALUE_TYPE_HASH`` - Manages hash tables through the ``Eina_Value_Hash`` object
+* ``EINA_VALUE_TYPE_BLOB`` - Manages blobs of bytes (memory buffers) through the ``Eina_Value_Blob`` object
+* ``EINA_VALUE_TYPE_STRUCT``: Manages user-defined compound types (structures) through the ``Eina_Value_Struct`` object
+
+## Simple Values ##
+
+### Creating and Destroying Simple Values ###
+
+New values can be allocated with the ``eina_value_new()`` function and disposed of with the ``eina_value_free()`` function.
+
+```c
+Eina_Value *v = eina_value_new (type);
+eina_value_free (v);
+```
+
+The ``type`` parameter must be one of the ``EINA_VALUE_TYPE_*`` macros listed above.
+
+Note that ``eina_value_free()`` will free the memory allocated for the ``Eina_Value`` itself and all its contents, if necessary.
+
+### Managing the Content of Simple Values ###
+
+If you allocate the ``Eina_Value`` structure yourself you can configure its contents with ``eina_value_setup()`` and free it with ``eina_value_flush()``.
+
+```c
+Eina_Value v;
+eina_value_setup(&v, type);
+eina_value_flush(&v);
+```
+
+Note that ``eina_value_flush()`` will free the content of the ``Eina_Value`` but **not** the ``Eina_Value`` structure itself.
+
+### Accessing the Content of Simple Values ###
+
+The contents of a simple ``Eina_Value`` can be set with ``eina_value_set()`` and retrieved with ``eina_value_get()``. Note that the value of the second ``type`` parameter must match the type used when creating the ``Eina_Value``.
+
+For instance, for integers:
+
+```c
+Eina_Value *v = eina_value_new (EINA_VALUE_TYPE_INT);
+eina_value_set(v, 123);
+
+int i;
+eina_value_get(v, &i);
+
+eina_value_free(v);
+```
+
+Strings are also easily handled:
+
+```c
+Eina_Value *v = eina_value_new (EINA_VALUE_TYPE_STRING);
+eina_value_set(v, "My string");
+
+const char *str;
+eina_value_get(v, &str);
+
+eina_value_free(v);
+```
+
+### Copying the Content of a Value ###
+
+You may copy the contents of an ``Eina_Value`` over another one using the ``eina_value_copy()`` function. Note that the destination ``Eina_Value`` must exist - i.e. it will not be allocated for you - and that its contents will be replaced with a copy of the source ``Eina_Value``.
+
+```c
+Eina_Value src, dst;
+eina_value_setup(&src, EINA_VALUE_TYPE_INT);
+eina_value_set(&src, 123);
+eina_value_copy(&src, &dst);
+eina_value_flush(&src);
+eina_value_flush(&dst);
+```
+
+### Comparing Two Values ###
+
+Two ``Eina_Value``s of the same type can be compared with the ``eina_value_compare(a, b)`` function. The exact meaning of the comparison depends on the value type, but generally speaking the method returns a negative int if ab and 0 if both values are equal.
+
+```c
+Eina_Value *v1 = eina_value_new(EINA_VALUE_TYPE_FLOAT);
+Eina_Value *v2 = eina_value_new(EINA_VALUE_TYPE_FLOAT);
+eina_value_set(v1, 7.0f);
+eina_value_set(v2, 7.5f);
+int comparison = eina_value_compare(v1, v2);
+eina_value_free(v1);
+eina_value_free(v2);
+```
+
+### Converting Between Values ###
+
+Most ``Eina_Value``s allow conversion from one type to another using the ``eina_value_convert()`` function. The result of the conversion depends on the types in use. This function returns ``EINA_TRUE`` if the conversion is successful. The conversion is typically very strict, meaning that conversion of negative values into unsigned types will fail and values which will not fit in the target type - i.e. conversions that would result in an overflow - will also fail.
+
+```c
+Eina_Value *v_int = eina_value_new(EINA_VALUE_TYPE_INT);
+Eina_Value *v_str = eina_value_new(EINA_VALUE_TYPE_STRING);
+
+eina_value_set(v_int, 123);
+eina_value_convert(v_int, v_str);
+
+eina_value_set(v_str, "456");
+eina_value_convert(v_str, v_int);
+
+eina_value_free(v_int);
+eina_value_free(v_str);
+```
+
+### Converting to Strings ###
+
+All ``Eina_Value``s allow for conversion into a string, and, for convenience, there is a dedicated conversion method: ``eina_value_to_string()``. This function allocates a new string, which you will need to free after use.
+
+```c
+Eina_Value v;
+eina_value_setup(&v, EINA_VALUE_TYPE_DOUBLE);
+eina_value_set(&v, 74.5);
+char *str = eina_value_to_string(&v);
+free(str);
+eina_value_flush(&v);
+```
+
+## Aggregate Values ##
+
+``Eina_Value`` supports handling collections of simple values through the common aggregate types ``Eina_Value_Array``, ``Eina_Value_List``, ``Eina_Value_Hash`` and ``Eina_Value_Struct``.
+
+All aggregate types allow the operations for simple types described above - including ``eina_value_free()`` and ``eina_value_flush()`` - as well as some specific methods, typically involving construction and access to particular elements within the collection.
+
+### Arrays ###
+
+An array is a contiguous block of memory which holds a collection of elements of the same type. Accessing and appending new elements at the end is typically very fast, but removing elements from the middle is not.
+
+*Create* a new ``Eina_Value_Array`` with ``eina_value_array_new(subtype, step)``, or configure an existing one with ``eina_value_array_setup(subtype, step)``. The ``subtype`` parameter is the type of the ``Eina_Value``s that will be stored in the array. The ``step`` parameter indicates how many elements are added to the end of the array every time it needs to be expanded, since it is typically more efficient to enlarge the array by chunks rather than element by element.
+
+*Dispose of* the array or of its contents with ``eina_value_free()`` and ``eina_value_flush()`` respectively.
+
+*Retrieve the number of elements* in an array with ``eina_value_array_count()``.
+
+*Remove an element* with ``eina_value_array_remove(position)``, where the ``position`` parameter is the zero-based index of the element to remove.
+
+*Append an element* at the end of the array with ``eina_value_array_append()``.
+
+*Insert an element at a given position* with ``eina_value_array_insert(position)``.
+
+*Retrieve the contents* of the value at a given position with ``eina_value_array_get(position)``.
+
+*Set the contents* of the value at a given position with ``eina_value_array_set(position)``.
+
+```c
+Eina_Value *array = eina_value_array_new(EINA_VALUE_TYPE_INT, 0);
+int x;
+
+eina_value_array_append(array, 1234);
+eina_value_array_get(array, 0, &x);
+eina_value_free(array);
+```
+
+*Iterate over all elements* of the array with the ``EINA_VALUE_ARRAY_FOREACH(array, length, it, val)`` macro. The ``array`` parameter is the ``Eina_Value_Array`` to iterate over. The ``length`` parameter is an int variable that will receive the length of the array. The ``it`` parameter is an int variable that will receive the position in the current iteration. The ``val`` parameter is an ``Eina_Value *`` that will receive the value in the array for the current iteration.
+
+```c
+Eina_Value array;
+unsigned int i, len;
+Eina_Value v = EINA_VALUE_EMPTY;
+
+EINA_VALUE_ARRAY_FOREACH(&array, len, i, &v)
+ {
+ }
+```
+
+### Lists ###
+
+A list is linked collection of ``Eina_Value``s in which each element contains a pointer to the next element. Insertions and deletions anywhere in the list are typically very fast, but accesses to a given position can be slow since it requires traveling through the list.
+
+*Create* a new ``Eina_Value_List`` with ``eina_value_list_new(subtype)``, or configure an existing one with ``eina_value_list_setup(subtype)``. The ``subtype`` parameter is the type of the ``Eina_Value``s that will be stored in the list.
+
+*Dispose of* the list or of its contents with ``eina_value_free()`` and ``eina_value_flush()`` respectively.
+
+*Retrieve the number of elements* in a list with ``eina_value_list_count()``.
+
+*Remove an element* with ``eina_value_list_remove(position)``, where the ``position`` parameter is the zero-based index of the element to remove.
+
+*Append an element* at the end of the list with ``eina_value_list_append()``.
+
+*Insert an element at a given position* with ``eina_value_list_insert(position)``.
+
+*Retrieve the contents* of the value at a given position with ``eina_value_list_get(position)``.
+
+*Set the contents* of the value at a given position with ``eina_value_list_set(position)``.
+
+```c
+Eina_Value *list = eina_value_list_new(EINA_VALUE_TYPE_INT);
+int x;
+
+eina_value_list_append(list, 1234);
+eina_value_list_set(list, 0, 5678);
+eina_value_list_get(list, 0, &x);
+eina_value_free(list);
+```
+
+### Hash Tables ###
+
+A hash table stores ``Einva_Value``s indexed by a string key rather than an index. Insertions, deletions and searches are typically very fast, at the cost of increased memory consumption.
+
+*Create* a new ``Eina_Value_Hash`` with ``eina_value_hash_new(subtype, bucket_size)``, or configure an existing one with ``eina_value_hash_setup(subtype, bucket_size)``. The ``subtype`` parameter is the type of the ``Eina_Value``s that will be stored in the hash table. The ``bucket_size`` parameter indicates how the table is to be expanded as new elements are added; use 0 and a sane default is chosen automatically.
+
+*Dispose of* the hash table or of its contents with ``eina_value_free()`` and ``eina_value_flush()`` respectively.
+
+*Retrieve the number of elements* in a hash table with ``eina_value_hash_population()``.
+
+*Remove an element* with ``eina_value_hash_del(key)``, where the ``key`` parameter is the string identifying the element to remove.
+
+*Retrieve the contents* of the value with a given key using ``eina_value_hash_get(key)``.
+
+*Set the contents* of the value with a given key using ``eina_value_hash_set(key)``. This also allows new elements to be added into the hash table.
+
+```c
+Eina_Value *hash = eina_value_hash_new(EINA_VALUE_TYPE_INT, 0);
+int x;
+
+eina_value_hash_set(hash, "abc", 1234);
+eina_value_hash_get(hash, "abc", &x);
+eina_value_free(hash);
+```
+
+### Structures ###
+
+Any number of ``Eina_Value``s can be grouped and handled through a single ``Eina_Value_Struct``, just like regular structures in other languages. Upon creation the contents of the structure has to be described through an ``Eina_Value_Struct_Desc`` object.
+
+
+*Create* a new ``Eina_Value_Struct`` with ``eina_value_struct_new(description)``, or configure an existing one with ``eina_value_struct_setup(description)``. The ``description`` parameter is an object of type ``Eina_Value_Struct_Desc`` which lists the members of the structure, among other things. Look at the [Generic Value API](https://www.enlightenment.org/develop/legacy/api/c/start#group__Eina__Value__Group.html) reference for details, or [this example in the EFL repository](https://git.enlightenment.org/tools/examples.git/tree/reference/c/eina/src/eina_value.c).
+
+*Dispose of* the structure or its contents with ``eina_value_free()`` and ``eina_value_flush()`` respectively.
+
+*Retrieve the contents* of any of the values in the structure with ``eina_value_struct_get(name)``, where the ``name`` parameter identifies the member you want to retrieve.
+
+*Set the contents* of any of the values in the structure with ``eina_value_struct_set(name)``, where the ``name`` parameter identifies the member you want to set.
+
+## Custom Value Types ##
+
+Beyond the above mentioned simple and aggregated ``Eina_Value`` types provided by EFL, you can also define your own types for use anywhere you can use an ``Eina_Value``.
+
+To do this, define an ``Eina_Value_Type`` structure and use it in your calls to ``eina_value_new()`` and ``eina_value_setup()``. This structure contains mainly function pointers to methods performing operations on your type such as setup, flush, copy, compare and so on.
+
+You can find a usage example in the [EFL examples repository](https://git.enlightenment.org/tools/examples.git/) in the file [reference/c/eina/src/eina_value_custom.c](https://git.enlightenment.org/tools/examples.git/tree/reference/c/eina/src/eina_value_custom.c).
+
+## Further Reading ##
+
+[Generic Value API](https://www.enlightenment.org/develop/legacy/api/c/start#group__Eina__Value__Group.html)
+: A reference for the Generic Value API.
+
+[Eina Value Example](https://git.enlightenment.org/tools/examples.git/tree/reference/c/eina/src/eina_value.c)
+: An example use of the Generic Value API.
+
+[Eina Value Custom Example](https://git.enlightenment.org/tools/examples.git/tree/reference/c/eina/src/eina_value_custom.c)
+: An example of using custom types with the Generic Value API.
\ No newline at end of file
diff --git a/public_html/data/pages/develop/guides/c/eina/hash-tables.md.txt b/public_html/data/pages/develop/guides/c/eina/hash-tables.md.txt
new file mode 100644
index 00000000..14263370
--- /dev/null
+++ b/public_html/data/pages/develop/guides/c/eina/hash-tables.md.txt
@@ -0,0 +1,300 @@
+---
+~~Title: Eina Hash Tables~~
+~~NOCACHE~~
+---
+
+# Hash Tables #
+
+The ``Eina_Hash`` provides a way to store values associated with a key. For example, you can use it to store tuples in a table.
+
+The ``Eina_Hash`` is implemented using an array of *buckets*. Each bucket is a pointer to a structure that is the head of a red-black tree. This implementation makes it very robust against weak keys as in the worst case scenario, you can still depend on an efficient binary tree implementation.
+
+## Creating a Hash Table ##
+
+To create the hash table, use the ``eina_hash_new()`` function:
+
+* The first parameter is the function called when obtaining the key size.
+* The second parameter is the function called when comparing keys.
+* The third parameter is the function called when reading values.
+* The fourth parameter is the function called on each value when the hash table is freed, or when an item is deleted from it. ``NULL`` can be passed as the callback.
+* The last parameter is the size of the buckets.
+
+When you create an ``Eina_Hash`` instance, you have to create four potentially long callback functions. ``Eina_Hash`` has some predefined functions to make these shorter. These are used to create various types of hash tables:
+
+* ``eina_hash_string_djb2_new()`` creates a new hash table using the [djb2](https://en.wikipedia.org/wiki/List_of_hash_functions#Non-cryptographic_hash_functions) algorithm for strings.
+* ``eina_hash_string_superfast_new()`` creates a new hash table for use with strings. This is best for long strings.
+* ``eina_hash_string_small_new()`` creates a new hash table for use with strings with a small bucket size.
+* ``eina_hash_int32_new()`` and ``eina_hash_int64_new()`` create a new hash table for use with 32-bit and 64-bit integers.
+* ``eina_hash_pointer_new()`` creates a new hash table for use with pointers.
+* ``eina_hash_stringshared_new()`` creates a new hash table for use with shared strings.
+
+All these predefined functions require only one parameter: the function to free the data you've stored in the hash table.
+
+The following example shows how to manage a small phone book using the ``eina_hash_string_superfast_new()`` function to create a hash table.
+
+Create the phone book structure and some static data:
+
+```c
+struct _Phone_Entry
+{
+ const char *name; // Full name
+ const char *number; // Phone number
+};
+
+typedef struct _Phone_Entry Phone_Entry;
+
+static Phone_Entry _start_entries[] =
+{
+ { "Wolfgang Amadeus Mozart", "+01 23 456-78910" },
+ { "Ludwig van Beethoven", "+12 34 567-89101" },
+ { "Richard Georg Strauss", "+23 45 678-91012" },
+ { "Heitor Villa-Lobos", "+34 56 789-10123" },
+ { NULL, NULL }
+};
+```
+
+Create the callback to free the data:
+
+```c
+static void
+_phone_entry_free_cb(void *data)
+{
+ free(data);
+}
+```
+
+The free callback can be changed later using the function ``eina_hash_free_cb_set()``. You need to pass the hash and new callback function.
+
+The ``eina_hash_free_buckets()`` function frees all hash table buckets. It empties the hash but does not destroy it. You may still use it for another purpose if you wish. When you call``eina_hash_free()`` the space allocated to the hash is freed.
+
+Create and destroy a hash table as follows:
+
+```c
+int free_data()
+{
+ Eina_Hash *phone_book = NULL;
+ phone_book = eina_hash_string_superfast_new(_phone_entry_free_cb);
+
+ // Empty the phone book without destroying it
+ eina_hash_free_buckets(phone_book);
+ eina_hash_free(phone_book);
+}
+```
+
+## Modifying Hash Table Content ##
+
+### Add data to a hash ###
+
+Use the ``eina_hash_add()`` function to add data. This function takes the hash, the key to access the data and the data itself as its parameters. The following example shows how to add the initial data declared earlier to the hash:
+
+```c
+for (i = 0; _start_entries[i].name != NULL; i++)
+ {
+ eina_hash_add(phone_book, _start_entries[i].name, strdup(_start_entries[i].number));
+ }
+```
+
+The ``Eina_Hash`` offers various ways to add elements to a hash such as the function ``eina_hash_direct_add()``. This adds an entry without duplicating the string key. The key is stored in the struct, so this function can be used with ``eina_stringshare`` to avoid key data duplication.
+
+```c
+for (i = 0; _start_entries[i].name != NULL; i++)
+ {
+ // Allocating memory for the phone entry
+ Phone_Entry *e = malloc(sizeof(Phone_Entry));
+
+ // Creating an eina_stringshare for the name and the phone number
+ e->name = eina_stringshare_add(_start_entries[i].name);
+ e->number = eina_stringshare_add(_start_entries[i].number);
+
+ // Adding the entry to the hash
+ eina_hash_direct_add(phone_book, e->name, e);
+ }
+```
+
+### Modify an entry ###
+
+Use the ``eina_hash_modify()`` function to modify an entry, passing the hash, the key of the data to change and the new data. This function returns the old data on completion.
+
+The ``eina_hash_set()`` function does the same work as ``eina_hash_modify()`` but if an entry doesn't exist, the function creates a new one.
+
+```c
+char *old_phone = NULL;
+// Replace the phone number of Richard Strauss
+old_phone = eina_hash_modify(phone_book, "Richard Georg Strauss", strdup("+23 45 111-11111"));
+[...]
+old_phone = eina_hash_set(phone_book, "Philippe de Magalhães", strdup("+33 6 111-11111"));
+[...]
+old_phone = eina_hash_set(phone_book, "Richard Georg Strauss", strdup("+23 45 111-117711"));
+[...]
+```
+
+> **NOTE**:
+> Remember to check the return value of ``eina_hash_modify()`` and ``eina_hash_set()`` and free it if required, or you might be leaking the previous entry in the hash!
+
+### Change the key associated with data ###
+
+Use the ``eina_hash_move()`` function to change the key without freeing and creating a new entry . You need only pass the hash, the old key and the new key. If the operation succeeds, the function returns ``EINA_TRUE``, if not it returns ``EINA_FALSE``.
+
+```c
+Eina_Bool res;
+res = eina_hash_move(phone_book, "Philippe de Magalhães", "Filipe de Magalhães");
+```
+
+### Delete entries from a hash table ###
+
+Use the ``eina_hash_del()`` function to remove an entry identified by a key or data from the given hash table:
+
+```c
+Eina_Bool r;
+const char *entry_name = "Heitor Villa-Lobos";
+r = eina_hash_del(phone_book, entry_name, NULL);
+```
+
+Use the ``eina_hash_del_by_key()`` function to remove an entry based on the key:
+
+```c
+r = eina_hash_del_by_key(phone_book, "Richard Georg Strauss");
+```
+
+Use the ``eina_hash_del_by_data()`` function to remove an entry based on data:
+
+```c
+r = eina_hash_del_by_data(phone_book, "+12 34 567-89101");
+```
+
+### Accessing Hash Table Data ###
+
+To find hash table elements and get data based on the key name:
+
+
+
+### To retrieve an entry based on its key ###
+
+Use the ``eina_hash_find()`` function by passing the hash and the key you're searching for:
+
+```c
+char *phone = NULL;
+const char *entry_name = "Heitor Villa-Lobos";
+
+// Look for a specific entry and get its phone number
+phone = eina_hash_find(phone_book, entry_name);
+```
+
+### Retrieve the number of entries in a hash ###
+
+Use the ``eina_hash_population()`` function to see the number of entries. Pass the hash as the only argument:
+
+```c
+unsigned int nb_elm;
+nb_elm = eina_hash_population(phone_book);
+```
+
+### Iterate through a hash table ###
+
+There are several ways to iterate through a hash table. One is to use the ``eina_hash_foreach()`` function. The first parameter is the hash. The second parameter is the callback function called on each iteration. The callback function must return ``EINA_TRUE`` if the iteration has to continue and ``EINA_FALSE`` if the iteration must end. The last parameter one is the data passed to the callback function.
+
+The following example prints the key and the data of the hash entry (name and phone number):
+
+```c
+static Eina_Bool
+pb_foreach_cb(const Eina_Hash *phone_book, const void *key, void *data, void *fdata)
+{
+ const char *name = key;
+ const char *number = data;
+ printf("%s: %s\n", name, number);
+
+ // Return EINA_FALSE to stop this callback from being called
+ return EINA_TRUE;
+}
+
+printf("List of phones:\n");
+
+// Running the callback on the hash called phone_book
+eina_hash_foreach(phone_book, pb_foreach_cb, NULL);
+printf("\n");
+```
+
+### Iterate over keys ###
+
+Use the ''eina_hash_iterator_key_new()'' function to iterate over keys:
+
+```c
+// Declaration of the Eina_Iterator
+Eina_Iterator *it;
+
+// Variable to handle the current iteration "data"
+void *data;
+
+// Iterate over the keys (names)
+printf("List of names in the phone book:\n");
+
+it = eina_hash_iterator_key_new(phone_book);
+
+// Use the generic eina_iterator_next()
+while (eina_iterator_next(it, &data))
+{
+ const char *name = data;
+ printf("%s\n", name);
+}
+
+// Free the iterator
+eina_iterator_free(it);
+```
+
+### Iterate over hash data ###
+
+Use the ``eina_hash_iterator_data_new()`` function in the same way as ``eina_hash_iterator_key_new()`` to iterate over hash data:
+
+```c
+// Declaration of the Eina_Iterator
+Eina_Iterator *it;
+
+// Variable to handle the current iteration "data"
+void *data;
+
+// Iterate over hash data
+printf("List of numbers in the phone book:\n");
+
+it = eina_hash_iterator_data_new(phone_book);
+while (eina_iterator_next(it, &data))
+ {
+ const char *number = data;
+ printf("%s\n", number);
+ }
+
+// Free the iterator
+eina_iterator_free(it);
+```
+
+### Iterate over a tuple composed of keys and data ###
+
+Use the ``eina_hash_iterator_tuple_new()`` function to iterate in this way:
+
+```c
+// Declaration of the Eina_Iterator
+Eina_Iterator *tit;
+
+// Variable to handle the current iteration "data"
+void *tuple;
+
+printf("List of phones:\n");
+tit = eina_hash_iterator_tuple_new(phone_book);
+while (eina_iterator_next(tit, &tuple))
+ {
+ Eina_Hash_Tuple *t = tuple;
+ const char *name = t->key;
+ const char *number = t->data;
+ printf("%s: %s\n", name, number);
+ }
+
+// Always free the iterator after its use
+eina_iterator_free(tit);
+```
+
+## Further Reading ##
+
+[Hash Table API](https://www.enlightenment.org/develop/legacy/api/c/start#group__Eina__Hash__Group.html)
+: A reference for the Hash Table API.
+
+[Hash Table Example](https://git.enlightenment.org/tools/examples.git/tree/reference/c/eina/src/eina_hash.c)
+: An example use of the Hash Table API.
\ No newline at end of file
diff --git a/public_html/data/pages/develop/guides/c/eina/iterator-functions.md.txt b/public_html/data/pages/develop/guides/c/eina/iterator-functions.md.txt
new file mode 100644
index 00000000..4302d8d5
--- /dev/null
+++ b/public_html/data/pages/develop/guides/c/eina/iterator-functions.md.txt
@@ -0,0 +1,24 @@
+---
+~~Title: Iterator Functions~~
+~~NOCACHE~~
+---
+
+# Iterator Functions #
+
+Eina provides a set of iterator functions to manipulate data types such as arrays.
+
+These functions allow access to container elements in a generic way, without knowing which container is used (similar to iterators in the C++ Standard Template Library). Iterators only allow sequential access : that is to say from one element to the next. Eina also provides accessor functions for random access.
+
+Getting an iterator to access elements of a given container is done through the functions of that particular container. There is no function to create a generic iterator, as iterators absolutely depend on the container. All iterators regardless of the container type can be deleted with the function : ``eina_iterator_free()``.
+
+Use the ``eina_iterator_next()`` function to obtain the data and start iterating. To call a function on every single element of a container use the function ``eina_iterator_foreach()``.
+
+In addition to iterator functions each data type also owns a set of macros that provide the iterators, such as ``FOREACH`` or ``REVERSE_FOREACH``.
+
+## Further Reading ##
+
+[Iterator Functions API](https://www.enlightenment.org/develop/legacy/api/c/start#group__Eina__Iterator__Group.html)
+: A reference for the Iterator API.
+
+[Eina Iterator Example](https://git.enlightenment.org/tools/examples.git/tree/reference/c/eina/src/eina_iterator.c)
+: An example use of the Iterator API.
\ No newline at end of file
diff --git a/public_html/data/pages/develop/guides/c/eina/lists.md.txt b/public_html/data/pages/develop/guides/c/eina/lists.md.txt
new file mode 100644
index 00000000..89abf340
--- /dev/null
+++ b/public_html/data/pages/develop/guides/c/eina/lists.md.txt
@@ -0,0 +1,573 @@
+---
+~~Title: Lists~~
+~~NOCACHE~~
+---
+
+# Lists #
+
+The ``Eina_List`` is a double-linked list that can store data of any type as void pointers. It provides a set of functions to create and manipulate the list to avoid the access to the struct's fields, similar to a self-made double-link list.
+
+In addition to the previous and next node and its data, the ``Eina_List`` nodes keep a reference to an accounting structure. The accounting structure is used to improve the performance of some functions. The structure is private and must not be modified.
+
+In an ``Eina_List``, everything is a "list": the list itself is a list where each node is a list as well.
+
+Eina provides 2 list types: the classic (``Eina_List``) and inline (``Eina_Inlist``).
+
+## Creating and Destroying a List ##
+
+To use an ``Eina_List``, first declare the list with ``NULL`` as the default value:
+
+```c
+[...]
+int list()
+{
+ // Declaration of the Eina_List with NULL as default value;
+ Eina_List *list = NULL;
+[...]
+```
+
+> **NOTE:**
+> ``[...]`` in a Code Block indicates there will usually be code above and below the shown snippet but that it has been excluded for the sake of brevity. There is no need to type ``[...]`` into your program.
+
+Then call the ``eina_list_append()`` function with the list and the data you want to append as parameters.
+
+The list must be a pointer to the first element of the list (or ``NULL``). The function returns a pointer to the list.
+
+```c
+[...]
+ // Creating the first element of the list
+ list = eina_list_append(list, "watch");
+
+ // Adding more elements
+ list = eina_list_append(list, "phone");
+ list = eina_list_append(list, "ivi");
+ list = eina_list_append(list, "notebook");
+[...]
+```
+
+When you no longer need the list, free it:
+
+```c
+[...]
+ // Free the Eina_List
+ eina_list_free(list);
+
+ return 0;
+}
+[...]
+```
+
+## Modifying List Content ##
+
+### Adding Data to a List ###
+
+To add data at the end of the list, use the ``eina_list_append()`` function. To add data at the top of the list, use ``eina_list_prepend()``. The functions work in the same way, only adding the data to different places:
+
+```c
+[...]
+list = eina_list_prepend(list, "set-top box");
+[...]
+```
+
+To insert data into the list after a specified data, use the ``eina_list_append_relative()`` function. As the last parameter, define the element after which the data is added. For example, to append data after the "phone" element:
+
+```c
+[...]
+list = eina_list_append_relative(list, "single-board computer", "phone");
+[...]
+```
+
+To add a new entry before a specified data, use ``eina_list_prepend_relative()``. This function is similar to ``eina_list_append_relative()``:
+
+```c
+[...]
+list = eina_list_prepend_relative(list, "ultrabook", "ivi");
+[...]
+```
+
+To append a list node to a linked list after a specified element use the ``eina_list_append_relative_list()`` function. To prepend a list node to a linked list before a specified member, use ``Eina_List * eina_list_prepend_relative_list()``.
+
+### Setting Data in a List Element ###
+
+To do this use the ``eina_list_data_set()`` function. Pass the *list* (node) as the first argument and the data to set as the second.
+
+The following example also shows the usage of the ``eina_list_last()`` function, which returns the last element of an ``Eina_List``:
+
+```c
+[...]
+// Setting new data for the last element
+eina_list_data_set(eina_list_last(list), eina_stringshare_add("Boris"));
+[...]
+```
+
+### Removing a Node from the List ###
+
+Use the ``eina_list_remove()`` function. This function removes the first instance of the specified data from the given list.
+
+```c
+[...]
+list = eina_list_remove(list, "ultrabook");
+[...]
+```
+
+You can also remove a *list* (node) from a list using the ``eina_list_remove_list()`` function. Pass the list you want to delete an element from and a 'list' (node) you want to delete:
+
+```c
+[...]
+Eina_List *app_list = NULL;
+Eina_List *to_remove = NULL;
+
+// Adding some elements to the list (using stringshares)
+app_list = eina_list_append(app_list, eina_stringshare_add("enna"));
+app_list = eina_list_append(app_list, eina_stringshare_add("ebird"));
+app_list = eina_list_append(app_list, eina_stringshare_add("calaos"));
+app_list = eina_list_append(app_list, eina_stringshare_add("rage"));
+app_list = eina_list_append(app_list, eina_stringshare_add("terminology"));
+app_list = eina_list_append(app_list, eina_stringshare_add("enlightenment"));
+app_list = eina_list_append(app_list, eina_stringshare_add("eyelight"));
+app_list = eina_list_append(app_list, eina_stringshare_add("ephoto"));
+
+// Finding the "list" to remove
+to_remove = eina_list_data_find_list(list, eina_string_share_add("enlightenment"));
+
+list = eina_list_remove_list(list, to_remove);
+[...]
+```
+
+### Moving Elements in a List ###
+
+You can use various function such as ``eina_list_promote_list()`` to push an element to the top of a list or ``eina_list_demote_list()`` to move an element to the end. The second parameter represents the *list* (node) you want to move. Use the functions in the same way as ``eina_list_remove_list()``:
+
+```c
+[...]
+list = eina_list_promote_list(list, eina_list_data_find_list(list, "ivi"));
+[...]
+```
+
+### Reversing Elements in a List ###
+
+Use the ``eina_list_reverse()`` function. To obtain a reversed copy of the list while keeping the initial list unchanged, use``eina_list_reverse_clone()``:
+
+
+```c
+[...]
+Eina_List *rev_copy;
+
+app_list = eina_list_reverse(app_list);
+rev_copy = eina_list_reverse_clone(app_list);
+[...]
+```
+
+### Sorting a List ###
+
+Use the ``eina_list_sort()`` function. This function takes a list that needs sorting, the maximum number of elements to sort and a callback function that compares data. To sort all list elements set the maximum number of elements to 0:
+
+```c
+[...]
+int sort_cb(const void *d1, const void *d2)
+{
+ const char *txt = d1;
+ const char *txt2 = d2;
+ if(!txt) return(1);
+ if(!txt2) return(-1);
+
+ return(strcmp(txt, txt2));
+}
+
+extern Eina_List *list;
+list = eina_list_sort(list, 0, sort_cb);
+[...]
+```
+
+### Merging Two Lists into One ###
+
+Use the ``eina_list_merge()`` function. The ``eina_list_sorted_merge()`` function merges 2 sorted lists according to the ordering function that you pass as the last argument, for instance:
+
+```c
+[...]
+int sort_cb(void *d1, void *d2)
+{
+ const char *txt = NULL;
+ const char *txt2 = NULL;
+ if(!d1) return(1);
+ if(!d2) return(-1);
+
+ return(strcmp((const char*)d1, (const char*)d2));
+}
+
+Eina_List *sorted1;
+Eina_List *sorted2;
+Eina_List *newlist;
+
+// Insert some values and sort your lists
+
+// Simply merge 2 lists without any process
+newlist = eina_list_merge(sorted1, sorted2);
+
+newlist = eina_list_sorted_merge(sorted1, sorted2, sort_cb);
+[...]
+```
+
+### Splitting a List ###
+
+Use the ``eina_list_split_list()`` function. The first parameter is the list to split and the second parameter is the *list* (element) after which the list is to be split. The last parameter is the head of the second list.
+
+
+```c
+[...]
+// Original list (left list)
+Eina_List *list = NULL;
+
+// New list (right list)
+Eina_List *other_list = NULL;
+
+// Eina_List (element)
+Eina_List *l;
+
+list = eina_list_append(list, "super tux");
+list = eina_list_append(list, "frozen bubble");
+list = eina_list_append(list, "lincity-ng");
+
+// Sorting the list (just for fun)
+list = eina_list_sort(list, 0, cmp_func);
+
+// Looking for the 'split' element
+l = eina_list_search_sorted_list(list, cmp_func, "frozen bubble");
+
+// Splitting the list
+list = eina_list_split_list(list, l, &other_list);
+[...]
+```
+
+### Copying a List ###
+
+Use the ``eina_list_clone()`` function. The function copies all the elements in the list in the exact same order:
+
+```c
+[...]
+Eina_List *app_list_copy;
+
+app_list_copy = eina_list_clone(app_list);
+[...]
+```
+
+## Accessing List Data ##
+
+### Finding Data in your List ###
+
+Use the ``eina_list_data_find()`` function. Pass the list containing your data as the first parameter and the data you are looking for as the last one. The function returns the found element's data pointer if found, ``NULL`` otherwise.
+
+The ``eina_list_data_find()`` function searches the list from the beginning to the end for the first element's data pointer that coincides with the search term. If it is found, it returns the the data, otherwise it return ``NULL``. The function only compares pointers, which is why using ``Eina_Stringshare`` is very useful with lists, because it always returns the same pointer for the same string:
+
+
+```c
+[...]
+Eina_List *app_list = NULL;
+const char *res_str;
+
+// Adding some elements to the list (using stringshares)
+app_list = eina_list_append(app_list, eina_stringshare_add("enna"));
+app_list = eina_list_append(app_list, eina_stringshare_add("ebird"));
+app_list = eina_list_append(app_list, eina_stringshare_add("calaos"));
+app_list = eina_list_append(app_list, eina_stringshare_add("rage"));
+app_list = eina_list_append(app_list, eina_stringshare_add("terminology"));
+app_list = eina_list_append(app_list, eina_stringshare_add("enlightenment"));
+app_list = eina_list_append(app_list, eina_stringshare_add("eyelight"));
+app_list = eina_list_append(app_list, eina_stringshare_add("ephoto"));
+
+// Finding the data
+res_str = eina_list_data_find(list, eina_string_share_add("enlightenment"));
+if (res_str #### eina_stringshare_add("enlightenment"))
+ printf("Data is present");
+else
+ printf("Data not present");
+[...]
+```
+
+The above example returns *"Data is present"*.
+
+The ``eina_list_data_find_list()`` function does the same thing as ``eina_list_data_find()`` but returns an ``Eina_List``. For an example, see the ``eina_list_remove_list()`` function.
+
+You can access the data or a *list* (node) of an ``Eina_List`` using ``eina_list_nth()`` and ``eina_list_nth_list()``. The first function returns a pointer to the data of the *n*th element and the second a pointer to the *list*. To access the data of the 3rd element of an ``Eina_List`` try:
+
+```c
+[...]
+const char *res;
+Eina_List *res_lst;
+
+res = eina_list_nth(app_list, 2);
+res_lst = eina_list_nth_list(app_list, 2);
+[...]
+```
+
+The ``res`` variable contains the pointer to the string *"calaos"*. The ``res_lst`` variable is the list containing *"calaos"*.
+
+### Searching for Data in a List ###
+
+Select your function based on whether the list is sorted or unsorted.
+
+To search in an unsorted list, use the ``eina_list_search_unsorted()`` function: The first parameter is the list. The second parameter is a callback function for comparison. The last parameter is the data you are looking for.
+
+The ``eina_list_search_unsorted_list()`` function does the same but returns an "Eina_List".
+
+The following example shows 2 searches using both the ``eina_list_search_unsorted()`` and ``eina_list_search_unsorted_list()`` functions:
+
+```c
+[...]
+int search_list()
+{
+ // Declaring the list
+ Eina_List *list = NULL;
+ Eina_List *l;
+ // Little trick to use strcmp as Eina_Compare_Cb
+ Eina_Compare_Cb cmp_func = (Eina_Compare_Cb)strcmp;
+
+ void *data;
+ int cmp_result;
+
+ list = eina_list_append(list, "debian");
+ list = eina_list_append(list, "archlinux");
+ list = eina_list_append(list, "centos");
+
+ data = eina_list_search_unsorted(list, cmp_func, "archlinux");
+ l = eina_list_search_unsorted_list(list, cmp_func, "archlinux");
+ if (l->data != data)
+ {
+ eina_list_free(list);
+
+ return 1;
+ }
+
+ eina_list_free(list);
+
+ return 0;
+}
+[...]
+```
+
+To search in sorted lists use the functions ``eina_list_search_sorted_list()`` and ``eina_list_search_sorted()``. These work in a similar way to ``eina_list_search_unsorted()``.
+
+### Retrieving Data from a List Element ###
+
+Use the ``eina_list_data_get()`` function, which returns the data contained in the given list.
+
+The following example uses the ``eina_list_next()`` function to move through the list in a statement:
+
+```c
+[...]
+int list_data_set()
+{
+ // Declaring the list
+ Eina_List *list = NULL;
+ // Eina_List in which to place the elements or lists
+ Eina_List *l;
+
+ void *list_data;
+
+ list = eina_list_append(list, eina_stringshare_add("Bertrand"));
+ list = eina_list_append(list, eina_stringshare_add("Cedric"));
+ list = eina_list_append(list, eina_stringshare_add("Nicolas"));
+ list = eina_list_append(list, eina_stringshare_add("Vincent"));
+ list = eina_list_append(list, eina_stringshare_add("Raoul"));
+ list = eina_list_append(list, eina_stringshare_add("Fabien"));
+ list = eina_list_append(list, eina_stringshare_add("Philippe"));
+ list = eina_list_append(list, eina_stringshare_add("billiob"));
+
+ for(l = list; l; l = eina_list_next(l))
+ // Printing the data returned by eina_list_data_get
+ printf("%s\n", (char*)eina_list_data_get(l));
+
+ EINA_LIST_FREE(list, list_data)
+ eina_stringshare_del(list_data);
+
+ return 0;
+}
+[...]
+```
+
+### Moving within a List ###
+
+Use the ``eina_list_last()``, ``eina_list_next()`` or ``eina_list_prev()`` functions to move to the last, next, or previous element in a list.
+
+The following example moves backwards starting from the end of the list:
+
+```c
+[...]
+for(l = eina_list_last(list); l; l = eina_list_prev(l))
+ printf("%s\n", (char*)eina_list_data_get(l));
+[...]
+```
+
+### Counting the Number of List Elements ###
+
+Use the ``eina_list_count()`` function. This returns the number of elements in a list:
+
+```c
+[...]
+printf("List size: %d\n", eina_list_count(list));
+[...]
+```
+
+### Iterating through a List ###
+
+There are several iterators you can use. To iterate over a list from the beginning to the end use the ``EINA_LIST_FOREACH`` macro. In this macro the first parameter is the list over which you want to iterate, the second parameter is an ``Eina_List *`` to hold the current *list* (node). The last parameter receives the current data during the run.
+
+The following example prints the data of each *list* (node) of the list:
+
+```c
+[...]
+Eina_List *list = NULL;
+Eina_List *l;
+void *list_data;
+
+list = eina_list_append(list, "ls");
+list = eina_list_append(list, "top");
+list = eina_list_append(list, "rmdir");
+list = eina_list_append(list, "uname");
+
+EINA_LIST_FOREACH(list, l, list_data)
+ printf("%s\n", (char*)list_data);
+
+eina_list_free(list);
+[...]
+```
+To iterate from the last element to the first, use the ``EINA_LIST_REVERSE_FOREACH`` macro. It works similarly to ``EINA_LIST_FOREACH()``.
+
+To iterate over a list from the beginning to the end you can also use the ``EINA_LIST_FOREACH_SAFE`` macro. It is so-named as it stores the next *list* (node), so you can safely remove the current *list* (node) and continue the iteration:
+
+```c
+[...]
+Eina_List *list;
+Eina_List *l;
+Eina_List *l_next;
+char *data;
+
+list = eina_list_append(list, "enlightenment");
+list = eina_list_append(list, "enlightenment");
+list = eina_list_append(list, "enlightenment");
+list = eina_list_append(list, "enlightenment");
+
+// Using EINA_LIST_FOREACH_SAFE to free the elements that match "enlightenment"
+
+EINA_LIST_FOREACH_SAFE(list, l, l_next, data)
+ if (strcmp(data, "enlightenment") #### 0)
+ {
+ free(data);
+ list = eina_list_remove_list(list, l);
+ }
+[...]
+```
+
+To remove each list element while still having access to the node's data use the ``EINA_LIST_FREE`` macro. Pass the list and a pointer to hold the current data:
+
+```c
+[...]
+Eina_List *list;
+char *data;
+
+// List is filled
+
+EINA_LIST_FREE(list, data)
+ free(data);
+[...]
+```
+
+## Using an Inline List ##
+
+The ``Eina_Inlist`` is a special data type designed to store nodes pointers in the same memory as data. This way the memory is less fragmented but operations such as sort and count are slower. The ``Eina_Inlist`` is designed for specific usage cases. If you're uncertain, use the regular ``Eina_List`` instead.
+
+The ``Eina_Inlist`` nodes can be part of a regular ``Eina_List``, simply added with the ``eina_list_append()`` or ``eina_list_prepend()`` functions.
+
+To use the inline list, first define the structure of the data before creating the inline list:
+
+```c
+[...]
+struct my_struct
+{
+ EINA_INLIST;
+ int a, b;
+};
+[...]
+```
+
+The structure is composed of 2 integers, the real data, and the ``EINA_INLIST`` type which is composed of 3 pointers defining the inline list structure:
+
+* ``Eina_Inlist * next``: next node
+* ``Eina_Inlist * prev``: previous node
+* ``Eina_Inlist * last``: last node
+
+To create the inlist nodes, allocate the memory and use the ``eina_inlist_append()`` function. The first parameter is the existing list head or NULL to create a new list. The following example passes ``NULL`` to create a new list.
+
+The second parameter is the new list node, and it must not be NULL. You must use the ``EINA_INLIST_GET()`` macro to get the inlist object of the datastruct:
+
+```c
+[...]
+struct my_struct *d, *cur;
+Eina_Inlist *list, *itr, *tmp;
+
+d = malloc(sizeof(*d));
+d->a = 1;
+d->b = 10;
+
+list = eina_inlist_append(NULL, EINA_INLIST_GET(d));
+[...]
+```
+
+Repeat this operation for every new node:
+
+```c
+[...]
+d = malloc(sizeof(*d));
+d->a = 2;
+d->b = 20;
+list = eina_inlist_append(list, EINA_INLIST_GET(d));
+[...]
+```
+
+To add data to the inline list, place data at the end of the inline list with the ``eina_inlist_prepend()`` function:
+
+```c
+[...]
+d = malloc(sizeof(*d));
+d->a = 3;
+d->b = 30;
+list = eina_inlist_prepend(list, EINA_INLIST_GET(d));
+[...]
+```
+
+Add a node before or after a given node with the ``eina_inlist_prepend_relative()`` and ``eina_inlist_append_relative()`` functions. In both functions, the first parameter is the target list, the second is the element you want to add and the last is the reference element to place data after (in this case). As for a regular ``Eina_List``, everything is a list, so the last parameter is an ``Eina_Inlist`` typed variable.
+
+```c
+[...]
+d = malloc(sizeof(*d));
+d->a = 4;
+d->b = 40;
+list = eina_inlist_append_relative(list, EINA_INLIST_GET(d), list);
+[...]
+```
+
+To sort and iterate an inline list, find and move list elements and to perform other inline list operations, see the [Inline List API](PAGE DOES NOT EXIST).
+
+When the inline list is no longer needed destroy it by looping over the list to free each ``EINA_INLIST`` structure and the data using the allocated memory. Use ``eina_inlist_remove()`` on each node.
+
+In the following example, the ``EINA_INLIST_CONTAINER_GET()`` macro returns the container object of an inlist (the ``EINA_INLIST`` of ``my_struct``), the list element is removed and the allocated memory of the container "object" is freed:
+
+```c
+[...]
+while (list)
+ {
+ struct my_struct *aux = EINA_INLIST_CONTAINER_GET(list, struct my_struct);
+
+ // Remove the current list element
+ list = eina_inlist_remove(list, list);
+ free(aux);
+ }
+[...]
+```
+### Further Reading ###
+
+[List API](https://www.enlightenment.org/develop/legacy/api/c/start#group__Eina__List__Group.html)
+: A reference for the List API.
+
+[List Example](https://git.enlightenment.org/tools/examples.git/tree/reference/c/eina/src/eina_list.c)
+: An example of List API usage.
\ No newline at end of file
diff --git a/public_html/data/pages/develop/guides/c/eina/logging.md.txt b/public_html/data/pages/develop/guides/c/eina/logging.md.txt
new file mode 100644
index 00000000..8176e2ba
--- /dev/null
+++ b/public_html/data/pages/develop/guides/c/eina/logging.md.txt
@@ -0,0 +1 @@
+This page is redirected to [[:develop:guides:c:eina:tools:logging.md]].
\ No newline at end of file
diff --git a/public_html/data/pages/develop/guides/c/eina/red-black-tree.md.txt b/public_html/data/pages/develop/guides/c/eina/red-black-tree.md.txt
new file mode 100644
index 00000000..6d6369f5
--- /dev/null
+++ b/public_html/data/pages/develop/guides/c/eina/red-black-tree.md.txt
@@ -0,0 +1,87 @@
+---
+~~Title: Red-Black Trees~~
+---
+
+# Red-Black Trees #
+
+``Eina`` provides functions for the management of *red-black trees*, a self-balancing binary search tree in which each node has an additional bit which provides the colour - red or black - and used toe ensure that the tree itself remains approximately balanced during insertions and deletions. While imperfect, red-black trees guarantee searching, insertion, and deletion operations complete within O(log *n*) time, in which *n* is the total number of elements found within the tree.
+
+## Using Red-Black Trees ##
+
+``Eina`` provides functions for creation, insertion, removal, deletion, and iteration of red-black trees and their nodes, with support for prefix, infix and postfix tree traversal.
+
+### Creating a New Red-Black Tree ###
+
+Create a new red-black tree using the ``eina_rbtree_inline_insert()`` function:
+
+```c
+Eina_Rbtree * eina_rbtree_inline_insert (NULL)
+```
+
+The function will return the root of the new red-black tree.
+
+### Inserting a Node ##
+
+Use the ``eina_rbtree_inline_insert()`` function to insert a new node into an existing red-black tree:
+
+```c
+Eina_Rbtree * eina_rbtree_inline_insert (
+ Eina_Rbtree * root,
+ Eina_Rbtree * node,
+ Eina_Rbtree_Cmp_Node_Cb cmp,
+ const void * data
+)
+```
+
+Where ``root`` is the root of a valid red-black tree, ``node`` is the node to be inserted, ``cmp`` is the callback to compare two nodes and ``data`` is private data to help the compare function. The function will return the new root of the red-black tree.
+
+### Removing a Node ###
+
+Use the ``eina_rbtree_inline_remove()`` function to remove a node from an existing red-black tree:
+
+```c
+Eina_Rbtree * eina_rbtree_inline_remove (
+ Eina_Rbtree * root,
+ Eina_Rbtree * node,
+ Eina_Rbtree_Cmp_Node_Cb cmp,
+ const void * data
+)
+```
+
+Where ``root`` is the root of a valid red-black tree, ``node`` is the node to be removed, ``cmp`` is the callback to compare two nodes and ``data`` is private data to help the compare function. The function will return the new root of the red-black tree.
+
+### Deleting All Nodes ###
+
+Use the ``eina_rbtree_delete()`` function to delete all nodes from an existing red-black tree:
+
+```c
+Eina_Rbtree * eina_rbtree_inline_remove (
+ Eina_Rbtree * root,
+ Eina_Rbtree_Free_Cb func,
+ void * data
+)
+```
+
+Where ``root`` is the root of a valid red-black tree, ``func`` is the callback that will free each node, and ``data`` is private data to help the compare function.
+
+### Iterating Over the Tree ###
+
+Iterators can be associated with a red-black tree using the ``eina_rbtree_iterator_prefix``, ``eina_rbtree_iterator_infix`` and ``eina_rbtree_iterator_postfix`` functions, depending on whether you want to walk the tree using prefix, infix, or postfix walk methods respectively. In all cases the function is used as follows:
+
+```c
+Eina_Iterator * eina_rbtree_iterator_prefix(const Eina_Rbtree * root)
+[...]
+Eina_Iterator * eina_rbtree_iterator_infix(const Eina_Rbtree * root)
+[...]
+Eina_Iterator * eina_rbtree_iterator_postfix(const Eina_Rbtree * root)
+```
+
+Where ``root`` ins the root of a valid red-black tree. If ``root`` is ``NULL``, a valid iterator will be provided but one which will always return ``false`` to the function ``eina_iterator_next()``. If memory for the iterator cannot be allocated, the function returns ``NULL`` and sets ``EINA_ERROR_OUT_OF_MEMORY``.
+
+> **WARNING:**
+> If the structure of the red-black tree changes through the addition or removal of nodes the iterator will become invalid, and attempts to use the iterator may result in program crashes.
+
+## Further Reading ##
+
+[Eina Red-Black Tree Doxygen Documentation](https://docs.enlightenment.org/api/eina/doc/html/group__Eina__Rbtree__Group.html)
+: A technical reference for the red-black tree API functions.
\ No newline at end of file
diff --git a/public_html/data/pages/develop/guides/c/eina/start.md.txt b/public_html/data/pages/develop/guides/c/eina/start.md.txt
new file mode 100644
index 00000000..766f3c92
--- /dev/null
+++ b/public_html/data/pages/develop/guides/c/eina/start.md.txt
@@ -0,0 +1,27 @@
+---
+~~Title: The Eina Programming Guide~~
+~~NOCACHE~~
+---
+
+# The Eina Programming Guide #
+
+
+``Eina`` provides data types and useful tools.
+
+The ``Eina`` library implements an *application programming interface (API)* for data types in an efficient way. It also provides some useful tools for tasks including opening shared libraries, error management, type conversion, time accounting, and memory pools.
+
+## Contents ##
+
+* **Data Types**
+ * [Iterator Functions](iterator-functions.md)
+ * [Strings](strings.md)
+ * [Arrays](arrays.md)
+ * [Hash Tables](hash-tables.md)
+ * [Lists](lists.md)
+ * [Generic Value](generic-value.md)
+ * [Promises and Futures](futures.md)
+* **Eina Tools**
+ * [Logging](tools/logging.md)
+ * [String Tool](tools/eina-string-tool.md)
+ * [Memory Pools](tools/eina-mempool.md)
+ * [Safety Checks](tools/eina-safety-checks.md)
\ No newline at end of file
diff --git a/public_html/data/pages/develop/guides/c/eina/strings.md.txt b/public_html/data/pages/develop/guides/c/eina/strings.md.txt
new file mode 100644
index 00000000..d5496575
--- /dev/null
+++ b/public_html/data/pages/develop/guides/c/eina/strings.md.txt
@@ -0,0 +1,165 @@
+---
+~~Title: Strings~~
+---
+
+# Strings #
+
+You can create and manipulate strings in Enlightenment using two Eina types: Stringshares and String Buffers.
+
+## Stringshares ##
+
+The ``Eina_Stringshare`` data type functions allow you to store a single copy of a string and use it in multiple places throughout your program. This way you can save a mamy strings using minimal memory. This shortens the time to create and destroy strings, reduces memory use and decreases memory fragmentation.
+
+With this data type you can reduce the number of duplicated strings kept in memory. It is common for the same strings to be dynamically allocated repeatedly between applications and libraries, especially in circumstances where you can have multiple copies of a structure that allocates the string. Rather than duplicating and freeing these strings, request a read-only pointer to an existing string and only incur the overhead of a hash lookup. This can sound like micro-optimizing but profiling has shown that this can have a significant impact as the number of copies grows.
+
+### Managing Stringshares ###
+
+To create a stringshare declare a string variable then call the ``eina_stringshare_add()`` function:
+
+```c
+[...]
+const char *mystr;
+const char *prologue = "Enlightenment is not just a window manager for Linux/X11 and others"
+
+mystr = eina_stringshare_add(prologue);
+[...]
+```
+> **NOTE:**
+> ``[...]`` in a Code Block indicates there will usually be code above and below the shown snippet but that it has been excluded for the sake of brevity. There is no need to type ``[...]`` into your program.
+
+To retrieve or modify string data, retrieve a string for use in a program from a format string using the ``eina_stringshare_printf()`` function. If you have a "format" string to pass to a function like ``printf``, you can store it as a stringshare as well. The following example produces "1 desktop manager to rule them all":
+
+```c
+[...]
+const char *myfmtstr = "%d desktop manager to rule them all";
+const char *str;
+
+str = eina_stringshare_printf(myfmtstr, 1);
+
+print(str)
+[...]
+```
+
+You can replace the value of a stringshare with the ``eina_stringshare_replace()`` function. Pass the pointer address and the new value to the function:
+
+```c
+[...]
+eina_stringshare_replace(&str,"One desktop manager to rule them all");
+[...]
+```
+
+Retrieve the length of the stringshare value with the ``eina_stringshare_strlen()`` function:
+
+```c
+[...]
+ printf("length: %d\n", eina_stringshare_strlen(str));
+[...]
+```
+
+When the string is no longer needed delete it using the ``eina_stringshare_del()`` function:
+
+```c
+[...]
+eina_stringshare_del(mystr);
+[...]
+```
+
+## String Buffer ##
+
+The string buffer data type is designed to be a mutable string, allowing you to append, prepend or insert a string to a buffer. It allows easy handling of buffers in your applications.
+
+### Managing string buffer ###
+
+First initialize the ``Eina_Strbuf`` instance and create the buffer:
+
+```c
+[...]
+Eina_Strbuf *buf;
+mybuffer = eina_strbuf_new();
+[...]
+```
+You can append basic strings to the buffer using the ``eina_strbuf_append()`` function:
+
+```c
+[...]
+eina_strbuf_append(mybuffer, "This is my string.");
+[...]
+```
+
+To append 1 character to your buffer use the ``eina_strbuf_append_char()`` function. You can also append a sized string to the buffer using the ``eina_strbuf_append_length()`` function:
+
+```c
+[...]
+eina_strbuf_append_length(mybuffer, "Buffe", 5);
+eina_strbuf_append_char(mybuffer, 'r');
+[...]
+```
+
+To handle "printf" format strings use the ``eina_strbuf_append_printf()`` function to add formatted strings to the buffer:
+
+```c
+[...]
+eina_strbuf_append_printf(buf, "%s%c", "buffe", 'r');
+[...]
+```
+
+To remove characters from one position to another, use the ``eina_strbuf_remove()`` function. The first parameter is the buffer, the second is the start position of the characters you want to delete and the last the end position. \\ This example removes the first 19 characters of the buffer:
+
+```c
+[...]
+eina_strbuf_remove(buf, 0, 18);
+[...]
+```
+
+Use ``eina_strbuf_replace()`` to replace a specific occurrence of a given string in the buffer with another string. Use ``eina_strbuf_replace_all()`` to replace all occurrences of a given string in the buffer with another:
+
+```c
+[...]
+eina_strbuf_append(mybuffer, "buffer buffer buffer");
+
+// Replacing one occurrence of "buffer" by "B-U-F-F-E-R"
+eina_strbuf_replace(mybuffer, "buffer", "B-U-F-F-E-R", 1);
+
+// Replacing all the occurrences of "buffer" by "B-U-F-F-E-R"
+eina_strbuf_replace_all(mybuffer, "buffer", "B-U-F-F-E-R");
+
+// Replacing all the occurrences of "B-U-F-F-E-R" by "Buffer"
+eina_strbuf_replace_all(mybuffer, "B-U-F-F-E-R", "Buffer");
+[...]
+```
+
+To insert a string at the specified position, use the ``eina_strbuf_insert()`` function. For formatted strings, use the function the ``eina_strbuf_insert_printf()``:
+
+
+```c
+[...]
+eina_strbuf_insert(mybuffer, "More buffer", 10);
+
+// Using eina_strbuf_length_get to get the buffer length
+eina_strbuf_insert_printf(buf, " %s: %d", 6, "length", eina_strbuf_length_get(buf));
+[...]
+```
+
+To obtain the complete length of the string and buffer, use the functions ``eina_strbuf_string_get()`` and ``eina_strbuf_length_get()``:
+
+```c
+[...]
+printf("%s : %d\n", eina_strbuf_string_get(mybuffer), eina_strbuf_length_get(buf));
+[...]
+```
+
+When you no longer require the buffer, free it with the function ``eina_strbuf_free()``. You can also free the content of ``Eina_Strbuf`` without freeing the buffer itself using the ``eina_strbuf_string_free()``:
+
+```c
+[...]
+eina_strbuf_free(mybuffer);
+[...]
+```
+
+## Further Reading ##
+
+[String Buffer API](https://www.enlightenment.org/develop/legacy/api/c/start#group__Eina__String__Buffer__Group.html)
+: A reference for the String Buffer API
+
+[String Example](https://git.enlightenment.org/tools/examples.git/tree/reference/c/eina/src/eina_string.c)
+: Example code showing how to use Strings, String Buffers and Stringshares.
\ No newline at end of file
diff --git a/public_html/data/pages/develop/guides/c/eina/tools/eina-mempool.md.txt b/public_html/data/pages/develop/guides/c/eina/tools/eina-mempool.md.txt
new file mode 100644
index 00000000..9649b5d1
--- /dev/null
+++ b/public_html/data/pages/develop/guides/c/eina/tools/eina-mempool.md.txt
@@ -0,0 +1,24 @@
+---
+~~Title: Memory Pool~~
+~~NOCACHE~~
+---
+
+# Memory Pool #
+
+The ``Eina_Mempool`` tool provides functionality for working with memory pools. These memory pools allow you to preallocate fixed-sized memory spaces, and are designed to simplify memory management tasks.
+
+## Available Mempools ##
+
+The following mempools are available:
+
+* ``buddy``
+* ``chained_pool``
+* ``ememoa_fixed`` and ``ememoa_unknown``
+* ``fixed_bitmap``
+* ``pass_through``
+* ``one_big``
+
+## Further Reading ##
+
+[The Memory Pool API](https://www.enlightenment.org/develop/legacy/api/c/start#group__Eina__Memory__Pool__Group.html)
+: A reference for the Memory Pool API.
\ No newline at end of file
diff --git a/public_html/data/pages/develop/guides/c/eina/tools/eina-safety-checks.md.txt b/public_html/data/pages/develop/guides/c/eina/tools/eina-safety-checks.md.txt
new file mode 100644
index 00000000..6a639d01
--- /dev/null
+++ b/public_html/data/pages/develop/guides/c/eina/tools/eina-safety-checks.md.txt
@@ -0,0 +1,83 @@
+---
+~~Title: Safety Checks~~
+~~NOCACHE~~
+---
+
+# Safety Checks #
+
+Eina safety checks are a set of macros designed to check for parameters or values that must never occur. The concept is similar to the ``assert()`` function, but safety checks log the parameter or value and return instead of aborting the program outright.
+
+## Available Safety Checks ##
+
+The following safety checks are available:
+
+* ``EINA_SAFETY_ON_NULL_RETURN(exp)``
+* ``EINA_SAFETY_ON_NULL_RETURN_VAL(exp, val)``
+* ``EINA_SAFETY_ON_NULL_GOTO(exp, label)``
+* ``EINA_SAFETY_ON_TRUE_RETURN(exp)``
+* ``EINA_SAFETY_ON_TRUE_RETURN_VAL(exp, val)``
+* ``EINA_SAFETY_ON_TRUE_GOTO(exp, label)``
+* ``EINA_SAFETY_ON_FALSE_RETURN(exp)``
+* ``EINA_SAFETY_ON_FALSE_RETURN_VAL(exp, val)``
+* ``EINA_SAFETY_ON_FALSE_GOTO(exp, label)``
+* ``EINA_ARG_NONNULL(...)``
+
+### EINA_SAFETY_ON_NULL_RETURN() ###
+
+Use the ``EINA_SAFETY_ON_NULL_RETURN()`` function to return ``NULL``; this macro calls ``return`` if the given parameter is ``NULL``.
+
+```c
+Eina_Bool myfunction(char *param)
+{
+ // If my param is NULL, EINA_SAFETY_ON_NULL_RETURN calls "return"
+ EINA_SAFETY_ON_NULL_RETURN(param);
+
+ printf("My pram is : %s\n", param);
+
+ return EINA_TRUE;
+}
+```
+
+### EINA_SAFETY_ON_NULL_RETURN_VAL() ###
+
+Use the ``EINA_SAFETY_ON_NULL_RETURN_VAL()``
+function instead of the ``EINA_SAFETY_ON_NULL_RETURN()`` function to return a specific value; this macro returns the given value.
+
+```c
+Eina_Bool void myfunction(char *param)
+{
+ // If the parameter is NULL, return EINA_FALSE;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(param, EINA_FALSE);
+ printf("My pram is : %s\n", param);
+
+ return EINA_TRUE;
+}
+```
+
+### EINA_SAFETY_ON_NULL_GOTO() ###
+
+Use the ``EINA_SAFETY_ON_NULL_GOTO()`` function to call another function if a parameter is ``NULL``. This macro works similarly to the ``EINA_SAFETY_ON_NULL_RETURN()`` function except that it calls ``goto`` with the given function instead of ``return``.
+
+```c
+static void isnullcb()
+{
+ printf("The parameter is NULL\n");
+}
+Eina_Bool void myfunction(char *param)
+{
+ // If the parameter is NULL we return EINA_FALSE;
+ EINA_SAFETY_ON_NULL_GOTO(param, isnullcb);
+ printf("My pram is : %s\n", param);
+
+ return EINA_TRUE;
+}
+```
+
+### EINA_SAFETY_ON_TRUE_RETURN() ###
+
+Eina also provides macros to check whether a given value is ``TRUE`` or ``FALSE``. To call ``return`` if a given value is ``TRUE`` use the ``EINA_SAFETY_ON_TRUE_RETURN()`` function. To call ``goto`` in a given function if a given value is ``TRUE``, use the ``EINA_SAFETY_ON_NULL_GOTO()`` function.
+
+## Further Reading ##
+
+[The Safety Checks API](https://www.enlightenment.org/develop/legacy/api/c/start#group__Eina__Safety__Checks__Group.html)
+: A reference for the Safety Checks API.
\ No newline at end of file
diff --git a/public_html/data/pages/develop/guides/c/eina/tools/eina-string-tool.md.txt b/public_html/data/pages/develop/guides/c/eina/tools/eina-string-tool.md.txt
new file mode 100644
index 00000000..7fd4ba46
--- /dev/null
+++ b/public_html/data/pages/develop/guides/c/eina/tools/eina-string-tool.md.txt
@@ -0,0 +1,112 @@
+---
+~~Title: String Tool~~
+~~NOCACHE~~
+---
+
+# String Tool #
+
+String manipulation is one of the most common tasks in any application. Eina provides an application programming interface (API) for the manipulation of C strings: ``eina_str``. This API provides several functions described in this document: splitting strings, joining strings, converting strings to upper or lower case and checking to see whether a string begins or ends with another string.
+
+## Splitting Strings ##
+
+The ``eina_str_split()`` allows you to function to split a string at a delimiter. The first parameter is the string to split, the second determines where to split the string and the final parameter is the maximum number of strings into which the original string should be split. If the maximum number of returned strings is less than one, the function will split the string as many times as possible.
+
+The function returns a newly-allocated ``NULL``-terminated array of strings, or ``NULL`` if it fails to allocate the array.
+
+> **NOTE:**
+>Always remember to free the memory allocated by the ``eina_str_split()`` function.
+
+```c
+char *nicks = "Rasterman:Bluebugs:Tasn:Illogict:billiob:Puppet_Master";
+char **result_arr;
+int i;
+
+// Splitting the string with ':' delimiter
+result_arr = eina_str_split(names, ":", 0);
+
+// Printing the result
+for (i = 0; result_arr[i]; i++)
+ printf("Nick : %s\n", result_arr[i]);
+
+// Remember to free memory
+free(arr[0]);
+free(arr);
+```
+
+
+## Converting Strings to Upper/Lower Case ##
+
+The ``eina_str_tolower()`` and ``eina_str_toupper()`` functions allow strings to be converted to lower or upper case respectively. They change the case for all characters of the given string, regardless of their original case. These functions modify the original strings.
+
+```c
+char *str;
+
+// Initialize the string
+str = malloc(sizeof(char) * 4);
+strcpy(str, "bsd");
+
+// Change the string to uppercase
+eina_str_toupper((char **)&str);
+printf("%s\n", str);
+// Change the string to lowercase
+
+eina_str_tolower(&str);
+printf("%s\n", str);
+// Free the allocated memory
+
+free(str);
+```
+
+## Joining Strings ##
+
+The ``eina_str_join()`` function allows two strings of a known length to be joined together. The fist parameter is the buffer to store the result, the second is the size of the buffer, the third is the
+separator between the two strings and the two final parameters are the stings to be joined.
+
+```c
+char *part1 = "Elementary powered by";
+char *part2 = "Enlightenment Foundation Libraries";
+char *res;
+size_t size;
+
+// Calculate the string size + 1 for the delimiter
+size = strlen(part1) + strlen(part2) + 1
+
+// Allocate memory for the result
+res = malloc(sizeof(char) * size);
+
+// Join the strings
+eina_str_join(res, size, ' ', part1, part2);
+printf("%s\n", res);
+
+// Free the allocated memory
+free(res):
+```
+
+## Matching the Start/End of a String ##
+
+The ``eina_str_has_prefix()`` and ``eina_str_has_suffix()`` function allow for strings to be matched against the beginning or end of another string respectively. You can also check whether a string has a particular extension with the ``eina_str_has_extension()`` function.
+
+These functions return ``EINA_TRUE`` if the given string contains the specified prefix, suffix, or extension and ``EINA_FALSE`` if it does not.
+
+```c
+char *names = "Carsten;Cedric;Tom;Chidambar;Boris;Philippe"
+
+if (eina_str_has_prefix(names, "Carsten"))
+ printf("String starts with 'Carsten'")
+
+if (eina_str_has_suffix(names, "Philippe"))
+ printf("String ends with 'Philippe'")
+
+if (eina_str_has_extension(names, "philippe"))
+ printf("String has extension 'philippe'")
+else
+ printf("String does not have extension "philippe)
+```
+
+## Further Reading ##
+
+[The String Tools API](https://www.enlightenment.org/develop/legacy/api/c/start#group__Eina__String__Group.html)
+: An auto-generated reference to the String Tools API and its functions.
+
+[The eina_string Tutorial](https://www.enlightenment.org/develop/legacy/api/c/start#tutorial_eina_string.html)
+: A tutorial demonstrating the use of the String Tools API.
\ No newline at end of file
diff --git a/public_html/data/pages/develop/guides/c/eina/tools/logging.md.txt b/public_html/data/pages/develop/guides/c/eina/tools/logging.md.txt
new file mode 100644
index 00000000..e58fbfb0
--- /dev/null
+++ b/public_html/data/pages/develop/guides/c/eina/tools/logging.md.txt
@@ -0,0 +1,134 @@
+---
+~~Title: Eina Logging~~
+---
+
+# Eina Logging #
+
+EFL uses a common method to log error messages, called ``Eina_Log``, which allows you to adjust the verbosity of the logs using environment variables.
+
+The ``Eina_Log`` module provides logging facilities for libraries and applications. It provides colored logging, basic logging levels (error, warning, debug, info, critical) and *logging domains*, or *loggers*. For those unfamiliar with this term, it offers a way to separate a set of log messages into a specific context (e.g. a module) and provides a way of controlling this set as a whole.
+
+## Available Log Levels ##
+
+| Level | Number | Macro |
+|---------|--------|---------------------|
+|Critical | 0 | ``EINA_LOG_CRIT()`` |
+|Error | 1 | ``EINA_LOG_ERR()`` |
+|Warning | 2 | ``EINA_LOG_WARN()`` |
+|Info | 3 | ``EINA_LOG_INFO()`` |
+|Debug | 4 | ``EINA_LOG_DBG()`` |
+
+
+The log level is used to control which messages should appear. It specifies the lowest level that should be displayed, i.e. a message with level 2 being logged on a domain with level set to 3 would be displayed while a message with level 4 wouldn't.
+
+## Setting the Log Level ##
+
+``Eina`` provides ``eina_log_print()``, a standard function to manage all logging messages. This function may be called directly or using helper macros including ``EINA_LOG_DBG()``, ``EINA_LOG_ERR()`` or those that take a specific domain as an argument as with ``EINA_LOG_DOM_DBG()`` and ``EINA_LOG_DOM_ERR()``. Internally, ``eina_log_print()`` will call the function defined with ``eina_log_print_cb_set()``, which defaults to ``eina_log_print_cb_stderr()`` but may be changed to do whatever you need such as networking or syslog logging.
+
+The logging system is thread-safe once initialized with ``eina_log_threads_enable()``. The thread that calls this function first is considered "main thread" and other threads will have their thread ID (``pthread_self()``) printed in the log message so it is easy to detect from where the messages are coming.
+
+The different logging levels serve to customize the amount of debugging information and may be used to automatically call ``abort()`` once a message of a given level is printed. This is controlled by the environment variable ``EINA_LOG_ABORT`` and the level to be considered critical with ``EINA_LOG_ABORT_LEVEL``. These can be changed with ``eina_log_abort_on_critical_set()`` and ``eina_log_abort_on_critical_level_set()``.
+
+The default maximum level to print is defined by the environment variable ``EINA_LOG_LEVEL`` but may be set per-domain with ``EINA_LOG_LEVELS``. It will default to ``EINA_LOG_ERR``. This can be changed with ``eina_log_level_set()``.
+
+To use the log system ``Eina`` must be initialized with ``eina_init()`` and later shut down with ``eina_shutdown()``.
+
+### Controlling Print Callbacks ###
+
+The log module allows the user to change the way ``eina_log_print()`` displays messages. It suffices to pass to ``eina_log_print_cb_set()`` the function used to display the message. That function must be of type ``#Eina_Log_Print_Cb``. As custom data can be passed to that callback, customized messages can be displayed.
+
+It is suggested to not use ``__FILE__``, ``__FUNCTION__`` or ``__LINE__`` when writing that callback, but when defining macros like ``EINA_LOG_ERR()`` and others.
+
+## Logging Example ##
+
+The following example, available for download from the [Enlightenment Project git repository](https://git.enlightenment.org/tools/examples.git/tree/reference/c/eina/src/eina_log.c), demonstrates the control of logging from within an application.
+
+```c
+#define EFL_EO_API_SUPPORT 1
+#define EFL_BETA_API_SUPPORT 1
+
+#include
+var my_evas_object = ...
+function _do_animation(pos)
+{
+ ... move evas object ...
+ ... do some more animating ...
+}
+....
+efl.Ecore.Animator.addTimeline(2, _do_animation);
+
+
+In the sample above we create an animation to move my_evas_object in 2 seconds.
+
+If your animation will run for an unspecified amount of time you can use ''efl.Ecore.Animator.add()'', which is like using ''efl.Ecore.Timer.add()'' with the interval being the framerate. Note that this has tangible benefits to creating a timer for each animation in terms of performance.
+
+==== Constants ====
+
+=== Position mapping ===
+
+These constants define the mapping of position to the time for the animation.
+
+ * ''efl.Ecore.Animator.POS_MAP_ACCELERATE'' - Start slow then speed up.
+ * ''efl.Ecore.Animator.POS_MAP_ACCELERATE_FACTOR'' - Start slow then speed up, v1 being a power factor, 0.0 being linear, 1.0 being normal accelerate, 2.0 being much more pronounced accelerate (squared), 3.0 being cubed, etc.
+ * ''efl.Ecore.Animator.POS_MAP_BOUNCE'' - Start at 0.0 then "drop" like a ball bouncing to the ground at 1.0, and bounce v2 times, with decay factor of v1.
+ * ''efl.Ecore.Animator.POS_MAP_CUBIC_BEZIER'' - Follow the cubic-bezier curve calculated with the control points (x1, y1), (x2, y2)
+ * ''efl.Ecore.Animator.POS_MAP_DECELERATE'' - Start fast then slow down.
+ * ''efl.Ecore.Animator.POS_MAP_DECELERATE_FACTOR'' - Start fast then slow down, v1 being a power factor, 0.0 being linear, 1.0 being normal decelerate, 2.0 being much more pronounced decelerate (squared), 3.0 being cubed, etc.
+ * ''efl.Ecore.Animator.POS_MAP_DIVISOR_INTERP'' - Start at gradient * v1, interpolated via power of v2 curve.
+ * ''efl.Ecore.Animator.POS_MAP_LINEAR'' - Linear 0.0 -> 1.0.
+ * ''efl.Ecore.Animator.POS_MAP_SINUSOIDAL'' - Start slow, speed up then slow down at end.
+ * ''efl.Ecore.Animator.POS_MAP_SINUSOIDAL_FACTOR'' - Start slow, speed up then slow down at end, v1 being a power factor, 0.0 being linear, 1.0 being normal sinusoidal, 2.0 being much more pronounced sinusoidal (squared), 3.0 being cubed, etc.
+ * ''efl.Ecore.Animator.POS_MAP_SPRING'' - Start at 0.0 then "wobble" like a spring rest position 1.0, and wobble v2 times, with decay factor of v1.
+
+=== Sources ===
+
+Defines the timing sources for animators.
+
+ * ''efl.Ecore.Animator.SOURCE_CUSTOM'' - The default system clock/timer based animator that ticks every "frametime" seconds.
+ * ''efl.Ecore.Animator.SOURCE_TIMER'' - A custom animator trigger that you need to call ''efl.Ecore.Animator.customTick()'' to make it tick.
+
+==== Functions ====
+
+=== add(callback) ===
+
+Syntax
+
+
+function mycallback() { ... };
+var animator = efl.Ecore.Animator.add(mycallback);
+
+
+Parameters
+
+ * callback - The function to call when it ticks off.
+
+Return value
+
+ * object - A handle to the new animator object.
+
+This function adds an animator and returns its handle on success and NULL on failure. The function func will be called every N seconds where N is the frametime interval set by ''efl.Ecore.Animator.setFrametime()''.
+
+When the animator func is called, it must return a boolean value. If it returns ''true'' (or ''efl.Ecore.Mainloop.CALLBACK_RENEW''), it will be called again at the next tick, or if it returns ''false'' (or ''efl.Ecore.Mainloop.CALLBACK_CANCEL'') it will be deleted automatically making any references/handles for it invalid.
+
+=== addTimeline(runtime, callback) ===
+
+Syntax
+
+
+var mycallback(pos) { ... };
+var handle = efl.Ecore.Animator.addTimeline(runtime, callback)
+
+
+Parameters
+
+ * runtime - The time to run in seconds.
+ * callback - The callback to be called when it ticks off.
+
+Return value
+
+ * object - A handle to the new animator.
+
+This function is just like ''efl.Ecore.Animator.add()'' except the animator only runs for a limited time specified in seconds by runtime. Once the runtime the animator has elapsed (animator finished) it will automatically be deleted. The callback function func can return ''efl.Ecore.Mainloop.CALLBACK_RENEW'' to keep the animator running or ''efl.Ecore.Mainloop.CALLBACK_CANCEL'' to stop it and have it be deleted automatically at any time.
+
+The func will ALSO be passed a position parameter that will be in value from 0.0 to 1.0 to indicate where along the timeline (0.0 start, 1.0 end) the animator run is at. If the callback wishes not to have a linear transition it can "map" this value to one of several curves and mappings via ''efl.Ecore.Animator.posMap()''.
+
+
+efl.Ecore.Animator.customTick()
+
+
+When animator source is set to ''efl.Ecore.Animator.SOURCE_CUSTOM'', then calling this function triggers a run of all animators currently registered with Ecore as this indicates a "frame tick" happened. This will do nothing if the animator source(set by ''efl.Ecore.Animator.setSource()'') is not set to ''efl.Ecore.Animator.SOURCE_CUSTOM''.
+
+=== getFrametime() ===
+
+Syntax
+
+
+var frametime = efl.Ecore.Animator.getFrametime()
+
+
+Return value
+
+ * number - The time in second in between animator ticks.
+
+This function retrieves the time in seconds between animator ticks.
+
+=== getSource() ===
+
+Syntax
+
+
+var sourceType = efl.Ecore.Animator.getSource()
+
+
+Return value
+
+ * one of ''efl.Ecore.Animator.SOURCE_*'' constants - The current animator source.
+
+This gets the current animator source.
+
+=== posMap(pos, map, v1, v2) ===
+
+Syntax
+
+
+var mapped = efl.Ecore.Animator.posMap(pos, map, v1, v2);
+
+
+Parameters
+
+ * pos - The input position to map.
+ * map - The mapping to use. One of the ''efl.Ecore.Animator.POS_MAP_*'' values.
+ * v1 - A parameter use by the mapping (pass 0.0 if not used).
+ * v2 - A parameter use by the mapping (pass 0.0 if not used).
+
+Return value
+
+ * number - The mapped value
+
+Takes an input position (0.0 to 1.0) and maps to a new position (normally between 0.0 and 1.0, but it may go above/below 0.0 or 1.0 to show that it has "overshot" the mark) using some interpolation (mapping) algorithm.
+
+This function useful to create non-linear animations. It offers a variety of possible animation curves to be used:
+
+ * ''efl.Ecore.Animator.ECORE_POS_MAP_LINEAR'' - Linear, returns pos
+ * ''efl.Ecore.Animator.ECORE_POS_MAP_ACCELERATE'' - Start slow then speed up
+ * ''efl.Ecore.Animator.ECORE_POS_MAP_DECELERATE'' - Start fast then slow down
+ * ''efl.Ecore.Animator.ECORE_POS_MAP_SINUSOIDAL'' - Start slow, speed up then slow down at end
+ * ''efl.Ecore.Animator.ECORE_POS_MAP_ACCELERATE_FACTOR'' - Start slow then speed up, v1 being a power factor, 0.0 being linear, 1.0 being ECORE_POS_MAP_ACCELERATE, 2.0 being much more pronounced accelerate (squared), 3.0 being cubed, etc.
+ * ''efl.Ecore.Animator.ECORE_POS_MAP_DECELERATE_FACTOR'' - Start fast then slow down, v1 being a power factor, 0.0 being linear, 1.0 being ECORE_POS_MAP_DECELERATE, 2.0 being much more pronounced decelerate (squared), 3.0 being cubed, etc.
+ * ''efl.Ecore.Animator.ECORE_POS_MAP_SINUSOIDAL_FACTOR'' - Start slow, speed up then slow down at end, v1 being a power factor, 0.0 being linear, 1.0 being ECORE_POS_MAP_SINUSOIDAL, 2.0 being much more pronounced sinusoidal (squared), 3.0 being cubed, etc.
+ * ''efl.Ecore.Animator.ECORE_POS_MAP_DIVISOR_INTERP'' - Start at gradient * v1, interpolated via power of v2 curve
+ * ''efl.Ecore.Animator.ECORE_POS_MAP_BOUNCE'' - Start at 0.0 then "drop" like a ball bouncing to the ground at 1.0, and bounce v2 times, with decay factor of v1
+ * ''efl.Ecore.Animator.ECORE_POS_MAP_SPRING'' - Start at 0.0 then "wobble" like a spring rest position 1.0, and wobble v2 times, with decay factor of v1
+
+=== posMapN(pos, map, v) ===
+
+Syntax
+
+
+var mapped = efl.Ecore.Animator.pos_map_n(pos, map, v)
+
+
+Parameters
+
+ * pos - The input position to map.
+ * map - The mapping to use.
+ * v - An array with the double parameters to be used by the mapping. null if not used.
+
+Return value
+
+ * number - The mapped value
+
+Takes an input position (0.0 to 1.0) and maps to a new position (normally between 0.0 and 1.0, but it may go above/below 0.0 or 1.0 to show that it has "overshot" the mark) using some interpolation (mapping) algorithm.
+
+This function useful to create non-linear animations. It offers a variety of possible animation curves to be used:
+
+ * ''efl.Ecore.Animator.ECORE_POS_MAP_LINEAR'' - Linear, returns pos
+ * ''efl.Ecore.Animator.ECORE_POS_MAP_ACCELERATE'' - Start slow then speed up
+ * ''efl.Ecore.Animator.ECORE_POS_MAP_DECELERATE'' - Start fast then slow down
+ * ''efl.Ecore.Animator.ECORE_POS_MAP_SINUSOIDAL'' - Start slow, speed up then slow down at end
+ * ''efl.Ecore.Animator.ECORE_POS_MAP_ACCELERATE_FACTOR'' - Start slow then speed up, v[0] being a power factor, 0.0 being linear, 1.0 being ECORE_POS_MAP_ACCELERATE, 2.0 being much more pronounced accelerate (squared), 3.0 being cubed, etc.
+ * ''efl.Ecore.Animator.ECORE_POS_MAP_DECELERATE_FACTOR'' - Start fast then slow down, v[0] being a power factor, 0.0 being linear, 1.0 being ECORE_POS_MAP_DECELERATE, 2.0 being much more pronounced decelerate (squared), 3.0 being cubed, etc.
+ * ''efl.Ecore.Animator.ECORE_POS_MAP_SINUSOIDAL_FACTOR'' - Start slow, speed up then slow down at end, v[0] being a power factor, 0.0 being linear, 1.0 being ECORE_POS_MAP_SINUSOIDAL, 2.0 being much more pronounced sinusoidal (squared), 3.0 being cubed, etc.
+ * ''efl.Ecore.Animator.ECORE_POS_MAP_DIVISOR_INTERP'' - Start at gradient * v[0], interpolated via power of v2 curve
+ * ''efl.Ecore.Animator.ECORE_POS_MAP_BOUNCE'' - Start at 0.0 then "drop" like a ball bouncing to the ground at 1.0, and bounce v2 times, with decay factor of v[0]
+ * ''efl.Ecore.Animator.ECORE_POS_MAP_SPRING'' - Start at 0.0 then "wobble" like a spring rest position 1.0, and wobble v2 times, with decay factor of v[0]
+ * ''efl.Ecore.Animator.ECORE_POS_MAP_CUBIC_BEZIER'' - Use an interpolated cubic-bezier curve ajusted with parameters from v[0] to v[3].
+
+=== setCustomSourceTickBeginCallback(callback) ===
+
+Syntax
+
+
+function mycallback() {...};
+efl.Ecore.Animator.setCustomSourceTickBeginCallback(callback)
+
+
+Parameters
+
+ * func - The function to call when ticking is to begin.
+
+The Ecore Animator infrastructure handles tracking if animators are needed or not and which ones need to be called and when, but when the tick source is custom, you have to provide a tick source by calling ''efl.Ecore.Animator.customTick()'' to indicate a frame tick happened. In order to allow the source of ticks to be dynamically enabled or disabled as needed, the func when set is called to enable the tick source to produce tick events that call ''efl.Ecore.Animator.customTick()''. If func is NULL then no function is called to begin custom ticking.
+
+
+function mycallback() {...};
+efl.Ecore.Animator.setCustomSourceTickEndCallback(callback)
+
+
+Parameters
+
+ * func - The function to call when ticking is to end.
+
+This function is a matching pair to the function set by ''efl.Ecore.Animator.setCustomSourceTickBeginCallback()'' and is called when ticking is to stop. If func is NULL then no function will be called to stop ticking. For more information please see ''efl.Ecore.Animator.setCustomSourceTickBeginCallback()''.
+
+
+=== setFrametime(frametime) ===
+
+Syntax
+
+
+efl.Ecore.Animator.frametime_set( frametime)
+
+
+Parameters
+
+ * frametime - The time in seconds in between animator ticks.
+
+=== setSource(source) ===
+
+Syntax
+
+
+efl.Ecore.Animator.source_set(source)
+
+
+Parameters
+
+ * source - The source of animator ticks to use.
+
+This sets the source of animator ticks. When an animator is active the mainloop will "tick" over frame by frame calling all animators that are registered until none are. The mainloop will tick at a given rate based on the animator source. The default source is the system clock timer source - ''efl.Ecore.Animator.SOURCE_TIMER''. This source uses the system clock to tick over every N seconds (specified by ''efl.Ecore.Animator.setFrametime()'', with the default being 1/30th of a second unless set otherwise). You can set a custom tick source by setting the source to ''efl.Ecore.Animator.SOURCE_CUSTOM'' and then drive it yourself based on some input tick source (like another application via ipc, some vertical blanking interrupt, and etc.) using ''efl.Ecore.Animator.setCustomSourceTickBeginCallback()'' and ''efl.Ecore.Animator.setCustomSourceTickEndCallback()'' to set the functions that will be called to start and stop the ticking source, which when it gets a "tick" should call ''efl.Ecore.Animator.customTick()'' to make the "tick" over 1 frame.
+
+==== Methods ====
+
+=== animator.del() ===
+
+Syntax
+
+
+animatorObj.del()
+
+
+Deletes an animator.
diff --git a/public_html/data/pages/develop/legacy/api/javascript/ecore/event.txt b/public_html/data/pages/develop/legacy/api/javascript/ecore/event.txt
new file mode 100644
index 00000000..d4145219
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/api/javascript/ecore/event.txt
@@ -0,0 +1,220 @@
+===== Javascript binding API - Ecore Events =====
+
+[[:develop:legacy:api:javascript:ecore|Back to the JS Ecore page]]
+
+**DRAFT**
+
+Ecore events provide two main features that are of use to those using ecore: creating events and being notified of events.
+
+Those two will usually be used in different contexts, creating events is mainly done by libraries wrapping some system functionality while being notified of events is mainly a necessity of applications.
+
+For a program to be notified of events it's interested in it needs to have a function to process the event and to register that function as the callback to the event, that's all.
+
+==== Constants ====
+
+=== Signal type ===
+
+ * ''efl.Ecore.Event.NONE'' - None event.
+ * ''efl.Ecore.Event.SIGNAL_USER'' - User signal event.
+ * ''efl.Ecore.Event.SIGNAL_HUP'' - Hup signal event.
+ * ''efl.Ecore.Event.SIGNAL_EXIT'' - Exit signal event.
+ * ''efl.Ecore.Event.SIGNAL_POWER'' - Power signal event.
+ * ''efl.Ecore.Event.SIGNAL_REALTIME'' - Realtime signal event.
+
+=== Hardware state ===
+
+ * ''efl.Ecore.Event.MEMORY_STATE'' - Memory state changed.
+ * ''efl.Ecore.Event.POWER_STATE'' - Power state changed.
+
+ * ''efl.Ecore.Event.MEMORY_STATE_NORMAL'' - Memory state normal.
+ * ''efl.Ecore.Event.MEMORY_STATE_LOW'' - Memory state low.
+
+ * ''efl.Ecore.Event.POWER_STATE_MAINS'' - Connected to power supply.
+ * ''efl.Ecore.Event.POWER_STATE_BATTERY'' - Running on battery power.
+ * ''efl.Ecore.Event.POWER_STATE_LOW'' - Low on battery power.
+
+=== Changes ===
+
+ * ''efl.Ecore.Event.LOCALE_CHANGED'' - System locale changed.
+ * ''efl.Ecore.Event.HOSTNAME_CHANGED'' - System hostname changed.
+ * ''efl.Ecore.Event.SYSTEM_TIMEDATE_CHANGED'' - System time and date changed.
+
+==== Functions ====
+
+=== add(type) ===
+
+Syntax
+
+
+var event = efl.Ecore.Event.add(type)
+
+
+Parameters
+
+ * type - The event type to add to the end of the event queue.
+
+Return value
+
+ * object - An object wrapping the event.
+
+If it succeeds, an event of type type will be added to the queue for processing by event handlers added by ''efl.Ecore.Event.addHandler()''. You can call ''del()'' on the returned object to cancel the event.
+
+=== addFilter(func_start, func_filter, func_end) ===
+
+Syntax
+
+
+function func_start() {...};
+function func_filter(loop_data, eventType) {...};
+function func_end(loop_data) {...};
+efl.Ecore.Event.addFilter(func_start, func_filter, func_end)
+
+
+Parameters
+
+ * func_start - Function to call just before filtering and return data.
+ * func_filter - Function to call on each event.
+ * func_end - Function to call after the queue has been filtered.
+
+Return value
+
+ * object - A filter handle on success, NULL otherwise.
+
+Adds a callback to filter events from the event queue. Filters are called on the queue just before Event handler processing to try and remove redundant events. Just as processing is about to start ''func_start'' is called, the return value of this functions is passed to ''func_filter'' as ''loop_data''. ''func_filter'' is also passed the event type. If this ''func_filter'' returns ''false'', the event is removed from the queue, if it returns ''true'', the event is kept. When processing is finished ''func_end'' is called and is passed the ''loop_data''(returned by ''func_start'') to clean up.
+
+=== addHandler(type, func) ===
+
+Syntax
+
+
+function mycallback(type) { ... };
+var handler = efl.Ecore.Event.addHandler(type, mycallback);
+
+
+Parameters
+
+ * type - The type of the event this handler will get called for.
+ * func - The function to call when the event is found in the queue.
+
+Return value
+
+ * object - A new Event handler, or NULL on failure.
+
+Add an event handler to the list of handlers. This will, on success, return a handle to the event handler object that was created, that can be used later to remove the handler using the ''del()'' method on it. The type parameter is the integer of the event type that will trigger this callback to be called. The callback func is called when this event is processed and will be passed the event type.
+
+=== addSignalUserHandler(callback) ===
+
+Syntax
+
+
+function mycallback(type) { ... };
+var handler = efl.Ecore.Event.addSignalUserHandler(mycallback);
+
+
+Parameters
+
+ * func - The function to call when the event is found in the queue.
+
+Return value
+
+ * object - A new Event handler, or NULL on failure.
+
+Adds an event handler for the ''efl.Ecore.Event.SIGNAL_USER'' event type.
+
+=== addSignalExitHandler(callback) ===
+
+Syntax
+
+
+function mycallback(type) { ... };
+var handler = efl.Ecore.Event.addSignalExitHandler(mycallback);
+
+
+Parameters
+
+ * func - The function to call when the event is found in the queue.
+
+Return value
+
+ * object - A new Event handler, or NULL on failure.
+
+Adds an event handler for the ''efl.Ecore.Event.SIGNAL_EXIT'' event type.
+
+=== addSignalRealtimeHandler() ===
+
+Syntax
+
+
+function mycallback(type) { ... };
+var handler = efl.Ecore.Event.addSignalRealtimeHandler(mycallback);
+
+
+Parameters
+
+ * func - The function to call when the event is found in the queue.
+
+Return value
+
+ * object - A new Event handler, or NULL on failure.
+
+Adds an event handler for the ''efl.Ecore.Event.SIGNAL_REALTIME'' event type.
+
+=== getCurrentType() ===
+
+Syntax
+
+
+var type = efl.Ecore.Event.getCurrentType()
+
+
+Return value
+
+ * integer - The current event type being handled if inside a handler callback, ''efl.Ecore.Event.NONE'' otherwise.
+
+If the program is currently inside an Ecore event handler callback this will return the type of the current event being processed.
+
+=== newType() ===
+
+Syntax
+
+
+var eventType = efl.Ecore.Event.newType()
+
+
+Return value
+
+ * integer - A new event type id.
+
+This function allocates a new event type id and returns it. Once an event type has been allocated it can never be de-allocated during the life of the program. There is no guarantee of the contents of this event ID, or how it is calculated, except that the ID will be unique to the current instance of the process.
+
+==== Methods ====
+
+=== eventObj.del() ===
+
+Syntax
+
+
+eventObj.del();
+
+
+Deletes from the queue an event that was added through ''efl.Ecore.Event.add''.
+
+=== filterObj.del() ===
+
+Syntax
+
+
+filterObj.del();
+
+
+Deletes from the queue an filter that was added through ''efl.Ecore.Event.addFilter''.
+
+=== handlerObj.del() ===
+
+Syntax
+
+
+handlerObj.del();
+
+
+Deletes from the queue an handler that was added through ''efl.Ecore.Event.addHandler'' & friends.
diff --git a/public_html/data/pages/develop/legacy/api/javascript/ecore/file.txt b/public_html/data/pages/develop/legacy/api/javascript/ecore/file.txt
new file mode 100644
index 00000000..8ff65afe
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/api/javascript/ecore/file.txt
@@ -0,0 +1,746 @@
+===== Javascript binding API - Ecore Files =====
+
+[[:develop:legacy:api:javascript:ecore|Back to the JS Ecore page]]
+
+**DRAFT**
+
+The File module provides a large number of functions to work with files, directories and downloads.
+
+==== Constants ====
+
+=== Events ===
+
+When monitoring a file or a directory, these constants are used:
+
+ * ''efl.Ecore.File.EVENT_NONE'' - No event.
+ * ''efl.Ecore.File.EVENT_CREATED_FILE'' - Created file event.
+ * ''efl.Ecore.File.EVENT_CREATED_DIRECTORY'' - Created directory event.
+ * ''efl.Ecore.File.EVENT_DELETED_FILE'' - Deleted file event.
+ * ''efl.Ecore.File.EVENT_DELETED_DIRECTORY'' - Deleted directory event.
+ * ''efl.Ecore.File.EVENT_SELF'' - Deleted monitored directory event.
+ * ''efl.Ecore.File.EVENT_MODIFIED'' - Modified file or directory event.
+ * ''efl.Ecore.File.EVENT_CLOSED'' - Closed file event.
+
+=== Progress ===
+
+These constants are used to handle the progress of a download action.
+
+ * ''efl.Ecore.File.PROGRESS_CONTINUE'' - Continue the download.
+ * ''efl.Ecore.File.PROCESS_ABORT'' - Abort the download.
+
+==== Functions ====
+
+=== abortAllDownloads() ===
+
+Syntax
+
+
+efl.Ecore.File.abortAllDownloads();
+
+
+Abort all downloads.
+
+This function aborts all the downloads that have been started by ''efl.Ecore.File.download''. It loops over the started downloads and call ''abort()'' for each of them. To abort only one specific download operation, call ''abort()'' directly on the download wrapper object.
+
+=== addMonitor(path, callback) ===
+
+Syntax
+
+
+function mycallback(monitor, event, path) { ... }
+var monitor = efl.Ecore.File.addMonitor(path, mycallback);
+
+
+Parameters
+
+ * path - The path to monitor.
+ * callback - The function to call on changes.
+
+Return type
+
+ * object - An object wrapping the new monitor.
+ * null - If it was not possible to create the monitor.
+
+This function monitors path. If path is ''null'', or is an empty string, or none of the notify methods (Inotify, Windows notification or polling) is available, or if the path does not exist the function returns ''null''. Otherwise, it returns a newly allocated ''Monitor'' object and the monitoring begins. When one of the ''efl.Ecore.File.EVENT_*'' events is notified, the callback is called. Call ''del()'' on the monitor object to stop the monitoring.
+
+=== availableDownloadProtocol(protocol) ===
+
+Syntax
+
+
+var isAvailable = efl.Ecore.File.availableDownloadProtocol(protocol);
+
+
+Parameters
+
+ * protocol - The name of the desired protocol
+
+Return type
+
+ * boolean - Whether the protocol is available or not.
+
+This function returns ''true'' if protocol is supported, ''false'' otherwise. protocol can be ''http://'', ''ftp://'' or ''file:/\/ ''. Ecore.File must be compiled with CURL to handle http and ftp protocols.
+
+=== canExec(file) ===
+
+Syntax
+
+
+var canExec = efl.Ecore.File.canExec(file)
+
+
+Parameters
+
+ * file - The name of the file.
+
+Return value
+
+ * boolean - ''true'' if the file can be executed, ''false'' otherwise.
+
+This function returns ''true'' if file can be executed, ''false'' otherwise.
+
+=== canRead(file) ===
+
+Syntax
+
+
+var canRead = efl.Ecore.File.canRead(file)
+
+
+Parameters
+
+ * file - The name of the file.
+
+Return value
+
+ * boolean - ''true'' if the file is readable, ''false'' otherwise.
+
+This function returns ''true'' if file can be read, ''false'' otherwise.
+
+=== canWrite(file) ===
+
+Syntax
+
+
+var canWrite = efl.Ecore.File.canWrite(file)
+
+
+Parameters
+
+ * file - The name of the file.
+
+Return value
+
+ * boolean - ''true'' if the file is writable, ''false'' otherwise.
+
+This function returns ''true'' if file can be written, ''false'' otherwise.
+
+=== cp(src, dst) ===
+
+Syntax
+
+
+efl.Ecore.File.cp(src, dst)
+
+
+Parameters
+
+ * src - The name of the source file.
+ * dst - The name of the destination file.
+
+Return value
+
+ * boolean - ''true'' on success, ''false'' otherwise.
+
+This function copies src to dst. If the absolute path name of src and dst can not be computed, or if they are equal, or if the copy fails, the function returns ''false'', otherwise it returns ''true''.
+
+=== efl.Ecore.File.download(url, dst, completion_cb, progress_cb [, headers]) ===
+
+Syntax
+
+
+function completion_cb(file, status) { ... };
+function progress_cb(file, dltotal, dlnow, ultotal, ulnow) { ... };
+efl.Ecore.File.download(url, dst, completion_cb, progress_cb);
+
+headers = {...};
+efl.Ecore.File.download(url, dst, completion_cb, progress_cb, headers);
+
+
+Parameters
+
+ * url - The complete url to download.
+ * dst - The local file to save the downloaded to.
+ * completion_cb - A callback called on download complete.
+ * progress_cb - A callback called during the download operation.
+ * headers - Optional object with set of headers to the download operation.
+
+Return value
+
+ * boolean - ''true'' if the download start or ''false'' on failure.
+
+This function starts the download of the URL ''url'' and saves it to ''dst''. ''url'' must provide the protocol, including 'http://', 'ftp://' or 'file:/\/'. ''efl.Ecore.File'' must be compiled with CURL to download using http and ftp protocols. If ''dst'' is ill-formed, or if it already exists, the function returns ''false''. When the download is complete, the callback ''completion_cb'' is called and data is passed to it. The status parameter of completion_cb will be filled with the status of the download (200, 404,...). The progress_cb is called during the download operation, each time a packet is received or when CURL wants. It can be used to display the percentage of the downloaded file. Return 0 (or ''efl.Ecore.File.PROGRESS_CONTINUE'' from this callback, if provided, to continue the operation or anything else to abort the download. The only operations that can be aborted are those with protocol 'http' or 'ftp'. Similarly ''efl.Ecore.File.abortAllDownloads()'' can be used to abort all download operations.
+
+The optional ''headers'' parameters contain additional headers to control the download operation.
+
+This function returns ''true'' if the download starts, ''false'' otherwise.
+
+=== environmentTmp() ===
+
+Syntax
+
+
+var tmpDir = efl.Ecore.File.environmentTmp();
+
+
+Return type
+
+ * string -A temporary string to the content refered by TMPDIR on this system.
+
+Return the content of the environment refered as TMPDIR on this system.
+
+
+var name = efl.Ecore.File.escapeName(filename)
+
+
+Parameters
+
+ * filename - The file name.
+
+Return value
+
+ * string - The file name with special characters escaped.
+
+This function adds the escape sequence ('\') to the given file name and returns the result as a newly allocated string. If the length of the returned string is longer than ''PATH_MAX'', or on failure, NULL is returned.
+
+=== exists(file) ===
+
+Syntax
+
+
+var exists = efl.Ecore.File.exists(file)
+
+
+Parameters
+
+ * file - The name of the file.
+
+Return value
+
+ * boolean - ''true'' if the file exists, ''false'' otherwise.
+
+This function returns ''true'' if file exists on local filesystem, ''false'' otherwise.
+
+=== existsPathDir(in_dir) ===
+
+Syntax
+
+
+var exists = efl.Ecore.File.path_dir_exists(in_dir)
+
+
+Parameters
+
+ * in_dir - The name of the directory to search in PATH.
+
+Return value
+
+ * boolean - ''true'' if the directory exist in PATH, ''false'' otherwise.
+
+This function checks if in_dir is in the environment variable PATH. If in_dir is NULL, or if PATH is empty, or in_dir is not in PATH, the function returns ''false'', otherwise it returns ''true''.
+
+=== getAppExe(app) ===
+
+Syntax
+
+
+var exe = efl.Ecore.File.getAppExe(app)
+
+
+Parameters
+
+ * app - The application command, with parameters.
+
+Return value
+
+ * string - The executable from app as a newly allocated string. Arguments are removed and escape characters are handled. If app is NULL, or on failure, the function returns NULL.
+
+The executable from app as a newly allocated string. Arguments are removed and escape characters are handled. If app is NULL, or on failure, the function returns NULL. When not needed anymore, the returned value must be freed.
+
+=== getDir(file) ===
+
+Syntax
+
+
+var dir = efl.Ecore.File.getDir(file)
+
+
+Parameters
+
+ * file - The name of the file.
+
+Return value
+
+ * string - The directory name.
+
+This function returns the directory where file resides as anewly allocated string. If file is NULL or on error, this function returns NULL.
+
+=== getFile(path) ===
+
+Syntax
+
+
+var filename = efl.Ecore.File.getFile(path)
+
+
+Parameters
+
+ * path - The complete path.
+
+Return value
+
+ * string - The file name.
+
+Get the filename from a given path.
+
+=== init() ===
+
+Syntax
+
+
+var status = efl.Ecore.File.init()
+
+
+Return type
+
+ * number - 1 or greater on success, 0 on error.
+
+This function sets up Ecore_File and the services it will use (monitoring, downloading, PATH related feature). It returns 0 on failure, otherwise it returns the number of times it has already been called.
+
+=== installedApp(exe) ===
+
+Syntax
+
+
+var isInstalled = efl.Ecore.File.installedApp(exe);
+
+
+Parameters
+
+ * exe - The name of the application
+
+Return value
+
+ * boolean - ''true'' if the exe is in PATH and is executable, ''false'' otherwise.
+
+This function checks if ''exe'' exists in PATH and is executable. If exe is NULL or is not executable, the function returns ''false'', otherwise it returns ''true''.
+
+=== isDir(file) ===
+
+Syntax
+
+
+var isDir = efl.Ecore.File.isDir(file)
+
+
+Parameters
+
+ * file - The name of the file.
+
+Return value
+
+ * boolean - ''true'' if the file exists and is a directory, ''false'' otherwise.
+
+This function returns ''true'' if file exists exists and is a directory on local filesystem, ''false'' otherwise.
+
+=== isEmptyDir(dir) ===
+
+Syntax
+
+
+var isEmptyDir = efl.Ecore.File.isEmptyDir(dir);
+
+
+Parameters
+
+ * dir - The name of the directory to check.
+
+Return value
+
+ * number - 1 if directory is empty, 0 if it has at least one file or -1 in case of errors.
+
+This functions checks if dir is empty. The '.' and '..' files will be ignored. If dir is empty, 1 is returned, if it contains at least one file, 0 is returned. On failure, -1 is returned.
+
+=== listApp() ===
+
+Syntax
+
+
+var apps = efl.Ecore.File.listApp(void);
+
+
+Return value
+
+ * array of strings - An array containing all the executable files in the system.
+
+This function returns a list of allocated strings of all the executable files. If no files are found, the function returns NULL.
+
+=== ls(dir) ===
+
+Syntax
+
+
+var entries = efl.Ecore.File.ls(dir)
+
+
+Parameters
+
+ * dir - The name of the directory to list
+
+Return value
+
+ * array of strings - Return a array containing all the files in the directory; on failure it returns NULL.
+
+This function returns a list of allocated strings of all the files and directories contained in dir. The list will be sorted with the native strcoll as compare function. That means that you may want to set the current locale for the category LC_COLLATE with setlocale(). For more information see the manual pages of strcoll and setlocale. The list will not contain the directory entries for '.' and '..'. On failure, NULL is returned.
+
+=== mkdir(dir) ===
+
+Syntax
+
+
+var created = efl.Ecore.File.mkdir(dir)
+
+
+Parameters
+
+ * dir - The name of the directory to create
+
+Return value
+
+ * boolean - ''true'' on successful creation, ''false'' otherwise.
+
+This function creates the directory dir, with the mode ''S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH'' on UNIX (mode is unused on Windows). On success, it returns ''true'', ''false'' otherwise.
+
+=== mkdirs(dirs) ===
+
+Syntax
+
+
+var numCreated = efl.Ecore.File.mkdirs(dirs)
+
+
+Parameters
+
+ * dirs - The list of directories.
+
+Return value
+
+ * number - The number of successful directories created, -1 if dirs is NULL.
+
+This function creates all the directories that are in the null terminated array dirs. The function loops over the directories and call ''efl.Ecore.File.mkdir()''. This function returns -1 if dirs is NULL, otherwise if returns the number of suceesfully created directories.
+
+=== mkpath(path) ===
+
+Syntax
+
+
+var created = efl.Ecore.File.mkpath(path)
+
+
+Parameters
+
+ * path - The path to create
+
+Return value
+
+ * boolean - ''true'' on success, ''false'' otherwise.
+
+This function creates path and all the subdirectories it contains. The separator is '/' or '\'. If path exists, this function returns ''true'' immediately. It returns ''true'' on success, ''false'' otherwise.
+
+=== mkpaths(paths) ===
+
+Syntax
+
+
+var numCreated = efl.Ecore.File.mkpaths(paths)
+
+
+Parameters
+
+ * paths - list of paths.
+
+Return value
+
+ * number - number of successful paths created, -1 if paths is NULL.
+
+This function creates all the directories that are in the null terminated array paths. The function loops over the directories and calls ''efl.Ecore.File.mkpath()'', hence on Windows, '\' must be replaced by '/' before calling that function. This function returns -1 if paths is NULL. Otherwise, if returns the number of successfully created directories.
+
+=== mkstemp(template) ===
+
+Syntax
+
+
+var path = efl.Ecore.file.mkstemp(template)
+
+
+Parameters
+
+ * template - The template for the path, ending with ''XXXXXX''.
+
+Return type
+
+ * string - The path of the new temporary file.
+
+Creates a temporary file with filename based on ''template''.
+
+=== mksubdirs(base, subdirs) ===
+
+Syntax
+
+
+var numCreated = efl.Ecore.File.mksubdirs(base, subdirs)
+
+
+Parameters
+
+ * base - The base directory to act on.
+ * subdirs - The list of directories.
+
+Return value
+
+ * number - number of successful directories created, -1 on failure.
+
+This function creates all the directories that are in the array subdirs in the base directory. If base does not exist, it will be created. The function loops over the directories and call ''efl.Ecore.File.mkdir()''. The whole path of the directories must exist. So if base/a/b/c wants to be created, subdirs must contain "a", "a/b" and "a/b/c", in that order. This function returns -1 if subdirs or base are NULL, or if base is empty ("\0"). It returns 0 is base is not a directory or invalid, or if it can't be created. Otherwise if returns the number of suceesfully created directories.
+
+=== modTime() ===
+
+Syntax
+
+
+var time = efl.Ecore.File.modTime(file)
+
+
+Parameters
+
+ * file - The name of the file.
+
+Return value
+
+ * number - Return the time of the last data modification, or 0 on failure.
+
+This function returns the time of the last modification of file. On failure, it returns 0.
+
+=== mv(src, dst) ===
+
+Syntax
+
+
+var moved = efl.Ecore.File.mv(src, dst)
+
+
+Parameters
+
+ * src - The name of the source file.
+ * dst - The name of the destination file.
+
+Return value
+
+ * boolean - ''true'' on success, ''false'' otherwise.
+
+This function moves src to dst. It returns ''true'' on success, ''false'' otherwise.
+
+=== readlink(lnk) ===
+
+Syntax
+
+
+var path = efl.Ecore.File.readlink(lnk)
+
+
+Parameters
+
+ * lnk - The name of the link.
+
+Return value
+
+ * string - The path pointed by link or NULL.
+
+This function returns the path pointed by link as a newly allocated string. This function does not work on Windows. On failure, the function returns NULL.
+
+=== realPath(file) ===
+
+Syntax
+
+
+var path = efl.Ecore.File.realPath(file)
+
+
+Parameters
+
+ * file - The file path.
+
+Return value
+
+ * string - The canonicalized absolute pathname or an empty string on failure.
+
+This function returns the absolute path name of file as a newly allocated string. If file is NULL, or on error, this function returns an empty string. Otherwise, it returns the absolute path name.
+
+=== remove(file) ===
+
+Syntax
+
+
+var removed = efl.Ecore.File.remove(file)
+
+
+Parameters
+
+ * file - The name of the file or directory to delete.
+
+Return value
+
+ * boolean - ''true'' on success, ''false'' otherwise.
+
+This function removes file. It returns ''true'' on success, ''false'' otherwise.
+
+=== rmdir(dir) ===
+
+Syntax
+
+
+var removed = efl.Ecore.File.rmdir(dir)
+
+
+Parameters
+
+ * dir - The name of the directory to delete.
+
+Return value
+
+ * boolean - ''true'' on success, ''false'' otherwise.
+
+This function deletes dir. It returns ''true'' on success, ''false'' otherwise.
+
+=== rmRecursive(dir) ===
+
+Syntax
+
+
+var removed = efl.Ecore.File.rmRecursive(dir)
+
+
+Parameters
+
+ * dir - The name of the directory to delete.
+
+Return value
+
+ * boolean - ''true'' on success, ''false'' otherwise.
+
+This function delete dir and all its contents. If dir is a link only the link is removed. It returns ''true'' on success, ''false'' otherwise.
+
+=== shutdown() ===
+
+Syntax
+
+
+var status = efl.Ecore.File.shutdown();
+
+
+Return type
+
+ * number - 0 when the library is completely shut down, 1 or greater otherwise.
+
+This function shuts down the Ecore_File library. It returns 0 when it has been called the same number of times than ''efl.Ecore.File.init()''. In that case it shuts down all the services it uses.
+
+=== size(file) ===
+
+Syntax
+
+
+var size = efl.Ecore.File.size(file)
+
+
+Parameters
+
+ * file - The name of the file.
+
+Return value
+
+ * number - Return the size of the file in bytes, or 0 on failure.
+
+This function returns the size of file in bytes. On failure, it returns 0.
+
+=== stripExtension(path) ===
+
+Syntax
+
+
+var stripped_path = efl.Ecore.File.strip_ext(path)
+
+
+Parameters
+
+ * path - The name of the file.
+
+Return value
+
+ * string - A newly allocated string with the extension stripped out or NULL on errors.
+
+This function removes the extension from path and returns the result as a newly allocated string. If path is NULL, or on failure, the function returns NULL.
+
+=== symlink(src, dest) ===
+
+Syntax
+
+
+var linked = efl.Ecore.File.symlink(src, dest)
+
+
+Parameters
+
+ * src - The name of the file to link.
+ * dest - The name of link.
+
+Return value
+
+ * boolean - ''true'' on success, ''false'' otherwise.
+
+This function create the symbolic link dest of src. This function does not work on Windows. It returns ''true'' on success, ''false'' otherwise.
+
+=== unlink(file) ===
+
+Syntax
+
+
+efl.Ecore.File.unlink(file)
+
+
+Parameters
+
+ * file - The name of the file to delete.
+
+Return value
+
+ * boolean - ''true'' on success, ''false'' otherwise.
+
+This function deletes file. It returns ''true'' on success, ''false'' otherwise.
+
+==== Methods ====
+
+=== download.abort() ====
+
+Syntax
+
+downloadObj.abort();
+
+
+Aborts a single download.
diff --git a/public_html/data/pages/develop/legacy/api/javascript/ecore/idle.txt b/public_html/data/pages/develop/legacy/api/javascript/ecore/idle.txt
new file mode 100644
index 00000000..16ce7284
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/api/javascript/ecore/idle.txt
@@ -0,0 +1,125 @@
+===== Javascript binding API - Ecore Idler =====
+
+[[:develop:legacy:api:javascript:ecore|Back to the JS Ecore page]]
+
+**DRAFT**
+
+The idler functionality in Ecore allows for callbacks to be called when the program isn't handling events, timers or fd handlers.
+
+There are three types of idlers: Enterers, Idlers(proper) and Exiters. They are called, respectively, when the program is about to enter an idle state, when the program is in an idle state and when the program has just left an idle state and will begin processing events, timers or fd handlers.
+
+Enterer callbacks are good for updating your program's state if it has a state engine. Once all of the enterer handlers are called, the program will enter a "sleeping" state.
+
+Idler callbacks are called when the main loop has called all enterer handlers. They are useful for interfaces that require polling and timers would be too slow to use.
+
+Exiter callbacks are called when the main loop wakes up from an idle state.
+
+If no idler callbacks are specified, then the process literally goes to sleep. Otherwise, the idler callbacks are called continuously while the loop is "idle", using as much CPU as is available to the process.
+
+
+function mycallback() { ... };
+var idler = efl.Ecore.Idle.add(mycallback);
+
+
+Parameters
+
+ * callback - A function receiving no arguments to be called when the idler is activated.
+
+Return value
+
+ * object - An object wrapping the newly created idler.
+
+Add an idler handle to the event loop, returning a handle on success and NULL otherwise. The function ''callback'' will be called repeatedly while no other events are ready to be processed, as long as it returns 1 (or ''efl.Ecore.Mainloop.CALLBACK_RENEW''). A return of 0 (or ''efl.Ecore.Mainloop.CALLBACK_CANCEL'') deletes the idler.
+
+
+function mycallback() { ... };
+var idler = efl.Ecore.Idle.addEnterer(mycallback);
+
+
+Parameters
+
+ * callback - A function receiving no arguments to be called when the idler is activated.
+
+Return value
+
+ * object - An object wrapping the newly created idler.
+
+Add an idle enterer handler.
+
+
+function mycallback() { ... };
+var idler = efl.Ecore.Idle.addEntererBefore(mycallback);
+
+
+Parameters
+
+ * callback - A function receiving no arguments to be called when the idler is activated.
+
+Return value
+
+ * object - An object wrapping the newly created idler.
+
+Add an idle enterer handler at the start of the list so it gets called earlier than others.
+
+
+function mycallback() { ... };
+var idler = efl.Ecore.Idle.addExiter(mycallback);
+
+
+Parameters
+
+ * callback - A function receiving no arguments to be called when the idler is activated.
+
+Return value
+
+ * object - An object wrapping the newly created idler.
+
+Add an idle exiter handler.
+
+
+idlerObj.del();
+
+
+Deletes an idler from the list of active idlers.
diff --git a/public_html/data/pages/develop/legacy/api/javascript/ecore/job.txt b/public_html/data/pages/develop/legacy/api/javascript/ecore/job.txt
new file mode 100644
index 00000000..4e886b11
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/api/javascript/ecore/job.txt
@@ -0,0 +1,47 @@
+===== Javascript binding API - Ecore Job =====
+
+[[:develop:legacy:api:javascript:ecore|Back to the JS Ecore page]]
+
+**DRAFT**
+
+The Job module allows queuing work to be done when the current event is dealt with.
+
+Jobs are processed by the main loop similarly to events. They also will be executed in the order in which they were added.
+
+A good use for them is when you don't want to execute an action immediately, but want to give the control back to the main loop so that it will call your job callback when jobs start being processed (and if there are other jobs added before yours, they will be processed first). This also gives the chance to other actions in your program to cancel the job before it is started.
+
+==== Functions and methods ====
+
+=== add(callback) ===
+
+Syntax
+
+
+ function mycallback() { ... };
+ var job = efl.Ecore.Job.add(mycallback);
+
+
+Parameters
+
+ * callback - A function to be called when the job is handled.
+
+Return value
+
+ * object - An object wrapping the newly added job.
+ * null - If it was not possible to add the job to the queue.
+
+Adds a job to the event queue.
+
+
+jobObj.del();
+
+
+Deletes a job that has not been handled yet.
diff --git a/public_html/data/pages/develop/legacy/api/javascript/ecore/mainloop.txt b/public_html/data/pages/develop/legacy/api/javascript/ecore/mainloop.txt
new file mode 100644
index 00000000..084b5f18
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/api/javascript/ecore/mainloop.txt
@@ -0,0 +1,81 @@
+===== Javascript binding API - Ecore Mainloop =====
+
+[[:develop:legacy:api:javascript:ecore|Back to the JS Ecore page]]
+
+**DRAFT**
+
+This page discusses functions that are acting on Ecore's main loop itself or on events and infrastructure directly linked to it.
+
+Most programs only need to start and end the main loop, the rest of the function discussed here are meant to be used in special situations, and with great care.
+
+==== Constants ====
+
+=== Callback control ===
+
+These constants are used through ecore to control the lifetime of callbacks. They are usually returned by the callback to indicate if the callback should be kept for future activations, if it should be cancelled, etc.
+
+ * ''efl.Ecore.Mainloop.CALLBACK_CANCEL'' - Remove the callback from the active list.
+ * ''efl.Ecore.Mainloop.CALLBACK_DONE'' - Stop event handling.
+ * ''efl.Ecore.Mainloop.CALLBACK_PASS_ON'' - Pass the event to the next handler.
+ * ''efl.Ecore.Mainloop.CALLBACK_RENEW'' - Keep the callback active for future activation.
+
+==== Functions ====
+
+=== begin() ===
+
+Syntax
+
+
+efl.Ecore.Mainloop.begin();
+
+
+Runs the application main loop.
+
+=== getAnimatorTicked() ===
+
+Syntax
+
+
+var animatorTicked = efl.Ecore.Mainloop.getAnimatorTicked()
+
+
+Return value
+
+ * boolean - ''true'' if an animator has been called, ''false'' otherwise.
+
+Returns if an animator has ticked off during this loop iteration
+
+=== getNested() ===
+
+Syntax
+
+
+var isRunning = efl.Ecore.Mainloop.getNested()
+
+
+Return value
+
+ * number - an integer specifying if the ecore_main_loop is running, 0 if not running, > 0 if running
+
+Returns if the ecore_main_loop is running
+
+
+=== iterate() ===
+
+Syntax
+
+
+efl.Ecore.Mainloop.iterate()
+
+
+Runs a single iteration of the main loop to process everything on the queue.
+
+=== quit() ===
+
+Syntax
+
+
+efl.Ecore.Mainloop.quit()
+
+
+Quits the main loop once all the events currently on the queue have been processed.
diff --git a/public_html/data/pages/develop/legacy/api/javascript/ecore/poller.txt b/public_html/data/pages/develop/legacy/api/javascript/ecore/poller.txt
new file mode 100644
index 00000000..2b2ab3e0
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/api/javascript/ecore/poller.txt
@@ -0,0 +1,90 @@
+===== Javascript binding API - Ecore Poller =====
+
+[[:develop:legacy:api:javascript:ecore|Back to the JS Ecore page]]
+
+**DRAFT**
+
+The Poller module provides infrastructure for creation of pollers.
+
+Pollers are, in essence, callbacks that share a single timer per type. Because not all pollers need to be called at the same frequency the user may specify the frequency in ticks(each expiration of the shared timer is called a tick, in ecore poller parlance) for each added poller. Ecore pollers should only be used when the poller doesn't have specific requirements on the exact times to poll.
+
+This architecture means that the main loop is only woken up once to handle all pollers of that type, this will save power as the CPU has more of a chance to go into a low power state the longer it is asleep for, so this should be used in situations where power usage is a concern.
+
+For now, only 1 core poller type is supported: ''efl.Ecore.Poller.CORE'', the default interval for ''efl.Ecore.Poller.CORE'' is 0.125(or 1/8th) second.
+
+The creation of a poller is extremely simple and only requires one line:
+
+
+efl.Ecore.Poller.add(efl.Ecore.Poller.CORE, 1, my_poller_function);
+
+
+This sample creates a poller to call my_poller_function at every tick.
+
+==== Constants ====
+
+ * ''efl.Ecore.Poller.CORE'' - The default poller type.
+
+==== Functions ====
+
+=== add(pollerType, interval, callback) ===
+
+Syntax
+
+
+function mycallback() { ...};
+var poller = efl.Ecore.Poller.add(pollerType, interval, mycallback);
+
+
+Parameters
+
+ * pollerType - The type of poller. Must be ''efl.Ecore.Poller.CORE''
+ * interval - An integer, between 1 and 32768 inclusive, and must be a power of 2 (i.e. 1,2,4,8,16, ... 16384, 32768). The exact tick in which ''callback'' will be called is undefined, as only the interval between calls can be defined. Ecore will endeavor to keep pollers synchronized and to call as many in 1 wakeup event as possible. If ''interval'' is not a power of two, the closest power of 2 greater than interval will be used.
+ * callback - A function taking no arguments to be called when the poller is triggered. It must return either ''efl.Ecore.Mainloop.RENEW'' (or 1) or ''efl.Ecore.Mainloop.Cancel'' (or 0). If it returns the former, it will be called again on the next tick (according to ''interval''). If it returns the latter, it will be deleted automatically, making any references to the poller invalid.
+
+Return value
+
+ * object - An object wrapping this poller instance.
+ * null - If it was not possible to add the poller.
+
+=== pollerObject.del() ===
+
+Syntax
+
+
+pollerObj.del();
+
+
+Deletes the callee poller object from the pollers list.
+
+=== getPollInterval(type) ===
+
+Syntax
+
+
+ var interval = efl.Ecore.Poller.getPollInterval(type);
+
+
+Parameters
+
+ * type - The desired type of poller. Must be ''efl.Ecore.Poller.CORE''.
+
+Return value
+
+ * number - The current interval (in seconds) between ticks for the given type of poller.
+
+Gets the interval in seconds between successive ticks of the given poller type.
+
+=== setPollInterval(type, interval) ===
+
+Syntax
+
+
+efl.Ecore.Poller.setPollInterval(type, poll_time);
+
+
+Parameters
+
+ * type - The desired type of poller. Must be ''efl.Ecore.Poller.CORE''.
+ * poll_time - The time(in seconds) between ticks of the timer.
+
+Sets the interval (in seconds) between successive ticks for the poller type ''type''.
diff --git a/public_html/data/pages/develop/legacy/api/javascript/ecore/throttle.txt b/public_html/data/pages/develop/legacy/api/javascript/ecore/throttle.txt
new file mode 100644
index 00000000..22345ce8
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/api/javascript/ecore/throttle.txt
@@ -0,0 +1,37 @@
+===== Javascript binding API - Ecore Throttle =====
+
+[[:develop:legacy:api:javascript:ecore|Back to the JS Ecore page]]
+
+**DRAFT**
+
+These functions manage the amount of "voluntary throttling" ecore will do to its main loop while running. This is intended to be used to limit animations and wakeups when in a strict power management state. The higher the current throttle value (which can be retrieved by ''efl.Ecore.Throttle.get()''), the more throttling takes place. If the current throttle value is 0, then no throttling takes place at all.
+
+The value represents how long the ecore main loop will sleep (in seconds) before it goes into a fully idle state waiting for events, input or timing events to wake it up. For example, if the current throttle level is 0.5, then after every time the main loop cycles and goes into idle after processing all events, the main loop will explicitly sleep for 0.5 seconds before sitting and waiting for incoming events or timeouts, thus preventing animation, async IO and network handling etc. for that period of time. Of course these events, data and timeouts will be buffered, thus not losing anything, simply delaying when they get handled by the throttle value.
+
+==== Functions ====
+
+=== adjust(amount) ===
+
+Syntax
+
+
+ efl.Ecore.Throttle.adjust(amount);
+
+
+Parameters
+
+ * amount - A number with the amount, in seconds, that will be changed on the throttling setting. Can be positive (increase throttle) or negative (decrease throttle).
+
+Changes the throttling value by ''amount''.
+
+=== get() ===
+
+Syntax
+
+
+ var throttle = efl.Ecore.Throttle.get();
+
+
+Return value
+
+ * integer - The amount of throttling.
diff --git a/public_html/data/pages/develop/legacy/api/javascript/ecore/timer.txt b/public_html/data/pages/develop/legacy/api/javascript/ecore/timer.txt
new file mode 100644
index 00000000..72baa558
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/api/javascript/ecore/timer.txt
@@ -0,0 +1,111 @@
+===== Javascript binding API - Ecore Timer =====
+
+[[:develop:legacy:api:javascript:ecore|Back to the JS Ecore page]]
+
+**DRAFT**
+
+The Timer module provides flexible timer functionality.
+
+==== Functions ====
+
+=== add(time, callback) ===
+
+Syntax
+
+
+function mycallback() { ... };
+var timerObj = efl.Ecore.Timer.add(time, mycallback);
+
+
+Parameters
+
+ * time - A number with the time, in seconds, with the interval between consecutive activation of the timer.
+ * callback - A function taking no arguments to be called when the timer is triggered. It must return either ''efl.Ecore.Mainloop.RENEW'' (or 1) or ''efl.Ecore.Mainloop.Cancel'' (or 0). If it returns the former, it will be called again on the next tick (according to ''time''). If it returns the latter, it will be deleted automatically, making any references to the timer invalid.
+
+Return value
+
+ * object - An object wrapping the newly created timer.
+ * null - If it was not possible to add the timer.
+
+Adds a new timer that will call ''callback'' after ''time'' seconds.
+
+=== addLoop(time, callback) ===
+
+Syntax
+
+
+function mycallback() { ... };
+var timerObj = efl.Ecore.Timer.addLoop(time, mycallback);
+
+
+Parameters
+
+ * time - A number with the time, in seconds, with the interval between consecutive activation of the timer.
+ * callback - A function taking no arguments to be called when the timer is triggered. It must return either ''efl.Ecore.Mainloop.RENEW'' (or 1) or ''efl.Ecore.Mainloop.Cancel'' (or 0). If it returns the former, it will be called again on the next tick (according to ''time''). If it returns the latter, it will be deleted automatically, making any references to the timer invalid.
+
+Return value
+
+ * object - An object wrapping the newly created timer.
+ * null - If it was not possible to add the timer.
+
+Works like ''efl.Ecore.Timer.add'', but the reference "now" time is the time that the main loop ceased waiting for timeouts and/or events to come in or for signals or any other interrupt source. Use this UNLESS you absolutely must get the current actual timepoint.
+
+=== timerObj.del() ===
+
+Syntax
+
+
+timerObj.del();
+
+
+Deletes the callee timer object from the list of active timers.
+
+=== dump() ===
+
+Syntax
+
+
+var log = efl.Ecore.Timer.dump();
+
+
+Return value
+
+ * string - The human-readable log.
+
+This function returns a human-readable text-based log for Ecore Timer events.
+
+=== getPrecision() ===
+
+Syntax
+
+
+var precision = efl.Ecore.Timer.getPrecision();
+
+
+Return value
+
+ * number - The current precision for all timers.
+
+Retrieves the current precision used by timer infrastructure.
+
+=== setPrecision(precision) ===
+
+Syntax
+
+
+ efl.Ecore.Timer.setPrecision(precision);
+
+
+Parameters
+
+ * precision - A number with the allowed introduced timeout delay, in seconds.
+
+This sets the precision for **all** timers. The precision determines how much of a difference from the requested interval is acceptable. One common reason to use this function is to **increase** the allowed timeout and thus, **decrease** the precision of the timers, this is because less precise the timers result in the system waking up less often and thus consuming fewer resources.
+
+Be aware that kernel may delay delivery even further, these delays are always possible due other tasks having higher priorities or other scheduler policies.
+
+Example: We have 2 timers, one that expires in a 2.0s and another that expires in 2.1s, if precision is 0.1s, then the Ecore will request for the next expire to happen in 2.1s and not 2.0s and another one of 0.1 as it would before.
+
+
+new efl.List(typename);
+new efl.Array(typename);
+
+
+Parameters
+
+ * typename - A string with the type of the contained items for this container.
+
+Return type
+
+ * Array/List - A newly created container, empty.
+
+The constructor functions receive the name of the type that will be stored on the container. The following types are supported using the respective type name:
+
+ * Integers - "int"
+ * Floating point numbers - "float"
+ * Boolean values - "bool"
+ * Strings of characters - "string"
+
+==== Containers methods and operations ====
+
+The methods and operations below are supported for both types of sequences.
+
+=== concat(container) ===
+
+Syntax
+
+
+var new_container = objA.concat(objC);
+
+
+Parameters
+
+ * container - A container of the same type of the callee container, including the contained type.
+
+Return type
+
+ * Array/List - A container of the same type of the callee.
+
+Concatenates two containers returning the result as a new container object.
+
+
+var myvar = obj[index];
+
+
+Parameters
+
+ * index - An integer with the 0-based index desired.
+
+Return type
+
+ * T or ''undefined'' - When calling on a container wrapping items of type T. ''undefined'' if no object on that index.
+
+Works like Javascript Array ''[]'' operators. The items are 0-indexed, with the first element at index 0 and the last element with index equal to the number of elements of the sequence minus 1.
+
+Usage example:
+
+
+mylist[42] // Gets the 42nd element
+mylist[0] // Gets the first element.
+
+
+
+var index = obj.indexOf(target);
+
+
+Parameters
+
+ * target - An object/item to search for.
+
+Return type
+
+ * integer - The index of the item in the container. -1 if not found.
+
+Searches for ''target'' in the container and returns the index if found. If not found, return -1.
+
+Example usage:
+
+
+// obj = [100, 42, 55, 42]
+var idx = obj.indexOf(42); // idx = 1
+var idx2 = obj.indexOf(1000); // idx2 = -1
+
+
+=== lastIndexOf(target) ===
+
+Syntax
+
+
+var index = obj.lastIndexOf(target);
+
+
+Parameters
+
+ * target - An object/item to search for.
+
+Return type
+
+ * integer - The last index of the item in the container. -1 if not found.
+
+Searches backwards for ''target'', returning its index if found, or -1 otherwise.
+
+Example code:
+
+
+// obj = [100, 42, 55, 42]
+var idx = obj.lastIndexOf(42) // idx = 3
+var idx2 = obj.lastIndexOf(0) // idx2 = -1
+
+
+=== length property ===
+
+Syntax
+
+
+obj.length
+
+
+Return type
+
+ * integer - The number of elements on this container.
+
+Returns the number of elements on this container.
+
+
+var last = obj[obj.length - 1]
+
+
+=== pop() ===
+
+Syntax
+
+
+var value = obj.pop();
+
+
+Return type
+
+ * T or ''undefined'' - For containers wrapping items of type T. ''undefined'' if it was an empty space or the container was empty.
+
+Behaves like Javascript ''Array.pop()'', removing the last element of the list and returning it.
+
+Example code:
+
+// obj is [1,2,3,4,5]
+var value = obj.pop(); // value now is 5 and obj is [1,2,3,4]
+
+
+
+var size = obj.push(item)
+
+
+Parameters
+
+ * item - An object/item to append to the container.
+
+Return type
+
+ * integer - The size of the container after pushing.
+
+Works like the Javascript ''Array.push(item)'', appending the item to the end of the sequence. For lists, a new node is created at the end. For Arrays, the item is set to the end of the array, and it may grow as needed.
+
+The method returns the size of the container after adding the new element.
+
+Usage example:
+
+
+var mylist = new efl.List("int");
+mylist.push(3);
+var myarray = new efl.Array("string");
+var new_size = myarray.push("Foobar");
+
+
+
+var obj = new efl.List("float");
+obj.push("44"); // CRASH!!!!
+
+
+obj[index] = value;
+var v = (obj[index] = value);
+
+
+Parameters
+
+ * index - An integer with the target slot on the container.
+ * value - An object/item to be set to the target position.
+
+Return type
+
+ * object - The same object that was assigned (''value'').
+
+Works like Javascript indexed setter method. It sets the value at the given index to the given value, //generally// not changing the container size (see note below). On success, the operation returns the value recently set.
+
+
+var obj = new efl.List("int");
+obj[42] = 42; // Obj now has 42 undefined's leading up to 42 in the last position.
+
+
+var obj = new efl.List("int");
+obj.push(3) // [3]
+obj.push(2) // [3,2]
+obj[0] = 42; // [42, 2]
+
+
+
+var x = obj.slice();
+var y = obj.slice(startIndex);
+var z = obj.slice(startIndex, endIndex);
+
+
+Parameters
+
+ * begin - An integer with the index of the start of the slice.
+ * end - An integer with the index of the end of the slice.
+
+Return type
+
+ * container - A container of the same type of the callee.
+
+The slice method retrieves portions of the container. The first argument is the index to start the slice operation (default is 0, beginning of the list) and the second argument indicates the index where the extraction should stop, not including it (defaults to the container size). In interval notation, it returns ''[begin, end)''.
+
+It also performs a shallow copy like concat().
+
+Example usage:
+
+
+var same = obj.slice() // All elements from obj are in the returned container.
+var other = obj.slice(1); // Everything but the first element.
+var another = obj.slice (4, 10); // From the fifth element to the tenth.
+
+
+=== toString() ===
+
+Syntax
+
+
+obj.toString();
+
+
+Return type
+
+ * string - A comma-separated list of the items in this container.
+
+Generates a comma-separated string with the representation of the items in this container.
diff --git a/public_html/data/pages/develop/legacy/api/javascript/eina/logging.txt b/public_html/data/pages/develop/legacy/api/javascript/eina/logging.txt
new file mode 100644
index 00000000..6d7d5a2a
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/api/javascript/eina/logging.txt
@@ -0,0 +1,511 @@
+===== Javascript binding API - Eina Logging =====
+
+[[:develop:legacy:api:javascript:eina|Back to the JS Eina page]]
+
+The Eina framework provides a comprehensive system to manage logging events in your application. For example, it can group message in domains, assign different levels to the messages. There's also the possibility of intercepting the log messages, allowing further processing.
+
+The main workhorse is ''efl.log_print''. It will call the function defined in ''efl.log_print_cb_set'', defaulting to a function that will print to the stderr. You can pass many options to ''log_print'' to control the output.
+
+==== Constants ====
+
+=== Levels ===
+
+The log levels are ranked according to their usual severity. For example, critical errors can be configured to abort the application while debug messages are usually required only in development or when triaging bugs. In descending order of severity:
+
+ * ''efl.LOG_LEVEL_CRITICAL''
+ * ''efl.LOG_LEVEL_ERR''
+ * ''efl.LOG_LEVEL_WARN''
+ * ''efl.LOG_LEVEL_INFO''
+ * ''efl.LOG_LEVEL_DBG''
+
+The levels are also ordered numerically, with the most severe (CRITICAL) being the smallest value and the least severe (DBG) the largest value.
+
+=== State ===
+
+The states are used in ''efl.logTiming'' to indicate transitions in phases for a given domain.
+
+ * ''efl.LOG_STATE_START''
+ * ''efl.LOG_STATE_STOP''
+
+=== Domain ===
+
+Log domains are used to group messages, like messages from different modules, different features, etc. You can filter domains by means of log levels through ''efl.log_domain_level_set''. They are represented by a name that you pass to ''efl.registerLogDomain'' and an id (integer) that it returns.
+
+By default, Eina offers a global domain to be used by the application.
+
+ * ''efl.LOG_DOMAIN_GLOBAL''
+
+=== Colors ===
+
+The logging system uses the [[http://misc.flogisoft.com/bash/tip_colors_and_formatting|terminal colors format]] to specify a color for a given domain. With the default callback, only the domain name is shown with the given color. Currently, the following string constants are exported as shortcuts:
+
+ * ''efl.COLOR_LIGHTRED''
+ * ''efl.COLOR_RED''
+ * ''efl.COLOR_LIGHTBLUE''
+ * ''efl.COLOR_BLUE''
+ * ''efl.COLOR_GREEN''
+ * ''efl.COLOR_YELLOW''
+ * ''efl.COLOR_ORANGE''
+ * ''efl.COLOR_WHITE''
+ * ''efl.COLOR_LIGHTCYAN''
+ * ''efl.COLOR_CYAN''
+ * ''efl.COLOR_RESET''
+ * ''efl.COLOR_HIGH''
+
+==== Environment Variables ====
+
+A number of environment variables affect the behavior of the log module. These are:
+
+ * ''EINA_LOG_ABORT'' - If true, messages with severity of at least the level returned from ''efl.getLogAbortOnCriticalLevel'' or in the environment variable ''EINA_LOG_ABORT_LEVEL'' will trigger program termination. Can be overriden through ''efl.setLogAbortOnCritical''.
+ * ''EINA_LOG_ABORT_LEVEL'' - The least severe level that can trigger program termination. Can be overriden through ''efl.setLogAbortOnCriticalLevel''.
+ * ''EINA_LOG_COLOR_DISABLE'' - If true, color printing is disabled. See ''efl.setLogColorDisable''.
+ * ''EINA_LOG_FILE_DISABLE'' - If true, filename in the messages is disabled. See ''efl.setLogFileDisable''.
+ * ''EINA_LOG_FUNCTION_DISABLE'' - If true, function name in the messages is disabled. See ''efl.setLogFunctionDisable''.
+ * ''EINA_LOG_LEVEL'' - The least severe level that will trigger log events to be shown. Can be overriden in ''efl.setLogLevel''.
+ * ''EINA_LOG_LEVELS'' - Works like ''EINA_LOG_LEVEL'', but on a per-domain basis. It take values as ''
+var willBeLogged = efl.checkLogLevel(level);
+
+
+Parameters
+
+ * level - An integer representing the target log level. Usually one of the ''efl.LOG_LEVEL_*'' constants.
+
+Return value
+
+ * boolean - True if the level is triggering log level.
+
+Checks whether the given log level will be logged or ignored.
+
+=== getLogAbortOnCritical() ===
+
+Syntax
+
+
+var willAbortOnCritical = efl.getLogAbortOnCritical();
+
+
+Return value
+
+ * boolean - True if will abort upon triggering a critical level.
+
+Returns ''true'' if events with level equal or smaller to ''efl.getLogAbortOnCriticalLevel()'' should abort the program.
+
+=== getLogAbortOnCriticalLevel() ===
+
+Syntax
+
+
+var abortLevel = efl.getLogAbortOnCriticalLevel();
+
+
+Return type
+
+ * integer - The least severe level that will trigger termination. Usually one of the ''efl.LOG_LEVEL_*'' constants.
+
+Returns the least severe (largest numerically) level that will trigger the program termination upon happening. Events most severe than the value returned also trigger termination.
+
+=== getLogColorDisable() ===
+
+Syntax
+
+
+var colorDisabled = efl.getLogColorDisable();
+
+
+Return type
+
+ * boolean - True if color logging is disabled.
+
+Determines whether colors are disabled in the log messages.
+
+=== getLogDomainLevel(domain) ===
+
+Syntax
+
+
+var level = efl.getLogDomainLevel(domainname);
+
+
+Parameters
+
+ * domainname - A string with the name of the target domain.
+
+Return type
+
+ * integer - The level associated to the given domain.
+
+Gets the domain level given its name. If the domain was not yet registered through ''efl.registerLogDomain'' but is pending after a previous ''efl.setLogDomainLevel'' call or the environment variable ''EINA_LOG_LEVELS'', the respective value is returned. If nothing else was found, the default level from ''efl.getLogLevel'' is returned.
+
+=== getLogDomainRegisteredLevel(name) ===
+
+Syntax
+
+
+var level = efl.getLogDomainRegisteredLevel(domain);
+
+
+Parameters
+
+ * domain - A string with the name of the target domain.
+
+Return type
+
+ * integer - The level associated to the given domain.
+
+Gets the level for the given domain. Works much faster than ''efl.getLogDomainLevel'' but relies on the domain being previously registered with ''efl.registerLogDomain''.
+
+=== getLogFileDisable() ===
+
+Syntax
+
+
+var isFileDisabled = efl.getLogFileDisabled();
+
+
+Return type
+
+ * boolean - True if the filename in the log is disabled.
+
+Returns whether the originating file name is disabled from log messages.
+
+=== getLogFunctionDisable() ===
+
+Syntax
+
+
+var isFunctionDisabled = efl.getLogFunctionDisabled();
+
+
+Return type
+
+ * boolean - True if the function name is disabled in logging messages.
+
+Returns whether the originating function name is disabled from log messages.
+
+=== getLogLevel() ===
+
+Syntax
+
+
+var default_level = efl.getLogLevel();
+
+
+Return type
+
+ * integer - The default level of the logging system. Usually one of the ''efl.LOG_LEVEL*'' constants.
+
+Returns the default log level. Messages less severe than this level will be ignored by ''efl.logPrint''.
+
+=== logCritical(message) ===
+
+Syntax
+
+
+efl.logCritical(message);
+
+
+Parameters
+
+ * message - The string to be logged.
+
+Helper wrapper around ''efl.logPrint'' that prints a message with ''efl.LOG_LEVEL_CRITICAL'' to the global domain.
+
+=== logDebug(message) ===
+
+Syntax
+
+
+efl.logDebug(message);
+
+
+Parameters
+
+ * message - The string to be logged.
+
+Helper wrapper around ''efl.logPrint'' that prints a message with ''efl.LOG_LEVEL_DBG'' to the global domain.
+
+=== logError(message) ===
+
+Syntax
+
+
+efl.logError(message);
+
+
+Parameters
+
+ * message - The string to be logged.
+
+Helper wrapper around ''efl.logPrint'' that prints a message with ''efl.LOG_LEVEL_ERR'' to the global domain.
+
+=== logInfo(message) ===
+
+Syntax
+
+
+efl.logInfo(message);
+
+
+Parameters
+
+ * message - The string to be logged.
+
+Helper wrapper around ''efl.logPrint'' that prints a message with ''efl.LOG_LEVEL_INFO'' to the global domain.
+
+=== logPrint(domain, level, message) ===
+
+Syntax
+
+
+efl.logPrint(domain, level, message)
+
+
+Parameters
+
+ * domain - The id (integer) of the target domain.
+ * level - The severity level (integer) of the event. Usually one of the ''efl.LOG_LEVEL_*'' constants.
+ * message - The string to be logged.
+
+Prints the string ''message'' related ''domain'' with severity ''level''. If ''level'' is of a lower severity (higher numerical value) than the value from ''efl.getLogLevel'', the call is ignored.
+
+For the global domain, you can use the helper functions ''efl.logCritical'', ''efl.logInfo'' and related.
+
+Example usage:
+
+
+efl.logPrint(efl.LOG_DOMAIN_GLOBAL, efl.LOG_LEVEL_WARN, "Warning. Exclamation point. Warning.");
+efl.logPrint(mydomain, efl.LOG_LEVEL_INFO, "Information. We want information.");
+
+
+=== logTiming(domain, state, phase) ===
+
+Syntax
+
+
+efl.logTiming(domainId, state, phase);
+
+
+Parameters
+
+ * domainId - The id of the target domain
+ * state - State indicating if we are starting or stopping a phase.
+ * phase - The name of the phase.
+
+Starts or stop the timing of a phase. If given ''efl.LOG_STATE_START'', it assumes the previously started phase has stopped.
+
+=== logWarning(message) ===
+
+Syntax
+
+
+efl.logWarning(message);
+
+
+Parameters
+
+ * message - The string to be logged.
+
+Helper wrapper around ''efl.logPrint'' what prints a message with ''efl.LOG_LEVEL_WARN'' to the global domain.
+
+=== registerLogDomain(name, color) ===
+
+Syntax
+
+
+var domainId = efl.registerLogDomain(domainname, color);
+
+
+Parameters
+
+ * domainname - A string with the name of the new domain
+ * color - A string with a color description according to [[http://misc.flogisoft.com/bash/tip_colors_and_formatting|VT]] specs. Usually one of the ''efl.COLOR_*'' constants.
+
+Registers a new domain with name ''name'' and color ''color''. The returned id will be used to reference the domain on the other log functions. If a negative number is returned, a log event occurred.
+
+Example usage
+
+
+var myid = efl.registerLogDomain("mydomain", efl.COLOR_CYAN);
+
+
+=== setLogAbortOnCritical(boolvar) ===
+
+Syntax
+
+
+efl.setLogAbortOnCritical(boolvar);
+
+
+Parameters
+
+ * boolvar - Flag indicating if the program should terminate if a message of the configured level occurs.
+
+Sets whether the program should terminate upon a logging event with a level at least of the same severity of ''efl.getLogAbortOnCriticalLevel''.
+
+
+efl.setLogAbortOnCritical(level);
+
+
+Parameters
+
+ * level - An integer with the target level. Usually one of the ''efl.LOG_LEVEL_*'' constants.
+
+Sets the minimal message level the program should check if it should abort. Messages less severe than ''level'' are ignored for this check.
+
+
+efl.setLogColorDisable(boolvar);
+
+
+Parameters
+
+ * boolvar - Flag indicating if the color should be disabled.
+
+Sets whether the colored logging should be disabled or not.
+
+=== setLogDomainLevel(domainname, level) ===
+
+Syntax
+
+
+efl.setLogDomainLevel(name, level);
+
+
+Parameters
+
+ * name - The name of the target domain.
+ * level - An integer with the target level. Usually one of the ''efl.LOG_LEVEL_*'' constants.
+
+Sets the trigger level for a given domain with name ''name''. It works like setting the environment variable ''EINA_LOG_LEVELS=
+efl.setLogDomainRegisteredLevel(name, level);
+
+
+Parameters
+
+ * name - The name of a previously registered domain.
+ * level - An integer with the target level. Usually one of the ''efl.LOG_LEVEL_*'' constants.
+
+Sets the trigger level for a given domain with name ''name''. It's a much faster version of ''efl.setLogDomainLevel'', requiring a previously registered domain.
+
+=== setLogFileDisable(bool) ===
+
+Syntax
+
+
+efl.setLogFileDisable(boolvar);
+
+
+Parameters
+
+ * boolvar - Flag indicating if the filename should be disabled.
+
+Sets whether the filename logging should be disabled or not.
+
+=== setLogFunctionDisable(enable) ===
+
+Syntax
+
+
+efl.setLogFunctionDisable(boolvar);
+
+
+Parameters
+
+ * boolvar - Flag indicating if the function name should be disabled.
+
+Sets whether the function name logging should be disabled or not.
+
+=== setLogLevel(level) ===
+
+Syntax
+
+
+efl.setLogLevel(level);
+
+
+Parameters
+
+ * level - An integer with the target level. Usually one of the ''efl.LOG_LEVEL_*'' constants.
+
+Sets the default level for log events. Messages less severe (higher numerical value) than ''level'' will be ignored.
+
+
+function callback(name, color, level, file, func, line, message){...}
+efl.setLogPrintCb(callback);
+
+
+Parameters
+
+ * callback - A function receiving the following arguments, in order: The domain name (string), the color (string), the level (integer), the file name (string), the function (string), the line number (integer) and the log message (string).
+
+Sets the callback that will be called whenever a log command would be executed, i.e., above or equal to the current log level, is called. It receives as arguments the domain, output color, level, filename, function and line number of the call, and finally the message. It allows further customization of the output.
+
+
+function mycallback(domain, color, level, file, func, line, message) {
+ // Save log to file, print, etc.
+}
+
+efl.setLogPrintCb(callback);
+efl.logWarning("Kaboom"); // Calls mycallback if efl.LOG_LEVEL_WARN is a triggering level.
+
+
+=== unregisterLogDomain(domainId) ===
+
+Syntax
+
+
+efl.unregisterDomain(domain);
+
+
+Parameters
+
+ * domainid - The id of the domain to be deleted.
+
+Forgets about a logging domain registered from ''efl.registerLogDomain''.
diff --git a/public_html/data/pages/develop/legacy/api/javascript/eina/value.txt b/public_html/data/pages/develop/legacy/api/javascript/eina/value.txt
new file mode 100644
index 00000000..8835cace
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/api/javascript/eina/value.txt
@@ -0,0 +1,51 @@
+====== Javascript binding API - Generic value storage ======
+
+[[:develop:legacy:api::javascript::eina|Back to the JS Eina page]]
+
+Eina provides a way to abstract the storage of generic values in an extensible and efficient way, aimed at simple data types.
+
+==== Constructors and methods ====
+
+=== Constructor ===
+
+Syntax
+
+
+var obj = new efl.value(value);
+
+
+Parameters
+
+ * value - The value to be wrapped. Currently, numerical and string types are supported.
+
+Return type
+
+ * Value instance - The newly created wrapper.
+
+Creates a new value wrapper. It can be passed to the native functions and back.
+
+Example usage
+
+
+var myvalue = new efl.value(42);
+
+
+=== get() ===
+
+Syntax
+
+
+var unwrapped = valueobj.get();
+
+
+Unwraps a value and retrieve its contents.
+
+=== set(value) ===
+
+Syntax
+
+
+valueobj.set(somevalue);
+
+
+Replaces the wrapped value with the given value. You can set any of the supported values, there's no restriction on the value being of the type set on at the time of instantiation.
diff --git a/public_html/data/pages/develop/legacy/api/javascript/eio.txt b/public_html/data/pages/develop/legacy/api/javascript/eio.txt
new file mode 100644
index 00000000..d45cd712
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/api/javascript/eio.txt
@@ -0,0 +1,503 @@
+====== Javascript binding API - Eio - File and directory management ======
+
+[[:develop:legacy:api:javascript:|Back to the JS EFL page]]
+
+The Eio module provides functions to work with file and directories, allowing a finer control over them with monitors and callbacks during the operations, while Ecore provides simple wrappers over the console commands.
+
+==== Constants ====
+
+=== File operations ===
+
+These constants represent the operations that can be done on files and directories.
+
+ * ''efl.Eio.FILE_COPY'' - I/O operation is about a specific file copy.
+ * ''efl.Eio.FILE_MOVE'' - I/O operation is about a specific file move.
+ * ''efl.Eio.DIR_COPY'' - I/O operation is about a specific directory copy.
+ * ''efl.Eio.DIR_MOVE'' - I/O operation is about a specific directory move.
+ * ''efl.Eio.UNLINK'' - I/O operation is about destroying a path: source will point to base path to be destroyed, and dest will point to to ath destroyed by this I/O.
+ * ''efl.Eio.FILE_GETPWNAM'' - I/O operation is trying to get uid from user name.
+ * ''efl.Eio.FILE_GETGRNAM'' - I/O operation is trying to get gid from user name.
+
+=== Monitoring constants ===
+
+ * ''efl.Eio.MONITOR_FILE_CREATED'' - New file created in a watched directory.
+ * ''efl.Eio.MONITOR_FILE_DELETED'' - Watched file or file in watched directory was deleted.
+ * ''efl.Eio.MONITOR_FILE_MODIFIED'' - File modified in a watched directory.
+ * ''efl.Eio.MONITOR_FILE_CLOSED'' - File closed in a watched directory.
+ * ''efl.Eio.MONITOR_DIRECTORY_CREATED'' - New directory created in a watched directory.
+ * ''efl.Eio.MONITOR_DIRECTORY_DELETED'' - A directory has been deleted: this can be either a watched directory or one of its subdirectories.
+ * ''efl.Eio.MONITOR_DIRECTORY_MODIFIED'' - A directory has been modified in a watched directory.
+ * ''efl.Eio.MONITOR_DIRECTORY_CLOSED'' - A directory has been closed in a watched directory.
+ * ''efl.Eio.MONITOR_SELF_RENAME'' - The monitored path has been renamed, an error could happen just after if the renamed path doesn't exist.
+ * ''efl.Eio.MONITOR_SELF_DELETED'' - The monitored path has been removed.
+ * ''efl.Eio.MONITOR_ERROR'' - During operation the monitor failed and will no longer work.
+
+==== Functions ====
+
+=== addMonitor(path) ===
+
+Syntax
+
+
+var monitor = efl.Eio.monitorAdd(path);
+
+
+Parameters
+
+ * path - file/directory to monitor.
+
+Return value
+
+ * object - An Eio Monitor instance.
+
+This function will add the given path to its internal list of files to monitor. It utilizes the inotify mechanism introduced in kernel 2.6.13 for passive monitoring.
+
+These functions use the best available method to monitor changes on a specified directory or file. They send ecore events when changes occur, and they maintain internal refcounts to reduce resource consumption on duplicate monitor targets.
+
+=== chmodFile(path, mode, done_cb, error_cb) ===
+
+Syntax
+
+
+function done_cb(operation) {...};
+function error_cb(operation, error) {...};
+var operation = efl.Eio.chmodFile(path, mode, done_cb, error_cb);
+
+
+Parameters
+
+ * path - The directory path to change mode.
+ * mode - The permission to set, follow ''(mode & ~umask & 0777)''.
+ * done_cb - Callback called when the operation is completed.
+ * error_cb - Callback called from if something goes wrong.
+
+Return value
+
+ * object - A reference to the I/O operation as an Eio File object.
+
+Set a new permission of a path changing it to the mode passed as argument. It's equivalent to the chmod command.
+
+=== chownFile(path, user, group, done_cb, error_cb) ===
+
+Syntax
+
+
+function done_cb(operation) {...};
+function error_cb(operation, error) {...};
+var operation = efl.Eio.chownFile(path, user, group, done_cb, error_cb);
+
+
+Parameters
+
+ * path - The directory path to change owner.
+ * user - The new user to set (can be NULL).
+ * group - The new group to set (can be NULL).
+ * done_cb - Callback called when the operation is completed.
+ * error_cb - Callback called from if something goes wrong.
+
+Return value
+
+ * object - A reference to the I/O operation as an Eio File object.
+
+This function will change the owner of a path, setting it to the user and group passed as argument. It's equivalent to the chown shell command.
+
+=== copyDir(source, dest, filter_cb, progress_cb, done_cb, error_cb) ===
+
+Syntax
+
+
+function filter_cb(operation, info) {...};
+function progress_cb(operation, info) {...};
+function done_cb(operation) {...};
+function error_cb(operation, error) {...};
+var operation = efl.Eio.copyDir(source, dest, filter_cb, progress_cb, done_cb, error_cb);
+
+
+Parameters
+
+ * path - Should be the name of the directory to move the data from.
+ * dest - Should be the name of the directory to move the data to.
+ * filter_cb - Possible to deny the move of some files/directories.
+ * progress_cb - Callback called to know the progress of the move.
+ * done_cb - Callback called when the operation is completed.
+ * error_cb - Callback called from if something goes wrong.
+
+Return value
+
+ * object - A reference to the I/O operation as an Eio File object.
+
+Move a directory and its content asynchronously.
+
+This function will copy a directory and all its content from source to dest. It will try to use splice if possible, if not it will fallback to mmap/write. It will try to preserve access rights, but not user/group identity. Every file will be passed to the filter_cb, so it's your job to decide if you want to pass the file to the main_cb or not. Return ''true'' to pass it to the main_cb or ''false'' to ignore it.
+
+The ''progress_cb'' receives the same arguments as its ''efl.Eio.moveFile()'' counterpart.
+
+The ''filter_cb'' is called for each member of the directory and receives as argument the Eio File operation handle and the directory entry information, the latter as an object with the following keys:
+
+ * ''type'' - The type of the entry (file, etc).
+ * ''path'' - The path for the entry.
+
+=== copyFile(source, dest, progress_cb, done_cb, error_cb) ===
+
+Syntax
+
+
+function progress_cb(operation, info) {...};
+function done_cb(operation) {...};
+function error_cb(operation, error) {...};
+var operation = efl.Eio.copyFile(source, dest, progress_cb, done_cb, error_cb);
+
+
+Parameters
+
+ * path - Should be the name of the file to copy the data from.
+ * dest - Should be the name of the file to copy the data to.
+ * progress_cb - Callback called to know the progress of the copy.
+ * done_cb - Callback called when the operation is completed.
+ * error_cb - Callback called from if something goes wrong.
+
+Return value
+
+ * object - A reference to the I/O operation as an Eio File object.
+
+This function will copy a file from source to dest. It will try to use splice if possible, if not it will fallback to mmap/write. It will try to preserve access rights, but not user/group identification.
+
+The ''info'' argument to ''progress_cb'' is an object with the following keys:
+
+ * ''op'' - The operation being worked on.
+ * ''current'' - Current step in the I/O operation.
+ * ''max'' - Number of total steps to complete.
+ * ''percent'' - Percent done.
+ * ''source'' - Source of I/O operation.
+ * ''dest'' - Destination of I/O operation.
+
+=== init() ===
+
+Syntax
+
+
+var code = efl.Eio.init();
+
+
+Return type
+
+ * integer - The number of times Eio was initialized (aka the number of current users).
+
+Initializes the Eio subsystem.
+
+=== lsFile(dir, filter_cb, main_cb, done_cb, error_cb) ===
+
+Syntax
+
+
+function filter_cb(operation, info) {...};
+function main_cb(operation, info) {...};
+function done_cb(operation) {...};
+function error_cb(operation, error) {...};
+var operation = efl.Eio.lsFile(dir, filter_cb, main_cb, done_cb, error_cb);
+
+
+Parameters
+
+ * path - Path of the directory to be listed.
+ * filter_cb - Possible to deny the given file/dir from appearing in ''main_cb''.
+ * progress_cb - Callback called for each file that was not filtered.
+ * done_cb - Callback called when the operation is completed.
+ * error_cb - Callback called from if something goes wrong or the operation was canceled.
+
+This function is responsible for listing the content of a directory without blocking your application. It's equivalent to the "ls" shell command. Every file will be passed to the filter_cb, so it's your job to decide if you want to pass the file to the main_cb or not. Return ''true'' to pass it to the ''main_cb'' or ''false'' to ignore it. It runs the native ''eina_file_ls()'' on a separate thread.
+
+=== mkdirFile(path, mode, done_cb, error_cb) ===
+
+Syntax
+
+
+function done_cb(operation) {...};
+function error_cb(operation, error) {...};
+var operation = efl.Eio.mkdirFile(path, mode, done_cb, error_cb);
+
+
+Parameters
+
+ * path - The directory path to create.
+ * mode - The permission to set, follow ''(mode & ~umask & 0777)''.
+ * done_cb - Callback called when the operation is completed.
+ * error_cb - Callback called from if something goes wrong.
+
+Return value
+
+ * object - A reference to the I/O operation as an Eio File object.
+
+Creates a new directory using the mode provided.
+
+=== moveDir(source, dest, filter_cb, progress_cb, done_cb, error_cb) ===
+
+Syntax
+
+
+function filter_cb(operation, info) {...};
+function progress_cb(operation, info) {...};
+function done_cb(operation) {...};
+function error_cb(operation, error) {...};
+var operation = efl.Eio.moveDir(source, dest, filter_cb, progress_cb, done_cb, error_cb);
+
+
+Parameters
+
+ * path - Should be the name of the directory to move the data from.
+ * dest - Should be the name of the directory to move the data to.
+ * filter_cb - Possible to deny the move of some files/directories.
+ * progress_cb - Callback called to know the progress of the move.
+ * done_cb - Callback called when the operation is completed.
+ * error_cb - Callback called from if something goes wrong.
+
+Return value
+
+ * object - A reference to the I/O operation as an Eio File object.
+
+Move a directory and its content asynchronously.
+
+This function will move a directory and all its content from source to dest. It will try first to rename the directory, if not it will try to use splice if possible, if not it will fallback to mmap/write. It will try to preserve access rights, but not user/group identity. Every file will be passed to the filter_cb, so it's your job to decide if you want to pass the file to the main_cb or not. Return ''true'' to pass it to the main_cb or ''false'' to ignore it.
+
+The ''progress_cb'' receives the same arguments as its ''efl.Eio.moveFile()'' counterpart.
+
+The ''filter_cb'' is called for each member of the directory and receives as argument the Eio File operation handle and the directory entry information, the latter as an object with the following keys:
+
+ * ''type'' - The type of the entry (file, etc).
+ * ''path'' - The path for the entry.
+
+
+function progress_cb(operation, info) {...};
+function done_cb(operation) {...};
+function error_cb(operation, error) {...};
+var operation = efl.Eio.moveFile(source, dest, progress_cb, done_cb, error_cb);
+
+
+Parameters
+
+ * path - Should be the name of the file to move the data from.
+ * dest - Should be the name of the file to move the data to.
+ * progress_cb - Callback called to know the progress of the move.
+ * done_cb - Callback called when the operation is completed.
+ * error_cb - Callback called from if something goes wrong.
+
+Return value
+
+ * object - A reference to the I/O operation as an Eio File object.
+
+This function will move a file from source to dest. It will try to use splice if possible, if not it will fallback to mmap/write. It will try to preserve access rights, but not user/group identification.
+
+The ''info'' argument to ''progress_cb'' is an object with the following keys:
+
+ * ''op'' - The operation being worked on.
+ * ''current'' - Current step in the I/O operation.
+ * ''max'' - Number of total steps to complete.
+ * ''percent'' - Percent done.
+ * ''source'' - Source of I/O operation.
+ * ''dest'' - Destination of I/O operation.
+
+=== openFile(path, open_cb, error_cb) ===
+
+
+function open_cb(operation, file) {...};
+function error_cb(operation, error) {...};
+var operation = efl.Eio.openFile(path, open_cb, error_cb);
+
+
+Parameters
+
+ * path - The path to be open.
+ * shared - If it's a shared memory file.
+ * open_cb - Callback called when the operation is completed.
+ * error_cb - Callback called from if something goes wrong.
+
+Return value
+
+ * object - A reference to the I/O operation as an Eio File object.
+
+Asynchronously open a file. The ''open_cb'' callback is called when the file is open and will receive the operation handle and the file handle respectively, the latter being an Eina File.
+
+=== shutdown() ===
+
+Syntax
+
+
+var code = efl.Eio.shutdown();
+
+
+Return type
+
+ * integer - The number of pending users of Eio (aka the number of pending ''init()'' calls without a matching ''shutdown()'').
+
+Shuts down the Eio subsystem.
+
+=== unlinkFile(path, done_cb, error_cb) ===
+
+Syntax
+
+
+function done_cb(operation) {...};
+function error_cb(operation, error) {...};
+var operation = efl.Eio.unlinkFile(path, done_cb, error_cb);
+
+
+Parameters
+
+ * path - The directory path to unlink.
+ * done_cb - Callback called when the operation is completed.
+ * error_cb - Callback called from if something goes wrong.
+
+Return value
+
+ * object - A reference to the I/O operation as an Eio File object.
+
+This function will erase a file.
+
+=== unlinkDir(path, filter_cb, progress_cb, done_cb, error_cb) ===
+
+Syntax
+
+
+function filter_cb(operation, info) {...};
+function progress_cb(operation, info) {...};
+function done_cb(operation) {...};
+function error_cb(operation, error) {...};
+var operation = efl.Eio.unlinkDir(path, dest, filter_cb, progress_cb, done_cb, error_cb);
+
+
+Parameters
+
+ * path - Should be the name of the directory to destroy.
+ * filter_cb - Possible to deny the destruction of some files/directories.
+ * progress_cb - Callback called to know the progress of the move.
+ * done_cb - Callback called when the operation is completed.
+ * error_cb - Callback called from if something goes wrong.
+
+Return value
+
+ * object - A reference to the I/O operation as an Eio File object.
+
+This function will remove a directory and all its content. Every file will be passed to the filter_cb, so it's your job to decide if you want to pass the file to the main_cb or not. Return ''true'' to pass it to the main_cb or ''false'' to ignore it.
+
+The ''progress_cb'' receives the same arguments as its ''efl.Eio.moveFile()'' counterpart.
+
+The ''filter_cb'' is called for each member of the directory and receives as argument the Eio File operation handle and the directory entry information, the latter as an object with the following keys:
+
+ * ''type'' - The type of the entry (file, etc).
+ * ''path'' - The path for the entry.
+
+
+==== Helper handler functions ====
+
+These functions provide syntatic sugar to create event handlers for monitored items. Each function creates a handler watching the respective monitor event, i.e. ''addEventMonitorFileClosedHandler'' will watch for ''efl.EIO.MONITOR_FILE_CLOSED'' events. They are related to ''efl.Ecore.Event.addHandler()''.
+
+Syntax
+
+
+function callback(eventType) {...};
+var handler = efl.Eio.addEventMonitor...Handler();
+
+
+Parameters
+
+ * callback - The callback to be called when the event occurs.
+
+Return value
+
+ * object - An instance of a handler.
+
+Here are the functions
+
+ * ''efl.Eio.addEventMonitorDirectoryClosedHandler''
+ * ''efl.Eio.addEventMonitorDirectoryCreatedHandler''
+ * ''efl.Eio.addEventMonitorDirectoryDeletedHandler''
+ * ''efl.Eio.addEventMonitorDirectoryModifiedHandler''
+ * ''efl.Eio.addEventMonitorErrorHandler''
+ * ''efl.Eio.addEventMonitorFileClosedHandler''
+ * ''efl.Eio.addEventMonitorFileCreatedHandler''
+ * ''efl.Eio.addEventMonitorFileDeletedHandler''
+ * ''efl.Eio.addEventMonitorFileModifiedHandler''
+ * ''efl.Eio.addEventMonitorSelfDeleteHandler''
+ * ''efl.Eio.addEventMonitorSelfRenameHandler''
+
+==== Eio File Operation methods ====
+
+=== cancel() ===
+
+Syntax
+
+
+var destroyed = fileObj.cancel();
+
+
+Return value
+
+ * boolean - ''true'' if it was destroyed, ''false'' if it was delayed.
+
+=== check() ===
+
+Syntax
+
+
+var canceled = fileObj.check();
+
+
+Return value
+
+ * boolean - ''true'' if it was canceled or there was an error, ''false'' if otherwise.
+
+==== Eina File methods ====
+
+=== close() ===
+
+Syntax
+
+
+einaFileObj.close();
+
+
+Closes a file that was open through ''efl.Eio.openFile()''.
+
+==== Eio Monitor methods ====
+
+=== del() ===
+
+Syntax
+
+
+monitorObj.del();
+
+
+Deletes a path from the watched list.
+
+=== getPath() ===
+
+Syntax
+
+
+var path = monitorObj.getPath();
+
+
+Return value
+
+ * string - The path being watched by the monitor.
+
+==== Event Handler methods ====
+
+=== del() ===
+
+Syntax
+
+
+handlerObj.del();
+
+
+Deletes the given event handler.
diff --git a/public_html/data/pages/develop/legacy/api/javascript/ethumb.txt b/public_html/data/pages/develop/legacy/api/javascript/ethumb.txt
new file mode 100644
index 00000000..7ea0bb92
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/api/javascript/ethumb.txt
@@ -0,0 +1,241 @@
+====== Javascript binding API - Ethumb - Thumbnail images ======
+
+[[:develop:legacy:api:javascript:|Back to the JS EFL page]]
+
+The Ethumb library allows the creation of thumbnail images of files.
+
+==== Functions ====
+
+=== initClient() ===
+
+Syntax
+
+
+efl.Ethumb.initClient();
+
+
+Initializes the Ethumb client library.
+
+=== connectClient(callback) ===
+
+Syntax
+
+
+function mycallback(client, success) { ... };
+efl.Ethumb.connectClient(mycallback);
+
+
+Parameters
+
+ * callback - The function to call to report connection success or failure. Do not call any other Ethumb client methods method until this function returns. This function will not be called if the user explicitly calls the ''disconnect()'' method.
+
+Return value
+
+ * return - client instance or NULL if failed. If ''callback'' is missing it returns NULL. If it fail for other conditions, NULL is also returned and ''callback'' is called with success=''false''. The client instance is not ready to be used until ''callback'' is called.
+
+Connects to Ethumb server and return the client instance.
+
+This is the "constructor" of Ethumb Clients, where everything starts.
+
+If server was down, it is tried to start it using DBus activation, then the connection is retried.
+
+This call is asynchronous and will not block, instead it will be in "not connected" state until ''callback'' is called with either success or failure. On failure, then no methods should be called. On success you're now able to setup and then ask generation of thumbnails.
+
+Usually you should listen for server death/disconenction with the ''setOnServerDieCallback()'' method.
+
+=== shutdownClient() ===
+
+Syntax
+
+
+efl.Ethumb.shutdownClient();
+
+
+Shuts down the Ethumb client library.
+
+==== Ethumb Client methods ====
+
+=== cancelAllGenerate() ===
+
+Syntax
+
+
+clientObj.cancelAllGenerate()
+
+
+Ask server to cancel generation of all thumbnails.
+
+=== cancelGenerate(id, callback) ===
+
+Syntax
+
+
+function callback(success) {...};
+clientObj.cancelGenerate(id, callback);
+
+
+Parameters
+
+ * id - valid id returned by ''generate()'';
+ * callback - Function to report cancellation results.
+
+Ask server to cancel generation of a thumbnail.
+
+=== disconnect() ===
+
+Syntax
+
+
+clientObj.disconnect();
+
+
+Disconnect the client, releasing all client resources.
+
+This is the destructor of Ethumb Client, after it's disconnected the client handle is now gone and should not be used.
+
+=== existsThumb(callback) ===
+
+Syntax
+
+
+function callback(client, existsInfo, exists) {...};
+clientObj.existsThumb(callback);
+
+
+Parameters
+
+ * callback - The function to call with the answer. It receives the client, an Exists instance and a boolean with the result from the query.
+
+Return value
+
+ * object - An Ethumb Exists instance.
+
+Checks whenever file already exists (locally!)
+
+This will check locally (not calling server) if thumbnail already exists or not, also calculating the thumbnail path. Path must be configured with ''setFile()'' before using it and the last set file will be used!
+
+=== freeFile() ===
+
+Syntax
+
+
+clientObj.freeFile();
+
+
+Reset previously set file to NULL.
+
+=== generate(callback) ===
+
+Syntax
+
+
+function callback(client, id, file, key, thumb_path, thumb_key, success) {...};
+var id = clientObj.generate(callback);
+
+
+Parameters
+
+ * callback - The function to be called to report the job.
+
+Return value
+
+ * integer - The id of the started generation job.
+
+Ask server to generate a thumbnail.
+
+This process is asynchronous and will report back from main loop using ''callback''. One can cancel this request by calling ''cancelGenerate()'' or ''cancelAllGenerate()'', but not that request might be processed by server already and no generated files will be removed if that is the case.
+
+This will not check if file already exists, this should be done by explicitly calling ''existsThumb()'' That is, this function will override any existing thumbnail.
+
+=== getFile() ===
+
+Syntax
+
+
+var info = clientObj.getFile();
+
+
+Return value
+
+ * object - An object with keys ''path'' and ''key''.
+
+Gets the info from ''setFile()'' method.
+
+=== getThumbAsync(callback) ===
+
+Syntax
+
+
+function callback(client, path, key) {...};
+clientObj.getThumbAsync(callback);
+
+
+Parameters
+
+ * callback - The function to be called.
+
+Return value
+
+ * object - An Ethumb Client Async.
+
+=== setFile(path, key) ===
+
+Syntax
+
+
+var ok = clientObj.setFile(path, key);
+
+
+Parameters
+
+ * path - The filesystem path to use.
+ * key - The extra argument/key inside path to read image from. This is only used for formats that allow multiple resources in one file, like EET or Edje (group name).
+
+Return value
+
+ * boolean - ''true'' on success, ''false'' on failure.
+
+Set source file to be thumbnailed.
+
+Calling this function has the side effect of resetting values auto-generated with ''existsThumb()'' method.
+
+=== setOnServerDieCallback(callback) ===
+
+Syntax
+
+
+function callback(client) { ... }
+clientObj.setOnServerDieCallback(callback);
+
+
+Parameters
+
+ * callback - function to call back when the server dies.
+
+Sets the callback to report server died.
+
+When the server dies there is nothing you can do, just release resources with ''disconnect()'' and probably try to connect again.
+
+Usually, you should set this callback and handle this case, it does happen!
+
+==== Ethumb Client Exists methods ====
+
+=== cancel() ===
+
+Syntax
+
+
+existsObj.cancel();
+
+
+Cancel an ongoing exists request.
+
+=== check() ===
+
+Syntax
+
+
+existsObj.check();
+
+
+Check if an exists request was cancelled.
diff --git a/public_html/data/pages/develop/legacy/api/javascript/start.txt b/public_html/data/pages/develop/legacy/api/javascript/start.txt
new file mode 100644
index 00000000..022a2df2
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/api/javascript/start.txt
@@ -0,0 +1,23 @@
+====== Javascript Bindings for the Enlightenment Foundation Libraries (EFL) ======
+
+The EFL is a framework providing a great deal of functionality, from operating system abstraction to UI drawing abstractions and many others. The Javascript bindings for EFL are available in two flavors: A node.js module and direct embedding with libv8. Both are built on top of the libv8 JS engine.
+
+Below follows a list of the EFL modules covered by the javascript bindings. For node.js users, all are available through the module **efl**.
+
+
+var efl = require('efl');
+
+
+Supported modules
+
+ * [[./ecore|Ecore]] - Operating system abstraction and integration.
+ * [[./eio|Eio]] - Async input/output.
+ * [[./eina|Eina]] - Data types and basic abstractions.
+ * [[./ethumb|Ethumb]] - Generate thumbnail images of files.
+ * [[./eldbus|Eldbus]] - Dbus-integration.
+
+===== Under the hood =====
+
+The Javascript binding is split into two big parts. The first is a //manual// binding, wich is described in this documentation. The //automatic// binding covers the Eo-based classes, built with automatically-generated code and will be covered later.
+
+Due to the C++ being the native language of the libv8, it's was also used to write the bindings, with the help of the C++ bindings for EFL.
diff --git a/public_html/data/pages/develop/legacy/program_guide/basic_application_structure_pg.txt b/public_html/data/pages/develop/legacy/program_guide/basic_application_structure_pg.txt
new file mode 100644
index 00000000..808f8939
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/basic_application_structure_pg.txt
@@ -0,0 +1,79 @@
+~~Title:PG: Basic application struture~~
+{{page>index}}
+----
+===== Basic Application Structure Program Guide =====
+
+Get more information about the EFL concept overview here:
+[[https://phab.enlightenment.org/w/efl_concept_overview/]]
+
+===== Structure of EFL Applications =====
+
+The Enlightenment Foundation Libraries (EFL) provide all the libraries you
+need to create powerful applications. This section presents an overview of the
+libraries and when to use them in developing applications.
+
+Enlightenment is a window manager, which in the X Window System means that it
+handles the borders, iconification, expansion, and movement of windows on the
+screen. Enlightenment can also provide multiple virtual desktops. The initial
+version was developed in the 1990s by Rasterman (Carsten Haitzler).
+Enlightenment has since become much more than a simple window manager. To
+create this window manager, the Enlightenment team needed powerful libraries
+to base their work on, which is where the EFL come in. The EFL are the
+libraries on which the window manager was initially based on, but which have
+since then become more powerful, more memory efficient, and especially more
+useful for the embedded world and for touchscreen interfaces.
+
+The EFL are a set of layered libraries, as shown in the following diagram:
+
+{{ :efllibs.png }}
+
+When you create a basic EFL application, you use the following main libraries
+as a basis:
+
+ * **Elementary** is the top-most library with which you create your EFL application. It provides all the functions you need to create a window, create simple and complex layouts, manage the life cycle of a view, and add widgets. Go to [[/develop/legacy/program_guide/widgets_pg|Widgets program guide]]
+ * **Edje** is the library used by Elementary to provide a powerful theme. You can also use Edje to create your own objects and use them in your application. You may also want to extend the default theme. You will find more information about Edje and the EDC format in [[/develop/legacy/program_guide/edje_pg|Edje]] and [[/develop/legacy/program_guide/customizing_ui_pg|Customizing Widgets]].
+ * **Ecore** is the library which manages the main loop of your application. The main loop is one of the most important concepts you need to know about to develop an application. The main loop is where events are handled, and where you interact with the user through the callback mechanism. The main loop mechanisms are explained in the [[/develop/legacy/program_guide/main_loop_pg|Main Loop guide]].
+ * **Evas** is the canvas engine. Evas is responsible for managing the drawing of your content. All graphical objects that you create are Evas objects. Evas handles the entire state of the window by filling the canvas with objects and manipulating their states. In contrast to other canvas libraries, such as Cairo, OpenGL, and XRender, Evas is not a drawing library but a scene graph library that retains the state of all objects. The Evas concept is explained in [[/develop/legacy/program_guide/evas/rendering_concept_and_method_in_evas|Rendering Concept and Method in Evas]]. Evas objects are created and then manipulated until they are no longer needed, at which point they are deleted. This allows the developer to work in the same terms that a designer thinks in: it is a direct mapping, as opposed to having to convert the concepts into drawing commands in the right order, calculate minimum drawing calls needed to get the job done, and so on.
+ * **Eina** is the basis of all the EFL libraries. Eina is a toolbox that implements an API for data types in an efficient way. It contains all the functions needed to create lists and hashes, manage shared strings, open shared libraries, and manage errors and memory pools. Eina concepts are explained in [[/develop/legacy/program_guide/eina_pg|Using Data Types]].
+
+
+
+
+The EFL include more than just the above libraries(here the complete
+list:[[https://phab.enlightenment.org/w/efl_overview/|Efl Overview]]), but the
+above are the most important libraries to get started with. The other
+libraries, such as Eet, Embryo, and Emotion, will be explored later in the
+programming guides and the
+[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/index.html|API
+Reference]].
+
+==== Concept of Elementary ====
+
+Before writing an application, you should already have an answer to the
+following question: What is an application? An application is a process
+launched by the user. Every application has at least one window for presenting
+its content. Users can interact with the content through events. Different
+sources of events can modify the life cycle of the application. The
+application may receive data from a network connection, and it may also
+receive touch and key events. From the computer's point of view, an
+application is a collection of code that reacts to events and displays content
+on the screen. Elementary bridges this divide between the user and the code.
+
+Elementary provides a variety of pre-built UI components, such as layout
+objects and widgets, that allow you to build rich graphical user interfaces
+for your applications. Every Elementary application has at least one window
+for presenting its content. The window provides the area in which to display
+the content and where the Evas canvas is placed.
+
+There are three main groups of objects provided by Elementary:
+
+ * [[/develop/legacy/program_guide/widgets_pg|Widgets]]: These are the widgets with which you build your application UI.
+ * [[/develop/legacy/program_guide/containers_pg|Containers]]: These are the containers that hold the widgets.
+ * Infrastructure: These are the modules that deal with Elementary as a whole.
+
+[[/docs/efl/start|EFL Hello World Tutorial]] shows you how to develop your first application with
+Elementary and the EFL.
+
+\\
+----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/connectivity/basic_usage_of_ecore_con_client.txt b/public_html/data/pages/develop/legacy/program_guide/connectivity/basic_usage_of_ecore_con_client.txt
new file mode 100644
index 00000000..7ca39238
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/connectivity/basic_usage_of_ecore_con_client.txt
@@ -0,0 +1,98 @@
+{{page>index}}
+-------
+===== Basic usage of Ecore_Con_Client =====
+
+==== Connecting to the server ====
+
+On the client side, we need to connect to the previously created server.
+
+
+Ecore_Con_Server *svr;
+svr = ecore_con_server_connect(ECORE_CON_REMOTE_TCP, "127.0.0.1", 8080, NULL);
+
+
+
+Eina_Bool
+_add_cb(void *data __UNUSED__, int type __UNUSED__, Ecore_Con_Event_Server_Add *ev)
+{
+ printf("Server connection: ip %s, name %s port %d, connected = %d\n",
+ ecore_con_server_ip_get(ev->server),
+ ecore_con_server_name_get(ev->server),
+ ecore_con_server_port_get(ev->server),
+ ecore_con_server_connected_get(ev->server));
+ return ECORE_CALLBACK_RENEW;
+}
+
+Eina_Bool
+_del_cb(void *data __UNUSED__, int type __UNUSED__, Ecore_Con_Event_Server_Del *ev)
+{
+ printf("Server disconnected: ip %s\n",
+ ecore_con_server_ip_get(ev->server));
+ // Close the connection with the server.
+ ecore_con_server_del(ev->server);
+ return ECORE_CALLBACK_RENEW;
+}
+
+Eina_Bool
+_data_cb(void *data __UNUSED__, int type __UNUSED__, Ecore_Con_Event_Server_Data *ev)
+{
+ printf("Received data from server: ip %s port %d size %i bytes\n",
+ ecore_con_server_ip_get(ev->server),
+ ecore_con_server_port_get(ev->server),
+ ev->size);
+ // ev->data holds the data sent by the server.
+ printf("%s\n",ev->data);
+
+ return ECORE_CALLBACK_RENEW;
+}
+
+
+and the registration for the server events:
+
+
+/* set event handler for server connect */
+ecore_event_handler_add(ECORE_CON_EVENT_SERVER_ADD, (Ecore_Event_Handler_Cb)_add_cb, NULL);
+/* set event handler for server disconnect */
+ecore_event_handler_add(ECORE_CON_EVENT_SERVER_DEL, (Ecore_Event_Handler_Cb)_del_cb, NULL);
+/* set event handler for receiving server data */
+ecore_event_handler_add(ECORE_CON_EVENT_SERVER_DATA, (Ecore_Event_Handler_Cb)_data_cb, NULL);
+
+
+==== Sending data to the server ====
+
+Once connected, we can send data to the server.
+
+
+char hello[] = "hello Server ! I am the client.";
+ecore_con_server_send(ev->server, hello, sizeof(hello));
+ecore_con_server_flush(ev->server);
+
+
+The ''ecore_con_server_send()'' function is used to send the data, and the
+''ecore_con_server_flush()'' function is to avoid buffering and send this data
+immediately to the server.
+
+-------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/connectivity/basic_usage_of_ecore_con_server.txt b/public_html/data/pages/develop/legacy/program_guide/connectivity/basic_usage_of_ecore_con_server.txt
new file mode 100644
index 00000000..026676b6
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/connectivity/basic_usage_of_ecore_con_server.txt
@@ -0,0 +1,159 @@
+{{page>index}}
+-------
+===== Basic usage of Ecore_Con_Server =====
+
+=== Table of Contents ===
+
+ * [[#Start_a_server|Start a server ]]
+ * [[#Configure_the_server|Configure the server ]]
+ * [[#Register_callbacks_on_events|Register callbacks on events]]
+ * [[#Sending_data_to_the_client|Sending data to the client]]
+
+==== Start a server ====
+
+We create a ''Ecore_Con_Server'' object with the ''ecore_con_server_add''.
+This function takes a connection type parameter that defines the type of the
+connection that will be created with the client. This type can be composed of
+several of the follwing values:
+
+ * ''ECORE_CON_LOCAL_USER'': local user socket in “~/.ecore”;
+ * ''ECORE_CON_LOCAL_SYSTEM'': local system socket in “/tmp”;
+ * ''ECORE_CON_LOCAL_ABSTRACT'': abstract socket;
+ * ''ECORE_CON_REMOTE_TCP'': remote TCP server;
+ * ''ECORE_CON_REMOTE_UDP'': remote UDP server;
+ * ''ECORE_CON_REMOTE_MCAST'': remote multicast server;
+ * ''ECORE_CON_REMOTE_BROADCAST'': remote broadcast server;
+ * ''ECORE_CON_REMOTE_NODELAY'': remote connection sending data immediately without buffering;
+ * ''ECORE_CON_REMOTE_CORK'': remote connection sending large chunks of data;
+ * ''ECORE_CON_USE_SSL3'': enable SSL3;
+ * ''ECORE_CON_USE_TLS'': enable TLS;
+ * ''ECORE_CON_USE_MIXED'': enable both SSL3 and TLS;
+ * ''ECORE_CON_LOAD_CERT'': use a loaded certificate;
+ * ''ECORE_CON_NO_PROXY'': disable proxy on the server.
+
+
+Ecore_Con_Server *svr;
+svr = ecore_con_server_add(ECORE_CON_REMOTE_TCP, "127.0.0.1", 8080, NULL));
+
+
+
+ecore_con_server_client_limit_set(svr, 3, 0);
+
+
+The last parameter of this function determines how the excess clients will be
+rejected. If set to ''1'', the client that tries to connect will be
+disconnected if there are already too many of them connected, whereas setting
+to ''0'' will have the client wait until another client disconnects.
+
+To avoid a client holding a connection for too long, we can set a timeout
+after which an inactive client will be disconnected. In the following example,
+we set a ten seconds timeout.
+
+
+ecore_con_server_timeout_set(svr, 10);
+
+
+==== Register callbacks on events ====
+
+We need to register callbacks on events to be able to know when clients
+connect to the server or send data. We can register callbacks on the following
+events:
+
+ * ''ECORE_CON_EVENT_CLIENT_ADD'': a client connects to the server;
+ * ''ECORE_CON_EVENT_CLIENT_DEL'': a client disconnects;
+ * ''ECORE_CON_EVENT_CLIENT_ERROR'': an error occurred while trying to reach the client;
+ * ''ECORE_CON_EVENT_CLIENT_DATA'': a connected client has sent data.
+
+
+Here we only register callbacks on add, del and data events. The ''_add_cb()''
+callback prints the IP address and port of the client that just connected, and
+also whether it is still connected. It then returns ''ECORE_CALLBACK_RENEW''
+to keep the callback handler on the ''ECORE_CON_EVENT_CLIENT_ADD'' event.
+
+The ''_del_cb()'' callback prints the IP address and the uptime of the client
+that disconnects. It then calls ''ecore_con_client_del()'' to close the
+connection and free the memory allocated to the client.
+
+Finally the ''_data_cb()'' callback prints the size of the data received by
+the client.
+
+__Callbacks definition__:
+
+
+static Eina_Bool
+_add_cb(void *data __UNUSED__, int type __UNUSED__, Ecore_Con_Event_Client_Add *ev)
+{
+ printf("Client connection: ip %s, port %d, connected = %d!\n",
+ ecore_con_client_ip_get(ev->client),
+ ecore_con_client_port_get(ev->client),
+ ecore_con_client_connected_get(ev->client));
+ return ECORE_CALLBACK_RENEW;
+}
+
+static Eina_Bool
+_del_cb(void *data __UNUSED__, int type __UNUSED__, Ecore_Con_Event_Client_Del *ev)
+{
+ printf("Client disconnected: ip %s uptime %0.3f seconds\n",
+ ecore_con_client_ip_get(ev->client),
+ ecore_con_client_uptime_get(ev->client));
+ // Close the connection with the client
+ ecore_con_client_del(ev->client);
+ return ECORE_CALLBACK_RENEW;
+}
+
+static Eina_Bool
+_data_cb(void *data __UNUSED__, int type __UNUSED__, Ecore_Con_Event_Client_Data *ev)
+{
+ printf("Received data from client: ip %s port %d size %i bytes\n",
+ ecore_con_client_ip_get(ev->client),
+ ecore_con_client_port_get(ev->client,ev->size);
+ // ev->data contains the data sent by the client
+ printf("%s\n",ev->data);
+ return ECORE_CALLBACK_RENEW;
+}
+
+
+Here are the callback registrations:
+
+
+ecore_event_handler_add(ECORE_CON_EVENT_CLIENT_ADD, (Ecore_Event_Handler_Cb)_add_cb, NULL);
+ecore_event_handler_add(ECORE_CON_EVENT_CLIENT_DEL, (Ecore_Event_Handler_Cb)_del_cb, NULL);
+ecore_event_handler_add(ECORE_CON_EVENT_CLIENT_DATA, (Ecore_Event_Handler_Cb)_data_cb, NULL);
+
+
+==== Sending data to the client ====
+
+Once connected, we can send data to the client.
+
+
+char hello[] = "hello Client ! I am the server.";
+ecore_con_client_send(ev->client, hello, sizeof(hello));
+ecore_con_client_flush(ev->client);
+
+
+The ''ecore_con_client_send()'' function is used to send the data, and the
+''ecore_con_client_flush()'' function is to avoid buffering and sending this
+data to the client immediately.
+
+{{page>index}}
+-------
diff --git a/public_html/data/pages/develop/legacy/program_guide/connectivity/basic_usage_of_ecore_con_url.txt b/public_html/data/pages/develop/legacy/program_guide/connectivity/basic_usage_of_ecore_con_url.txt
new file mode 100644
index 00000000..5ac7e0eb
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/connectivity/basic_usage_of_ecore_con_url.txt
@@ -0,0 +1,120 @@
+{{page>index}}
+-------
+===== Basic usage of Ecore_Con_Url =====
+
+The Ecore URL connection library is an HTTP abstraction. It makes it easy to
+perform HTTP requests like ''POST'', ''GET'', …
+
+=== Table of Contents ===
+
+ * [[#Initialisation_and_URL_set|Initialisation and URL set]]
+ * [[#Download_a_file|Download a file]]
+ * [[#Ecore_File_usage|Ecore File usage]]
+
+==== Initialisation and URL set ====
+
+First, we need to initialise the Ecore URL connection library and create a
+''Ecore_Con_Url'' object.
+
+
+Ecore_Con_Url *ec_url = NULL;
+// Initiate Ecore Url connection library.
+ecore_con_url_init();
+// Create the Ecore_Con_Url object passing the URL that will receive the
+// requests as an argument.
+ec_url = ecore_con_url_new("http://www.enlightenment.org");
+
+
+
+Eina_Bool ret = ecore_con_url_url_set(ec_url, "https://docs.enlightenment.org/efl/1.15.0/index.html");
+
+
+The ''return'' value will contain ''EINA_FALSE'' if the new URL cannot be set.
+
+==== Download a file ====
+
+To download a file, we first need to create a local file and open it with
+write access. We can then give the file descriptor to the Ecore URL connection
+library so that it can write to it.
+
+We can then register a callback on the following events:
+
+^ ''ECORE_CON_EVENT_URL_PROGRESS'' |happens when the URL object transfer has made progress. \\ It gives the total and current data status of the transfer (upload and download).|
+^ ''ECORE_CON_EVENT_URL_COMPLETE'' |happens when the URL object has completed a transfer. \\ It returns the HTTP status code of the operation.|
+^ ''ECORE_CON_EVENT_URL_DATA'' |happens when the URL object has received data. \\ It gives the size of the received data and a buffer containing the data.|
+
+
+static Eina_Bool
+_url_progress_cb(void *data __UNUSED__, int type __UNUSED__, void *event_info)
+{
+ Ecore_Con_Event_Url_Progress *url_progress = event_info;
+ printf("Download progress : %d\n", (url_progress->down.now / url_progress->down.total) * 100);
+ return EINA_TRUE;
+}
+
+static Eina_Bool
+_url_complete_cb(void *data __UNUSED__, int type __UNUSED__, void *event_info)
+{
+ Ecore_Con_Event_Url_Complete *url_complete = event_info;
+ printf("Download completed with status: %d\n", url_complete->status);
+ return EINA_TRUE;
+}
+
+ecore_event_handler_add(ECORE_CON_EVENT_URL_PROGRESS, _url_progress_cb, NULL);
+ecore_event_handler_add(ECORE_CON_EVENT_URL_COMPLETE, _url_complete_cb, NULL);
+
+
+Once the URL is set up and the callbacks are registered, we can launch the GET
+request.
+
+
+ecore_con_url_get(ec_url);
+
+
+The status of the request will be shown in the ''_url_complete_cb()'' and the
+progress will be reported by the ''_url_progress_cb()'' function.
+
+==== Ecore File usage ====
+
+The Ecore File library provides an abstraction of the Ecore URL connection
+library. All that we described previously can be done with one function call.
+
+
+Ecore_File_Download_Job *jobret;
+ecore_file_download(http://www.enlightenment.org,
+ file:
+ _url_complete_cb,
+ _url_progress_cb,
+ NULL,
+ &job_ret);
+
+
+We first pass the url string we want to download, the local filename where it
+needs to be written, then the complete and progress callbacks with the data to
+pass to them (here ''NULL''). Finally, it takes a ''Ecore_File_Download_Job''
+structure that is filled by the function and which can be used with
+''ecore_file_download_abort()'' to cancel the current download.
+
+
+-------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/connectivity/ecore_con_ssl_usage.txt b/public_html/data/pages/develop/legacy/program_guide/connectivity/ecore_con_ssl_usage.txt
new file mode 100644
index 00000000..f6c5a4af
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/connectivity/ecore_con_ssl_usage.txt
@@ -0,0 +1,72 @@
+{{page>index}}
+-------
+==== Ecore_con_ssl usage ====
+
+Several functions are available to be able to use SSL. These functions can be
+used on the server side.
+
+First, we can check whether SSL is supported on the host.
+
+
+int ssl = ecore_con_ssl_available_get();
+
+
+This function returns ''1'' if SSL is provided by GnuTLS, ''2'' if provided by
+OpenSSL, and ''0'' if SSL is not supported.
+
+Several functions are available to add SSL certificate and private keys for
+use when connecting or listening:
+
+ * ''ecore_con_ssl_server_cert_add()'' to add a SSL PEM certificate;
+ * ''ecore_con_ssl_server_privkey_add()'' to add a SSL PEM private key;
+ * ''ecore_con_ssl_server_crl_add()'' to add a SSL PEM CRL file;
+ * ''ecore_con_ssl_server_cafile_add()'' to add a SSL PEM CA file.
+
+We can then enable certification verification on the server object against
+loaded certificates.
+
+
+ecore_con_ssl_server_verify(svr);
+
+
+Certification verification can be done using only the hostnames.
+
+
+ecore_con_ssl_server_verify_basic(svr);
+
+
+Sometimes, the certificate hostname does not match with the hostname we are
+trying to connect to. We can set the hostname to verify against in certificate
+verification. Here we set the hostname to “enlightenment.org”.
+
+
+ecore_con_ssl_server_verify_name_set(svr, "enlightenment.org");
+
+
+==== Upgrade a connection ====
+
+We can also upgrade a connection to a specified level of encryption.
+
+From the client:
+
+
+ecore_con_ssl_server_upgrade(srv, ECORE_CON_USE_SSL3);
+
+
+
+ecore_con_ssl_client_upgrade(srv, ECORE_CON_USE_SSL3);
+
+
+These functions will start a SSL handshake on a connection. Once the upgrade
+has been completed, ''ECORE_CON_EVENT_SERVER_UPGRADE'' or
+''ECORE_CON_EVENT_CLIENT_UPGRADE'' events will be emitted. The connection
+should be treated as disconnected until the next event.
+
+-------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/connectivity/index.txt b/public_html/data/pages/develop/legacy/program_guide/connectivity/index.txt
new file mode 100644
index 00000000..bded3eab
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/connectivity/index.txt
@@ -0,0 +1,4 @@
+++++Connectivity Menu|
+^ [[/develop/legacy/program_guide/connectivity_pg|Connectivity PG]] ^^^^^
+| [[/develop/legacy/program_guide/connectivity/init_ecore_con|Init Ecore_Con]] | [[/develop/legacy/program_guide/connectivity/basic_usage_of_ecore_con_url|Basic usage of Ecore_con_url]] | [[/develop/legacy/program_guide/connectivity/basic_usage_of_ecore_con_server|Basic usage of Ecore_con_server]] | [[/develop/legacy/program_guide/connectivity/basic_usage_of_ecore_con_client|Basic usage of Ecore_con_client]] | [[/develop/legacy/program_guide/connectivity/ecore_con_ssl usage|Ecore_con_ssl Usage]] |
+++++
diff --git a/public_html/data/pages/develop/legacy/program_guide/connectivity/init_ecore_con.txt b/public_html/data/pages/develop/legacy/program_guide/connectivity/init_ecore_con.txt
new file mode 100644
index 00000000..382d7e29
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/connectivity/init_ecore_con.txt
@@ -0,0 +1,85 @@
+{{page>index}}
+-------
+===== Init Ecore_Con =====
+
+Before using the Ecore_Con library, it needs to be initialized.
+
+
+#include
+// Init ecore_con library.
+int ret = ecore_con_init();
+// ret is the number of times the library has been initialized
+// without shutdown.
+
+
+
+==== Asynchronous DNS lookup ====
+
+We can do a simple DNS lookup using the following function:
+
+
+EAPI Eina_Bool ecore_con_lookup(const char * name,
+ Ecore_Con_Dns_Cb done_cb,
+ const void * data
+ )
+
+
+in which:
+
+ * ''name'': the IP address or the server name to translate;
+ * ''done_cb'': a callback to notify when the request is done;
+ * ''data'': the data to be passed to the callback.
+
+The ''done_cb'' function prototype is :
+
+
+
+void done_cb(const char * canonname,
+ const char * ip,
+ struct sockaddr * addr,
+ int addrlen,
+ void * data
+ )
+
+
+where:
+
+ * ''canonname'': the canonical name associated with the address;
+ * ''ip'': the resolved IP address;
+ * ''addr'': a pointer to the socket address;
+ * ''addrlen'': the length of the socket address, in bytes;
+ * ''data'': the data passed to the callback.
+
+As an example, we want to know the canonical name of the 140.211.167.135 IP
+address. Let’s first declare the ''done_cb'' callback that will be called when
+the DNS lookup will finish.
+
+
+static void
+done_cb(const char *canonname, const char *ip, struct sockaddr *addr, int addrlen, void *data)
+{
+ printf("140.211.167.135 name is %s\n", canonname);
+}
+
+
+
+Then we can call the ''ecore_con_lookup()'' function to do the query.
+
+
+// Call ecore_con_lookup.
+ret = ecore_con_lookup("140.211.167.135", done_cb, NULL);
+// If ret is EINA_FALSE the request failed to set up.
+
+
+When the request succeeds it shall call the ''done_cb()'' callback that will
+printthe name associated with the IP address we gave.
+
+When the library is not be used anymore, it has to be shut down.
+
+
+// Shutdown the library.
+ret = ecore_con_shutdown();
+
+
+------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/connectivity_pg.txt b/public_html/data/pages/develop/legacy/program_guide/connectivity_pg.txt
new file mode 100644
index 00000000..321a8c12
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/connectivity_pg.txt
@@ -0,0 +1,23 @@
+{{page>index}}
+-------
+===== Connectivity PG =====
+
+The Ecore connection library provides a way to make your application
+communicate through sockets abstracting some of the tasks that are not really
+interesting to do (like creating file descriptors and waiting for incoming
+connections).
+
+=== Table of Contents ===
+
+ * [[/develop/legacy/program_guide/connectivity/init_ecore_con|Init Ecore_Con]]
+ * [[/develop/legacy/program_guide/connectivity/basic_usage_of_ecore_con_url|Basic usage of Ecore_con_url]]
+ * [[/develop/legacy/program_guide/connectivity/basic_usage_of_ecore_con_server|Basic usage of Ecore_con_server]]
+ * [[/develop/legacy/program_guide/connectivity/basic_usage_of_ecore_con_client|Basic usage of Ecore_con_client]]
+ * [[/develop/legacy/program_guide/connectivity/ecore_con_ssl usage|Ecore_con_ssl Usage]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Ecore__Con__Group.html|Ecore_Con - Connection functions API]]
+
+-------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/containers/box.txt b/public_html/data/pages/develop/legacy/program_guide/containers/box.txt
new file mode 100644
index 00000000..90c80fe4
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/containers/box.txt
@@ -0,0 +1,257 @@
+~~Title: Box Container PG~~
+{{page>index}}
+----
+===== Box Container =====
+{{ :container_box_tree.png }}{{ :container_box.png }}
+
+Most of the time, you want to display widgets on the screen in a specific
+order. In Form Tutorial, for example, the user information is arranged
+vertically. This basic container is called a box. There is no theme for a box
+layout. It is just a linear method of arranging widgets horizontally or
+vertically.
+
+=== Table of Contents ===
+
+ * [[#Creating_a_Box|Creating a Box]]
+ * [[#Adding_Objects_to_the_Box|Adding Objects to the Box]]
+ * [[#Setting_the_Padding|Setting the Padding]]
+ * [[#Handling_Element_Size|Handling Element Size]]
+ * [[#Setting_the_Alignment|Setting the Alignment]]
+ * [[#Using_Size_Hints|Using Size Hints]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Box.html|Box Container API]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/box_example_01.html|A Basic Box Example]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/box_example_02.html|A Layout Transition Example]]
+
+==== Creating a Box ====
+
+By default, the box will start in the vertical orientation, placing its elements ordered
+from top to bottom.
+
+To create a new vertical box:
+
+
+Evas_Object *vbox = elm_box_add(parent);
+
+
+By default, the ''elm_box_add()'' function creates a vertical box. If you want
+to create a horizontal box, use the function:
+
+To change the orientation, use ''elm_box_horizontal_set()'' function. When
+horizontal is set, the order will go from left to right.
+
+
+Evas_Object *hbox = elm_box_add(parent);
+elm_box_horizontal_set(hbox, EINA_TRUE);
+
+
+
+Evas_Object *bt_end, *bt_start, *bt_before, *bt_after;
+int i;
+char tmp[16];
+//add 2 buttons
+for (i = 0; i < 2; i++)
+ {
+ snprintf(tmp, sizeof(tmp), "Button %d", i);
+ bt_end = elm_button_add(vbox);
+ elm_object_text_set(bt_end, tmp);
+ elm_box_pack_end(vbox, bt_end);
+ evas_object_show(bt_end);
+ }
+
+//add bt_before before bt_end(button 1)
+bt_before = elm_button_add(vbox);
+elm_object_text_set(bt_before, "Button Before");
+elm_box_pack_before(vbox, bt_before, bt_end);
+evas_object_show(bt_before);
+
+//add bt_start
+bt_start = elm_button_add(vbox);
+elm_object_text_set(bt_start, "Button Start");
+elm_box_pack_start(vbox, bt_start);
+evas_object_show(bt_start);
+
+//add bt_start
+bt_after = elm_button_add(vbox);
+elm_object_text_set(bt_after, "Button After");
+elm_box_pack_after(vbox, bt_after,bt_start);
+evas_object_show(bt_after);
+
+
+==== Setting the Padding ====
+
+You can set the padding between the objects in a box by using the
+''elm_box_padding_set()'' function. The padding values are the number of
+pixels horizontally and vertically.
+
+
+elm_box_padding_set(vbox, 16, 6);
+
+
+==== Handling Element Size ====
+
+You can add different-size elements to a container. For example, to add an
+image with a size of 128x128 pixels as the first element in a box, use the
+''elm_box_pack_start()'' function:
+
+
+Evas_Object *ic = elm_icon_add(vbox);
+elm_image_file_set(ic, "./c1.png", NULL);
+evas_object_size_hint_min_set(ic, 128, 128);
+evas_object_show(ic);
+elm_box_pack_start(vbox, ic);
+
+
+We ask Evas to set the size hint for the icon object by using the
+''elm_object_size_hint_min_set()'' function. Evas will try to set the minimum size
+of this object accordingly.
+
+If you want to create a homogeneous box, where all objects have the same
+height or width, depending on the orientation of the box, use the
+''elm_box_homogeneous_set()'' function:
+
+
+elm_box_homogeneous_set(vbox, EINA_TRUE);
+
+
+Elementary will set the height of the tallest object as the height of all
+objects, or the width of the widest element as the width of all objects.
+
+==== Setting the Alignment ====
+
+You can set the alignment of widgets inside a box using the
+''elm_box_align_set()'' function. The function takes two doubles values, a
+horizontal value and a vertical value, representing the percentage between 0
+and 1.0 of the alignment in the horizontal and vertical axes. When you add a
+widget with the ''elm_box_pack_end()'' or ''elm_box_pack_start()'' function,
+Elementary computes the global size of the box. If the global size is bigger
+than the size of the box's parent, the box will take up all the space occupied
+by the parent, and the size of the parent may be extended to hold the box. If
+the global size is smaller than the parent's size, the alignment values will
+set the position of the box inside the parent.
+
+{{ :container_box_align.png }}
+
+Here, we set an alignment of 0.8 vertically:
+
+
+elm_box_align_set(vbox, 0.0, 0.8);
+
+
+
+evas_object_size_hint_min_set(ic, 64, 64);
+
+
+You can also set a maximum size for the same icon:
+
+
+evas_object_size_hint_max_set(ic, 128, 128);
+
+
+When you resize the parent of the icon, if there are no constraints to the
+parent, the minimum size of the parent will be the minimum hint size of the
+icon. If you increase the parent size, the icon will grow larger until its
+maximum hint size is reached. After this point, the icon will not grow any
+larger and there will be empty space around the icon within the parent.
+
+When the aspect size hint is set, Evas tries to fix the dimensional
+proportions of the object. Here, the proportion of the icon is respected, and
+the width will be the same as the height:
+
+
+evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1,1);
+
+
+Here, the width will be twice the height:
+
+
+evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 2,1);
+
+
+If we want to change the alignment of the icon relative to the parent, we can
+use the ''evas_object_size_hint_align()'' function. By default, the icon is
+centered, so it is aligned with a value of 0.5. You can change the alignment
+as follows:
+
+
+evas_object_size_hint_align_set(ic, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+
+In the above case, the icon is aligned to the bottom left corner of the
+parent.
+
+We can also play with the size of the icon inside its container by using the
+weight size hint. By default, the weight is not set, so the size of the icon
+will be the minimum size. But if you set this value to 1, the icon will be
+expand as much as it can inside the container:
+
+
+evas_object_size_hint_weight_set(ic, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+
+You can also use the alignment and weight hints together. Here, we want the
+icon to take up all the space in its parent:
+
+
+evas_object_size_hint_align_set(ic, EVAS_HINT_FILL, EVAS_HINT_FILL);
+evas_object_size_hint_weight_set(ic, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+
+\\
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/box_example_01.html|A Basic Box Example]]__**//
+-
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/box_example_02.html|A Layout Transition Example]]__**//
+\\
+----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/containers/conformant.txt b/public_html/data/pages/develop/legacy/program_guide/containers/conformant.txt
new file mode 100644
index 00000000..383c1cea
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/containers/conformant.txt
@@ -0,0 +1,54 @@
+~~Title: Conformant Container PG~~
+{{page>index}}
+----
+===== Conformant Container =====
+
+{{ :container_conformant_tree.png }}{{ :container_conformant.png }}
+
+A conformant is a container widget that accounts for the space taken by the
+indicator, virtual keyboard, and softkey windows. The content area of the
+conformant is resized and positioned based on the space available. When the
+virtual keyboard is displayed, the content area is not resized.
+
+=== Table of Contents ===
+
+ * [[/develop/legacy/program_guide/containers/conformant#Creating_a_Conformant|Creating a Conformant]]
+ * [[/develop/legacy/program_guide/containers/conformant#Adding_Content_to_the_Conformant|Adding Content to the Conformant]]
+ * [[/develop/legacy/program_guide/containers/conformant#Signals|Signals]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Conformant.html|Conformant Container API]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/conformant_example_02_8c-example.html|A Conformant container example]]
+
+==== Creating a Conformant ====
+
+To create a conformant, use the ''elm_conformant_add()'' function:
+
+
+Evas_Object *conformant = elm_conformant_add(parent);
+
+
+==== Adding Content to the Conformant ====
+
+To add content to the conformant, use the ''elm_object_content_set()'' function:
+
+
+elm_object_content_set(conformant, main_view);
+
+
+==== Signals ====
+
+To receive notifications about the state of the virtual keyboard and
+clipboard, listen to the following Evas signals:
+
+ * ''"virtualkeypad,state,on"'': The virtual keyboard has been switched on.
+ * ''"virtualkeypad,state,off"'': The virtual keyboard has been switched off.
+ * ''"virtualkeypad,size,changed"'': The virtual keyboard size has changed.
+ * ''"clipboard,state,on"'': The clipboard has been switched on.
+ * ''"clipboard,state,off"'': The clipboard has been switched off.
+
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/conformant_example_02_8c-example.html|A Conformant container example]]__**//
+\\
+----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/containers/gengrid.txt b/public_html/data/pages/develop/legacy/program_guide/containers/gengrid.txt
new file mode 100644
index 00000000..e0fcd464
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/containers/gengrid.txt
@@ -0,0 +1,124 @@
+~~Title: Gengrid Container PG~~
+{{page>index}}
+----
+===== Gengrid Container =====
+{{ :container_gengrid_tree.png }}{{ :container_gengrid.png }}
+
+Gengrid container is based on the same idea as the genlist. It aims at displaying
+objects on a grid layout and rendering only the visible ones. As for the
+genlist, callbacks are called at item creation or deletion.
+
+This container inherits from the layout widget and implements the scroller
+interface. Thus scroller and layout functions can be used with this widget.
+
+A gengrid may display its items using horizontal or vertical layout. In the
+first layout, items are displayed in columns from top to bottom, starting a
+new column when the space for the current column is filled. In the second one,
+items are set in rows from left to right.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Gengrid|Adding a Gengrid]]
+ * [[#Gengrid_Items|Gengrid Items]]
+ * [[#Creating_and_Deleting_Items|Creating and Deleting Items]]
+ * [[#Managing_Items|Managing Items]]
+ * [[#Using_Gengrid_Callbacks|Using Gengrid Callbacks]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Gengrid.html|Gengrid Widget API]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/gengrid_example.html|A Gengrid Example]]
+
+==== Adding a Gengrid ====
+
+To add a gengrid widget:
+
+
+Evas_Object *gengrid = elm_gengrid_add(parent);
+
+
+==== Gengrid Items ====
+
+A gengrid item is composed of 0 or more texts, 0 or more contents and 0 or
+more boolean states. The number of the text and content depends on the theme
+used for gengrid items. For the default gengrid item theme, we
+have one text part ("elm.text"), two content parts ("elm.swallow.icon" and
+"elm.swallow.end") and no state parts.
+
+
+==== Creating and Deleting Items ====
+
+As with genlists, items are allocated and deleted on the go, while the user is
+scrolling the gengrid. Here we declare a ''Elm_Gengrid_Item_Class'' structure to
+inform the gengrid how to manage items.
+
+static Elm_Gengrid_Item_Class *gic = elm_gengrid_item_class_new();
+gic->item_style = "default";
+gic->func.text_get = _grid_label_get;
+gic->func.content_get = _grid_content_get;
+gic->func.state_get = _grid_state_get;
+gic->func.del = _grid_del;
+
+
+The parameters of this structure will not be detailed here, because they are
+very similar to that of the genlist. Please refer to the
+[[/develop/legacy/program_guide/containers/genlist|genlist widget
+page]]
+for more detailed information.
+
+==== Managing Items ====
+
+As with genlists, items can be added with the ''elm_gengrid_item_append()'',
+''elm_gengrid_item_prepend()'', ''elm_gengrid_item_insert_before()'' and
+''elm_gengrid_item_insert_after()'' functions. With the gengrid, there is no need
+to pass the "type" parameters. They can be cleared with the
+''elm_gengrid_clear()'' function.
+
+We can set the multiselection mode on.
+
+
+elm_gengrid_multi_select_set(gengrid, EINA_TRUE);
+
+
+When this mode is on, selected items are retrieved with
+''elm_gengrid_selected_items_get()''. It returns a list of all the selected items.
+
+When the content of an item changes, we can call ''elm_gengrid_item_update()'' to
+ask the gengrid to update this item's content.
+
+We can also manually select or disable some items with
+''elm_gengrid_item_selected_set()'' and ''elm_object_item_disabled_set()''.
+
+==== Using Gengrid Callbacks ====
+
+The gengrid widget emits the following signals:
+
+ * ''"activated"'' - The user has double-clicked or pressed (enter | return | spacebar) on an item. The event_info parameter is the gengrid item that is activated.
+ * ''"clicked,double"'' - The user has double-clicked an item. The event_info parameter is the gengrid item that is double-clicked.
+ * ''"longpressed"'' - The item is pressed for a certain amount of time. By default it is one second.
+ * ''"selected"'' - The user has selected an item. The event_info parameter is the gengrid item that is selected.
+ * ''"unselected"'' - The user has unselected an item. The event_info parameter is the gengrid item that is unselected.
+ * ''"realized"'' - The item in the gengrid has its implementing Evas object instantiated, de facto. event_info is the gengrid item that is created. The object may be deleted at any time, so it is strongly advisable not to use the object pointer returned from elm_gengrid_item_object_get(), because it may point to freed objects.
+ * ''"unrealized"'' - The implementing Evas object for this item is deleted. event_info is the gengrid item that is deleted.
+ * ''"changed"'' - An item is added, removed, resized or moved and the gengrid is resized or has "horizontal" property changes.
+ * ''"scroll,anim,start"'' - Scrolling animation starts.
+ * ''"scroll,anim,stop"'' - Scrolling animation stops.
+ * ''"drag,start,up"'' - The item in the gengrid is dragged (not scrolled) up.
+ * ''"drag,start,down"'' - The item in the gengrid has dragged (not scrolled) down.
+ * ''"drag,start,left"'' - The item in the gengrid is dragged (not scrolled) left.
+ * ''"drag,start,right"'' - The item in the gengrid is dragged (not scrolled) right.
+ * ''"drag,stop"'' - The item in the gengrid stops being dragged.
+ * ''"drag"'' - The item in the gengrid is dragged.
+ * ''"scroll"'' - The content is scrolled (moved).
+ * ''"scroll,drag,start"'' - Dragging the content starts.
+ * ''"scroll,drag,stop"'' - Dragging the content stops.
+ * ''"edge,top"'' - The gengrid is scrolled to the top edge.
+ * ''"edge,bottom"'' - The gengrid is scrolled to the bottom edge.
+ * ''"edge,left"'' - The gengrid is scrolled to the left edge.
+ * ''"edge,right"'' - The gengrid is scrolled to the right edge.
+
+\\
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/gengrid_example.html|A Gengrid Example]]__**//
+\\
+----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/containers/genlist.txt b/public_html/data/pages/develop/legacy/program_guide/containers/genlist.txt
new file mode 100644
index 00000000..b3544df3
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/containers/genlist.txt
@@ -0,0 +1,218 @@
+~~Title: Genlist Container PG~~
+{{page>index}}
+----
+===== Genlist Container =====
+{{ :container_genlist_tree.png }}{{ :container_genlist.png }}
+
+Genlist is a container that displays a scrollable list of items. It allows a lot of entries while being fast and has a low memory footprint (only the visible items are allocated in the memory).
+
+=== Table of Contents ===
+
+ * [[#Genlist_Item_Style|Genlist Item Style]]
+ * [[#Adding_a_Genlist|Adding a Genlist]]
+ * [[#Creating_And_Deleting_Items|Creating And Deleting Items]]
+ * [[#Managing_Items|Managing Items]]
+ * [[#Selection|Selection]]
+ * [[#Using_Genlist_Callbacks|Using Genlist Callbacks]]
+
+=== Related Info ===
+
+ * [[/develop/legacy/tutorial/genlist_tutorial|Genlist Tutorial]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Genlist.html|Genlist Widget API]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/genlist_example.html|A Genlist Example]]
+
+==== Genlist Item Style ====
+
+An item can have 0 or more texts, 0 or more contents, and 0 or more boolean
+states. This is defined in the Edje item theme style. Genlist looks for data
+items named respectively "labels", "contents", and "states" in the Edje file.
+The "default" item style provides one text part ("elm.text"), two content
+parts ("elm.swalllow.icon" and "elm.swallow.end") and no state parts.
+
+The following item styles are available:
+
+ * default
+ * default_style - The text part is a textblock
+ * double_label
+ * icon_top_text_bottom
+ * group_index
+ * one_icon - Only 1 icon (left) (since 1.7)
+ * end_icon - Only 1 icon (at end/right) (since 1.7)
+ * no_icon - No icon (at end/right) (since 1.7)
+ * full - Only 1 icon, elm.swallow.content, which consumes whole area of genlist itemj (since 1.7)
+
+If one wants to use more icons and texts than are offered in theme, there are
+two solutions. One is to use 'full' style that has one big swallow part. You
+can swallow anything there. The other solution is to customize genlist item
+style in application side by using ''elm_theme_extension_add()'' and its own edc.
+
+==== Adding a Genlist ====
+
+Genlist widget is added with the ''elm_genlist_add()'' function.
+
+
+
+Evas_Object *genlist;
+genlist = elm_genlist_add(parent);
+
+
+==== Creating And Deleting Items ====
+
+To save up memory, genlist allocates and deletes items on the go, while the
+user is scrolling the list. To enable that, the user creates and fills a
+''Elm_Genlist_Item_Class'' structure that informs the genlist widget which
+callbacks to call when an item is created or deleted.
+
+
+
+Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
+
+itc->item_style = "default";
+itc->decorate_item_style = NULL;
+itc->decorate_all_item_style = NULL;
+itc->func.text_get = _item_label_get;
+itc->func.content_get = _item_content_get;
+itc->func.state_get = _item_state_get;
+itc->func.del = _item_del;
+
+
+The ''item_style'', ''decorate_item_style'', and ''decorate_all_item_style''
+attributes define the names of the item style, the decorate mode item style
+and the decorate all item style.
+
+The ''func'' structure contains pointers to functions that are called when an
+item is going to be created or deleted. All of them receive a data parameter
+that points to the same data passed to the ''elm_genlist_item_append()'' and
+related item creation functions, and an obj parameter that points to the
+genlist object itself.
+
+|''text_get''|This function receives a PART parameter that is the name string of one of the existing text parts in the Edje group implementing the item's theme. It has to return a string (duplicated with the ''strdup()'' function) corresponding to the PART parameter. The caller is in charge of freeing the string when done.|
+|''content_get''|The PART parameter is the name string of one of the existing swallow parts in the Edje group. When no content is desired it must return NULL, or otherwise, a valid object handle. The object is deleted by the genlist on its deletion or when the item is "unrealized".|
+|''state_get''|The PART parameter is the name string of one of the state parts in the Edje group implementing the item's theme. It returns EINA_FALSE for false/off or EINA_TRUE for true/on. The default is false. Genlists emit a signal to the PART parameter's theming Edje object with "elm,state,xxx,active" as "emission" and "elm" as "source" argument, when the state is true. xxx is the name of the (state) part.|
+|''del''|This function is called when the genlist item is deleted. It deletes any data that is allocated at the item creation.|
+
+==== Managing Items ====
+
+To add an item, several functions can be used. ''elm_genlist_item_append()''
+adds an item to the end of the list, or if there is a parent list, to the end
+of all the child items of the parent list. ''elm_genlist_item_prepend()'' is
+otherwise the same but adds to the beginning of the list or children lists.
+''elm_genlist_item_insert_before()'' inserts an item before the indicated item
+and ''elm_genlist_item_insert_after()'' inserts an item after the indicated
+item.
+
+The previous functions take a "type" parameter that can be one of the following.
+
+ * ''ELM_GENLIST_ITEM_NONE''
+ * ''ELM_GENLIST_ITEM_TREE''
+ * ''ELM_GENLIST_ITEM_GROUP''
+
+
+If ''ELM_GENLIST_ITEM_TREE'' is set, this item is displayed as being able to
+expand and have child items. If ''ELM_GENLIST_ITEM_GROUP'' is set, this item is a
+group index item that is displayed at the top until the next group appears.
+
+{{ :container_genlist_treemode.png }}
+
+The application clears the list with ''elm_genlist_clear()'', which deletes
+all the items in the list. ''elm_object_item_del()'' deletes a specific item.
+''elm_genlist_item_subitems_clear()'' clears all items that are children of
+the indicated parent item.
+
+To help inspect list items, move to the item at the top of the list with
+''elm_genlist_first_item_get()'', which returns the item pointer.
+''elm_genlist_last_item_get()'' moves to the item at the end of the list.
+''elm_genlist_item_next_get()'' and ''elm_genlist_item_prev_get()'' move to
+the next and previous items relative to the indicated item. Using these calls
+you can go through the entire item list or tree.
+
+
+Evas_Object *grid = elm_grid_add(parent);
+
+
+==== Adding Items to the Grid ====
+
+To add an item to the grid, use the ''elm_grid_pack_set()'' function. Provide
+the X and Y coordinates, and the width and height in the grid as parameters.
+The following code adds 12 icons in a circle formation:
+
+
+for (i = 0; i < 12; i++)
+ {
+ ic = elm_icon_add(grid);
+ elm_image_file_set(ic, "c1.png", NULL);
+ evas_object_size_hint_min_set(ic, 128, 128);
+ evas_object_show(ic);
+ x = 40 * cos(2.0 * M_PI / 12 * i);
+ y = 40 * sin(2.0 * M_PI / 12 * i);
+ elm_grid_pack(grid, ic, 40 + x, 40 + y, 20 , 20);
+ }
+evas_object_show(grid);
+
+
+==== Changing Position and Size ====
+
+To change the position of an item in the grid, use the ''elm_grid_pack_set()''
+function. The first parameter is the item you want to move, and the following
+parameters are the same as for the ''elm_grid_pack()'' function.
+
+To change the size of the grid, use the ''elm_grid_size_set()'' function. You
+can set the new width and height for the grid. The position and size of the
+items in the grid are changed accordingly.
+
+==== Clearing the Grid ====
+
+To clear the grid, use the ''elm_grid_clear()'' function. All items are
+removed from the grid. If you set the clear parameter, all the items are also
+deleted, with the ''evas_object_del()'' function called on each item.
+
+\\
+//**__A Grid container example__: **//{{
+:code_c/programming_guide/container/grid.c }}
+----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/containers/index.txt b/public_html/data/pages/develop/legacy/program_guide/containers/index.txt
new file mode 100644
index 00000000..622e38fc
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/containers/index.txt
@@ -0,0 +1,14 @@
+++++Container Menu|
+[[/develop/legacy/program_guide/containers_pg|Container Programming Guide]]:
+ * [[/develop/legacy/program_guide/containers/box|Box]] (//[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Box.html|API]]//)
+ * [[/develop/legacy/program_guide/containers/conformant|Conformant]] (//[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Conformant.html|API]]//)
+ * [[/develop/legacy/program_guide/containers/gengrid|Gengrid]](//[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Gengrid.html|API]]//)
+ * [[/develop/legacy/program_guide/containers/genlist|Genlist]](//[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Genlist.html|API]]//)
+ * [[/develop/legacy/program_guide/containers/grid|Grid]] (//[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Grid.html|API]]//)
+ * [[/develop/legacy/program_guide/containers/layout|Layout]] (//[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Layout.html|API]]//)
+ * [[/develop/legacy/program_guide/containers/mapbuf|Mapbuf]] (//[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Mapbuf.html|API]]//)
+ * [[/develop/legacy/program_guide/containers/naviframe|Naviframe]] (//[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Naviframe.html|API]]//)
+ * [[/develop/legacy/program_guide/containers/panes|Panes]] (//[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Panes.html|API]]//)
+ * [[/develop/legacy/program_guide/containers/scroller|Scroller]] (//[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Scroller.html|API]]//)
+ * [[/develop/legacy/program_guide/containers/table|Table]] (//[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Table.html|API]]//)
+++++
diff --git a/public_html/data/pages/develop/legacy/program_guide/containers/layout.txt b/public_html/data/pages/develop/legacy/program_guide/containers/layout.txt
new file mode 100644
index 00000000..5401e266
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/containers/layout.txt
@@ -0,0 +1,82 @@
+~~Title: Layout Container PG~~
+{{page>index}}
+----
+===== Layout Container =====
+{{ :container_layout_tree.png }}{{ :container_layout.png }}
+
+A layout is a container widget that takes a standard Edje design file and
+wraps it very thinly in a widget. Layouts are the basis of a lot of graphics
+widgets used in Elementary.
+
+An Edje design file describes how the elements of the UI are positioned and
+how they behave when interacted with. For more information about Edje, see the
+[[/develop/legacy/program_guide/edje_pg|Edje guide]].
+
+=== Table of Contents ===
+
+ * [[#Creating_a_Layout|Creating a Layout]]
+ * [[#Adding_Objects_to_the_Layout|Adding Objects to the Layout]]
+ * [[#Using_Layout_Themes|Using Layout Themes]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Layout.html|Layout Container API]]
+
+^Layout Examples^^^^
+|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/layout_example_01.html|Content, Table and Box]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/layout_example_02.html|Predefined Layout]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/layout_example_03.html|Signals and Size Changed ]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/layout_example_edc.html|Layout Theme File]]|
+
+==== Creating a Layout ====
+
+To create a new layout, use the ''elm_layout_add()'' function:
+
+
+Evas_Object *layout = elm_layout_add(parent);
+
+
+
+==== Adding Objects to the Layout ====
+
+To add an Evas object to the layout:
+
+
+elm_object_part_content_set(ly, "elm.swallow.content", view);
+
+
+''elm.swallow.content'' is the swallow part of the application layout, and with
+this call you integrate the view inside the swallow object of the layout.
+
+==== Using Layout Themes ====
+
+Layout container offers predefined themes that come with the default
+Elementary theme. These themes can be set with ''elm_layout_theme_set()'', and
+provide some basic functionality depending on the theme used.
+
+Most of them already send some signals, some already provide a toolbar or back
+and next buttons.
+
+These are the available predefined theme layouts. All of them have class =
+layout, group = application, and style = one of the following options:
+
+ * ''"toolbar-content"'' - for applications with a toolbar and main content area
+ * ''"toolbar-content-back"'' - for applications with a toolbar and main content (with a back button) and title areas
+ * ''"toolbar-content-back-next"'' - for applications with a toolbar and main content (with back and next buttons) and title areas
+ * ''"content-back"'' - for application with main content (with a back button) and title areas
+ * ''"content-back-next"'' - for applications with main content (with back and next buttons) and title areas
+ * ''"toolbar-vbox"'' - for applications with a toolbar and main content area as a vertical box
+ * ''"toolbar-table"'' - for applications with a toolbar and main content area as a table
+
+To set a theme:
+
+
+Evas_Object *ly;
+
+ly = elm_layout_add(parent);
+elm_layout_theme_set(ly, "layout", "application", "toolbar-content");
+
+
+\\
+^Layout Examples^^^^
+|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/layout_example_01.html|Content, Table and Box]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/layout_example_02.html|Predefined Layout]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/layout_example_03.html|Signals and Size Changed ]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/layout_example_edc.html|Layout Theme File]]|
+
+----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/containers/mapbuf.txt b/public_html/data/pages/develop/legacy/program_guide/containers/mapbuf.txt
new file mode 100644
index 00000000..de962e16
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/containers/mapbuf.txt
@@ -0,0 +1,89 @@
+~~Title: Mapbuf Container PG~~
+{{page>index}}
+----
+===== Mapbuf Container =====
+
+{{ :container_mapbuf_tree.png }}{{ :container_mapbuf.png }}
+
+A mapbuf widget is a container widget that uses an Evas map to hold a content
+object. This widget is used to improve the moving and resizing performance of
+complex widgets.
+
+The content object is treated as a single image by the Evas map. If you have a
+content object containing several child objects, frequently moving the mapbuf
+widget will be faster than frequently moving the content object.
+
+The mapbuf widget inherits all the functions of the container class.
+
+=== Table of Contents ===
+
+ * [[/develop/legacy/program_guide/containers/mapbuf#Creating_a_Mapbuf|Creating a Mapbuf]]
+ * [[/develop/legacy/program_guide/containers/mapbuf#Adding_Content_to_the_Mapbuf|Adding Content to the Mapbuf]]
+ * [[/develop/legacy/program_guide/containers/mapbuf#Activating_the_Mapbuf|Activating the Mapbuf]]
+ * [[/develop/legacy/program_guide/containers/mapbuf#Signals|Signals]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Mapbuf.html|Mapbuf Container API]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/mapbuf_example.html|A Mapbuf Example ]]
+
+==== Creating a Mapbuf ====
+
+To create a mapbuf widget, use the ''elm_mapbuf_add()'' function:
+
+
+Evas Object* mapbuf = elm_mapbuf_add(parent);
+
+
+==== Adding Content to the Mapbuf ====
+
+To add content to the mapbuf widget, use the ''elm_object_content_set()'' function
+with the "default" part:
+
+
+elm_object_content_set(mapbuf, content);
+
+
+
+elm_mapbuf_smooth_set(mapbuf, EINA_TRUE);
+elm_mapbuf_alpha_set(mapbuf, EINA_TRUE);
+
+
+==== Activating the Mapbuf ====
+
+Finally, to use the mapbuf widget, you must activate it:
+
+
+elm_mapbuf_enabled_set (mapbuf, EINA_TRUE);
+
+
+This enables the map that is set or disables it. On enable, the object
+geometry will be saved, and the new geometry will change (position and size)
+to reflect the map geometry set.
+
+Also, when enabled, alpha and smooth states will be used, so if the content
+isn't solid, alpha should be enabled, for example, otherwise a black rectangle
+will fill the content.
+
+When disabled, the stored map will be freed and geometry prior to enabling the
+map will be restored.
+
+It's disabled by default.
+
+==== Signals ====
+
+The mapbuf widget does not emit any signals and therefore does not provide any
+callbacks that you can register.
+
+\\
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/mapbuf_example.html|A Mapbuf Example ]]__**//
+\\
+----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/containers/naviframe.txt b/public_html/data/pages/develop/legacy/program_guide/containers/naviframe.txt
new file mode 100644
index 00000000..7300146d
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/containers/naviframe.txt
@@ -0,0 +1,109 @@
+~~Title: Naviframe Container PG~~
+{{page>index}}
+----
+===== Naviframe Container =====
+
+{{ :container_naviframe_tree.png }}
+
+A naviframe widget consists of a stack of views. New views are pushed on top
+of previous ones, and only the top-most view on the stack is displayed. The
+previous views are not deleted. A previous view is displayed when the view on
+top of it is popped. Transitions can be animated on a push or a pop, depending
+on the theme applied to the widget.
+
+=== Table of Contents ===
+
+ * [[/develop/legacy/program_guide/containers/naviframe#Creating_a_Naviframe|Creating a Naviframe]]
+ * [[/develop/legacy/program_guide/containers/naviframe#Adding_and_Deleting Views|Adding and Deleting Views]]
+ * [[/develop/legacy/program_guide/containers/naviframe#Adding_Fixed_Content|Adding Fixed Content]]
+ * [[/develop/legacy/program_guide/containers/naviframe#Signals|]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Naviframe.html|Naviframe Container API]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/naviframe_example_8c-example.html|A Naviframe Example ]]
+
+==== Creating a Naviframe ====
+
+To create a naviframe, use the ''elm_naviframe_add()'' function:
+
+
+Evas_Object *nav = elm_naviframe_add(parent);;
+
+
+==== Addind and Deleting Views ====
+
+The naviframe is a stack of views. A new view is always pushed to the top of
+the stack. The top-most view is deleted by popping it.
+
+To add a new view to the naviframe stack (and show it):
+
+
+Elm_Object_Item *nav_it = elm_naviframe_item_push(nav, title_label, prev_button, next_button, view, item_style);
+
+
+^Parameters^^
+|''title_label''|The label in the title area. The name of the title label part is "elm.text.title"|
+|''prev_button''|The button to go to the previous item. If it is NULL, then naviframe will create a back button automatically. The name of the prev_btn part is "elm.swallow.prev_btn" |
+|''next_button''|The button to go to the next item. Or It could be just an extra function button. The name of the next_btn part is "elm.swallow.next_btn" |
+|''view''|The main content object. The name of content part is "elm.swallow.content" |
+|''item_style''|The current item style name. NULL would be default. |
+
+In fact, you can simply use ''elm_naviframe_item_push()'' with default
+parameters:
+
+
+Elm_Object_Item *nav_it = elm_naviframe_item_push(nav, NULL, NULL, NULL, view, NULL);
+
+
+When you push a new view to the stack, you receive an ''Elm_Object_Item'' for the
+view. You can use this item to modify the view.
+
+The item pushed becomes one page of the naviframe, this item will be deleted
+when it is popped with ''elm_naviframe_item_pop()'':
+
+
+elm_naviframe_item_pop(nav);
+
+
+==== Adding Fixed Content ====
+
+The naviframe can also display fixed content on top of the current (top-most)
+view. Use the ''elm_object_item_part_content_set()'' function to set this content.
+Use the following part names to specify the location of the content:
+
+ * ''"default"'' - The main content of the current page
+ * ''"icon"'' - An icon in the title area of the current page
+ * ''"prev_btn"'' - A button of the current page to go to the previous page
+ * ''"next_btn"'' - A button of the current page to go to the next page
+
+For example, to add a button to the naviframe:
+
+
+btn = elm_button_add(nav);
+elm_object_item_part_content_set(nav_it, "prev_btn", btn);
+
+
+To set the title labels of the naviframe, use the
+''elm_object_item_part_text_set()'' function and specify one of the following
+label locations:
+
+ * ''"default"'': Sets the title label in the title area of the current view.
+ * ''"subtitle"'': Sets the subtitle label in the title area of the current view.
+
+==== Signals ====
+
+The naviframe emits the following signals:
+
+ * ''"transition,finished"'' - When the transition is finished in changing the item
+ * ''"title,transition,finished"'' - When the title area's transition is finished in changing the state of the title
+ * ''"title,clicked"'' - User clicked title area
+ * ''"focused"'' - When the naviframe has received focus. (since 1.8)
+ * ''"unfocused"'' - When the naviframe has lost focus. (since 1.8)
+ * ''"language,changed"'' - the program's language changed (since 1.9)
+
+\\
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/naviframe_example_8c-example.html|A Naviframe Example ]]__**//
+\\
+----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/containers/panes.txt b/public_html/data/pages/develop/legacy/program_guide/containers/panes.txt
new file mode 100644
index 00000000..80b0f58f
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/containers/panes.txt
@@ -0,0 +1,70 @@
+~~Title: Panes Container PG~~
+{{page>index}}
+----
+===== Panes Container =====
+{{ :container_panes_tree.png }}{{ :container_panes.png }}
+
+A panes widget adds a draggable bar between two sections of content. The
+sections are resized when the bar is dragged.
+
+=== Table of Contents ===
+
+ * [[/develop/legacy/program_guide/containers/panes#Creating_Panes|Creating Panes]]
+ * [[/develop/legacy/program_guide/containers/panes#Adding Content to the Panes|Adding Content to the Panes]]
+ * [[/develop/legacy/program_guide/containers/panes#Setting_Panes_Options|Setting Panes Options]]
+ * [[/develop/legacy/program_guide/containers/panes#Signals|Signals]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Panes.html|Panes Container API]]
+ * [[/develop/legacy/tutorial/panes_tutorial|Panes Tutorial]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/panes_example.html|A Panes Example ]]
+
+==== Creating a Panes ====
+
+To create a panes widget, use the ''elm_panes_add()'' function:
+
+
+Evas_Object *panes = elm_panes_add(parent);
+
+
+==== Adding Content to the Panes ====
+
+To add content to the panes, use the ''elm_object_part_content_set()'' function.
+The following code adds an object to the left pane:
+
+
+elm_object_part_content_set(panes, "left", obj);
+
+
+Here, the Default content parts of the panes widget that you can use are:
+
+ * ''"left"'' - A leftside content of the panes
+ * ''"right"'' - A rightside content of the panes
+ * ''"top"'' - A top content of the vertical panes
+ * ''"bottom"'' - A bottom content of the vertical panes
+
+If panes are displayed vertically, left content will be displayed on top.
+
+==== Setting Panes Options ====
+
+To set the orientation of the panes, use the ''elm_panes_horizontal_set()''
+function.
+
+To set the size of the panes, use the ''elm_panes_content_left_size_set()'' and
+''elm_panes_content_right_size_set()'' functions.
+
+==== Signals ====
+
+The panes widget emits the following signals:
+
+ * ''"press"'': The panes widget has been pressed (but the press has not been released yet).
+ * ''"unpress"'': The press has been released.
+ * ''"clicked"'': The panes widget has been clicked.
+ * ''"clicked,double"'': The panes widget has been double-clicked.
+
+\\
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/panes_example.html|A Panes Example ]]__**//
+\\
+----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/containers/scroller.txt b/public_html/data/pages/develop/legacy/program_guide/containers/scroller.txt
new file mode 100644
index 00000000..429ac968
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/containers/scroller.txt
@@ -0,0 +1,200 @@
+~~Title: Scroller Container PG~~
+{{page>index}}
+----
+===== Scroller Container =====
+
+{{ :container_scroller_tree.png }}{{ :container_scroller.png }}
+
+A scroller holds (and clips) a single object and allows you to scroll across
+it. This means that the user can use a scroll bar or their finger to drag the
+viewable region across the object, moving through a much larger area than is
+contained in the viewport. The scroller will always have a default minimum
+size that is not limited by its contents.
+
+The scroller widget inherits all the functions of the
+[[/develop/legacy/program_guide/container/layout|Layout Container]].
+
+=== Table of Contents ===
+
+ * [[/develop/legacy/program_guide/containers/scroller#Creating_a_Scroller|Creating a Scroller]]
+ * [[/develop/legacy/program_guide/containers/scroller#Adding_Objects_to_the_Scroller|Adding Objects to the Scroller]]
+ * [[/develop/legacy/program_guide/containers/scroller#Managing_the_Properties_of_the_Scroller|Managing the Properties of the Scroller]]
+ * [[/develop/legacy/program_guide/containers/scroller#Signals|Signals]]
+ * [[/develop/legacy/program_guide/containers/scroller#Example|Example]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Scroller.html|Scroller Container API]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_scroller.html|A Scroller Example]]
+
+===== Creating a Scroller =====
+
+To create a scroller, use the ''elm_scroller_add()'' function:
+
+
+Evas_Object *scroller = elm_scroller_add(parent);
+
+
+==== Adding Objects to the Scoller ====
+
+To add an object to the scroller, use the ''elm_object_content_set()'' function:
+
+
+Evas_Object *image;
+
+image = elm_image_add(parent);
+elm_image_file_set(image, "image.png", NULL);
+evas_object_show(image);
+evas_object_size_hint_min_set(image, 2560, 1600);
+elm_object_content_set(scroller, image);
+
+
+In the above code, we set a minimum size of 2560 x 1600 pixels for the image.
+The scroller is smaller than the image, so you can scroll across the image.
+
+If you want to be informed when the user begins scrolling the image, use the
+following code:
+
+
+evas_object_smart_callback_add(scroller, "scroll,drag,start",
+_scroll_start_cb, NULL);
+
+// Callback function for the "animate,begin" signal.
+// This callback is called when the user begins scrolling the image.
+void _scroll_start_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("Scroll starts\n");
+}
+
+
+==== Managing the Properties of the Scroll ====
+
+When scrolling content, the scroller may "bounce" when reaching the edge of
+the content. This is a visual way of indicating that there is no more content
+to scroll in that direction. Bounce is enabled by default for both axes. To
+enable or disable the bounce for either or both axes, use the
+elm_scroller_bounce_set() function. The following code disables the bounce for
+the horizontal axis and enables it for the vertical axis:
+
+
+elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_TRUE);
+
+
+The scroller can limit the scrolling to "pages". In this case, the scrolling
+occurs in page-sized chunks of content rather than in a purely continuous
+fashion, with the scroller displaying a single "page" at a time. This feature
+sets the size of the page relative to the viewport of the scroller. A size of
+1.0 equals 1 viewport (horizontally or vertically). A size of 0.0 disables
+paging for that axis. These settings are mutually exclusive with page size
+(see the ''elm_scroller_page_size_set()'' function). A size of 0.5 equals half a
+viewport. Usable size values are normally between 0.0 and 1.0, including 1.0.
+If you only want a single axis to scroll in pages, use 0.0 for the other axis.
+
+==== Signals ====
+
+The scroller emits the following signals, which you can catch in your
+application:
+
+ * ''"edge,left"'' - the left edge of the content has been reached
+ * ''"edge,right"'' - the right edge of the content has been reached
+ * ''"edge,top"'' - the top edge of the content has been reached
+ * ''"edge,bottom"'' - the bottom edge of the content has been reached
+ * ''"scroll"'' - the content has been scrolled (moved)
+ * ''"scroll,left"'' - the content has been scrolled (moved) leftwards
+ * ''"scroll,right"'' - the content has been scrolled (moved) rightwards
+ * ''"scroll,up"'' - the content has been scrolled (moved) upwards
+ * ''"scroll,down"'' - the content has been scrolled (moved) downwards
+ * ''"scroll,anim,start"'' - scrolling animation has started
+ * ''"scroll,anim,stop"'' - scrolling animation has stopped
+ * ''"scroll,drag,start"'' - dragging the contents around has started
+ * ''"scroll,drag,stop"'' - dragging the contents around has stopped
+ * ''"vbar,drag"'' - the vertical scroll bar has been dragged
+ * ''"vbar,press"'' - the vertical scroll bar has been pressed
+ * ''"vbar,unpress"'' - the vertical scroll bar has been unpressed
+ * ''"hbar,drag"'' - the horizontal scroll bar has been dragged
+ * ''"hbar,press"'' - the horizontal scroll bar has been pressed
+ * ''"hbar,unpress"'' - the horizontal scroll bar has been unpressed
+ * ''"scroll,page,changed"'' - the visible page has changed
+ * ''"focused"'' - When the scroller has received focus. (since 1.8)
+ * ''"unfocused"'' - When the scroller has lost focus. (since 1.8)
+
+
+==== Example ====
+
+A good example of the scroller is a picture slideshow: we add images to the
+scroller and limit the scrolling to pages (one picture at a time). In the
+following code, we disable the scroll bars for both axes, limit the scrolling
+to pages by using the ''elm_scroller_page_scroll_limit_set()'' function, and lock
+the scrolling on the Y axis by using the ''elm_object_scroll_lock_y_set()''
+function:
+
+
+elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
+elm_scroller_page_scroll_limit_set(scroller, 1, 0);
+elm_object_scroll_lock_y_set(scroller, EINA_TRUE);
+
+
+We create a horizontal box, which will contain all the images, and which
+itself will be contained by the scroller:
+
+
+box = elm_box_add(scroller);
+elm_box_horizontal_set(box, EINA_TRUE);
+elm_object_content_set(scroller, box);
+evas_object_show(box);
+
+
+We then create all the images and add them to the horizontal box:
+
+
+img = elm_image_add(scroller);
+snprintf(buf, sizeof(buf), IMAGE_DIR"/%d.jpg", i);
+elm_image_file_set(img, buf, NULL);
+evas_object_show(img);
+pages = eina_list_append(pages, img);
+elm_box_pack_end(box, img);
+
+
+We store references to the images in an ''eina_list'' for easy retrieval later.
+
+Finally, we display the first page of the scroller:
+
+
+elm_scroller_page_show(scroller, 0, 0);
+
+
+The size of the scroller depends on the size of the parent. When the parent
+changes, for example when the window is resized or rotated, the scroller is
+also resized. Since we need to be informed when the scroller is resized, we
+add a callback on the ''EVAS_CALLBACK_RESIZE'' event for the scroller:
+
+
+evas_object_event_callback_add(scroller, EVAS_CALLBACK_RESIZE, _scroller_resize_cb, NULL);
+
+
+The callback retrieves the new size of the scroller by using the
+''evas_object_geometry_get()'' function on the object pointer. The pointer is
+relative to the object that has been resized, which in our case is the
+scroller itself. We can then iterate through the images of the scroller and
+set the minimum size to fit the scroller size:
+
+
+EINA_LIST_FOREACH(images, l, page)
+{
+ evas_object_size_hint_min_set(page, w, h);
+}
+
+
+Finally, we set the page size of the scroller to match the scroller size and
+display the first page:
+
+
+elm_scroller_page_size_set(obj, w, h);
+elm_scroller_page_show(obj, 0, 0);
+
+
+\\
+[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_scroller.html|A Scroller Example]]
+\\
+----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/containers/table.txt b/public_html/data/pages/develop/legacy/program_guide/containers/table.txt
new file mode 100644
index 00000000..80597aa8
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/containers/table.txt
@@ -0,0 +1,91 @@
+~~Title: Table Container PG~~
+{{page>index}}
+----
+===== Table Container =====
+
+{{ :container_table_tree.png }}{{ :container_table.png }}
+
+A table is like a box but with 2 dimensions. You have the same kind of APIs as
+with boxes. An item inside the table can span multiple columns and rows, and
+even overlap with other items (and it can then be raised or lowered
+accordingly to adjust stacking if there is overlap).
+
+=== Table of Contents ===
+
+ * [[/develop/legacy/program_guide/containers/table#Creating_a_Table|Creating a Table]]
+ * [[/develop/legacy/program_guide/containers/table#Adding_Items_to_the_Table|Adding Items to the Table]]
+ * [[/develop/legacy/program_guide/containers/table#Managing_the_Items|Managing the Items]]
+ * [[/develop/legacy/program_guide/containers/table#Clearing_the_Table|Clearing the Table]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Table.html|Table Container API]]
+
+^Table Examples^^
+|//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_table_01.html|A First Table Example ]]__**//| //**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_table_02.html|A Second Table Example ]]__**//|
+
+===== Creating a Table =====
+
+To create a table, use the ''elm_table_add()'' function:
+
+
+Evas_Object *table = elm_table_add(parent);
+
+
+==== Adding Items to the Table ====
+
+Items are added to the table with the ''elm_table_pack()'' function. This function
+takes as parameters the table, the item to add to the table, and the position
+where to add the item: column, row, and the size of the item in number of rows
+and columns (colspan and rowspan). If we want to create an icon that takes 3
+columns and rows and a button that only takes 1 row and column, the code will
+look like this:
+
+
+ic = elm_icon_add(table);
+elm_image_file_set(ic, "icon.png", NULL);
+evas_object_show(ic);
+elm_table_pack(table, ic, 0, 0, 3, 3);
+
+btn = elm_button_add(table);
+elm_object_text_set(btn, "Click me i'm famous");
+evas_object_show(btn);
+elm_table_pack(table, btn, 3, 1, 1, 1);
+evas_object_show(table);
+
+
+==== Managing the Items ====
+
+If you want to change the position of the item after adding it, use the
+''elm_table_pack_set()'' function. This function takes as parameters the item
+whose position to change, the new column, the new row, and the size of the
+item in number of rows and columns (colspan and rowspan).
+
+To add padding around the item, use the ''elm_table_padding_set()'' function. The
+second parameter is the padding between columns, and the third parameter is
+the padding between rows:
+
+
+elm_table_padding_set(table, 10, 10);
+
+
+To change the alignment and size of an item, use the ''evas_object_size_hint''
+parameters. They are used in the same way as with boxes. You can set the same
+size and weight to each item by using the homogeneous parameter:
+
+
+elm_table_homogeneous_set(table, EINA_TRUE);
+
+
+==== Clearing the Table ====
+
+To clear the table, use the ''elm_table_clear()'' function. If the clear
+parameter is ''EINA_TRUE'', the table items are deleted. The
+''evas_object_del()'' function will be called on each item.
+
+
+\\
+|//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_table_01.html|A First Table Example ]]__**//| //**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_table_02.html|A Second Table Example ]]__**//|
+
+----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/containers_pg.txt b/public_html/data/pages/develop/legacy/program_guide/containers_pg.txt
new file mode 100644
index 00000000..0b057d5f
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/containers_pg.txt
@@ -0,0 +1,219 @@
+~~Title: Container Programming Guide~~
+{{page>index}}
+===== Container Programming Guide =====
+
+Elementary is about displaying its widgets in a nice layout, for this purpose
+it provides a number of containers.
+
+=== Table of Contents ===
+
+ * [[/develop/legacy/program_guide/containers/box|Box]]
+ * [[/develop/legacy/program_guide/containers/conformant|Conformant]]
+ * [[/develop/legacy/program_guide/containers/gengrid|Gengrid(Generic Grid)]]
+ * [[/develop/legacy/program_guide/containers/genlist|Genlist(Generic List)]]
+ * [[/develop/legacy/program_guide/containers/grid|Grid]]
+ * [[/develop/legacy/program_guide/containers/layout|Layout]]
+ * [[/develop/legacy/program_guide/containers/mapbuf|Mapbuf]]
+ * [[/develop/legacy/program_guide/containers/naviframe|Naviframe]]
+ * [[/develop/legacy/program_guide/containers/panes|Panes]]
+ * [[/develop/legacy/program_guide/containers/scroller|Scroller]]
+ * [[/develop/legacy/program_guide/containers/table|Table]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/containerslist.html|Container List API]]
+
+----
+++++Box Container|
+{{ :container_box_tree.png }}{{ :container_box.png }}
+
+Most of the time, you want to display widgets on the screen in a specific
+order. In Form Tutorial, for example, the user information is arranged
+vertically. This basic container is called a box. There is no theme for a box
+layout. It is just a linear method of arranging widgets horizontally or
+vertically.
+
+ * [[/develop/legacy/program_guide/containers/box#Creating_a_Box|Creating a Box]]
+ * [[/develop/legacy/program_guide/containers/box#Adding_Objects_to_the_Box|Adding Objects to the Box]]
+ * [[/develop/legacy/program_guide/containers/box#Setting_the_Padding|Setting the Padding]]
+ * [[/develop/legacy/program_guide/containers/box#Handling_Element_Size|Handling Element Size]]
+ * [[/develop/legacy/program_guide/containers/box#Setting_the_Alignment|Setting the Alignment]]
+ * [[/develop/legacy/program_guide/containers/box#Using_Size_Hints|Using Size Hints]]
+
+[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Box.html|Box Container API]]
+++++
+----
+++++Conformant Container|
+{{ :container_conformant_tree.png }}{{ :container_conformant.png }}
+
+A conformant is a container widget that accounts for the space taken by the
+indicator, virtual keyboard, and softkey windows. The content area of the
+conformant is resized and positioned based on the space available. When the
+virtual keyboard is displayed, the content area is not resized.
+
+ * [[/develop/legacy/program_guide/containers/conformant#Creating_a_Conformant|Creating a Conformant]]
+ * [[/develop/legacy/program_guide/containers/conformant#Adding_Content_to_the_Conformant|Adding Content to the Conformant]]
+ * [[/develop/legacy/program_guide/containers/conformant#Signals|Signals]]
+
+[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Conformant.html|Conformant Container API]]
+++++
+----
+++++Gengrid Container|
+{{ :container_gengrid_tree.png }}
+
+Gengrid widget is based on the same idea as the genlist. It aims at displaying
+objects on a grid layout and rendering only the visible ones. As for the
+genlist, callbacks are called at item creation or deletion.
+
+This widget inherits from the layout widget and implements the scroller
+interface. Thus scroller and layout functions can be used with this widget.
+
+A gengrid may display its items using horizontal or vertical layout. In the
+first layout, items are displayed in columns from top to bottom, starting a
+new column when the space for the current column is filled. In the second one,
+items are set in rows from left to right.
+
+ * [[/develop/legacy/program_guide/containers/gengrid#Adding_a_Gengrid|Adding a Gengrid]]
+ * [[/develop/legacy/program_guide/containers/gengrid#Gengrid_Items|Gengrid Items]]
+ * [[/develop/legacy/program_guide/containers/gengrid#Creating_and_Deleting_Items|Creating and Deleting Items]]
+ * [[/develop/legacy/program_guide/containers/gengrid#Managing_Items|Managing Items]]
+ * [[/develop/legacy/program_guide/containers/gengrid#Using_Gengrid_Callbacks|Using Gengrid Callbacks]]
+
+[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Gengrid.html|Gengrid Container API]]
+++++
+----
+++++Genlist Container|
+{{ :container_genlist_tree.png }}{{ :container_genlist.png }}
+
+Genlist is a widget that displays a scrollable list of items. It allows a lot of entries while being fast and has a low memory footprint (only the visible items are allocated in the memory).
+
+ * [[/develop/legacy/program_guide/containers/genlist#Genlist_Item_Style|Genlist Item Style]]
+ * [[/develop/legacy/program_guide/containers/genlist#Adding_a_Genlist|Adding a Genlist]]
+ * [[/develop/legacy/program_guide/containers/genlist#Creating_And_Deleting_Items|Creating And Deleting Items]]
+ * [[/develop/legacy/program_guide/containers/genlist#Managing_Items|Managing Items]]
+ * [[/develop/legacy/program_guide/containers/genlist#Selection|Selection]]
+ * [[/develop/legacy/program_guide/containers/genlist#Using_Genlist_Callbacks|Using Genlist Callbacks]]
+
+[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Genlist.html|Genlist Container API]]
+++++
+----
+++++Grid Container|
+In a grid, objects are placed at specific positions along a fixed grid, where
+the position of each object is given as a percentage of the full width and
+height of the grid. By default, the size of the grid is 100 x 100 pixels.
+
+ * [[/develop/legacy/program_guide/containers/grid#Creating_a_Grid|Creating a Grid]]
+ * [[/develop/legacy/program_guide/containers/grid#Adding_Items_to_the_Grid|Adding Items to the Grid]]
+ * [[/develop/legacy/program_guide/containers/grid#Changing_Position_and_Size|Changing Position and Size]]
+ * [[/develop/legacy/program_guide/containers/grid#Clearing_the_Grid|Clearing the Grid]]
+
+[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Grid.html|Grid Container API]]
+++++
+----
+++++Layout Container|
+A layout is a container widget that takes a standard Edje design file and
+wraps it very thinly in a widget. Layouts are the basis of a lot of graphics
+widgets used in Elementary.
+
+An Edje design file describes how the elements of the UI are positioned and
+how they behave when interacted with. For more information about Edje, see the
+Edje guide.
+
+ * [[/develop/legacy/program_guide/containers/layout#Creating_a_Layout|Creating a Layout]]
+ * [[/develop/legacy/program_guide/containers/layout#Adding_Objects_to_the_Layout|Adding Objects to the Layout]]
+ * [[/develop/legacy/program_guide/containers/layout#Using_Layout_Themes|Using Layout Themes]]
+
+[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Layout.html|Layout Container API]]
+++++
+----
+++++Mapbuf Container|
+{{ :container_mapbuf_tree.png }}
+
+A mapbuf widget is a container widget that uses an Evas map to hold a content
+object. This widget is used to improve the moving and resizing performance of
+complex widgets.
+
+The content object is treated as a single image by the Evas map. If you have a
+content object containing several child objects, frequently moving the mapbuf
+widget will be faster than frequently moving the content object.
+
+The mapbuf widget inherits all the functions of the container class.
+
+ * [[/develop/legacy/program_guide/containers/mapbuf#Creating_a_Mapbuf|Creating a Mapbuf]]
+ * [[/develop/legacy/program_guide/containers/mapbuf#Adding_Content_to_the_Mapbuf|Adding Content to the Mapbuf]]
+ * [[/develop/legacy/program_guide/containers/mapbuf#Activating_the_Mapbuf|Activating the Mapbuf]]
+ * [[/develop/legacy/program_guide/containers/mapbuf#Signals|Signals]]
+
+[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Mapbuf.html|Mapbuf Container API]]
+++++
+----
+++++Naviframe Container|
+{{ :container_naviframe_tree.png }}
+
+A naviframe widget consists of a stack of views. New views are pushed on top
+of previous ones, and only the top-most view on the stack is displayed. The
+previous views are not deleted. A previous view is displayed when the view on
+top of it is popped. Transitions can be animated on a push or a pop, depending
+on the theme applied to the widget.
+
+ * [[/develop/legacy/program_guide/containers/naviframe#Creating_a_Naviframe|Creating a Naviframe]]
+ * [[/develop/legacy/program_guide/containers/naviframe#Adding_and_Deleting Views|Adding and Deleting Views]]
+ * [[/develop/legacy/program_guide/containers/naviframe#Adding_Fixed_Content|Adding Fixed Content]]
+ * [[/develop/legacy/program_guide/containers/naviframe#Signals|]]
+
+[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Naviframe.html|Naviframe Container API]]
+++++
+----
+++++Panes Container|
+{{ :container_panes_tree.png }}{{ :container_panes.png }}
+
+A panes widget adds a draggable bar between two sections of content. The
+sections are resized when the bar is dragged.
+
+ * [[/develop/legacy/program_guide/containers/panes#Creating_Panes|Creating Panes]]
+ * [[/develop/legacy/program_guide/containers/panes#Adding Content to the Panes|Adding Content to the Panes]]
+ * [[/develop/legacy/program_guide/containers/panes#Setting_Panes_Options|Setting Panes Options]]
+ * [[/develop/legacy/program_guide/containers/panes#Signals|Signals]]
+
+[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Panes.html|Panes Container API]]
+++++
+----
+++++Scroller Container|
+{{ :container_scroller_tree.png }}{{ :container_scroller.png }}
+
+A scroller holds (and clips) a single object and allows you to scroll across
+it. This means that the user can use a scroll bar or their finger to drag the
+viewable region across the object, moving through a much larger area than is
+contained in the viewport. The scroller will always have a default minimum
+size that is not limited by its contents.
+
+The scroller widget inherits all the functions of the Layout Container.
+
+ * [[/develop/legacy/program_guide/containers/scroller#Creating_a_Scroller|Creating a Scroller]]
+ * [[/develop/legacy/program_guide/containers/scroller#Adding_Objects_to_the_Scroller|Adding Objects to the Scroller]]
+ * [[/develop/legacy/program_guide/containers/scroller#Managing_the_Properties_of_the_Scroller|Managing the Properties of the Scroller]]
+ * [[/develop/legacy/program_guide/containers/scroller#Signals|Signals]]
+ * [[/develop/legacy/program_guide/containers/scroller#Example|Example]]
+
+[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Scroller.html|Scroller Container API]]
+++++
+----
+++++Table Container|
+{{ :container_table_tree.png }}{{ :container_table.png }}
+
+A table is like a box but with 2 dimensions. You have the same kind of APIs as
+with boxes. An item inside the table can span multiple columns and rows, and
+even overlap with other items (and it can then be raised or lowered
+accordingly to adjust stacking if there is overlap).
+
+ * [[/develop/legacy/program_guide/containers/table#Creating_a_Table|Creating a Table]]
+ * [[/develop/legacy/program_guide/containers/table#Adding_Items_to_the_Table|Adding Items to the Table]]
+ * [[/develop/legacy/program_guide/containers/table#Managing_the_Items|Managing the Items]]
+ * [[/develop/legacy/program_guide/containers/table#Clearing_the_Table|Clearing the Table]]
+
+[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Table.html|Table Container API]]
+++++
+
+\\
+----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/customizing_ui_pg.txt b/public_html/data/pages/develop/legacy/program_guide/customizing_ui_pg.txt
new file mode 100644
index 00000000..557174e0
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/customizing_ui_pg.txt
@@ -0,0 +1,503 @@
+{{page>index}}
+--------
+===== Customizing UI Components =====
+
+Elementary UI components use the Edje library EDC themes to manage their look.
+
+=== Table of Contents ===
+
+ * [[#Elementary_Theme|Elementary Theme]]
+ * [[#Overlay|Overlay]]
+ * [[#Extension|Extension]]
+ * [[#Customizing_a_UI_Component_Style|Customizing a UI Component Style]]
+ * [[#Swallow_Parts|Swallow Parts]]
+ * [[#Text_Parts|Text Parts]]
+
+==== Elementary Theme ====
+
+An Elementary theme is an Edje EDC file that contains groups composed of parts
+and programs. For more information about Edje, refer to the
+[[/develop/legacy/program_guide/edje_pg|Edje Guide]].
+
+== Use Theme Styles ==
+
+Elementary UI components provide a way to modify only some parts of the styles
+using the default theme. A style is a part of the EDC theme (a group) that
+concerns only one UI component. For example, you can create a new style for a
+button component to change its appearance without modifying the default theme.
+
+
+Evas_Object *parent, *button;
+
+// Create a button object
+button = elm_button_add(parent);
+
+// Set its style to "anchor""
+elm_object_style_set(button, "anchor");
+
+
+== Load Theme Styles ==
+
+Once written and compiled with Edje tools, the Elementary provides two methods
+to load the style in the application theme:
+
+ * overlays
+ * extensions
+
+When looking for a theme, the Elementary checks the list of overlays, if any
+are defined. Then it takes the default theme, and if it cannot find a theme
+for the UI component, it looks at the extensions list.
+
+=== Overlay ===
+
+An overlay can replace the look of all UI components by overriding the default
+style. If we create a new style called "default" for the button component and
+add it as an overlay, the Elementary uses the overlay for all button
+components overriding the default theme.
+
+Here is how to add an overlay to your application's theme.
+
+
+elm_theme_overlay_add(NULL, "./theme_button.edj");
+
+
+
+elm_theme_overlay_del(NULL, "./theme_button.edj");
+
+
+=== Extension ===
+
+With extensions, we can write styles that we can apply to some UI components
+(not all of them) by using the ''elm_object_style_set()'' function.
+
+The application adds a theme to the list of extensions with the following
+call.
+
+
+elm_theme_extension_add(NULL, "./theme_button_style_custom.edj");
+
+
+
+Evas_Object *parent, *button;
+
+// Create a button object
+button = elm_button_add(parent);
+
+// Set its style to "custom"
+elm_object_style_set(button, "custom");
+
+
+
+Elm_Theme *new_theme = elm_theme_new();
+
+
+This function creates an empty specific theme that only uses the default
+theme. It has its own private set of extensions and overlays (which are empty
+by default). Specific themes do not fall back to the themes of parent objects.
+They are not intended for this use.
+
+This is how to apply this theme to a UI component and its children (a button,
+for example).
+
+
+// Create a button component
+Evas_Object *button = elm_button_add();
+
+// Set the new theme to the button component
+elm_object_theme_set(button, new_theme);
+
+
+==== Customizing a UI Component Style ====
+
+UI component themes are written in Edje EDC source files (.edc). These files
+are compiled with Edje tools to make an .edj file that is used by the
+application. For more information on using the EDC language, see the
+[[/develop/legacy/program_guide/edje_pg|Edje Guide]].
+
+A new Edje style can be added for a UI component. The best way is to copy the
+existing "default" style, rename it, and update it to your needs.
+
+== Create a Customized Style for the Check Component ==
+
+As an example, we show how to create a new style for the ''check'' component.
+The aim is to update the background and the main pictures of this UI component
+with custom pictures.
+
+The EDC source file concerning the check component (check.edc file) is
+composed of several groups.
+
+
+group
+{
+ name: "elm/check/base/default";
+}
+
+group
+{
+ name: "elm/check/base/toggle";
+}
+
+
+Those two groups define two different styles for the check component (the
+"default" style and the "toggle" style).
+
+We copy the group corresponding to the "default" style in a new file to create
+a new style called "custom". This new style is saved in the "check_custom.edc"
+file.
+
+
+group
+{
+ name: "elm/check/base/custom";
+ // Here is the copy of the content of "default" style
+}
+
+
+In the new group ("elm/check/base/custom"), we have to find the parts we want
+to modify. Here, the appropriate parts are "bg" and "check" parts.
+
+
+part
+{
+ name: "bg";
+ mouse_events: 0;
+ scale: 1;
+ description
+ {
+ state: "default" 0.0;
+ rel1.offset: 1 1;
+ rel2.relative: 0.0 1.0;
+ rel2.offset: 1 -2;
+ align: 0.0 0.5;
+ min: 16 16;
+ max: 16 16;
+ aspect: 1.0 1.0;
+ aspect_preference: VERTICAL;
+ image
+ {
+ normal: "check_base.png";
+ border: 5 5 5 5;
+ middle: 0;
+ }
+ fill.smooth: 0;
+ }
+}
+part
+{
+ name: "check";
+ mouse_events: 0;
+ scale: 1;
+ description
+ {
+ state: "default" 0.0;
+ rel1
+ {
+ to: "bg";
+ offset: 1 1;
+ }
+ rel2
+ {
+ to: "bg";
+ offset: -2 -2;
+ }
+ visible: 0;
+ color: 255 255 255 255;
+ image.normal: "check.png";
+ }
+ description
+ {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description
+ {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ color: 128 128 128 128;
+ }
+ description
+ {
+ state: "disabled_visible" 0.0;
+ inherit: "default" 0.0;
+ color: 128 128 128 128;
+ visible: 1;
+ }
+}
+
+
+We do not detail all the options that can be modified here, but assume that
+the user is familiar with [[/develop/legacy/program_guide/edje_pg|Edje]] and knows Edje
+basics.
+.
+Our custom pictures filenames are:
+
+ * check_base_custom.png for the bg part
+ * check_custom.png for the check part
+
+We must update the image.normal attribute in both parts with our custom
+pictures filenames to modify the pictures of this style.
+
+
+part
+{
+ name: "bg";
+ description
+ {
+ state: "default" 0.0;
+
+ image
+ {
+ normal: "check_base_custom.png";
+ border: 5 5 5 5;
+ middle: 0;
+ }
+
+ }
+}
+part
+{
+ name: "check";
+
+ description
+ {
+ state: "default" 0.0;
+
+ image.normal: "check_custom.png";
+ }
+
+}
+
+
+
+char edj_path[PATH_MAX] = {0, };
+
+// Get the full path of the edj file
+app_get_resource("/edje/check_custom.edj", edj_path, (int)PATH_MAX);
+
+// Load check custom style as an extension
+elm_theme_extension_add(NULL, edj_path);
+
+
+Use the "custom" style on a new check component.
+
+
+Evas_Object *parent, *check;
+
+// Create a check object
+check = elm_check_add(parent);
+
+// Set its style to "custom"
+elm_object_style_set(check, "custom");
+
+
+== Special Theme Parts ==
+
+Some parts of the EDC file can be interacted with the Elementary. The content
+of parts of the type ''TEXT'' are modified using the
+''elm_object_part_set_text()'' function. The content of ''SWALLOW'' parts is
+updated using the ''elm_object_part_content_set()'' function.
+
+=== Swallow Parts ===
+
+In the previous example (the check component "default" style), there is a part
+called "elm.swallow.content" that is of the type ''SWALLOW''.
+
+
+part
+{
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ description
+ {
+ state: "default" 0.0;
+ fixed: 1 0;
+ visible: 0;
+ align: 0.0 0.5;
+ rel1.to_x: "bg";
+ rel1.relative: 1.0 0.0;
+ rel1.offset: 1 1;
+ rel2.to_x: "bg";
+ rel2.offset: 1 -2;
+ rel2.relative: 1.0 1.0;
+ }
+ description
+ {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ fixed: 1 0;
+ visible: 1;
+ aspect: 1.0 1.0;
+ min: 16 16;
+ }
+ description
+ {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 128;
+ }
+ description
+ {
+ state: "disabled_visible" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 128;
+ fixed: 1 0;
+ visible: 1;
+ aspect: 1.0 1.0;
+ }
+}
+
+
+We can push content (Evas_Object) to this part from the application anytime.
+The size and position of the content pushed is controlled by the EDC theme.
+
+
+Evas_Object *parent, *check1, *content;
+
+// Create a check object
+check1 = elm_check_add(parent);
+
+// Set the content of the check object
+elm_object_part_content_set(check1, "elm.swallow.content", content);
+
+
+
+part
+{
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description
+ {
+ state: "default" 0.0;
+ visible: 0;
+ rel1.to_x: "elm.swallow.content";
+ rel1.relative: 1.0 0.0;
+ rel1.offset: 1 1;
+ rel2.relative: 1.0 1.0;
+ rel2.offset: -2 -2;
+ color: 0 0 0 255;
+ text
+ {
+ font: "Sans,Edje-Vera";
+ size: 10;
+ min: 0 1;
+ align: -1.0 0.5;
+ }
+ }
+ description
+ {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ text.min: 1 1;
+ }
+ description
+ {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ color: 0 0 0 128;
+ color3: 0 0 0 0;
+ }
+ description
+ {
+ state: "disabled_visible" 0.0;
+ inherit: "default" 0.0;
+ color: 0 0 0 128;
+ color3: 0 0 0 0;
+ visible: 1;
+ text.min: 1 1;
+ }
+}
+
+
+This is how to modify the content of the "elm.text" part from the application.
+The position of the text, its size, color, look and feel are managed by the
+EDC theme.
+
+
+Evas_Object *parent, *check2;
+
+// Create a check object
+check2 = elm_check_add(parent);
+
+// Set the text of the check object
+elm_object_part_text_set(check2, "elm.text", "Test text");
+
+
+------
+{{page>index}}
+
diff --git a/public_html/data/pages/develop/legacy/program_guide/edje/basic_concepts.txt b/public_html/data/pages/develop/legacy/program_guide/edje/basic_concepts.txt
new file mode 100644
index 00000000..c64d9e14
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/edje/basic_concepts.txt
@@ -0,0 +1,477 @@
+~~Title: Basic Concepts~~
+{{page>index}}
+-----
+===== Basic Concept =====
+
+=== Table of Contents ===
+
+ * [[#What_is_an_EDC_File?|What is an EDC File?]]
+ * [[#Compiling_EDC_File|Compiling EDC File]]
+ * [[#Writing_Simple_EDC_File_|Writing Simple EDC File ]]
+ * [[#Animating_Theme_Using_Programs|Animating Theme Using Programs]]
+ * [[#Positioning_Basic_Parts|Positioning Basic Parts]]
+ * [[#Adding_Offset_to_Relative_Positioning|Adding Offset to Relative Positioning]]
+ * [[#Calculating_Edje_Object_Total_Size|Calculating Edje Object Total Size]]
+ * [[#Using_Edje_Size_Hints|Using Edje Size Hints]]
+
+==== What is an EDC File? ====
+
+An EDC file stands for Edje data collection. It is a text file that contains
+special code format describing the position, size, and other parameters of
+graphical elements that compose the visual aspect of your application. In
+addition to graphical elements, it can also handle sounds.
+
+The syntax for the Edje data collection files follows a simple structure of
+"blocks { .. }" that can contain "properties: ..", more blocks, or both.
+
+An EDC file has the ".edc" extension.
+
+==== Compiling EDC File ====
+
+EDC file needs to be compiled into a ".edj" file using Edje library tools.
+After compiling the ".edj" file can be used by a EFL/elmentary application.
+
+Here is an example about compiling ''helloworld.edc'' to ".edj" file using
+''edje_cc tool'':
+
+
+$ edje_cc helloworld.edc
+
+
+This command creates a ''helloworld.edj'' file.
+
+An EDC file can use external files such as sounds, images, or fonts. The path
+to these resources are passed to the ''edje_cc'' tool so that they are
+included in the final ".edj" file.
+
+
+$ edje_cc -sd $SOUNDS_DIR -fd $FONTS_DIR -id $IMAGES_DIR
+
+
+''SOUNDS_DIR'', ''FONTS_DIR'', and ''IMAGES_DIR'' are the paths for sounds, fonts, and images resources respectively.
+
+==== Writing Simple EDC File ====
+
+The code example below shows you the structure of an EDC file. It is a
+collection of groups that contain parts and programs.
+
+
+
+collections
+{
+ group
+ {
+ name: "my_group";
+ parts {}
+ programs {}
+ }
+}
+
+
+Groups are identified with a name, parts correspond to the graphical elements.
+Each one of them can have several states that describe a specific position,
+size, and visual aspect. Programs contain the program code, such as
+interaction with the main application through signals. Also animations are
+defined here (changing a part state using an animated transition).
+
+The description field is where the state of a part is written.
+
+
+part
+{
+ description
+ {
+ state: "default" 0.0;
+ }
+ description
+ {
+ state: "state1" 0.0;
+ }
+ description
+ {
+ state: "state2" 0.0;
+ }
+}
+
+
+As an example, here is a simple EDC file that contains only one part and one
+program. The part is a rectangle with blue state and red state, the program
+changes the state from blue to red when user clicks on the rectangle.
+
+
+collections
+{
+ group
+ {
+ name: "example";
+ parts
+ {
+ // create the part
+ part
+ {
+ name: "rectangle";
+ // set the type to RECT (rectangle)
+ type: RECT;
+ // default state (blue color)
+ description
+ {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ // blue color
+ color: 0 0 255 255;
+ }
+ // second state (red color)
+ description
+ {
+ state: "red" 0.0;
+ align: 0.0 0.0;
+ // red color
+ color: 255 0 0 255;
+ }
+ }
+ }
+ programs
+ {
+ // create a program
+ program
+ {
+ name: "change_color";
+ // program is triggered on mouse click
+ signal: "mouse,clicked,*";
+ source: "*";
+ // set the red state of the "rectangle" part
+ action: STATE_SET "red" 0.0;
+ target: "rectangle";
+ }
+ }
+ }
+}
+
+
+A program is triggered when receiving a signal from a specific source (here
+all the sources are taken into account). When launched, it does the action
+(changing the state of a part) on the target (the rectangle).
+
+==== Animating Theme Using Programs ====
+
+The previous example showed how to change the state of a part. It is also
+possible to use the transition parameter to create an animation between the 2
+states. You can specify a transition type (ACCELERATE, DECELERATE, SINUSOIDAL,
+LINEAR, ...) and length (in seconds) of the transition.
+
+The following code example animates the previous state change using a linear
+transition of 2 seconds.
+
+
+programs
+{
+ program
+ {
+ name: "change_color";
+ signal: "mouse,clicked,*";
+ source: "*";
+ action: STATE_SET "red" 0.0;
+ target: "rectangle";
+ transition: LINEAR 2.0;
+ }
+}
+
+
+Edje calculates all frames needed for the animation. The result is a smooth
+animation between the two states and it takes 2 seconds.
+
+==== Positioning Basic Parts ====
+
+Size of a part (in pixels) is set using the min and max parameters. The
+following code example sets the minimum and maximum size of the rectangle part
+to 200x200 px.
+
+
+part
+{
+ name: "rectangle";
+ type: RECT;
+ description
+ {
+ state: "blue" 0.0;
+ align: 0.0 0.0;
+ // set the size to 200x200
+ min: 200 200;
+ max: 200 200;
+ // blue color
+ color: 0 0 255 255;
+ }
+}
+
+
+Position of the parts is defined in the ''rel1'' and ''rel2'' blocks. ''rel1''
+and ''rel2'' blocks are used to define respectively the upper-left corner and
+the lower-right corner of the part. Position can be defined relatively to
+other parts (with the relative parameter) as an offset (offset parameter).
+When using relative positioning, the ''to'', ''to_x'' and ''to_y'' parameters
+are used to define to which part the relative positioning is done. If nothing
+else is specified, the positioning is relative to the parent's part.
+
+To demonstrate the relative positioning, here is a code example that creates
+another part and positions it under the first part (the upper-left corner of
+the new part will start at the lower-left corner of the previous one).
+
+
+part
+{
+ name: "rectangle2";
+ type: RECT;
+ description
+ {
+ state: "green" 0.0;
+ align: 0.0 0.0;
+ // set the size to 200x200
+ min: 200 200;
+ max: 200 200;
+ // green color
+ color: 0 255 0 255;
+ // set the position
+ // rel1 is relative to "rectangle"
+ rel1
+ {
+ relative: 0.0 1.0;
+ to: "rectangle";
+ }
+ // rel2 is relative to the parent
+ rel2
+ {
+ relative: 1.0 1.0;
+ }
+ }
+}
+
+
+
+name: "blue rectangle";
+
+rel1.to: "green rectangle";
+rel1.relative: 0 0;
+rel1.offset: 1 1;
+
+rel2.to: "green rectangle";
+rel2.relative: 0 0;
+rel2.offset: 2 2;
+
+
+For most tasks, relative positioning is simpler than using offsets. Offsets
+are usually left for fine-tuning and creating borders.
+
+The example below is similar to the previous one but uses relative positioning
+instead of offsets to achieve an equivalent at 4x4 but could scale to larger
+sizes.
+
+The blue square starts at 25% of the green square (both vertically and
+horizontally) and ends at 75% of it (again, both vertically and horizontally).
+
+Just like in the previous example, the blue rectangle is named and Edje is
+told what the object of reference is:
+
+
+name: "blue rectangle";
+rel1.to: "green rectangle";
+rel2.to: "green rectangle";
+
+
+The image below shows how to refer pixels using relative positioning when the
+offsets are (0, 0).
+
+{{ :edje_rel1_rel2_offsets_and_relative.png }}
+
+Note the addressing of pixels: (0, 0) is addressed through ''relative: 0 0;
+offset 0 0;'' and each additional 0.25 in the relative field gives a 1-pixel
+move. With this, the pixel addressed through ''relative: 0.75 0.75; offset: 0
+0;'' is at (3, 3) and not (2, 2)!.
+
+This comes from a design choice in Evas and Edje which favor simplicity. In
+the examples shown in this guide, there are 4 pixels and therefore when the
+''[0; 1)'' range is divided in 4, the result is ''[0; 0.25), [0.25; 0.50),
+[0.50; 0.75), [0.75; 1.00)''. With Edje, the value used to refer to each
+segment is the left bound and therefore, 0.75 refers to ''[0.75; 1.00)'',
+i.e. the bottom-right pixel of the green rectangle and not the 3/4th one.
+
+The way to refer to the pixel right before is to set the ''rel2'' bound to
+''relative: 0.75 0.75;'', as would be expressed naturally, and ''offset: -1
+-1;''. This can also be understood as extending the rectangle up to 75% of its
+parent with the upper bound excluded (as shown in the ''[0.50; 0.75)'').
+
+Since ''-1 -1'' is the most common offset wanted for ''rel2'', it is the
+default value; i.e. the default behavior is practical.
+
+==== Calculating Edje Object Total Size ====
+
+When the EDC file is composed of a lot of parts, Edje calculates the size of
+the global Edje object, by taking all the parts and their parameters into
+account. Some parameters have an role in this calculation and affect the
+global size:
+
+ * ''min'' and ''max'': these define the minimum and the maximum size of a part.
+ * ''rel1'' and ''rel2'': these specify the relative position of a part.
+ * ''align'': this relates to the alignment of the part in the parent's object.
+ * ''fixed'': this defines if the part has a fixed size.
+
+
+Evas_Object *object;
+evas_object_size_hint_min_set(object, 0, 0);
+
+
+=== Max Size Hint ===
+
+This sets the hints for the object's maximum size, given in pixels.
+
+Here the horizontal and vertical max size hints of an ''Evas_Object'' are set
+to 200 pixels.
+
+
+evas_object_size_hint_max_set(object, 200, 200);
+
+
+=== Request Size Hint ===
+
+This sets the hints for the object's optimum size.
+
+The following code example defines that the optimum size of a part is 200x200
+pixels.
+
+
+evas_object_size_hint_request_set(object, 200, 200);
+
+
+=== Aspect Size Hint ===
+
+This sets the hints for the object's aspect ratio. Available aspect size hints
+are:
+
+ * ''EVAS_ASPECT_CONTROL_NONE''
+ * ''EVAS_ASPECT_CONTROL_HORIZONTAL''
+ * ''EVAS_ASPECT_CONTROL_VERTICAL''
+ * ''EVAS_ASPECT_CONTROL_BOTH''
+
+
+The other parameters are aspect width and height ratio. These integers are
+used to calculate the proportions of the object. If aspect ratio terms are
+null, the object's container ignores the aspect and scale of the object and
+occupies the whole available area.
+
+{{ :edje_aspect-control-none.png }}
+{{ :edje_aspect-control-horizontal.png }}
+{{ :edje_aspect-control-both.png }}
+
+The following code example sets the aspect size hint to
+''EVAS_ASPECT_CONTROL_BOTH'' with a width of 100 and a height of 200. So
+aspect ratio should be 1/2.
+
+
+evas_object_size_hint_aspect_set(object, EVAS_ASPECT_CONTROL_BOTH, 100, 200);
+
+
+=== Align Size Hint ===
+
+This sets the hints for the object's alignment. This hint is used when the
+object size is smaller than its parent's. The special ''EVAS_HINT_FILL''
+parameter uses maximum size hints with higher priority, if they are set. Also,
+any padding hints set on objects are added up to the alignment space on the
+final scene composition.
+
+{{ :edje_align_hints.png }}
+
+In the code below, the special ''EVAS_HINT_FILL'' parameter is used.
+
+
+evas_object_size_hint_align_set(object, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+
+=== Weight Size Hint ===
+
+This sets the hints for the object's weight. The weight tells to a container
+object how the given child is resized. Using ''EVAS_HINT_EXPAND'' parameter
+asks to expand the child object's dimensions to fit the container's own.
+
+When several child objects have different weights in a container object, the
+container distributes the space it has to layout them by those factors. Most
+weighted children get larger in this process than the least ones.
+
+Here the container is asked to expand the object in both directions.
+
+
+evas_object_size_hint_weight_set(object, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+
+=== Padding Size Hint ===
+
+This sets the hints for the object's padding space. Padding is extra space an
+object takes on each of its delimiting rectangle sides. The padding space is
+rendered transparent. Four hints can be defined, for the left, right, top, and
+bottom padding.
+
+{{ :edje_padding-hints.png }}
+
+Here the padding hints are set to 5 pixels on each side of the object.
+
+
+evas_object_size_hint_padding_set(object, 5, 5, 5, 5);
+
+
+\\
+-------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/edje/edc_reference.txt b/public_html/data/pages/develop/legacy/program_guide/edje/edc_reference.txt
new file mode 100644
index 00000000..23a0b62a
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/edje/edc_reference.txt
@@ -0,0 +1,15 @@
+~~Title: EDC Reference~~
+{{page>index}}
+-----
+===== EDC Reference =====
+
+The documentation includes an
+extensive language reference. You can also access the page on the part
+block directly.
+
+
+\\
+-------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/edje/edje_blocks.txt b/public_html/data/pages/develop/legacy/program_guide/edje/edje_blocks.txt
new file mode 100644
index 00000000..7e626ee8
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/edje/edje_blocks.txt
@@ -0,0 +1,302 @@
+{{page>index}}
+------
+===== Edje Blocks =====
+
+A typical Edje file starts with the following definitions:
+
+
+images {}
+fonts {}
+color_classes {}
+styles {}
+collections
+{
+ sounds
+ {
+ tone: "tone-1" 2300;
+ tone: "tone-2" 2300;
+ sample
+ {
+ name: "sound1" RAW;
+ source: "sound_file1.wav";
+ }
+ }
+ group {}
+ group {}
+}
+
+
+
+images
+{
+ image: "filename1.ext" COMP;
+ image: "filename2.ext" LOSSY 99;
+ set {}
+ set {}
+}
+
+
+The ''images'' block is used to list each image file which are used in the
+theme. If any compression method is used, it is also defined here. Besides the
+document's root, additional ''images'' blocks can be included inside other
+blocks, usually ''collections'', ''group'', and ''part''. This makes file list
+maintenance easier when the theme is split among multiple files.
+
+ * ''RAW'': Uncompressed
+ * ''COMP'': Lossless compression
+ * ''LOSSY [0-100]'': JPEG lossy compression with quality from 0 to 100
+ * ''USER'': Not embedded to the file, refer to the external file instead
+
+=== Images.set Block ===
+
+
+set
+{
+ name: "image_name_used";
+ image {}
+ image {}
+}
+
+
+The ''set'' block is used to define an image with different content depending
+on their size. Besides the document's root, additional ''set'' blocks can be
+included inside other blocks, normally ''collections'', ''group'' and
+''part''. This makes file list maintenance easier when the theme is split
+among multiple files.
+
+ * ''name [image name]''
+
+
+=== Images.set.image Block ===
+
+
+image
+{
+ image: "filename4.ext" COMP;
+ size: 51 51 200 200;
+ border: 0 0 0 0;
+ border_scale_by: 0.0;
+}
+
+
+The ''image'' block inside a ''set'' block defines the characteristic of an
+image. Every block describes one image and the size rule to use it.
+
+For full documentation, see [[#Image]].
+
+ * ''image [image file] [compression method] (compression level)'' \\ This is included in each image file. The full path to the directory holding the images can be defined later with ''edje_cc'''s ''-id'' option. Available compression methods are:
+ * ''RAW'': Uncompressed
+ * ''COMP'': Lossless compression
+ * ''LOSSY [0-100]'': JPEG lossy compression with quality from 0 to 100
+ * ''USER'': Not embedded to the file, refer to the external file instead
+
+ * '' size [minw] [minh] [maxw] [maxh]'' \\ Defines the minimum and maximum size that selects the specified image.
+
+ * ''border [left] [right] [top] [bottom]'' \\ If set, the area (in pixels) of each side of the image is displayed as a fixed size border, from the side to inwards, preventing the corners from being changed on a resize.
+
+ * ''border_scale_by [value]'' \\ If border scaling is enabled then normally the OUTPUT border sizes (e.g. if 3 pixels on the left edge are set as a border, then normally at scale 1.0, those 3 columns are always the exact 3 columns of output, or at scale 2.0 they will be 6 columns, or 0.33 they will merge into a single column). This property multiplies the input scale factor by this multiplier, allowing the creation of supersampled borders to make much higher resolution outputs possible by always using the highest resolution artwork and then runtime scaling it down. Valid values are: 0.0 or bigger (0.0 or 1.0 to turn it off).
+
+==== Fonts Block ====
+
+
+fonts
+{
+ font: "filename1.ext" "fontname";
+ font: "filename2.ext" "otherfontname";
+}
+
+
+The ''fonts'' block is used to list each font file with an alias used later in
+the theme. As with the ''images'' block, additional ''fonts'' blocks can be
+included inside other blocks.
+
+ * ''font [font filename] [font alias]'' \\ Defines each ''font file'' and ''alias'', the full path to the directory containing the font files can be defined with ''edje_cc'''s ''-fd'' option.
+
+==== Data Block ====
+
+
+data
+{
+ item: "key" "value";
+ file: "otherkey" "filename.ext";
+}
+
+
+This block behaves in the same way as the data block inside the parts, only
+the use-cases are different: this is useful for data that is for the whole
+theme, for instance license information, version, authors, and so on.
+
+==== Color_classes Block ====
+
+
+color_classes
+{
+ color_class
+ {
+ name: "colorclassname";
+ color: [0-255] [0-255] [0-255] [0-255];
+ color2: [0-255] [0-255] [0-255] [0-255];
+ color3: [0-255] [0-255] [0-255] [0-255];
+ }
+}
+
+
+The ''color_classes'' block contains a list of one or more ''color_class''
+blocks. Each ''color_class'' allows the designer to name an arbitrary group
+of colors to be used in the theme, the application can use that name to alter
+the color values at runtime.
+
+ * ''name [color class name]'' \\ Sets the name for the color class, used as reference by both the theme and
+the application.
+
+ * ''color [red] [green] [blue] [alpha]'' \\ The main color.
+
+ * ''color2 [red] [green] [blue] [alpha]'' \\ Used as outline in text and textblock parts.
+
+ * ''color3 [red] [green] [blue] [alpha]'' \\ Used as shadow in text and textblock parts.
+
+==== Styles Block ====
+
+
+
+styles
+{
+ style
+ {
+ name: "stylename";
+ base: "..default style properties..";
+ tag: "tagname" "..style properties..";
+ }
+}
+
+
+The ''styles'' block contains a list of one or more ''style'' blocks. A
+''style'' block is used to create style ''
+style
+{
+ name: "list_text_main";
+ base: "font=Sans:style=Regular font_size=30 color=#ffffff ellipsis=1.0";
+ tag: "br" "\n";\
+ tag: "ps" "ps";\
+ tag: "tab" "\t";\
+ tag: "b" "+ font_weight=Bold";
+}
+
+
+==== Collections Block ====
+
+
+collections
+{
+ base_scale: 1.8;
+ sounds
+ {
+ tone: "tone-1" 2300;
+ tone: "tone-2" 440;
+ sample
+ {
+ name: "sound_file1" RAW;
+ source: "sound_file1.wav";
+ }
+ }
+ group
+ {
+ name: "groupname";
+ alias: "anothername;"
+ min: width height;
+ max: width height;
+ parts {}
+ scripts {}
+ limits {}
+ data {}
+ programs {}
+ }
+}
+
+
+The ''collections'' block is used to list the groups that compose the theme.
+Additional ''collections'' blocks do not prevent overriding group names.
+
+The ''sounds'' block contains a list of one or more sound sample and tone
+items.
+
+=== Base Scale ===
+
+ * ''base_scale: [scale factor]'' \\ Information about the scale factor in the edc file.
+
+Object scaling must be defined in the ''config.xml'' file of this application
+to show the application in a proper size in other devices. However, the
+scaling must be based on the scale 1.0 or, if the application is based on
+another scale, this scale must be defined in the ''config.xml'' file. This
+predefined scale is called the "base scale".
+
+The size of a scalable object is multiplied with the device scale value. If
+the scalable object with the size 10 is created in a device with the scale
+1.0, the size of the object is 20 in a device with the scale 2.0, and 40 in a
+device with the scale 4.0.
+
+==== Sounds Block ====
+
+ * ''tone [tone name] [frequency]'' \\ A sound of the given frequency.
+
+=== Sounds.sample Block ===
+
+The sample block defines the sound sample.
+
+ * ''name [sample name] [compression type] (quality)'' \\ Used to include each sound file. The full path to the directory holding the sounds can be defined later with ''edje_cc'''s ''-sd'' option. Valid types are:
+ * ''RAW'': Uncompressed
+ * ''COMP'': Lossless compression
+ * ''LOSSY [-0.1 - 1.0]'': Lossy compression with quality from 0.0 to 1.0
+ * ''AS_IS'': No compression or encoding, write the file information as it is
+
+ * ''source [file name]'' \\ The sound source file name (source can be mono/stereo WAV file. Only files with 44.1 KHz sample rate are supported for now).
+
+------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/edje/edje_swallow.txt b/public_html/data/pages/develop/legacy/program_guide/edje/edje_swallow.txt
new file mode 100644
index 00000000..37cd9da6
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/edje/edje_swallow.txt
@@ -0,0 +1,85 @@
+~~Title: Edje Swallow~~
+{{page>index}}
+-----
+===== Edje Swallow =====
+
+The parent of all layout widgets is Edje. Edje as explained in the
+[[/develop/legacy/program_guide/edje/edje_parts_and_blocks|Edje Parts and Blocks]] using text
+description. One of its main features is the possibility to create "Swallows"
+objects. When this kind of object is added in an Evas, it contains any other
+''Evas_Object''. To create a swallow part, create first the EDC file:
+
+
+collections
+{
+ group
+ {
+ name: "container";
+ parts
+ {
+ part
+ {
+ name: "part.swallow"
+ type: SWALLOW;
+ description
+ {
+ state: "default" 0.0;
+ rel1.offset: 31 31;
+ rel2.offset: -32 -32;
+ }
+ }
+ }
+ }
+}
+
+
+This EDC describes a group named "container", with one part inside of type
+SWALLOW and with the name ''part.swallow''. This part is centered inside the
+parent (it is the default behavior) but there are 32 pixels free all around
+this part. Use ''edje_cc'' to compile the EDC file into a binary EDJ file:
+
+
+edje_cc -o container.edj container.edc
+
+
+Create an Edje object and load this file:
+
+
+edje = edje_object_add(evas_object_evas_get(parent));
+edje_object_file_set(edje, "container.edj", "container");
+
+
+
+ic = elm_icon_add(parent);
+elm_image_file_set(ic, "c1.png", NULL);
+edje_object_part_swallow(edje, "part.swallow", ic);
+
+
+
+Evas_Object *layout;
+layout = elm_layout_add(parent);
+
+
+As for Edje swallows, load an Edje file. Create first an Edje file, that
+contains a black rectangle and an icon in the center.
+
+
+images
+{
+ image: "c1.png" COMP;
+}
+
+collections
+{
+ group
+ {
+ name: "my_layout";
+ parts
+ {
+ part
+ {
+ name: "background";
+ type: RECT; description
+ {
+ state: "default" 0.0; color: 0 0 0 255;
+ }
+ }
+ part
+ {
+ name: "background";
+ type: IMAGE;
+ description
+ {
+ state: "default" 0.0;
+ rel1.offset: 31 31;
+ rel2.offset: -32 -32;
+ default.image: "c1.png";
+ }
+ }
+ }
+ }
+}
+
+
+Compile it with ''edje_cc -o edje_example.edj edje_example.edc''.
+
+This file can be loaded with ''elm_layout_file_set'':
+
+
+elm_layout_file_set(layout, "edje_example.edj", "my_layout");
+
+
+The layout widget may contain as many parts/children as described in its theme
+file (EDC). Some of these children can have special types:
+
+ * ''SWALLOW'' (content holder)
+ * ''BOX''
+ * ''TABLE''
+
+
+Only one object can be added to a ''SWALLOW''. The
+''elm_layout_content_set()/get/unset'' functions are used to manage objects in
+a ''SWALLOW'' part. After being set to this part, the object's size, position,
+visibility, clipping and other description properties are controlled by the
+description of the given part (inside the Edje theme file).
+
+The BOX layout can be used through the ''elm_layout_box_*()'' set of
+functions. It is very similar to the ''elm_box'' widget but the BOX layout's
+behavior is completely controlled by the Edje theme. The TABLE layout is like
+the BOX layout, the difference is that it is used through the
+''elm_layout_table_*()'' set of functions.
+
+==== Signals ====
+
+Elm can send Edje signals to the EDC part by using the
+''elm_layout_signal_emit''. You can also use
+''elm_layout_signal_callback_add'' to receive signals.
+
+Use the following code to listen to any signals sent by the layout:
+
+
+elm_layout_signal_callback_add(layout, "*", "*", _signal_cb, NULL);
+
+static void
+_signal_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ printf("Info received from layout : %s %s\n", emission, source);
+}
+
+
+For more details on this, see the
+[[/develop/legacy/program_guide/event_effect/edje_events#Usual_Usage_for_Parts_Aggregated_in_Groups:_with_Layouts|section
+on edje signals and layouts]].
+
+\\
+-------
+{{page>index}}
+
diff --git a/public_html/data/pages/develop/legacy/program_guide/edje/group_block.txt b/public_html/data/pages/develop/legacy/program_guide/edje/group_block.txt
new file mode 100644
index 00000000..1de78aed
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/edje/group_block.txt
@@ -0,0 +1,176 @@
+{{page>index}}
+-----
+===== Group Block =====
+
+
+group
+{
+ name: "nameusedbytheapplication";
+ alias: "anothername";
+ min: width height;
+ max: width height;
+ parts
+ {
+
+ }
+ script
+ {
+
+ }
+ limits
+ {
+ vertical: "limit_name" height_barrier;
+ horizontal: "limit_name" width_barrier;
+ }
+ data
+ {
+ items: "key" "value";
+ file: "key" "file";
+ }
+ programs {}
+}
+
+
+=== Table of Contents ===
+
+ * [[#Group|Group]]
+ * [[#Group.parts]]
+ * [[#Group.script]]
+ * [[#Group.limits]]
+ * [[#Group.data]]
+
+==== Group ====
+
+A ''group'' block contains the list of parts and programs that compose a given Edje Object.
+
+ * ''name [group name]'' \\ The name that is used by the application to load the resulting Edje object and to identify the group to swallow in a GROUP part. If a group with the same name exists already it will be completely overridden by the new group.
+
+ * ''inherit_only [1 or 0]'' \\ This flags the group as being used only for inheriting, which will inhibit ''edje_cc'' resolving of programs and parts that may not exist in this group, but are located in the group which is inheriting this group.
+
+ * ''inherit [parent group name]'' \\ Parent group name for inheritance. Group ''inherit'' is used to inherit any predefined group and change some property which belongs to ''part'', ''description'', ''items'' or ''program''. The child group has the same properties as its parent group. If you specify the type again in an inherited part, it causes an error.
+
+
+parts
+{
+ part {}
+ part {}
+ part {}
+}
+
+
+The ''parts'' group contain one or more ''part''. Each part describes a visual
+element and has a type: ''text'', ''image'', ''table'', etc.
+
+For complete documentation, see the [[#Part_Block|Part Block guide]].
+
+=== Group.script ===
+
+
+group
+{
+ script
+ {
+
+ }
+ program
+ {
+ script
+ {
+
+ }
+ }
+}
+
+
+This block is used to inject embryo scripts to a given Edje theme and it
+functions in two modalities. When it is included inside a ''program'' block,
+the script is executed every time the program is run, on the other hand, when
+included directly into a ''group'', ''part'', or ''description'' block, it is
+executed once at the load time, in the load order.
+
+For more information, see the [[#Program|Program guide]].
+
+=== Group.limits ===
+
+
+limits
+{
+ vertical: "limit_name" height_barrier;
+ horizontal: "limit_name" width_barrier;
+}
+
+
+This block is used to trigger signals when the Edje object is resized.
+
+
+ * ''vertical [name] [height barrier]'' \\ This sends a signal ''limit,name,over'' when the object is resized and passes the limit by growing over it. When the object's size is reduced below the limit, signal ''limit,name,below'' is sent. This limit is applied on the y axis and is given in pixels.
+
+ * ''horizontal [name] [width barrier]'' \\ This sends a signal ''limit,name,over'' when the object is resized and passes the limit by growing over it. When the object's size is reduced below the limit, signal ''limit,name,below'' is sent. This limit is applied on the x axis and is given in pixels.
+
+=== Group.data ===
+
+
+data
+{
+ item: "key" "value";
+ file: "key2" "somefile";
+}
+
+
+The ''data'' block is used to pass arbitrary parameters from the theme to the
+application. Unlike the ''images'' and ''fonts'' blocks, additional ''data''
+blocks can only be included inside the ''group'' block.
+
+ * ''items: "key" "value";'' \\ Defines a new parameter, the value is the string specified next to it.
+
+ * ''file: "key" "file";'' \\ Defines a new parameter, the value is the contents of the specified file formatted as a single string of text. This property only works with plain text files.
+
+
+programs
+{
+ program {}
+ program {}
+ program {}
+}
+
+
+The ''programs'' group contain one or more ''program''.
+
+For more information about the program structure, see the [[#Program|Program
+guide]].
+
+-----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/edje/index.txt b/public_html/data/pages/develop/legacy/program_guide/edje/index.txt
new file mode 100644
index 00000000..7764a3ab
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/edje/index.txt
@@ -0,0 +1,6 @@
+++++Edje Menu|
+^ [[/develop/legacy/program_guide/edje_pg|Edje Programming Guide]] ([[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/edje_main.html|Edje API]]) ^^^^^
+| [[/develop/legacy/program_guide/edje/basic_concepts|Basic Concepts]] | [[/develop/legacy/program_guide/edje/scaling_objects|Scaling Objects]] | [[/develop/legacy/program_guide/edje/edje_swallow|Edje Swallow]] | [[/develop/legacy/program_guide/edje/elm_layout|ELM Layout]] ||
+^ Quick How Tos: | [[/develop/legacy/program_guide/edje/edje_blocks|Edje Blocks]] | [[/develop/legacy/program_guide/edje/group_block|Group Block]] | [[/develop/legacy/program_guide/edje/part_block|Part Block]] | [[/develop/legacy/program_guide/edje/program|Program]] |
+++++
+
diff --git a/public_html/data/pages/develop/legacy/program_guide/edje/part_block.txt b/public_html/data/pages/develop/legacy/program_guide/edje/part_block.txt
new file mode 100644
index 00000000..cc57b987
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/edje/part_block.txt
@@ -0,0 +1,961 @@
+{{page>index}}
+-----
+===== Part Block =====
+
+=== Table of Contents ===
+
+ * [[#Part|Part]]
+ * [[#Draggable|Draggable]]
+ * [[#Box/table|Box/table]]
+ * [[#Description|Description]]
+
+
+part
+{
+ // inherit all the fields of another part
+ inherit: "partname";
+ // name the part
+ name: "partname";
+ // set the part type
+ type: IMAGE;
+ // enable mouse events on the part
+ mouse_events: 0/1;
+ // repeat mouse events to parts below the current one
+ repeat_events: 0/1;
+ ignore_flags: NONE;
+ // whether the part sizes scale with the edje scaling factor
+ scale: 0/1;
+ // whether fully-transparent pixels are taken into account for collision detection
+ precise_is_inside: 0/1;
+ // only render the area of the part that coincides with the given part
+ clip_to: "anotherpart";
+ // for group/textblock parts: swallow the given group (for textblock: goes below text)
+ source: "groupname";
+ // same as source but goes on top of text
+ source2: "groupname";
+ // for textblock parts: swallow the given group below the mouse cursor when it hovers over the part
+ source3: "groupname";
+ // same as source3 but goes on top of the cursor
+ source4: "groupname";
+ // for textblock parts: swallow the given group below text anchors (<a>...</a>)
+ source5: "groupname";
+ // same as source5 but goes on to top of the anchor
+ source6: "groupname";
+ // add a shadow effect to the part
+ effect: SOFT_SHADOW (BOTTOM_RIGHT);
+ // for textblock parts: makes the text editable, possibly with a specific behavior
+ entry_mode: PASSWORD;
+ // for textblock parts: change how the tex selection is triggered
+ select_mode: EXPLICIT;
+ // for editable textblock parts: where to draw the (blinking) cursor
+ cursor_mode: UNDER;
+ // for editable textblock parts: allow multiple lines
+ multiline: 0/1;
+ // for textblock parts: accessibility features will be used
+ access: 0/1;
+ // no-one uses that
+ pointer_mode: AUTOGRAB;
+ use_alternate_font_metrics: 0/1;
+ // remove the given program; useful when it was inherited
+ program_remove: "programname";
+ // remove the given part; useful when it was inherited
+ part_remove: "partname";
+ // insert the current part below the given part, as if it were declared before
+ insert_before: "partname";
+ // insert the current part above the given part, as if it were declared after
+ insert_after: "partname";
+ // define a new part inside this one
+ part
+ {
+
+ }
+ draggable
+ {
+ // confine the current part to the given part
+ confine: "another part";
+ // only start drag when it would have moved enough to be outside of the given part
+ threshold: "another part";
+ // forward drag events to the given part instead of handling them
+ events: "another draggable part";
+ // enable horizontal drag of the part with steps each step_size or with steps_count steps
+ x: 0/1 <step_size> <steps_count>;
+ // same as x but vertical
+ y: 1 0 100;
+ }
+ // for box or table parts
+ box/table
+ {
+ // list of items
+ items
+ {
+ item
+ {
+ // define item type, can only be GROUP
+ type: GROUP;
+ // name the item
+ name: "name";
+ // set the source for this item, i.e. its contents
+ source: "groupname";
+ // minimum horizontal and vertical item sizes (-1 for expand)
+ min: -1 -1;
+ // maximum horizontal and vertical item sizes (-1 for ignore)
+ max: 100 100;
+ // set the item padding in pixels
+ padding: 2 2 2 2;
+ spread: 1 1;
+ // set the item alignment
+ align: 0.5 0.5;
+ // set a weight hint in the box for the given object
+ weight: 1 1;
+ // set the aspect ratio hint
+ aspect: 1 1;
+ aspect_mode: BOTH;
+ // number of columns and rows the item will take
+ span: 1 1;
+ }
+ }
+ }
+ description
+ {
+ // inherit another description
+ inherit: "default" 1.0;
+ // name the current description
+ state: "default" 1.0;
+ // use another part as content of the current "PROXY" part (This description only works in the PROXY part and the current part mirrors the rendering content of the source part)
+ source: "partname";
+ // make the part (in)visible (invisible parts emit no signals)
+ visible: 0/1;
+ // emit a signal when the given dimension becomes zero or stops being zero
+ limit: WIDTH;
+ // horizontal and vertical alignment of the part inside its parent
+ align: 0.5 0.5;
+ // set that the part does not change size
+ fixed: 0/1 0/1;
+ // set the minimum size for the part
+ min: 200 200;
+ // forcibly multiply the minimum sizes by the given factors
+ minmul: 1.2 1.2;
+ // set the maximum size for the part
+ max: 400 400;
+ // make vertical and horizontal resizes happen in steps
+ step: 0 0;
+ // force aspect ratio to be kept between min and max between resizes
+ aspect: 0.8 1.2;
+ // the dimension to which the aspect ratio applies
+ aspect_preference: BOTH;
+ // use the given color class which can be used to factor font colors
+ color_class: "colorclassname";
+ // set the text color
+ color: 255 0 0 255;
+ // set the color of the text's shadow
+ color2: 0 255 0 255;
+ // set the color of the text's outline
+ color3: 0 0 255 255;
+ // define the positions of the top-left (rel1) and bottom-right (rel2) corners
+ rel1/rel2
+ {
+ // make relative and offset use the given part for their positioning
+ to: "partname";
+ // position the corner relative to the part given through to (0.0 being axis beginning, 1.0 being its end)
+ relative: 0.1 0.1;
+ // add an absolute offset (in pixels) along each axis
+ offset: 10 10;
+ // same as to but only for the x axis
+ to_x: "partname";
+ // same as to but only for the y axis
+ to_y: "partname";
+ }
+ // settings specific to parts of type image
+ image
+ {
+ // name (not path) of the regular image
+ normal: "imagename";
+ // image to use while transitioning to the normal image; use several times to create animations
+ tween: "imagename2";
+ // set the number of pixels that make up each border of the image, i.e. are not resized when the image is
+ border: 4 4 4 4;
+ // hide, strip from its alpha or show (default) the non-border part of the image
+ middle: DEFAULT;
+ border_scale_by: 1.0;
+ // whether to scale the border or not
+ border_scale: 0/1;
+ scale_hint: STATIC;
+ // set how the image is going to fill its part
+ fill:
+ {
+ // whether to smooth the image when scaling it
+ smooth: 0/1;
+ spread: ??;
+ // whether to scale or tile to fit when resizing the image is needed
+ type: SCALE/TILE;
+ // only display the part of the image that is below and to the right of the given point
+ origin
+ {
+ // specify top-left point as relative coordinates
+ relative: 0.1 0.1;
+ // specify top-left point as a pixel offset
+ offset: 10 10;
+ }
+ // specify bottom-right point as relative coordinates
+ size
+ {
+ relative: 0.1 0.1;
+ // specify bottom-right point as a pixel offset
+ offset: 10 10;
+ }
+ }
+ }
+ // settings specific to parts of type text and textblock
+ text
+ {
+ // set the part's text
+ text: "some text";
+ // set the text's font
+ font: "Sans";
+ // set the text's size
+ size: 14;
+ // set the text's class which can be used to factor font and font-size settings
+ text_class: "classname";
+ // use the styles defined in stylename
+ style: "stylename";
+ // for textblocks in password mode, replace characters to hide with this string
+ repch: "*";
+ // set the min and max font sizes allowed when resizing (default is 0 0, i.e. unrestricted)
+ size_range: 6 18;
+ // increase font size as much as possible while still remaining in the container for both axis
+ fit: 0/1 0/1;
+ // make the min size of the container equal to the min size of the current text (0 0 by default)
+ min: 0/1 0/1;
+ // make the max size of the container equal to the max size of the current text (0 0 by default)
+ max: 0/1 0/1;
+ // set the vertical and horizontal alignments of the text
+ align: 0.5 0.5;
+ // re-use the text of another part
+ text_source: "partname";
+ // when text is too long to fit, relative position at which to cut the text and put an ellipsis ("...")
+ ellipsis: 0.9;
+ }
+ // settings specific to parts of type box
+ box
+ {
+ // set how children while be arranged in the box
+ layout: horizontal_homogeneous;
+ // set the vertical and horizontal alignments of box
+ align: 0.5 0.5;
+ // set the padding between items of the box
+ padding: 1 1;
+ // make the box' min size be the min size of its elements (i.e. make it shrinkable as much as its items)
+ min: 0 1;
+ }
+ table
+ {
+ // make items homogeneous
+ homogeneous: NONE;
+ // set the vertical and horizontal alignments of box
+ align: 0.5 0.5;
+ // set the padding between items of the box
+ padding: 1 1;
+ // make the table's min size be the min size of its elements (i.e. make it shrinkable as much as its items)
+ min: 0 1;
+ }
+ map
+ {
+ perspective: "partname";
+ light: "partname";
+ on: 0/1;
+ smooth: 0/1;
+ alpha: 0/1;
+ backface_cull: 0/1;
+ perspective_on: 0/1;
+ color: 0/1;
+ rotation
+ {
+ center: "partname";
+ x: 45;
+ y: 120;
+ z: 90;
+ }
+ perspective
+ {
+ zplane: 0/1;
+ focal: 20;
+ }
+ // simpler syntax to create transitions to the current part
+ link
+ {
+ base: "edje,signal" "edje";
+ }
+ }
+ }
+}
+
+
+==== Part ====
+
+
+part
+{
+ name: "partname";
+ type: IMAGE;
+ mouse_events: 1;
+ repeat_events: 0;
+ ignore_flags: NONE;
+ clip_to: "anotherpart";
+ source: "groupname";
+ pointer_mode: AUTOGRAB;
+ use_alternate_font_metrics: 0;
+
+ dragable {}
+ items {}
+ description {}
+}
+
+
+Parts are used to represent the most basic design elements of the theme, for
+example, a part can represent a line in a border or a label on a button.
+
+ * ''inherit [part name]'' \\ Copies all attributes except part name from referenced part into current part. All existing attributes, except part name, are overwritten.
+
+
+part
+{
+ name: "parent_rect";
+ type: RECT;
+ description {}
+ part
+ {
+ name: "nested_rect";
+ type: RECT;
+ description {}
+ }
+}
+
+
+ * ''insert_before [another part's name]'' \\ The part's name which this part is inserted before. One part cannot have both ''insert_before'' and ''insert_after''. One part cannot refer more than one by ''insert_before''.
+
+ * ''insert_after [another part's name]'' \\ The part's name which this part is inserted after. One part cannot have both ''insert_before'' and ''insert_after''. One part cannot refer more than one by ''insert_after''.
+
+ * ''mouse_events [1 or 0]'' \\ Specifies whether the part emits signals, although it is named ''mouse_events''. Disabling it (0) prevents the part from emitting signal. It is set to 1 by default, or to the value set to ''mouse_events'' at the group level, if any.
+
+ * ''repeat_events [1 or 0]'' \\ Specifies whether a part echoes a mouse event to other parts below the pointer (1), or not (0). It is set to 0 by default.
+
+ * ''ignore_flags [FLAG] ...'' Specifies whether events with the given flags are ignored, i.e., do not emit signals to the parts. Multiple flags must be separated by spaces, the effect is ignoring all events with one of the flags specified. Possible flags are:
+ * ''NONE'': Event is handled properly (default value)
+ * ''ON_HOLD'': Event is not handled or passed in this part
+
+ * ''scale [1 or 0]'' \\ Specifies whether the part scales its size with an Edje scaling factor. By default scale is off (0) and the default scale factor is 1.0 which means no scaling. This is used to scale properties such as font size, min/max size of the part, and it can also be used to scale based on DPI of the target device. The reason to be selective is that some parts are scaled well, others are not, so choose what works best.
+
+ * ''pointer_mode [MODE]'' \\ Sets the mouse pointer behavior for a given part. The default value is AUTOGRAB. Available modes are:
+ * ''AUTOGRAB'', when the part is clicked and the button remains pressed, the part is the source of all future mouse signals emitted, even outside the object, until the button is released.
+ * ''NOGRAB'', the effect is limited to the part's container.
+
+ * ''precise_is_inside [1 or 0]'' \\ Enables precise point collision detection for the part, which is more resource-intensive. It is disabled by default.
+
+ * ''use_alternate_font_metrics [1 or 0]'' \\ Only affects text and textblock parts, when enabled Edje uses different size measurement functions. It is disabled by default.
+
+ * ''clip_to [another part's name]'' \\ Only renders the area of part that coincides with another part's container. Overflowing content is not displayed. Note that the part being clipped to can only be a rectangle part.
+
+ * ''source [another group's name]'' \\ Only available to GROUP or TEXTBLOCK parts. Swallows the specified group into the part's container if it is a GROUP. If TEXTBLOCK it is used for the group to be loaded and used for selection display UNDER the selected text. ''source2'' is used for on top of the selected text, if ''source2'' is specified.
+
+ * ''source2 [another group's name]'' \\ Only available to TEXTBLOCK parts. It is used for the group to be loaded and used for selection display OVER the selected text. ''source'' is used for under of the selected text, if ''source'' is specified.
+
+ * ''source3 [another group's name]'' \\ Only available to TEXTBLOCK parts. It is used for the group to be loaded and used for cursor display UNDER the cursor position. ''source4'' is used for over the cursor text, if ''source4'' is specified.
+
+ * ''source4 [another group's name]'' \\ Only available to TEXTBLOCK parts. It is used for the group to be loaded and used for cursor display OVER the cursor position. ''source3'' is used for under the cursor text, if ''source4'' is specified.
+
+ * ''source5 [another group's name]'' \\ Only available to TEXTBLOCK parts. It is used for the group to be loaded and used for anchors display UNDER the anchor position. ''source6'' is used for over the anchors text, if ''source6'' is specified.
+
+ * ''source6 [another group's name]'' \\ Only available to TEXTBLOCK parts. It is used for the group to be loaded and used for anchor display OVER the anchor position. ''source5'' is used for under the anchor text, if ''source6'' is specified.
+
+ * ''effect [effect]'' (shadow direction) \\ Apply the selected outline, shadow, or glow effect to "textblock" (take care that this effect only works for the textblock). The available effects are:
+ * ''PLAIN''
+ * ''OUTLINE''
+ * ''SOFT_OUTLINE''
+ * ''SHADOW''
+ * ''SOFT_SHADOW''
+ * ''OUTLINE_SHADOW''
+ * ''OUTLINE_SOFT_SHADOW''
+ * ''FAR_SHADOW''
+ * ''FAR_SOFT_SHADOW''
+ * ''GLOW'' \\ \\ The available shadow directions definitions are (default is ''BOTTOM_RIGHT''):
+ * ''BOTTOM_RIGHT''
+ * ''BOTTOM''
+ * ''BOTTOM_LEFT''
+ * ''LEFT''
+ * ''TOP_LEFT''
+ * ''TOP''
+ * ''TOP_RIGHT''
+ * ''RIGHT''
+
+ * ''entry_mode [mode]'' \\ Sets the edit mode for a textblock part. The available modes are:
+ * ''NONE'': \\ The textblock is non-editable.
+ * ''PLAIN'': \\ The textblock is non-editable, but selectable.
+ * ''EDITABLE'': \\ The textblock is editable.
+ * ''PASSWORD'': \\ The textblock is editable if the Edje object has the keyboard focus and the part has the Edje focus (or selectable always regardless of focus). In the event of password mode, not selectable and all text chars replaced with *'s but editable and pastable.
+
+ * ''select_mode [mode]'' \\ Sets the selection mode for a textblock part. The available modes are:
+ * ''DEFAULT'', selection mode is what you would expect on any desktop. Press mouse, drag and release to end.
+ * ''EXPLICIT'', this mode requires the application controlling the Edje object has to explicitly begin and end selection modes, and the selection itself is draggable at both ends.
+
+ * ''cursor_mode [mode]'' \\ Sets the cursor mode for a textblock part. The available modes are:
+ * ''UNDER'', the cursor draws below the character pointed at. That is the default.
+ * ''BEFORE'', the cursor is drawn as a vertical line before the current character, just like many other GUI toolkits handle it.
+
+ * ''multiline [1 or 0]'' \\ It causes a textblock that is editable to allow multiple lines for editing.
+
+ * ''access [1 or 0]'' \\ Specifies whether the part uses accessibility feature (1), or not (0). It is set to 0 by default.
+
+==== Draggable ====
+
+
+dragable
+{
+ confine: "another part";
+ threshold: "another part";
+ events: "another draggable part";
+ x: 0 0 0;
+ y: 0 0 0;
+}
+
+
+When this block is used the part can be dragged around the interface, do not
+confuse with external drag and drop. By default Edje (and most applications)
+attempts to use the minimal size possible for a draggable part. If the min
+property is not set in the description the part is (most likely) set to 0px
+width and 0px height, thus invisible.
+
+ * ''x [enable/disable] [step] [count]'' \\ Used to set up dragging events for the X axis. The first parameter is used to enable (1 or -1) and disable (0) dragging along the axis. When enabled, 1 sets the starting point at 0.0 and -1 at 1.0. The second parameter takes any integer and limits movement to values divisible by it, causing the part to jump from position to position. If step is set to 0 it is calculated as width of confine part divided by count.
+
+ * ''y [enable/disable] [step] [count]'' \\ Used to set up dragging events for the Y axis. The first parameter is used to enable (1 or -1) and disable (0) dragging along the axis. When enabled, 1 sets the starting point at 0.0 and -1 at 1.0. The second parameter takes any integer and limits movement to values divisible by it, causing the part to jump from position to position. If step is set to 0 it is calculated as height of confine part divided by count.
+
+ * ''confine [another part's name]'' \\ Limits the movement of the dragged part to another part's container. Set a min size for the part, or the dragged object will not show up.
+
+ * ''threshold [another part's name]'' \\ When set, the movement of the dragged part can only start when it get moved enough to be outside of the threshold part.
+
+ * ''events [another draggable part's name]'' \\ Causes the part to forward the drag events to another part, thus ignoring them for itself.
+
+==== Box/table ====
+
+== Items ==
+
+
+box/table
+{
+ items
+ {
+ item
+ {
+ type: GROUP;
+ source: "some source";
+ min: -1 -1;
+ max: 100 100;
+ padding: 1 1 2 2;
+ }
+ item
+ {
+ type: GROUP;
+ source: "some other source";
+ name: "some name";
+ align: 1.0 0.5;
+ }
+ }
+}
+
+
+On a BOX part, this block is used to set other groups as elements of the box.
+These can be mixed with external objects set by the application through the
+''edje_object_part_box*'' API.
+
+== Item ==
+
+ * ''type [item type]'' \\ Sets the type of the object this item holds. The supported type is:
+ * ''GROUP'' (default)
+
+ * ''name [name for the object]'' \\ Sets the name of the object via ''evas_object_name_set()''.
+
+ * ''source [another group's name]'' \\ Sets the group this object is made of.
+
+ * ''min [width] [height]'' \\ Sets the minimum size hints for this object.
+
+
+description
+{
+ inherit: "another_description" INDEX;
+ state: "description_name" INDEX;
+ visible: 1;
+ min: 0 0;
+ max: -1 -1;
+ align: 0.5 0.5;
+ fixed: 0 0;
+ step: 0 0;
+ aspect: 1 1;
+
+ rel1
+ {
+ ...
+ }
+
+ rel2
+ {
+ ...
+ }
+}
+
+
+Every part can have one or more description blocks. Each description is used
+to define style and layout properties of a part in a given "state".
+
+ * ''inherit [another description's name] [another description's index]'' \\ Thee description inherits all the properties from the named description. The properties defined in this part override the inherited properties, reducing the amount of necessary code for simple state changes. Note: inheritance in Edje is single level only.
+
+ * ''source [another part's name]'' \\ Causes the part to use another part's content as the content of this part. This works only with PROXY part.
+
+ * ''state [name for the description] [index]'' \\ Sets a name used to identify a description inside a given part. Multiple descriptions are used to declare different states of the same part, like "clicked" or "invisible". All state declarations are also coupled with an index number between 0.0 and 1.0. All parts must have at least one description named "default 0.0".
+
+ * ''visible [0 or 1]'' \\ Takes a Boolean value specifying whether part is visible (1) or not (0). Non-visible parts do not emit signals. The default value is 1.
+
+ * ''limit [mode]'' \\ Emits a signal when the part size changes from zero or to a zero (limit,width,over, limit,width,zero). By default no signal are emitted. Valid values are:
+ * ''NONE''
+ * ''WIDTH''
+ * ''HEIGHT''
+ * ''BOTH''
+
+ * ''align [X axis] [Y axis]'' \\ When the displayed object's size is smaller or bigger than its container, this property moves it relatively along both axis inside its container. "0.0" means left/top edges of the object touching container's respective ones, and "1.0" stands for right/bottom edges of the object (on horizontal/vertical axis, respectively). The default value is "0.5 0.5".
+
+ * ''fixed [width, 0 or 1] [height, 0 or 1]'' \\ Sets the minimum size calculation. See ''edje_object_size_min_calc()'' and ''edje_object_size_min_restricted_calc()''. This tells the min size calculation routine that this part does not change size in width or height (1 for it does not, 0 for it does), so the routine does not try to expand or contract the part.
+
+ * ''min [width] [height] or SOURCE'' \\ Sets the minimum size of the state. When min is defined to SOURCE, it looks at the original image size and enforces its minimal size to match at least the original one. The part must be an IMAGE or a GROUP part.
+
+ * ''minmul [width multiplier] [height multiplier]'' \\ A multiplier forcibly applied to whatever minimum size is only during minimum size calculation.
+
+ * ''max [width] [height] or SOURCE'' \\ The maximum size of the state. A size of -1.0 means that it is ignored in one direction. When max is set to SOURCE, Edje enforces the part to be not more than the original image size. The part must be an IMAGE part.
+
+ * ''step [width] [height]'' \\ Restricts resizing of each dimension to values divisible by its value. This causes the part to jump from value to value while resizing. The default value is "0 0" which disables stepping.
+
+ * ''aspect [min] [max]'' \\ Normally width and height can be resized to any values independently. The aspect property forces the width to height ratio to be kept between the minimum and maximum set. For example, "1.0 1.0" increases the width a pixel for every pixel added to height. The default value is "0.0 0.0" which disables aspect. For a more detailed explanation, see the Min Size Hint .
+
+ * ''aspect_preference [DIMENSION]'' \\ Set the dimensions to which the "aspect" property applies. Available options are:
+ * ''BOTH''
+ * ''VERTICAL''
+ * ''HORIZONTAL''
+ * ''SOURCE''
+ * ''NONE''
+
+ * ''color_class [color class name]'' \\ The part uses the color values of the named ''color_class'', these values can be overridden by the "color", "color2" and "color3" properties.
+
+ * ''color [red] [green] [blue] [alpha]'' \\ Sets the main color to the specified values (between 0 and 255).
+
+
+description
+{
+ rel1
+ {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ rel2
+ {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+}
+
+
+The rel1 and rel2 blocks are used to define the position of each corner of the part's container. With rel1 being the left-up corner and rel2 being the right-down corner.
+
+ * ''relative [X axis] [Y axis]'' \\ Moves the corner to a relative position inside the container of the relative "to" part. Values from 0.0 (0%, beginning) to 1.0 (100%, end) of each axis.
+
+ * ''offset [X axis] [Y axis]'' \\ Affects the corner position a fixed number of pixels along each axis.
+
+ * ''to [another part's name]'' \\ Positions the corner relatively to another part's container. Setting to "" resets this value for inherited parts.
+
+ * ''to_x [another part's name]'' \\ Positions the corner relatively to the X axis of another part's container. This affects the first parameter of "relative". Setting to "" resets this value for inherited parts.
+
+ * ''to_y [another part's name]'' \\ Positions the corner relatively to the Y axis of another part's container. This affects the second parameter of "relative". Setting to "" resets this value for inherited parts.
+
+== Image ==
+
+
+description
+{
+ image
+ {
+ normal: "filename.ext";
+ tween: "filename2.ext";
+ tween: "filenameN.ext";
+ border: left right top bottom;
+ middle: 0/1/NONE/DEFAULT/SOLID;
+ fill {}
+ }
+}
+
+
+ * ''normal [image's filename]'' \\ Name of image to be used as previously declared in the images block. In an animation, this is the first and last image displayed. It is required in any image part
+
+ * ''tween [image's filename]'' \\ Name of an image to be used in an animation loop, an image block can have none, one or multiple tween declarations. Images are displayed in the order they are listed, during the transition to the state they are declared in; the "normal" image is the final state.
+
+ * '' border [left] [right] [top] [bottom] '' \\ Sets the area (in pixels) of each side of the image is displayed as a fixed size border, from the side -> inwards, preventing the corners from being changed on a resize.
+
+ * ''middle [mode]'' \\ If border is set, this value tells Edje if the rest of the image (not covered by the defined border) displayed or not or be assumed to be solid (without alpha). The default value is ''1/DEFAULT''. The available values are:
+ * ''0'' or ''NONE''
+ * ''1'' or ''DEFAULT''
+ * ''SOLID'' (strip alpha from the image over the middle zone)
+
+ * ''border_scale_by [value]'' \\ If border scaling is enabled then normally the OUTPUT border sizes (e.g. if 3 pixels on the left edge are set as a border, then normally at scale 1.0, those 3 columns are always exactly 3 columns of output, or at scale 2.0 they are 6 columns, or 0.33 they merge into a single column). This property multiplies the input scale factor by this multiplier, allowing the creation of supersampled borders to make higher resolution outputs possible by always using the highest resolution artwork and then runtime scaling it down. Value can be: 0.0 or bigger (0.0 or 1.0 to turn it off)
+
+ * ''border_scale [0/1]'' \\ Tells Edje if the border is scaled by the object/global Edje scale factors.
+
+ * ''scale_hint [mode]'' \\ Sets the evas image scale hint letting the engine more effectively save cached copies of the scaled image if it makes sense. Valid values are:
+ * ''0'' or ''NONE''
+ * ''DYNAMIC''
+ * ''STATIC''
+
+=== Image.fill ===
+
+
+image
+{
+ fill
+ {
+ type: SCALE;
+ smooth: 0-1;
+ origin {}
+ size {}
+ }
+}
+
+
+The fill method is an optional block that defines the way an IMAGE part is
+going to be displayed inside its container. It can be used for tiling
+(repeating the image) or displaying only part of an image. See
+''evas_object_image_fill_set()'' documentation for more details.
+
+ * ''smooth [0 or 1]'' \\ The smooth property takes a boolean value to decide if the image will be smoothed on scaling (1) or not (0). The default value is 1.
+ * ''spread''
+ * ''type [fill type]'' \\ Sets the image fill type. The part parameter "min" must be set, it is size of tiled image. If parameter "max" set tiled area has the size accordingly "max" values. SCALE is default type. Valid values are:
+ * ''SCALE'', image is scaled accordingly the value of the parameters
+"relative" and "offset" from "origin" and "size" blocks.
+ * ''TILE'', image is tiled accordingly parameters value "relative" and "offset" from "origin" and "size" blocks.
+
+
+image
+{
+ fill
+ {
+ origin
+ {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ }
+}
+
+
+The origin block is used to place the starting point, inside the displayed
+element, that is used to render the tile. By default, the origin is set at the
+element's left-up corner.
+
+ * ''relative [X axis] [Y axis]'' \\ Sets the starting point relatively to displayed element's content.
+ * ''offset [X axis] [Y axis]'' \\ Affects the starting point a fixed number of pixels along each axis.
+
+
+image
+{
+ fill
+ {
+ size
+ {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ }
+}
+
+
+The size block defines the tile size of the content that are displayed.
+
+ * ''relative [width] [height]'' \\ Takes a pair of decimal values that represent the percentage of the original size of the element. For example, "0.5 0.5" represents half the size, while "2.0 2.0" represents the double. The default value is "1.0 1.0".
+
+ * ''offset [X axis] [Y axis]'' \\ Affects the size of the tile a fixed number of pixels along each axis.
+
+
+text
+{
+ text: "some string of text to display";
+ font: "font_name";
+ size: SIZE;
+ text_class: "class_name";
+ fit: horizontal vertical;
+ min: horizontal vertical;
+ max: horizontal vertical;
+ align: X-axis Y-axis;
+ source: "part_name";
+ text_source: "text_part_name";
+ style: "stylename";
+}
+
+
+ * ''text [a string of text, or nothing]'' \\ Sets the default content of a text part, normally the application is the one changing its value.
+
+ * ''text_class [text class name]'' \\ Similar to color_class, this is the name used by the application to alter the font family and size at runtime.
+
+ * ''font [font alias]'' \\ This sets the font family to one of the aliases set up in the "fonts" block. Can be overridden by the application.
+
+ * ''style [the style name]'' \\ Causes the part to use the default style and tags defined in the "style" block with the specified name.
+
+ * ''repch [the replacement character string]'' \\ If this is a textblock and is in PASSWORD mode this string is used to replace every character to hide the details of the entry. Normally * is used, but you can use anything you like.
+
+ * ''size [font size in points (pt)]'' \\ Sets the default font size for the text part. Can be overridden by the application.
+
+ * ''size_range [font min size in points (pt)] [font max size in points (pt)]'' \\ Sets the allowed font size for the text part. Setting min and max to 0 means that sizing is not restricted. This is also the default value.
+
+ * ''fit [horizontal] [vertical]'' \\ When any of the parameters is set to 1 Edje resizes the text for it to fit in its container. Both are disabled by default.
+
+ * ''min [horizontal] [vertical]'' \\ When any of the parameters is enabled (1) it forces the minimum size of the container to be equal to the minimum size of the text. The default value is "0 0".
+
+ * ''max [horizontal] [vertical]'' \\ When any of the parameters is enabled (1) it forces the maximum size of the container to be equal to the maximum size of the text. The default value is "0 0".
+
+ * ''align [horizontal] [vertical]'' Changes the position of the point of balance inside the container. The default value is 0.5 0.5.
+
+ * ''source [another TEXT part's name]'' \\ Causes the part to use the text properties (like font and size) of another part and update them as they change.
+
+ * ''text_source [another TEXT part's name]'' \\ Causes the part to display the text content of another part and update them as they change.
+
+ * ''ellipsis [point of balance]'' \\ Balances the text in a relative point from 0.0 to 1.0, this point is the last section of the string to be cut out in case of a resize that is smaller than the text itself. The default value is 0.0.
+
+== Box ==
+
+
+box
+{
+ layout: "vertical";
+ padding: 0 2;
+ align: 0.5 0.5;
+ min: 0 0;
+}
+
+
+A box block can contain other objects and display them in different layouts,
+any of the predefined set, or a custom one, set by the application.
+
+ * ''layout [primary layout] (fallback layout)'' \\ Sets the layout for the box:
+ * horizontal (default)
+ * vertical
+ * horizontal_homogeneous
+ * vertical_homogeneous
+ * horizontal_max (homogeneous to the max sized child)
+ * vertical_max
+ * horizontal_flow
+ * vertical_flow
+ * stack
+ * ''some_other_custom_layout_set_by_the_application'' \\ Set a custom layout as a fallback. For more information, see ''edje_box_layout_register()''. If an unregistered layout is used, it defaults to horizontal.
+
+ * ''align [horizontal] [vertical]'' \\ Changes the position of the point of balance inside the container. The default value is 0.5 0.5.
+
+ * ''padding [horizontal] [vertical]'' \\ Sets the space between cells in pixels. The default value is 0 0.
+
+ * ''min [horizontal] [vertical]'' \\ When any of the parameters is enabled (1) it forces the minimum size of the box to be equal to the minimum size of the items. The default value is 0 0.
+
+== Table ==
+
+
+table
+{
+ homogeneous: TABLE;
+ padding: 0 2;
+ align: 0.5 0.5;
+ min: 0 0;
+}
+
+
+A table block can contain other objects packed in multiple columns and rows,
+and each item can span across more than one column and/or row.
+
+ * ''homogeneous [homogeneous mode]'' \\ Sets the homogeneous mode for the table:
+ * ''NONE'': default
+ * ''TABLE'': available space is evenly divided between children (which overflows onto other children if too little space is available)
+ * ''ITEM'': size of each item is the largest minimal size of all the items
+
+ * ''align [horizontal] [vertical]'' \\ Changes the position of the point of balance inside the container. The default value is 0.5 0.5.
+
+ * ''padding [horizontal] [vertical]'' \\ Sets the space between cells in pixels. The default value is 0 0.
+
+ * ''min [horizontal] [vertical]'' \\ When any of the parameters is enabled (1), it forces the minimum size of the table to be equal to the minimum size of the items. The default value is 0 0.
+
+== Map ==
+
+
+map
+{
+ perspective: "name";
+ light: "name";
+ on: 1;
+ smooth: 1;
+ perspective_on: 1;
+ backface_cull: 1;
+ alpha: 1;
+
+ rotation
+ {
+ ...
+ }
+}
+
+
+ * ''perspective [another part's name]'' \\ This sets the part that is used as the perspective point for giving a part a 3D look. The perspective point must have a perspective section that provides zplane and focal properties. The center of this part is used as the focal point, thus size, color and visibility are not relevant, just center point, zplane and focal are used. This also implicitly enables perspective transforms.
+
+ * ''light [another part's name]'' \\ This sets the part that is used as the light for calculating the brightness (based on how directly the part's surface is facing the light source point). Like the perspective point part, the center point is used and zplane is used for the z position (0 being the zero-plane where all 2D objects normally live) and positive values being further away into the distance. The light part color is used as the light color (alpha not used for light color). The color2 color is used for the ambient lighting when calculating brightness (alpha also not used).
+
+ * ''on [1 or 0]'' \\ This enables mapping for the part. Default is 0.
+
+ * ''smooth [1 or 0]'' \\ This enables smooth map rendering. This may be linear interpolation, anisotropic filtering or anything the engine decides is smooth. This is a best-effort hint and may not produce precisely the same results in all engines and situations. The default value is 1.
+
+ * ''alpha [1 or 0]'' \\ This enables alpha channel when map rendering. The default value is 1.
+
+ * ''backface_cull [1 or 0]'' \\ This enables backface culling (when the rotated part that normally faces the camera is facing away after being rotated etc.). This means that the object are hidden when backface is culled.
+
+ * ''perspective_on [1 or 0]'' \\ This enables perspective when rotating even without a perspective point object. This uses perspective set for the object itself or for the canvas as a whole as the global perspective with ''edje_perspective_set()'' and ''edje_perspective_global_set()''.
+
+ * ''color [point] [red] [green] [blue] [alpha]'' \\ This sets the color of a vertex in the map. Colors are linearly interpolated between vertex points through the map. The default color of a vertex in a map is white solid (255, 255, 255, 255) which means it has no affect on modifying the part pixels. Currently only four points are supported: 0 - Left-Top point of a part. 1 - Right-Top point of a part. 2 - Left-Bottom point of a part. 3 - Right-Bottom point of a part.
+
+=== Map.rotation ===
+
+
+rotation
+{
+ center: "name";
+ x: 45.0;
+ y: 45.0;
+ z: 45.0;
+}
+
+
+Rotates the part, optionally with the center on another part.
+
+ * ''center [another part's name]'' \\ This sets the part that is used as the center of rotation when rotating the part with this description. The part's center point is used as the rotation center when applying rotation around the x, y and z axes. If no center is given, the parts original center itself is used for the rotation center.
+
+ * ''x [X degrees]'' \\ This sets the rotation around the x axis of the part considering the center set. The value is given in degrees.
+
+ * ''y [Y degrees]'' \\ This sets the rotation around the y axis of the part considering the center set. The value is given in degrees.
+
+ * ''z [Z degrees]'' \\ This sets the rotation around the z axis of the part considering the center set. The value is given in degrees.
+
+=== Perspective ===
+
+
+perspective
+{
+ zplane: 0;
+ focal: 1000;
+}
+
+
+Adds focal and plane perspective to the part. Active if ''perspective_on'' is
+true. Must be provided if the part is being used by other part as it is
+perspective target.
+
+ * ''zplane [unscaled Z value]'' \\ This sets the z value that is not scaled. Normally this is 0 as that is the z distance.
+
+ * ''focal [distance]'' \\ This sets the distance from the focal z plane (zplane) and the camera - i.e. equating to focal length of the camera
+
+=== Link ===
+
+
+link
+{
+ base: "edje,signal" "edje";
+ transition: LINEAR 0.2;
+ in: 0.5 0.1;
+ after: "some_program";
+}
+
+
+The link block can be used to create transitions to the enclosing part
+description state. The result of the above block is identical to creating a
+program with
+
+
+action: STATE_SET "default"";
+signal: "edje,signal";
+source: "edje";
+
+
+ * ''base [signal] [source]'' \\ Defines the signal and source which triggers the transition to this state. The source parameter is optional here and is filled with the current group's default value if it is not provided.
+
+-----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/edje/program.txt b/public_html/data/pages/develop/legacy/program_guide/edje/program.txt
new file mode 100644
index 00000000..98485b5b
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/edje/program.txt
@@ -0,0 +1,124 @@
+{{page>index}}
+-----
+==== Program ====
+
+
+program
+{
+ // name of the program
+ name: "programname";
+ // signals which trigger the program
+ signal: "signalname";
+ // filter incoming signals depending on the sender name
+ source: "partname";
+ // filter incoming signals depending on the part's state
+ filter: "partname" "statename";
+ // delay the program by X seconds plus a random time between 0 and Y
+ in: 0.3 0.0;
+ // action to perform
+ action: STATE_SET "statename" state_value;
+ // if action is STATE_SET, define a transition from the current to the target state
+ transition: LINEAR 0.5;
+ // if action is SIGNAL_EMIT, the name of the part which will receive the signal
+ target: "partname";
+ // run another program after the current one is done
+ after: "programname";
+ after: "anotherprogram";
+}
+
+
+=== Program ===
+
+Programs define how your interface reacts to events. Programs can change the
+state of parts or trigger other events.
+
+ * ''name [program name]'' \\ Symbolic name of program as a unique identifier.
+
+ * ''signal [signal name]'' \\ Specifies signals that cause the program to run. The signal received must match the specified source to run. There may be several signals, but only one signal keyword per program can be used. Also, there are some predefined signals for touch event handling. The predefined signals are:
+
+ * "hold,on": Holding on the mouse event matching the source that starts the program.
+ * "hold,off": Holding off the mouse event matching the source that starts the program.
+ * "focus,part,in": Focusing in the matching source that starts the program.
+ * "focus,part,out": Focusing out of the matching source that starts the program.
+ * "mouse,in": Moving the mouse into the matching source that starts the program.
+ * "mouse,out": Moving the mouse out of the matching source that starts the program.
+ * "mouse,move": Moving the mouse in the matching source that starts the program.
+ * "mouse,down,*": Pressing the mouse button in the matching source that starts the program.
+ * "mouse,up,*": Releasing the mouse button in the matching source that starts the program.
+ * "mouse,clicked,*": Clicking any mouse button in the matching source that starts the program.
+ * "mouse,wheel,0,*": Moving the mouse wheel in the matching source that starts the program. A positive number moves up and a negative number moves down.
+ * "drag,start": Starting a drag of the mouse in the matching source that starts the program. This signal works only in the draggable part.
+ * "drag,stop": Stopping a drag of the mouse in the matching source that starts the program. This signal works only in the draggable part.
+ * "drag": Dragging the mouse in the matching source that starts the program. This signal works only in the draggable part.
+
+ * ''source [source name]'' \\ Source of accepted signal. There may be several signals, but only one source keyword per program can be used. For example, source: "button-*"; (signals from any part or program named "button-*" are accepted).
+
+ * ''filter [part] [state]'' \\ Filter signals to be only accepted if the part is in state named ''[state]''. Only one filter per program can be used. If ''[state]'' is not given, the source of the event is used instead.
+
+ * ''in [from] [range]'' \\ Wait ''[from]'' seconds before executing the program and add a random number of seconds (from 0 to ''[range]'') to the total waiting time.
+
+ * ''action [type] (param1) (param2) (param3) (param4)'' \\ Action to be performed by the program. Valid actions (only one can be specified) are:
+ * ''STATE_SET'': Set "target part" state as "target state"
+ * ''ACTION_STOP'': Stop the ongoing transition.
+ * ''SIGNAL_EMIT'': Emit a signal to the application level. The application can register a callback for handling actions based on the EDC state.
+ * ''DRAG_VAL_SET'': Set a value for the dragable part (x, y values).
+ * ''DRAG_VAL_STEP'': Set a step for the dragable part (x, y values).
+ * ''DRAG_VAL_PAGE'': Set a page for the dragable part (x, y values).
+ * ''FOCUS_SET'': Set the focus to the target group.
+ * ''FOCUS_SET'': Set the focus to the target group.
+ * ''PLAY_SAMPLE "sample name" speed (channel)'': Play a music sample clip. \\ ''PLAY_SAMPLE'''s (optional) channel can be one of:
+ * ''EFFECT/FX''
+ * ''BACKGROUND/BG''
+ * ''MUSIC/MUS''
+ * ''FOREGROUND/FG''
+ * ''INTERFACE/UI''
+ * ''INPUT''
+ * ''ALERT''
+ * ''PLAY_TONE "tone name" duration_in_seconds (Range 0.1 to 10.0)'': Play a predefined tone of a specific duration.
+ * ''PLAY_VIBRATION "sample name" repeat (repeat count)''
+ * ''transition [type] [length] (interp val 1) (interp val 2) (option)'' \\ Defines how transitions occur using ''STATE_SET'' action. ''[type]'' is the style of the transition and ''[length]'' is a double specifying the number of seconds in which to preform the transition. Valid types are:
+ * ''LIN'' or ''LINEAR''
+ * ''SIN'' or ''SINUSOIDAL''
+ * ''ACCEL'' or ''ACCELERATE''
+ * ''DECEL'' or ''DECELERATE''
+ * ''ACCEL_FAC'' or ''ACCELERATE_FACTOR''
+ * ''DECEL_FAC'' or ''DECELERATE_FACTOR''
+ * ''SIN_FAC'' or ''SINUSOIDAL_FACTOR''
+ * ''DIVIS'' or ''DIVISOR_INTERP''
+ * ''BOUNCE''
+ * ''SPRING''
+
+''ACCEL_FAC'', ''DECEL_FAC'' and ''SIN_FAC'' need the extra optional "interp
+val 1" to determine the "factor" of curviness. 1.0 is the same as their
+non-factor counterparts and 0.0 is equal to linear. Numbers higher than 1.0
+make the curve angles steeper with a more pronounced curve point.
+
+''DIVIS'', ''BOUNCE'' and ''SPRING'' also require "interp val 2" in addition
+to "interp val 1".
+
+''DIVIS'' uses ''[val 1]'' as the initial gradient start (0.0 is horizontal,
+1.0 is diagonal (linear), 2.0 is twice the gradient of linear, etc.). ''[val
+2]'' is interpreted as an integer factor defining how much the value swings
+outside the gradient before going back to the final resting spot at the end.
+0.0 for ''[val 2]'' is equivalent to linear interpolation. Note that ''DIVIS''
+can exceed 1.0.
+
+''BOUNCE'' uses ''[val 2]'' as the number of bounces (so it is rounded down to
+the nearest integer value), with ''[val 1]'' determining how much the bounce
+decays; 0.0 gives linear decay per bounce and higher values give much more
+decay.
+
+''SPRING'' is similar to bounce; ''[val 2]'' specifies the number of spring
+swings and ''[val 1]'' specifies the decay, but it can exceed 1.0 on the outer
+swings.
+
+Valid options are:
+
+ * ''CURRENT'' causes the object to move from its current position. Can be used as the last parameter of any transition type.
+
+ * ''target [target]'' \\ Program or part on which the specified action acts.
+
+ * ''after [after]'' \\ Specifies a program that is run after the current program completes. The source and signal parameters of a program run as an ''after'' are ignored. Multiple ''after'' statements can be specified per program.
+
+-----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/edje/scaling_objects.txt b/public_html/data/pages/develop/legacy/program_guide/edje/scaling_objects.txt
new file mode 100644
index 00000000..5252a6df
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/edje/scaling_objects.txt
@@ -0,0 +1,121 @@
+~~Title: Scaling Objects~~
+{{page>index}}
+-----
+===== Scaling Objects =====
+
+=== Table of Contents ===
+
+ * [[#Part_Scaling|Part Scaling]]
+ * [[#Using_Image_Set|Using Image Set]]
+ * [[#Resizing_Borders|Resizing Borders]]
+
+==== Part Scaling ====
+
+When scaling an Edje object, only the parts that are declared scalable in the
+EDC file follow the scale request. This is done using the "scale" parameter.
+
+As an example, the previous "rectangle2" part is set as scalable, so that it
+is scaled when the Edje object is scaled.
+
+
+part
+{
+ name: "rectangle2";
+ type: RECT;
+ scale: 1;
+ description
+ {
+ state: "green" 0.0;
+ }
+}
+
+
+==== Using Image Set ====
+
+When using images in the Edje EDC file, image file names must be listed in a
+images block, so that Edje can use them in the theme. In this block, the
+compression level and compression method of the image can also be defined.
+
+Here is an example of an images block that lists two image files.
+
+
+images
+{
+ image: "image1.jpg" COMP;
+ image: "image2.png" LOSSY 99;
+}
+
+
+As the devicescan have different screen sizes and resolutions, it is possible
+to define that the used image set depends on the resolution.
+
+In the example below the image named "image3" selects different files
+depending on image size.
+
+
+images
+{
+ set
+ {
+ name: "image3";
+ image
+ {
+ image: "image3_1.png" LOSSY 90;
+ size: 0 0 50 50;
+ }
+ image
+ {
+ image: "image3_2.png" LOSSY 90;
+ size: 51 51 200 200;
+ }
+ image
+ {
+ image: "image3_3.png" LOSSY 90;
+ size: 201 201 500 500;
+ }
+ }
+}
+
+
+This is done with the "size" attribute that specifies the minimal width and
+height and maximal width and height. If the width and height of the object are
+below 50px, ''image3_1.png'' picture file is used. If they are bigger than
+201px, ''image3_3.png'' file is used.
+
+==== Resizing Borders ====
+
+Sometimes it is needed to keep the borders of an image intact when resizing or
+scaling it. The ''border'' attribute is here to do that.
+
+
+border [left] [right] [top] [bottom]
+
+
+If set, the area (in pixels) of each side of the image is displayed as a fixed
+size border, from the side -> inwards. This prevents the corners from being
+changed on a resize.
+
+Here is a code example how to set a border of 10px on each side of the image.
+This 10px border will not be resized when scaling the image.
+
+
+part
+{
+ name: "image_border";
+ type: IMAGE;
+ scale: 1;
+ description
+ {
+ image
+ {
+ normal: "image1.jpg";
+ border: 10 10 10 10;
+ }
+ }
+}
+
+
+
+\\
+-------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/edje_pg.txt b/public_html/data/pages/develop/legacy/program_guide/edje_pg.txt
new file mode 100644
index 00000000..7c1b8210
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/edje_pg.txt
@@ -0,0 +1,114 @@
+~~Title: Edje Programming Guide~~
+{{page>index}}
+===== Edje Programming Guide =====
+
+This programming guide shows you how to write an EDC file that can be used to
+theme a EFL application. It describes concepts about parts positioning and
+resizing. It also explains part animations that can be done through programs.
+
+=== Table of Contents ===
+
+ * [[/develop/legacy/program_guide/edje/basic_concepts|Basic Concepts]]
+ * [[/develop/legacy/program_guide/edje/basic_concepts#What_is_an_EDC_File?|What is an EDC File?]]
+ * [[/develop/legacy/program_guide/edje/basic_concepts#Compiling_EDC_File|Compiling EDC File]]
+ * [[/develop/legacy/program_guide/edje/basic_concepts#Writing_Simple_EDC_File_|Writing Simple EDC File ]]
+ * [[/develop/legacy/program_guide/edje/basic_concepts#Animating_Theme_Using_Programs|Animating Theme Using Programs]]
+ * [[/develop/legacy/program_guide/edje/basic_concepts#Positioning_Basic_Parts|Positioning Basic Parts]]
+ * [[/develop/legacy/program_guide/edje/basic_concepts#Adding_Offset_to_Relative_Positioning|Adding Offset to Relative Positioning]]
+ * [[/develop/legacy/program_guide/edje/basic_concepts#Calculating_Edje_Object_Total_Size|Calculating Edje Object Total Size]]
+ * [[/develop/legacy/program_guide/edje/basic_concepts#Using_Edje_Size_Hints|Using Edje Size Hints]]
+ * [[/develop/legacy/program_guide/edje/scaling_objects|Scaling Objects]]
+ * [[/develop/legacy/program_guide/edje/scaling_objects#Part_Scaling|Part Scaling]]
+ * [[/develop/legacy/program_guide/edje/scaling_objects#Using_Image_Set|Using Image Set]]
+ * [[/develop/legacy/program_guide/edje/scaling_objects#Resizing_Borders|Resizing Borders]]
+ * [[/develop/legacy/program_guide/edje/edje_swallow|Edje Swallow]]
+ * [[/develop/legacy/program_guide/edje/elm_layout|ELM Layout]]
+ * [[/develop/legacy/program_guide/edje/elm_layout#Adding_Layout|Adding Layout]]
+ * [[/develop/legacy/program_guide/edje/elm_layout#Signals|Signals]]
+ * Edje Parts and Blocks (Quick How-tos)
+ * [[/develop/legacy/program_guide/edje/edje_blocks|Edje Blocks]]
+ * [[/develop/legacy/program_guide/edje/group_block|Group Block]]
+ * [[/develop/legacy/program_guide/edje/part_block|Part Block]]
+ * [[/develop/legacy/program_guide/edje/program|Program]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/edje_main.html|Edje API]]
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/edcref.html|Edje Data Collection reference]]
+
+^ [[
+https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/edje_examples.html|Edje Examples]] ^^^^^^
+| [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/Example_Edje_Basics.html|Edje basics]] | [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_edje_nested.html|Edje Nested Part (hierarchy)]] | [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_edje_swallow.html|Swallow]] | [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_edje_swallow2.html|Swallow 2]] | [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_edje_text.html|Edje Text]] | [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_edje_table.html|Table]] |
+| [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_edje_color_class.html|Edje Color Class]] | [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/Example_Edje_Signals_Messages.html|Edje signals and messages]] | [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_edje_box.html|Box- basic usage]] | [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_edje_box2.html|Box - custom layout]] | [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_edje_drag.html|Dragable parts]] | [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_edje_perspective.html|Perspective]] |
+| [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_edje_animations.html|Edje Animations]] | [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_edje_multisense.html|Multisense]] | [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_edje_basic2.html|Edje basics 2]] || [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_edje_signals_2.html|Edje Signals 2]] | [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_edje_animations_2.html|Edje animations 2]] |
+
+
+==== Quick How-tos ====
+
+=== Adding Element on Screen ===
+
+Add a new part inside the [[/develop/legacy/program_guide/edje/part_block|parts block]].
+
+=== Using Image ===
+
+List the image in the [[/develop/legacy/program_guide/edje/edje_blocks#Images_Block|images
+block]], make sure the [[/develop/legacy/program_guide/edje/part_block|part]] has type
+"IMAGE" and set the normal property inside
+[[/develop/legacy/program_guide/edje/part_block#Image|description.image]] of part.
+
+=== Using Same Color Definitions Across Multiple Elements ===
+
+Define a [[/develop/legacy/program_guide/edje/edje_bloks#Color_classes_Block|color class]]
+and set the
+[[/develop/legacy/program_guide/edje/part_block#Description|description.color_class]]
+property.
+
+=== Positioning or Resizing a Part (Relative and Absolute Positioning) ===
+
+Fill in the [[/develop/legacy/program_guide/edje/part_block#Rel1/rel2|rel1 and rel2]]
+structures inside the [[/develop/legacy/program_guide/edje/part_block#Description|description
+block]].
+
+=== Hiding Part ===
+
+Set the [[/develop/legacy/program_guide/edje/part_block#Description|visible property]] to 0.
+
+=== Animating Part ===
+
+Create several [[/develop/legacy/program_guide/edje/part_block#Description|description
+blocks]] inside your [[/develop/legacy/program_guide/edje/part_block|part]] and give each of
+them a different value for state. Set one description for the initial state
+and one for the end state.
+
+Create a [[/develop/legacy/program_guide/edje/program#Program|program]] with an action that
+is STATE_SET "end_state" 0.0; and with a target that is the name of the part.
+You can also set a non-default transition.
+
+When defining the second [[/develop/legacy/program_guide/edje/part_block#Description|description
+]], inherit from the first part in order to
+re-use the values which are already defined.
+
+The after property of the [[/develop/legacy/program_guide/edje/program#Program|program
+block]] is used to trigger another program after the animation is done. It can
+be used to trigger another animation or to emit a signal to the C part of the
+program.
+
+=== Making Genlist Item Theme ===
+
+Create a [[/develop/legacy/program_guide/edje/group_block|Group Block]] with one
+[[/develop/legacy/program_guide/edje/part_block|part element]] for each part that can be
+filed from the C code and set the items properties inside the group
+element:
+
+
+items: "texts" "text_part_1 text_part_2";
+items: "icons" "image_part_1 image_part_2";
+
+
+On the C side, the ''text_get'' and ''content_get'' callback are called
+respectively with ''text_part_1'' and ''text_part_2'', and ''image_part_1''
+and ''image_part_2''.
+
+\\
+----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/eina/arrays.txt b/public_html/data/pages/develop/legacy/program_guide/eina/arrays.txt
new file mode 100644
index 00000000..1c3c8195
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/eina/arrays.txt
@@ -0,0 +1,745 @@
+{{page>index}}
+-------
+===== Arrays =====
+
+An array is a data type which describes an ordered collection of values. The
+values are accessed by their index.
+
+
+INDEX | VALUE
+--------------
+0 | value0
+1 | value1
+2 | value2
+3 | value3
+4 | value4
+5 | value5
+6 | value6
+7 | value7
+
+
+Eina provides 2 array types: the classic array and an inline array.
+
+=== Table of Contents ===
+
+ * [[#Creating_and_Destroying_a_Classic_Array|Creating and Destroying a Classic Array]]
+ * [[#To_create_an_array_to_store_strings|To create an array to store strings]]
+ * [[#Modifying_Classic_Array_Content|Modifying Classic Array Content]]
+ * [[#To_set_the_data_of_an_element|To set the data of an element]]
+ * [[#To_add_elements_to_the_end_of_the_array|To add elements to the end of the array]]
+ * [[#To_remove_the_last_element_of_an_array|To remove the last element of an array]]
+ * [[#To_rebuild_the_array_by_specifying_the_data_to_be_kept|To rebuild the array by specifying the data to be kept]]
+ * [[#To_completely_wipe_an_array_out|To completely wipe an array out]]
+ * [[#To_empty_an_array_quickly|To empty an array quickly]]
+ * [[#Accessing_Classic_Array_Data|Accessing Classic Array Data]]
+ * [[#To_access_the_data_in_the_array|To access the data in the array]]
+ * [[#To_get_the_number_of_elements_in_an_array|To get the number of elements in an array]]
+ * [[#To_iterate_through_an_array|To iterate through an array]]
+ * [[#Creating_and_Destroying_an_Inline_Array|Creating and Destroying an Inline Array]]
+ * [[#Modifying_Inline_Array_Content|Modifying Inline Array Content]]
+ * [[#To_add_data_as_the_last_element_of_the_inline_array|To add data as the last element of the inline array]]
+ * [[#To_insert_data_to_a_given_position_of_the_inline_array|To insert data to a given position of the inline array]]
+ * [[#To_insert_data_with_your_own_position_criteria|To insert data with your own position criteria]]
+ * [[#To_remove_the_last_element_of_the_inline_array|To remove the last element of the inline array]]
+ * [[#To_remove_specific_data_from_an_inline_array|To remove specific data from an inline array]]
+ * [[#To_remove_data_from_a_defined_position_in_an_inline_array|To remove data from a defined position in an inline array]]
+ * [[#To_remove_all_the_elements_of_the_array|To remove all the elements of the array]]
+ * [[#To_replace_values_in_the_inline_array|To replace values in the inline array]]
+ * [[#To_sort_an_inline_array|To sort an inline array]]
+ * [[#Accessing_Inline_Array_Data|Accessing Inline Array Data]]
+ * [[#To_search_a_member_in_an_inline_array|To search a member in an inline array]]
+ * [[#To_get_the_number_of_elements_in_an_inline_array|To get the number of elements in an inline array]]
+ * [[#To_iterate_through_an_inline_array|To iterate through an inline array]]
+ * [[#To_remove_some_elements_based_on_your_own_criteria|To remove some elements based on your own criteria]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__Array__Group.html|Array API]]
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__Inline__Array__Group.html|Inline Array API]]
+
+^ Array |[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_array_01_8c-example.html|Array Example 1]]|[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_array_02_8c-example.html|Array Example 2]]||
+^ Inline Array |[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_inarray_01_8c-example.html|Inline Array Example 1]]|[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_inarray_02_8c-example.html|Inline Array Example 2]]|[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_inarray_02_8c-example.html|Inline Array Example 3]]|
+
+==== Creating and Destroying a Classic Array ====
+
+The ''eina_array_new()'' function creates a new array. You can store strings or
+objects in the created array. The function returns a new array, or if memory
+allocation fails, ''NULL''.
+
+The first parameter of the ''eina_array_new()'' function defines the size of
+the array allocation step. For example, if you set it to 4, the function
+returns an array of 4 elements and the next time you grow the array it grows
+by 4 elements. Unless you have pushed 4 elements inside, it does not grow. But
+once you add the 5th element, it grows again and becomes an array of 8
+elements. The allocation step feature is very useful for optimizing
+performance, and it also reduces memory fragmentation by having a size that
+fits the array usage. If you set the step to 0, the function sets a default
+safe value.
+
+=== To create an array to store strings ===
+
+__**1**__. Create the array:
+
+
+// Strings to store in the array
+const char* strings[] =
+{
+ "helo", "hera", "starbuck", "kat", "boomer",
+ "hotdog", "longshot", "jammer", "crashdown", "hardball",
+ "duck", "racetrack", "apolo", "husker", "freaker",
+ "skulls", "bulldog", "flat top", "hammerhead", "gonzo"
+};
+// Declaring the array (type Eina_Array)
+Eina_Array *array;
+unsigned int i;
+
+// Creating the array
+array = eina_array_new(20);
+
+// Inserting elements in the array
+for (i = 0; i < 20; i++)
+ eina_array_push(array, strdup(strings[i]));
+
+
+__**2**__. To change the allocation step, use the ''eina_array_step_set()'' function:
+ * The first parameter is the array you want to change.
+ * The second parameter is the size of that specific array (retrieved with the ''sizeof()'' function).
+ * The last parameter is the new step size.
+
+In this example, the array step changes from 20 to 30.
+
+eina_array_step_set(array, sizeof(*array), 30);
+
+
+__**3**__. When no longer used, use the ''eina_array_free()'' function to free the array. It first calls the ''eina_array_flush()'' function and frees the memory of the pointer. It does not free the memory allocated for the elements of the array. To free them, use a ''while'' statement with the ''eina_array_pop'' function.
+
+
+// Freeing the array elements
+while (eina_array_count(array))
+ free(eina_array_pop(array));
+
+// Freeing the array itself
+eina_array_free(array);
+
+
+==== Modifying Classic Array Content ====
+
+=== To set the data of an element ===
+Use the ''eina_array_data_set()'' function. The first parameter is the array,
+the second is the index of the element you want to set, and the last one is
+the data. You must first get the related pointer if you need to free it, as
+this function replaces the previously held data. Be careful, as there is no
+array or index check. If the value is ''NULL'' or invalid, the application can
+crash.
+
+
+free(eina_array_data_get(array, 0));
+eina_array_data_set(array, 0, strdup(strings[3]);
+
+
+=== To add elements to the end of the array ===
+Use the ''eina_array_push()'' function. The function returns ''EINA_TRUE'' on
+success, and ''EINA_FALSE'' on failure. The first parameter is the array to
+store the element, the second one is the data you want to store. If you store
+strings, remember to allocate the memory first. The example uses the
+''strdup'' function to duplicate the string contained in ''strings[]''. This
+function allocates the memory of the returned string, so you do not have to do
+it yourself.
+
+
+for (i = 0; i < 20; i++)
+ eina_array_push(array, strdup(strings[i]));
+
+
+=== To remove the last element of an array ===
+Use the ''eina_array_pop()'' function. It takes the array as a parameter, and
+if the operation is successful, returns a pointer to the data of the removed
+element.
+
+
+while (eina_array_count(array))
+ free(eina_array_pop(array));
+
+
+=== To rebuild the array by specifying the data to be kept ===
+Use the ''eina_array_remove()'' function:
+ * The first parameter is the array to be changed.
+ * The second parameter is the function which selects the data to keep in the rebuilt array.
+ * The last parameter is the data to pass to the selector function defined as the second parameter.
+
+The selector function has to return an ''Eina_Bool'', ''EINA_TRUE'' if the
+element stays, and ''EINA_FALSE'' if it has to be removed.
+
+The following example shows how to remove all the elements of the array that
+are longer than 5.
+
+
+// Selector function
+Eina_Bool keep(void *data, void *gdata)
+{
+ if (strlen((const char*)data) <= 5)
+ return EINA_TRUE;
+
+ return EINA_FALSE;
+}
+
+int remove_array()
+{
+ Eina_Array *array;
+ Eina_Array_Iterator iterator;
+ const char *item;
+ unsigned int i;
+
+ // Creating and populating an array
+
+ // Removing the undesired elements
+ eina_array_remove(array, keep, NULL);
+
+ // Flushing and freeing the array
+
+ return 0;
+}
+
+
+=== To completely wipe an array out ===
+Use the ''eina_array_flush()'' function. This function sets the count and
+total members of an array to 0, and frees and sets its data members to
+''NULL''. For performance reasons, there is no array check. If the value is
+''NULL'' or invalid, the program can crash. The only parameter of this
+function is a pointer to the ''Eina_Array'' array you want to flush.
+
+
+eina_array_flush(array);
+
+
+=== To empty an array quickly ===
+Use the ''eina_array_clean()'' function. This function sets the counting of
+members in the array to 0. It does not free any space so you have to use it
+carefully. For performance reasons, there is no array check. If the value is
+''NULL'' or invalid, the program can crash.
+
+
+eina_array_clean(array);
+
+
+==== Accessing Classic Array Data ====
+
+=== To access the data in the array ===
+Use the ''eina_array_data_get()'' function with the array and the index of the
+element you want to get. The function returns a pointer to the data.
+
+
+// Getting the data of the first element
+char *mydata;
+mydata = eina_array_data_get(array, 0);
+
+
+=== To get the number of elements in an array ===
+Use the ''eina_array_count()'' function. The first parameter is a pointer to
+the array variable returned by the ''eina_array_new()'' function.
+
+The function returns the number of elements.
+
+
+unsigned int nb_elm;
+nb_elm = eina_array_count(array);
+
+
+=== To iterate through an array ===
+
+You can use various methods:
+ * Use the ''Eina_Array'' iterator called ''ITER_NEXT''. \\ \\ You can use the iterator by calling the macro ''EINA_ARRAY_ITER_NEXT()''. It takes the array to iterate as the first parameter, a counter for the current index during the iteration, and a variable of the same type as the item data and an ''Eina_Iterator''. To use it, declare an ''Eina_Iterator'', an ''int'' counter, and, for example, a ''char *'' item if your array contains any strings.
+
+
+Eina_Array_Iterator iterator;
+const char *item;
+unsigned int i;
+
+EINA_ARRAY_ITER_NEXT(array, i, item, iterator)
+ printf("item #%d: %s\n", i, item);
+
+
+ * Use the ''eina_array_foreach()'' function to iterate over the array. \\ \\ The first parameter is the array to iterate, the second is a callback function which determines whether the iteration can continue,and the last is the data passed to the callback function. \\ \\ To iterate over the array and to print the data of each array element:
+
+
+// Callback function
+static Eina_Bool
+elm_print(const void *container, void *data, void *fdata)
+{
+ printf("%s\n", (char *)data);
+
+ return EINA_TRUE;
+}
+
+int iterating_array()
+{
+ Eina_Array *array;
+ unsigned int i;
+
+ // Creating and populating an array
+
+ // Iterating over the array and calling elm_print on each element
+ eina_array_foreach(array, elm_print, NULL);
+
+ // Freeing the element data and array
+
+ return 0;
+}
+
+ * Use the ''eina_array_iterator_new()'' function to create an iterator for the array. \\ \\ The function returns a newly allocated iterator associated with the array. If the array is ''NULL'' or the count of the array members is less than or equal to 0, the function returns ''NULL''. If the memory cannot be allocated, ''NULL'' is returned and ''EINA_ERROR_OUT_OF_MEMORY'' is thrown. Otherwise, a valid iterator is returned. \\ \\ Pass to this function the array for which you want to create a new iterator. The iterator is used to run a sequential walk through the array, just like the ''eina_array_foreach()'' function. \\ \\ To create an iterator and use it to print the data of each array element:
+
+
+static Eina_Bool
+print_one(const void *container, void *data, void *fdata)
+{
+ printf("%s\n", (char*)data);
+
+ return EINA_TRUE;
+}
+
+int new_iterator()
+{
+ Eina_Array *array;
+ Eina_Iterator *it;
+ unsigned short int i;
+ void *uninteresting;
+ Eina_Bool rt;
+
+ // Creating and populating an array
+
+ it = eina_array_iterator_new(array);
+
+ it = eina_iterator_next(it, &uninteresting);
+ eina_iterator_foreach(it, print_one, NULL);
+ eina_iterator_free(it);
+
+ return 0;
+}
+
+
+ * Use the ''eina_array_accessor_new()'' function to get random access to the array elements. \\ \\ The function returns a newly allocated accessor associated with the array. If the array is ''NULL'' or the counting of array members is less than or equal to 0, this function returns ''NULL''. If the memory cannot be allocated, ''NULL'' is returned and ''EINA_ERROR_OUT_OF_MEMORY'' is thrown. Otherwise, a valid accessor is returned. \\ \\ To use the accessor to retrieve and print the data of every other array element:
+
+
+int random_access()
+{
+ Eina_Array *array; // Declaration of the array
+ Eina_Accessor *acc; // Declaration of the accessor
+
+ unsigned short int i; // Generic counter
+
+ void *data; // Variable to put the data retrieved from an array element
+
+ // Creating and populating an array
+
+ // Creating the array accessor
+ acc = eina_array_accessor_new(array);
+
+ // Random access to the data of the array elements
+ for(i = 1; i < 10; i += 2)
+ {
+ // Putting the data in the variable 'data'
+ eina_accessor_data_get(acc, i, &data);
+ printf("%s\n", (const char *)data);
+ }
+
+ eina_accessor_free(acc); // Freeing the accessor
+
+ // Freeing the array
+ return 0;
+}
+
+
+==== Creating and Destroying an Inline Array ====
+
+An inline array is a container that stores the data itself, not the pointers
+to the data. This means there is no memory fragmentation, and for small data
+types, such as char, short, and int, it is more memory-efficient. This is
+because the data is stored in the cache and is faster to access. The bigger
+the data gets, however, the less likely it is and the less interesting it
+becomes.
+
+To create an inline array, use the ''eina_inarray_new()'' function:
+
+ * The first parameter is the size of the value. In this example, only the characters are stored, and because of that, only ''sizeof(char)'' is passed to the function.
+ * The second parameter defines the size of the array allocation step. For example, if you set it to 4, the function returns an inline array of 4 elements, and the next time you grow the inline array, it grows by 4 elements and becomes an array of 8 elements. If you set the step to 0, the function sets a default safe value. \\ \\ The step can be changed later on using the ''eina_inarray_step_set()'' function.
+
+The ''eina_inarray_new()'' function returns a pointer to the new
+''Eina_Inarray'' variable.
+
+
+int inline_array()
+{
+ Eina_Inarray *iarr; // Declare an inline array variable of the type Eina_Inarray
+
+ iarr = eina_inarray_new(sizeof(char), 0); // Create an inline array of "char"
+
+ eina_inarray_free(iarr); // When no longer needed, free the array memory
+
+ return 0;
+}
+
+
+==== Modifying Inline Array Content ====
+
+=== To add data as the last element of the inline array ===
+
+Use the ''eina_inarray_push()'' function. The first parameter is a pointer to
+the array variable returned by the ''eina_inarray_new()'' function. The second
+parameter is the data you want to push to the inline array.
+
+If everything runs fine, the function returns the index of the new element. If
+something goes wrong, it returns ''-1''.
+
+
+ch = 'a';
+eina_inarray_push(iarr, &ch);
+
+
+=== To insert data to a given position of the inline array ===
+
+Use the ''eina_inarray_insert_at()'' function:
+ * The first parameter is a pointer to the array variable returned by the ''eina_inarray_new()'' function.
+ * The second parameter is the index of the element you want to add to the inline array.
+ * The last parameter is a pointer to the content to be added.
+
+The content of the pointer is copied to the given position in the inline
+array. All the members from the position to the end of the array are shifted
+towards the end. If the position is equal to the end of the array, the member
+is appended. If the position is bigger than the array length, the function
+fails.
+
+
+ch = 'a';
+eina_inarray_push(iarr, &ch);
+ch = 'b';
+eina_inarray_push(iarr, &ch);
+ch = 'd';
+eina_inarray_push(iarr, &ch);
+
+// Adding data on position 3
+ch = 'c';
+eina_inarray_insert_at(iarr, 2, &ch)
+
+
+=== To insert data with your own position criteria ===
+
+Use the ''eina_inarray_insert()'' or ''eina_inarray_insert_sorted()''
+function. The only difference between these functions is that the
+''eina_inarray_insert_sorted()'' function assumes that the array is already
+sorted and consequently optimizes the insertion position by doing a binary
+search.
+
+In both functions:
+
+ * The first parameter is a pointer to the array variable returned by the ''eina_inarray_new()'' function.
+ * The second parameter is the data you want to push to the inline array.
+ * The last parameter is the callback comparison function. \\ \\ The ''Eina_Compare_Cb'' callback function compares data1 and data2. data1 is the value contained in the inline array and data2 is the data you pass to the ''eina_inarray_insert()'' or ''eina_inarray_insert_sorted()'' function as the second parameter. If data1 is less than data2, -1 must be returned, if it is greater, 1 must be returned, and if they are equal, 0 must be returned.
+
+The following example shows how to insert a value before a greater value:
+
+
+// Defining the comparison function with the position criteria
+Eina_Compare_Cb cmp(const void *a, const void *b)
+{
+ return *(int*)a > *(int*)b;
+}
+
+int inline_insert()
+{
+ Eina_Inarray *iarr;
+ char ch, *ch3;
+ int a, *b;
+
+ // Creating an inline array
+
+ // Adding data to the inline array
+ a = 97;
+ eina_inarray_push(iarr, &a);
+ a = 98;
+ eina_inarray_push(iarr, &a);
+ a = 100;
+ eina_inarray_push(iarr, &a);
+
+ // Inserting data with the criteria
+ a = 99;
+ eina_inarray_insert_sorted(iarr, &a, cmp);
+
+ eina_inarray_free(iarr);
+}
+
+
+=== To remove the last element of the inline array ===
+
+Use the ''eina_inarray_pop()'' function. The only parameter is a pointer to
+the array variable returned by the ''eina_inarray_new()'' function. This
+function returns the data removed from the inline array.
+
+
+eina_inarray_pop(iarr);
+
+
+=== To remove specific data from an inline array ===
+
+Use the ''eina_inarray_remove()'' function. The first parameter is a pointer
+to the array variable returned by the ''eina_inarray_new()'' function. The
+second parameter is the data you want to remove from the inline array.
+
+The ''eina_inarray_remove()'' function finds the data and removes the matching
+members from the array. The data can be an existing member of an inline array
+for optimized usage. In other cases, the content is matched using the
+''memcmp()'' function.
+
+The ''eina_inarray_remove()'' function returns the index of the removed
+member, or -1 if failed.
+
+
+iarr = eina_inarray_new(sizeof(char), 0);
+
+ch = 'a';
+eina_inarray_push(iarr, &ch);
+
+// Removing data from the array
+eina_inarray_remove(iarr, &ch);
+
+
+=== To remove data from a defined position in an inline array ===
+
+Use the ''eina_inarray_remove_at()'' function. The first parameter is a
+pointer to the array variable returned by the ''eina_inarray_new()'' function.
+The second parameter is the index of the element you want to remove from the
+inline array.
+
+The function returns ''EINA_TRUE'' on success and ''EINA_FALSE'' if something
+goes wrong. The member is removed from the inline array and any members after
+it are moved towards the array's head.
+
+
+// Removing data from position 2
+eina_inarray_remove_at(iarr, 2);
+
+
+=== To remove all the elements of the array ===
+
+Use the ''eina_inarray_flush()'' function. The first parameter is a pointer to
+the array variable returned by the ''eina_inarray_new()'' function. The
+function removes every member from the array.
+
+
+eina_inarray_flush(iarr);
+
+
+=== To replace values in the inline array ===
+
+Use the ''eina_inarray_replace_at()'' function, which copies the data over the
+given position:
+
+ * The first parameter is a pointer to the array variable returned by the ''eina_inarray_new()'' function.
+ * The second parameter is the index of the element you want to remove from the inline array.
+ * The last parameter is the data you want to copy in place of the current data.
+
+The function returns ''EINA_TRUE'' on success, and ''EINA_FALSE'' on failure.
+The given pointer content is copied to the given position in the array. The
+pointer is not referenced, instead its contents are copied to the member's
+array using the previously defined ''member_size''. If the position does not
+exist, the function fails.
+
+
+// Replacing the member at position 3
+ch = 'd';
+eina_inarray_replace_at(iarr, 3, &ch);
+
+
+=== To sort an inline array ===
+
+Use the ''eina_inarray_sort()'' function, which applies a quick sorting algorithm to the inline array:
+
+ * The first parameter is a pointer to the array returned by the ''eina_inarray_new()'' function.
+ * The last parameter is the ''Eina_Compare_Cb'' callback comparison function, which compares data1 and data2. \\ \\ data1 and data2 are values contained in the inline array. If the data matches, the function must return 0, if data1 is less than data2, -1 must be returned and if it is greater, 1 must be returned.
+
+
+static int
+short_cmp(const void *pa, const void *pb)
+{
+ const short *a = pa, *b = pb;
+
+ return *a - *b;
+}
+
+int sorting_inline_array()
+{
+ Eina_Inarray *array;
+ int i;
+
+ // Creating and populating the inline array
+
+ eina_inarray_sort(array, short_cmp);
+ eina_inarray_free(array);
+}
+
+
+Be careful, the data given to the compare function is the pointer to the
+member memory itself. Do not change it.
+
+==== Accessing Inline Array Data ====
+
+=== To search a member in an inline array ===
+
+Use the ''eina_inarray_search()'' function that runs a linear walk looking for
+the given data:
+
+ * The first parameter is a pointer to the array variable returned by the ''eina_inarray_new()'' function.
+ * The second parameter is the data used by the callback function to run the comparison.
+ * The last parameter is the ''Eina_Compare_Cb'' callback comparison function, which compares data1 and data2. \\ \\ data1 is the value contained in the inline array and data2 is the data you pass to the ''eina_inarray_search()'' function as the second parameter. If the data matches, the function must return 0, if data1 is less than data2, -1 must be returned and if it is greater, 1 must be returned.
+
+The function returns the member index, or -1 if not found.
+
+
+Eina_Compare_Cb
+compare(const void *pa, const void *pb)
+{
+ const short *a = pa, *b = pb;
+ if (*a == *b)
+ return EINA_TRUE;
+
+ return EINA_FALSE;
+}
+
+int search_inline_array()
+{
+ Eina_Inarray *array;
+ int i;
+ int elm_index;
+ int to_search = 3;
+
+ // Creating and populating the inline array
+
+ elm_index = eina_inarray_search(array, &to_search, compare);
+ eina_inarray_free(array);
+}
+
+
+Be careful, the data given to the compare function is the pointer to the
+member memory itself. Do not change it.
+
+The ''eina_inarray_search_sorted()'' function does exactly the same as
+''eina_inarray_search()'', but uses a binary search for the given data.
+
+=== To get the number of elements in an inline array ===
+
+Use the ''eina_inarray_count()''. The first parameter is a pointer to the
+array returned by the ''eina_inarray_new()'' function. The function returns an
+''unsigned int'', the number of elements.
+
+
+printf("Inline array of integers with %d elements:\n", eina_inarray_count(iarr));
+
+
+=== To iterate through an inline array ===
+
+You can use various methods:
+ * You can use the iterator macros for the inline arrays: ''FOREACH'' and ''REVERSE_FOREACH''.
+ * To run a linear walk over an array of elements, use the ''EINA_INARRAY_FOREACH()'' macro. The first parameter is a pointer to the array variable returned by ''eina_inarray_new()'', and the second parameter is the variable into which the current value is put during the walk. The ''EINA_INARRAY_REVERSE_FOREACH()'' macro does the same thing but starts from the last element. \\ \\ The following example illustrates the printing of each element and its pointer:
+
+
+iarr = eina_inarray_new(sizeof(char), 0);
+int a, *b;
+
+a = 97;
+eina_inarray_push(iarr, &a);
+a = 98;
+eina_inarray_push(iarr, &a);
+a = 99;
+eina_inarray_push(iarr, &a);
+
+EINA_INARRAY_FOREACH(iarr, b)
+ printf("int: %d(pointer: %p)\n", *b, b);
+
+
+ * To process the array data, use the ''eina_inarray_foreach()'' function, which invokes the given function on each element of the array with the given data:
+ * The first parameter is a pointer to the array variable returned by ''eina_inarray_new()''.
+ * The second parameter is the function to run on each element. \\ \\ The function must return ''EINA_TRUE'' as long as you want to continue iterating. By returning ''EINA_FALSE'', you stop the iteration and make the ''eina_inarray_foreach()'' function return ''EINA_FALSE''. \\ \\ The data given to the function is the pointer to the member itself.
+ * The last parameter is the data passed to the function called on each element.
+
+The ''eina_inarray_foreach()'' function returns ''EINA_TRUE'' if it
+successfully iterates through all items of the array. Call the function for
+every given data in the array. This is a safe way to iterate over an array.
+
+
+static Eina_Bool
+array_foreach(const void *array __UNUSED__, void *p, void *user_data __UNUSED__)
+{
+ short *member = p;
+ int *i = user_data;
+ (*p)++;
+ (*i)++;
+
+ return EINA_TRUE;
+}
+
+int inline_array_foreach()
+{
+ Eina_Inarray *iarr;
+ iarr = eina_inarray_new(sizeof(char), 1);
+ int i;
+
+ for (i = 0; i < numbers_count; i++)
+ {
+ short val = i;
+ eina_inarray_push(iarr, &val);
+ }
+
+ i = 0;
+ eina_inarray_foreach(iarr, array_foreach, &i);
+
+ eina_inarray_free(iarr);
+
+ return 0;
+}
+
+
+=== To remove some elements based on your own criteria ===
+
+Use the ''eina_inarray_foreach_remove()'' function, which walks through the
+array and, if the value matches in the callback function, removes the element:
+
+ * The first parameter is a pointer to the array returned by ''eina_inarray_new()'' function.
+ * The second parameter is the callback function to run on each element. \\ \\ The callback function returns ''EINA_TRUE'' if the value matches, or ''EINA_FALSE'' if it does not match.
+ * The last parameter is the data passed to the callback function.
+
+The function returns the number of removed entries or -1 if something goes wrong.
+
+
+static Eina_Bool
+array_foreach(const void *array __UNUSED__, void *p, void *user_data __UNUSED__)
+{
+ short *member = p;
+ int *i = user_data;
+ if (*i == *p)
+ return EINA_TRUE;
+
+ return EINA_FALSE;
+}
+
+int inline_array_foreach_remove()
+{
+ Eina_Inarray *iarr;
+ iarr = eina_inarray_new(sizeof(char), 1);
+ int i;
+
+ for (i = 0; i < numbers_count; i++)
+ {
+ short val = i;
+ eina_inarray_push(iarr, &val);
+ }
+
+ i = 6;
+ eina_inarray_foreach_remove(iarr, array_foreach, &i);
+
+ eina_inarray_free(iarr);
+
+ return 0;
+}
+
+
+-------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/eina/generic_value.txt b/public_html/data/pages/develop/legacy/program_guide/eina/generic_value.txt
new file mode 100644
index 00000000..e88388f2
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/eina/generic_value.txt
@@ -0,0 +1,96 @@
+{{page>index}}
+-------
+===== Generic Value =====
+
+The ''Eina_Value'' object provides generic data storage and access, allowing
+you to store what you want in one single type of ''Eina_Value''. It is meant
+for simple data types, providing uniform access and release functions, useful
+to exchange data preserving their types. The ''Eina_Value'' comes with
+predefined types for numbers, array, list, hash, blob, and structs, and it can
+convert between data types, including string.
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__Value__Group.html|Generic Value API]]
+
+|[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_value_01_8c-example.html|Generic Value Example 1]]|[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_value_02_8c-example.html|Generic Value Example 2]]|[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_value_03_8c-example.html|Generic Value Example 3]]|
+
+The ''Eina_Value'' can handle the following types:
+
+ * ''EINA_VALUE_TYPE_UCHAR'': unsigned char
+ * ''EINA_VALUE_TYPE_USHORT'': unsigned short
+ * ''EINA_VALUE_TYPE_UINT'': unsigned int
+ * ''EINA_VALUE_TYPE_ULONG'': unsigned long
+ * ''EINA_VALUE_TYPE_TIMESTAMP'': unsigned long used for timestamps
+ * ''EINA_VALUE_TYPE_UINT64'': unsigned integer of 64 bits
+ * ''EINA_VALUE_TYPE_CHAR'': char
+ * ''EINA_VALUE_TYPE_SHORT'': short
+ * ''EINA_VALUE_TYPE_INT'': int
+ * ''EINA_VALUE_TYPE_LONG'': long
+ * ''EINA_VALUE_TYPE_INT64'': integer of 64 bits
+ * ''EINA_VALUE_TYPE_FLOAT'': float
+ * ''EINA_VALUE_TYPE_DOUBLE'': double
+ * ''EINA_VALUE_TYPE_STRINGSHARE'': stringshared string
+ * ''EINA_VALUE_TYPE_STRING'': string
+ * ''EINA_VALUE_TYPE_ARRAY'': array
+ * ''EINA_VALUE_TYPE_LIST'': list
+ * ''EINA_VALUE_TYPE_HASH'': hash
+ * ''EINA_VALUE_TYPE_TIMEVAL'': 'struct timeval'
+ * ''EINA_VALUE_TYPE_BLOB'': blob of bytes
+ * ''EINA_VALUE_TYPE_STRUCT'': struct
+
+
+To set up a generic value:
+
+__**1**__. Declare the necessary variables:
+
+
+// The Eina_Value itself
+Eina_Value v;
+// An integer
+int i;
+// And a char *
+char *newstr;
+
+
+__**2**__. To set up an Eina_Value for an integer, use the
+''eina_value_setup()'' function. The first argument is the ''Eina_Value'' and
+the second is the type.
+
+
+eina_value_setup(&v, EINA_VALUE_TYPE_INT);
+
+
+To manage the generic value:
+
+ * To set an integer, use the ''eina_value_set()'' function:
+
+
+eina_value_set(&v, 123);
+
+
+ * To get the value, use the ''eina_value_get()'' function. Pass the ''Eina_Value'' as the first argument, and a pointer to a variable to store the value (the target variable must have the same type as the ''Eina_Value'').
+
+
+eina_value_get(&v, &i);
+printf("v=%d\n", i);
+
+The above example prints "v=123".
+
+ * To store a string, get its value, and print it:
+
+
+const char *s;
+
+eina_value_setup(&v, EINA_VALUE_TYPE_STRING);
+eina_value_set(&v, "My string");
+eina_value_get(&v, &s);
+
+printf("v=%s (pointer: %p)\n", s, s);
+
+
+ * To store an ''Eina_List'', use the ''Eina_Value'' that corresponds to the ''EINA_VALUE_TYPE_LIST'' type.
+ * To create an ''Eina_Value_List'', use the ''eina_value_list_setup()'' function. The function initializes a generic value storage of the list type. The first parameter is the "object" value, and the second one is the type (how to manage the stored list members).
+
+-------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/eina/hash_tables.txt b/public_html/data/pages/develop/legacy/program_guide/eina/hash_tables.txt
new file mode 100644
index 00000000..b12c2849
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/eina/hash_tables.txt
@@ -0,0 +1,338 @@
+{{page>index}}
+-------
+===== Hash Tables =====
+
+The ''Eina_Hash'' provides a way to store values in association with a key.
+For example, if you want to store some tuples into a table, you can do it
+using the ''Eina_Hash''.
+
+The ''Eina_Hash'' is implemented using an array of "buckets" where each bucket
+is a pointer to a structure that is the head of a red-black tree. This
+implementation makes it very robust against week keys as in the worst case
+scenario, you can still depend on an efficient binary tree implementation.
+
+=== Table of Contents ===
+
+ * [[#Creating_a_Hash_Table|Creating a Hash Table]]
+ * [[#Modifying_Hash_Table_Content|Modifying Hash Table Content]]
+ * [[#To_add_some_data_to_a_hash|To add some data to a hash]]
+ * [[#To_modify_an_entry|To modify an entry]]
+ * [[#To_change_the_key_associated_with_the_data_without_freeing_and_creating_a_new_entry|To change the key associated with the data without freeing and creating a new entry]]
+ * [[#To_delete_entries_from_a_hash_table|To delete entries from a hash table]]
+ * [[#Accessing_Hash_Table_Data|Accessing Hash Table Data]]
+ * [[#To_retrieve_an_entry_based_on_its_key|To retrieve an entry based on its key]]
+ * [[#To_get_the_number_of_entries_in_a_hash|To get the number of entries in a hash]]
+ * [[#To_iterate_through_a_hash_table|To iterate through a hash table]]
+ * [[#To_iterate_over_the_keys|To iterate over the keys]]
+ * [[#To_iterate_over_the_hash_data|To iterate over the hash data]]
+ * [[#To_iterate_over_a_tuple_composed_of_keys_and_data|To iterate over a tuple composed of keys and data]]
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__Hash__Group.html|Hash Table API]]
+
+|[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_hash_01_8c-example.html|Hash Table Example 1]]|[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_hash_02_8c-example.html|Hash Table Example 2]]|[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_hash_03_8c-example.html|Hash Table Example 3]]|[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_hash_04_8c-example.html|Hash Table Example 4]]|
+|[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_hash_05_8c-example.html|Hash Table Example 5]]|[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_hash_06_8c-example.html|Hash Table Example 6]]|[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_hash_07_8c-example.html|Hash Table Example 7]]|[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_hash_08_8c-example.html|Hash Table Example 8]]|
+
+==== Creating a Hash Table ====
+
+To create the hash table, use the ''eina_hash_new()'' function:
+
+ * The first parameter is the function called when getting the size of the key.
+ * The second parameter is the function called when comparing the keys.
+ * The third parameter is the function called when getting the values.
+ * The fourth parameter is the function called on each value when the hash table is freed, or when an item is deleted from it. ''NULL'' can be passed as the callback.
+ * The last parameter is the size of the buckets.
+
+When you create an ''Eina_Hash'' instance, you have to create 4 potentially
+long callback functions. To make the functions shorter, ''Eina_Hash'' offers
+some predefined functions to create the following kinds of hash tables:
+
+ * ''eina_hash_string_djb2_new()'' creates a new hash table using the djb2 algorithm for strings.
+ * ''eina_hash_string_superfast_new()'' creates a new hash table for use with strings (better with long strings).
+ * ''eina_hash_string_small_new()'' creates a new hash table for use with strings with a small bucket size.
+ * ''eina_hash_int32_new()'' and ''eina_hash_int64_new()'' create a new hash table for use with 32-bit and 64-bit integers.
+ * ''eina_hash_pointer_new()'' creates a new hash table for use with pointers.
+ * ''eina_hash_stringshared_new()'' creates a new hash table for use with shared strings.
+
+All these predefined functions require only one parameter, which is the
+function to free the data you store in the hash table.
+
+The following example shows how to manage a small phone book using the
+''eina_hash_string_superfast_new()'' function to create the hash table.
+
+__**1**__. Create the phone book structure and some static data:
+
+
+struct _Phone_Entry
+{
+ const char *name; // Full name
+ const char *number; // Phone number
+};
+
+typedef struct _Phone_Entry Phone_Entry;
+
+static Phone_Entry _start_entries[] =
+{
+ { "Wolfgang Amadeus Mozart", "+01 23 456-78910" },
+ { "Ludwig van Beethoven", "+12 34 567-89101" },
+ { "Richard Georg Strauss", "+23 45 678-91012" },
+ { "Heitor Villa-Lobos", "+34 56 789-10123" },
+ { NULL, NULL }
+};
+
+
+__**2**__. Create the callback to free the data:
+
+
+static void
+_phone_entry_free_cb(void *data)
+{
+ free(data);
+}
+
+
+The free callback can be changed later using the ''eina_hash_free_cb_set()''
+function. You need to pass the hash and the new callback function.
+
+__**3**__. Create and destroy the hash table.
+
+The ''eina_hash_free_buckets()'' function frees all hash table buckets. It
+empties the hash but does not destroy it, and you can still use it for another
+purpose. When ''eina_hash_free()'' is called, the space allocated for the hash
+is freed.
+
+
+int free_data()
+{
+ Eina_Hash *phone_book = NULL;
+ phone_book = eina_hash_string_superfast_new(_phone_entry_free_cb);
+
+ // Empty the phone book without destroying it
+ eina_hash_free_buckets(phone_book);
+ eina_hash_free(phone_book);
+}
+
+
+==== Modifying Hash Table Content ====
+
+=== To add some data to a hash ===
+
+Use the ''eina_hash_add()'' function. This function takes the hash, the key to
+access the data, and the data as its parameters. \\ \\ The following example shows how to add the initial data declared earlier to the hash:
+
+
+for (i = 0; _start_entries[i].name != NULL; i++)
+ {
+ eina_hash_add(phone_book, _start_entries[i].name, strdup(_start_entries[i].number));
+ }
+
+
+The ''Eina_Hash'' offers various ways to add elements to a hash, such as the
+''eina_hash_direct_add()'' function, which adds the entry without duplicating
+the string key. The key is stored in the struct, so this function can be used
+with ''eina_stringshare'' to avoid key data duplication.
+
+
+for (i = 0; _start_entries[i].name != NULL; i++)
+ {
+ // Allocating memory for the phone entry
+ Phone_Entry *e = malloc(sizeof(Phone_Entry));
+
+ // Creating an eina_stringshare for the name and the phone number
+ e->name = eina_stringshare_add(_start_entries[i].name);
+ e->number = eina_stringshare_add(_start_entries[i].number);
+
+ // Adding the entry to the hash
+ eina_hash_direct_add(phone_book, e->name, e);
+ }
+
+
+=== To modify an entry ===
+
+Use ''eina_hash_modify()'' function passing the hash, the key of the data to
+change, and the new data. The function returns the old data on success.
+
+The ''eina_hash_set()'' function does the same work as ''eina_hash_modify()'',
+but if the entry does not exist, the function creates a new one.
+
+
+char *old_phone = NULL;
+char *phone = NULL;
+// Replace the phone number of Richard Strauss
+old_phone = eina_hash_modify(phone_book, "Richard Georg Strauss", strdup("+23 45 111-11111"));
+phone = eina_hash_set(phone_book, "Philippe de Magalhães", strdup("+33 6 111-11111"));
+eina_hash_set(phone_book, "Richard Georg Strauss", strdup("+23 45 111-117711"));
+
+
+=== To change the key associated with the data without freeing and creating a new entry ===
+
+Use the ''eina_hash_move()'' function. You only have to pass the hash, the old
+key, and the new key. If the operation succeeds, the function returns
+''EINA_TRUE'', if not, it returns ''EINA_FALSE''.
+
+
+Eina_Bool res;
+res = eina_hash_move(phone_book, "Philippe de Magalhães", "Filipe de Magalhães");
+
+
+=== To delete entries from a hash table ===
+
+Use the ''eina_hash_del()'' function to remove the entry identified by a key
+or data from the given hash table:
+
+
+Eina_Bool r;
+const char *entry_name = "Heitor Villa-Lobos";
+r = eina_hash_del(phone_book, entry_name, NULL);
+
+
+Use the ''eina_hash_del_by_key()'' function to remove an entry based on the
+key:
+
+
+r = eina_hash_del_by_key(phone_book, "Richard Georg Strauss");
+
+
+Use the ''eina_hash_del_by_data()'' function to remove an entry based on the
+data:
+
+
+r = eina_hash_del_by_data(phone_book, "+12 34 567-89101");
+
+
+==== Accessing Hash Table Data ====
+
+To find hash table elements and get data based on the key name:
+
+=== To retrieve an entry based on its key ===
+
+Use the ''eina_hash_find()'' function by passing the hash and the key you are
+looking for:
+
+
+char *phone = NULL;
+const char *entry_name = "Heitor Villa-Lobos";
+
+// Look for a specific entry and get its phone number
+phone = eina_hash_find(phone_book, entry_name);
+
+
+=== To get the number of entries in a hash ===
+
+Use the ''eina_hash_population()'' function. Pass the hash as the only
+argument.
+
+
+unsigned int nb_elm;
+nb_elm = eina_hash_population(phone_book);
+
+
+=== To iterate through a hash table ===
+
+You can use various methods:
+ * to iterate over the hash table, use the ''eina_hash_foreach()'' function:
+ * The first parameter is the hash.
+ * The second parameter is the callback function called on each iteration. \\ \\ The callback function has to return an ''Eina_Bool'', ''EINA_TRUE'' if the iteration has to continue and ''EINA_FALSE'' if the iteration has to stop.
+ * The last parameter one is the data passed to the callback function.
+
+The following example prints the key and the data of the hash entry (the name and the phone number):
+
+
+static Eina_Bool
+pb_foreach_cb(const Eina_Hash *phone_book, const void *key, void *data, void *fdata)
+{
+ const char *name = key;
+ const char *number = data;
+ printf("%s: %s\n", name, number);
+
+ // Return EINA_FALSE to stop this callback from being called
+ return EINA_TRUE;
+}
+
+printf("List of phones:\n");
+
+// Running the callback on the hash called phone_book
+eina_hash_foreach(phone_book, pb_foreach_cb, NULL);
+printf("\n");
+
+
+=== To iterate over the keys ===
+
+Use the ''eina_hash_iterator_key_new()'' function:
+
+
+// Declaration of the Eina_Iterator
+Eina_Iterator *it;
+
+// Variable to handle the current iteration "data"
+void *data;
+
+// Iterate over the keys (names)
+printf("List of names in the phone book:\n");
+
+it = eina_hash_iterator_key_new(phone_book);
+
+// Use the generic eina_iterator_next()
+while (eina_iterator_next(it, &data))
+{
+ const char *name = data;
+ printf("%s\n", name);
+}
+
+// Free the iterator
+eina_iterator_free(it);
+
+
+=== To iterate over the hash data ===
+
+Use the ''eina_hash_iterator_data_new()'' function the same way as
+''eina_hash_iterator_key_new()'':
+
+
+// Declaration of the Eina_Iterator
+Eina_Iterator *it;
+
+// Variable to handle the current iteration "data"
+void *data;
+
+// Iterate over hash data
+printf("List of numbers in the phone book:\n");
+
+it = eina_hash_iterator_data_new(phone_book);
+while (eina_iterator_next(it, &data))
+ {
+ const char *number = data;
+ printf("%s\n", number);
+ }
+
+// Free the iterator
+eina_iterator_free(it);
+
+
+=== To iterate over a tuple composed of keys and data ===
+
+Use the ''eina_hash_iterator_tuple_new()'' function:
+
+
+// Declaration of the Eina_Iterator
+Eina_Iterator *tit;
+
+// Variable to handle the current iteration "data"
+void *tuple;
+
+printf("List of phones:\n");
+tit = eina_hash_iterator_tuple_new(phone_book);
+while (eina_iterator_next(tit, &tuple))
+ {
+ Eina_Hash_Tuple *t = tuple;
+ const char *name = t->key;
+ const char *number = t->data;
+ printf("%s: %s\n", name, number);
+ }
+
+// Always free the iterator after its use
+eina_iterator_free(tit);
+
+
+-------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/eina/index.txt b/public_html/data/pages/develop/legacy/program_guide/eina/index.txt
new file mode 100644
index 00000000..20454cd3
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/eina/index.txt
@@ -0,0 +1,6 @@
+++++Eina Menu|
+^ [[/develop/legacy/program_guide/eina_pg|Eina Programming Guide]] ^^^^^^^
+^ Data Types | [[/develop/legacy/program_guide/eina/iterator_functions|Iterator Functions]] | [[/develop/legacy/program_guide/eina/strings|Strings]] | [[/develop/legacy/program_guide/eina/arrays|Arrays]] | [[/develop/legacy/program_guide/eina/hash_tables|Hash Tables]] | [[/develop/legacy/program_guide/eina/lists|Lists]] | [[/develop/legacy/program_guide/eina/generic_value|Generic Value]] |
+^ Eina Tools | [[/develop/legacy/program_guide/eina/string_tools|String]] || [[/develop/legacy/program_guide/eina/memory_pool_tools|Memory Pool]] || [[/develop/legacy/program_guide/eina/safety_checks_tools|Safety Checks]] ||
+++++
+
diff --git a/public_html/data/pages/develop/legacy/program_guide/eina/iterator_functions.txt b/public_html/data/pages/develop/legacy/program_guide/eina/iterator_functions.txt
new file mode 100644
index 00000000..6c210791
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/eina/iterator_functions.txt
@@ -0,0 +1,32 @@
+{{page>index}}
+-------
+===== Iterator Functions =====
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__Iterator__Group.html|Iterator Functions API]]
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_iterator_01_8c-example.html|Eina Iterator Example]]
+
+Eina provides a set of iterator functions to manipulate data types, such as
+arrays.
+
+These functions allow access to container elements in a generic way, without
+knowing which container is used (similar to iterators in the C++ STL).
+Iterators only allow sequential access (that is, from one element to the next
+one). For random access, Eina provides accessor functions.
+
+Getting an iterator to access elements of a given container is done through
+the functions of that particular container. There is no function to create a
+generic iterator as iterators absolutely depend on the container. Note that
+all iterators, regardless of the container type, are always deleted with the
+same ''eina_iterator_free()'' function.
+
+To get the data and iterate, use the ''eina_iterator_next()'' function. To
+call a function on every single element of a container, use the
+''eina_iterator_foreach()'' function.
+
+In addition to iterator functions, each data type also owns a set of macros
+that provide the iterators, such as ''FOREACH'' or ''REVERSE_FOREACH''.
+
+-------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/eina/lists.txt b/public_html/data/pages/develop/legacy/program_guide/eina/lists.txt
new file mode 100644
index 00000000..c30231f1
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/eina/lists.txt
@@ -0,0 +1,601 @@
+{{page>index}}
+-------
+===== Lists =====
+
+The ''Eina_List'' is a double-linked list that can store data of any type as
+void pointers. It provides a set of functions to create and manipulate the
+list to avoid the access to the struct's fields, similar to a self-made
+double-link list.
+
+In addition to the previous and next node and its data, the ''Eina_List''
+nodes keep a reference to an accounting structure. The accounting structure is
+used to improve the performance of some functions. The structure is private
+and must not be modified.
+
+In an ''Eina_List'', everything is a "list": the list itself is a list where
+each node is a list as well.
+
+Eina provides 2 list types: the classic list (''Eina_List'') and an inline
+list (''Eina_Inlist'').
+
+=== Table of Contents ===
+
+ * [[#Creating_and_Destroying_a_List|Creating and Destroying a List]]
+ * [[#Modifying_List_Content|Modifying List Content]]
+ * [[#To_add_data_to_a_list|To add data to a list]]
+ * [[#To_set_data_in_a_list_member|To set data in a list member]]
+ * [[#To_remove_a_node_from_the_list|To remove a node from the list]]
+ * [[#To_move_elements_in_a_list|To move elements in a list]]
+ * [[#To_reverse_all_the_elements_of_a_list|To reverse all the elements of a list]]
+ * [[#To_sort_a_list|To sort a list]]
+ * [[#To_merge_2_list_into_1|To merge 2 list into 1]]
+ * [[#To_split_a_list|To split a list]]
+ * [[#To_copy_a_list|To copy a list]]
+ * [[#Accessing_List_Data|Accessing List Data]]
+ * [[#To_find_some_data_on_your_list|To find some data on your list]]
+ * [[#To_search_for_data_in_a_list|To search for data in a list]]
+ * [[#To_get_data_from_a_list_element|To get data from a list element]]
+ * [[#To_move_in_a_list|To move in a list]]
+ * [[#To_count_the_list_elements|To count the list elements]]
+ * [[#To_iterate_through_an_array|To iterate through an array]]
+ * [[#Using_an_Inline_List|Using an Inline List]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__List__Group.html|List API]]
+
+|[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_list_01_8c-example.html|List Example 1]]|[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_list_02_8c-example.html|List Example 2]]||[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_list_03_8c-example.html|List Example 3]]|[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_list_04_8c-example.html|List Example 4]]|
+
+==== Creating and Destroying a List ====
+
+To use an ''Eina_List'':
+
+__**1**__. Declare the list with ''NULL'' as the default value:
+
+
+int list()
+{
+ // Declaration of the Eina_List with NULL as default value;
+ Eina_List *list = NULL;
+
+
+__**2**__. Call the ''eina_list_append()'' function with the list and the data you
+want to append as parameters.
+
+The list must be a pointer to the first element of the list (or ''NULL''). The
+function returns a pointer to the list.
+
+
+ // Creating the first element of the list
+ list = eina_list_append(list, "watch");
+
+ // Adding more elements
+ list = eina_list_append(list, "phone");
+ list = eina_list_append(list, "ivi");
+ list = eina_list_append(list, "notebook");
+
+
+__**3**__. When you no longer need the list, free it:
+
+
+ // Free the Eina_List
+ eina_list_free(list);
+
+ return 0;
+}
+
+
+==== Modifying List Content ====
+
+=== To add data to a list ===
+
+ * To add data at the end of the list, use the ''eina_list_append()'' function. To add data at the top of the list, use ''eina_list_prepend()''. The functions work in the same way, only adding the data to different places.
+
+
+list = eina_list_prepend(list, "set-top box");
+
+
+ * To insert data into the list after a specified data, use the ''eina_list_append_relative()'' function. As the last parameter, define the element after which the data is added. \\ \\ For example to append data after the "phone" element:
+
+
+list = eina_list_append_relative(list, "single-board computer", "phone");
+
+
+ * To add a new entry before a specified data, use the ''eina_list_prepend_relative()'' function. It is similar to the ''eina_list_append_relative()'' function.
+
+
+list = eina_list_prepend_relative(list, "ultrabook", "ivi");
+
+
+ * To append a list node to a linked list after a specified member, use the ''eina_list_append_relative_list()'' function. To prepend a list node to a linked list before a specified member, use the ''Eina_List * eina_list_prepend_relative_list()'' function.
+
+=== To set data in a list member ===
+Use the ''eina_list_data_set()'' function. Pass the
+"list" (node) as the first argument and the data to set as the second.
+
+The following example also shows the usage of the ''eina_list_last()''
+function, which returns the last element of an ''Eina_List''.
+
+
+// Setting new data for the last element
+eina_list_data_set(eina_list_last(list), eina_stringshare_add("Boris"));
+
+
+=== To remove a node from the list ===
+
+Use the ''eina_list_remove()'' function. This function removes the first
+instance of the specified data from the given list.
+
+
+list = eina_list_remove(list, "ultrabook");
+
+
+You can also remove a "list" (node) from a list using the
+''eina_list_remove_list()'' function. Pass the list you want to delete an
+element from and a 'list' (node) you want to delete.
+
+
+Eina_List *app_list = NULL;
+Eina_List *to_remove = NULL;
+
+// Adding some elements to the list (using stringshares)
+app_list = eina_list_append(app_list, eina_stringshare_add("enna"));
+app_list = eina_list_append(app_list, eina_stringshare_add("ebird"));
+app_list = eina_list_append(app_list, eina_stringshare_add("calaos"));
+app_list = eina_list_append(app_list, eina_stringshare_add("rage"));
+app_list = eina_list_append(app_list, eina_stringshare_add("terminology"));
+app_list = eina_list_append(app_list, eina_stringshare_add("enlightenment"));
+app_list = eina_list_append(app_list, eina_stringshare_add("eyelight"));
+app_list = eina_list_append(app_list, eina_stringshare_add("ephoto"));
+
+// Finding the "list" to remove
+to_remove = eina_list_data_find_list(list, eina_string_share_add("enlightenment"));
+
+list = eina_list_remove_list(list, to_remove);
+
+
+=== To move elements in a list ===
+
+You can use various function, such as ''eina_list_promote_list()'' that
+promotes an element to the top of the list or ''eina_list_demote_list()'' that
+puts the specified element at the end of the list. Remember that everything is
+a list so the second parameter represents the "list" (node) you want to move.
+Use the functions just like the ''eina_list_remove_list()'' function.
+
+
+list = eina_list_promote_list(list, eina_list_data_find_list(list, "ivi"));
+
+
+=== To reverse all the elements of a list ===
+
+Use the ''eina_list_reverse()'' function. To obtain a reversed copy of the
+list while keeping the initial list unchanged, use the
+''eina_list_reverse_clone()'' function.
+
+
+Eina_List *rev_copy;
+
+app_list = eina_list_reverse(app_list);
+rev_copy = eina_list_reverse_clone(app_list);
+
+
+=== To sort a list ===
+
+Use the ''eina_list_sort()'' function. This function takes a list which needs
+to be sorted, the maximum number of elements to be sorted, and a callback
+function that compares data. To sort all list elements, set the maximum number
+of elements to 0.
+
+
+int sort_cb(const void *d1, const void *d2)
+{
+ const char *txt = d1;
+ const char *txt2 = d2;
+ if(!txt) return(1);
+ if(!txt2) return(-1);
+
+ return(strcmp(txt, txt2));
+}
+
+extern Eina_List *list;
+list = eina_list_sort(list, 0, sort_cb);
+
+
+=== To merge 2 list into 1 ===
+
+Use the ''eina_list_merge()'' function. The ''eina_list_sorted_merge()''
+function merges 2 sorted lists according to the ordering function that you
+pass as the last argument.
+
+
+int sort_cb(void *d1, void *d2)
+{
+ const char *txt = NULL;
+ const char *txt2 = NULL;
+ if(!d1) return(1);
+ if(!d2) return(-1);
+
+ return(strcmp((const char*)d1, (const char*)d2));
+}
+
+Eina_List *sorted1;
+Eina_List *sorted2;
+Eina_List *newlist;
+
+// Insert some values and sort your lists
+
+// Simply merge 2 lists without any process
+newlist = eina_list_merge(sorted1, sorted2);
+
+newlist = eina_list_sorted_merge(sorted1, sorted2, sort_cb);
+
+
+=== To split a list ===
+
+Use the eina_list_split_list() function:
+ * The first parameter is the list to split.
+ * The second parameter is the "list" (element) after which the list is split.
+ * The last parameter is the head of the second list.
+
+
+// Original list (left list)
+Eina_List *list = NULL;
+
+// New list (right list)
+Eina_List *other_list = NULL;
+
+// Eina_List (element)
+Eina_List *l;
+
+list = eina_list_append(list, "super tux");
+list = eina_list_append(list, "frozen bubble");
+list = eina_list_append(list, "lincity-ng");
+
+// Sorting the list (just for fun)
+list = eina_list_sort(list, 0, cmp_func);
+
+// Looking for the 'split' element
+l = eina_list_search_sorted_list(list, cmp_func, "frozen bubble");
+
+// Splitting the list
+list = eina_list_split_list(list, l, &other_list);
+
+
+=== To copy a list ===
+
+Use the ''eina_list_clone()'' function. The function copies all the elements
+in the list in the exact same order.
+
+
+Eina_List *app_list_copy;
+
+app_list_copy = eina_list_clone(app_list);
+
+
+==== Accessing List Data ====
+
+=== To find some data on your list ===
+
+Use the ''eina_list_data_find()'' function. Pass the list containing your data
+as the first parameter and the data you are looking for as the last one. The
+function returns the found member data pointer if found, ''NULL'' otherwise.
+
+The ''eina_list_data_find()'' function searches the list from the beginning to
+the end for the first member for which the data pointer is data. If it is
+found, the data is returned, otherwise ''NULL'' is returned. The function only
+compares pointers, which is why using ''Eina_Stringshare'' is very useful with
+lists, because it always returns the same pointer for the same string.
+
+
+Eina_List *app_list = NULL;
+const char *res_str;
+
+// Adding some elements to the list (using stringshares)
+app_list = eina_list_append(app_list, eina_stringshare_add("enna"));
+app_list = eina_list_append(app_list, eina_stringshare_add("ebird"));
+app_list = eina_list_append(app_list, eina_stringshare_add("calaos"));
+app_list = eina_list_append(app_list, eina_stringshare_add("rage"));
+app_list = eina_list_append(app_list, eina_stringshare_add("terminology"));
+app_list = eina_list_append(app_list, eina_stringshare_add("enlightenment"));
+app_list = eina_list_append(app_list, eina_stringshare_add("eyelight"));
+app_list = eina_list_append(app_list, eina_stringshare_add("ephoto"));
+
+// Finding the data
+res_str = eina_list_data_find(list, eina_string_share_add("enlightenment"));
+if (res_str == eina_stringshare_add("enlightenment"))
+ printf("Data is present");
+else
+ printf("Data not present");
+
+
+The above example returns "Data is present".
+
+The ''eina_list_data_find_list()'' function does the same thing as
+''eina_list_data_find()'', but returns an ''Eina_List''. For an example, see
+the ''eina_list_remove_list()'' function.
+
+You can access the data or a "list" (node) of an ''Eina_List'' using the
+''eina_list_nth()'' and ''eina_list_nth_list()'' functions. The first one returns a
+pointer to the data of the "n" element and the second a pointer to the "list".
+To access the data of the 3rd element of an ''Eina_List'':
+
+
+const char *res;
+Eina_List *res_lst;
+
+res = eina_list_nth(app_list, 2);
+res_lst = eina_list_nth_list(app_list, 2);
+
+
+The ''res'' variable contains the pointer to the string "calaos". The
+''res_lst'' variable is the list containing "calaos".
+
+=== To search for data in a list ===
+
+Select your function based on whether the list is sorted or unsorted.
+ * To search in an unsorted list, use the ''eina_list_search_unsorted()'' function:
+ * The first parameter is the list.
+ * The second parameter is a callback function for comparison.
+ * The last parameter is the data you are looking for.
+
+The ''eina_list_search_unsorted_list()'' function does the same but returns an
+"Eina_List".
+
+The following example shows 2 searches using both the
+''eina_list_search_unsorted()'' and ''eina_list_search_unsorted_list()''
+functions:
+
+
+int search_list()
+{
+ // Declaring the list
+ Eina_List *list = NULL;
+ Eina_List *l;
+ // Little trick to use strcmp as Eina_Compare_Cb
+ Eina_Compare_Cb cmp_func = (Eina_Compare_Cb)strcmp;
+
+ void *data;
+ int cmp_result;
+
+ list = eina_list_append(list, "debian");
+ list = eina_list_append(list, "archlinux");
+ list = eina_list_append(list, "centos");
+
+ data = eina_list_search_unsorted(list, cmp_func, "archlinux");
+ l = eina_list_search_unsorted_list(list, cmp_func, "archlinux");
+ if (l->data != data)
+ {
+ eina_list_free(list);
+
+ return 1;
+ }
+
+ eina_list_free(list);
+
+ return 0;
+}
+
+ * To search in sorted lists, use the ''eina_list_search_sorted_list()'' and ''eina_list_search_sorted()'' functions. They work similarly as the ''eina_list_search_unsorted()'' function.
+
+=== To get data from a list element ===
+
+Use the ''eina_list_data_get()'' function. The function returns the data
+contained in the given list.
+
+The following example uses the ''eina_list_next()'' function to move through
+the list in a statement.
+
+
+int list_data_set()
+{
+ // Declaring the list
+ Eina_List *list = NULL;
+ // Eina_List in which to place the elements or lists
+ Eina_List *l;
+
+ void *list_data;
+
+ list = eina_list_append(list, eina_stringshare_add("Bertrand"));
+ list = eina_list_append(list, eina_stringshare_add("Cedric"));
+ list = eina_list_append(list, eina_stringshare_add("Nicolas"));
+ list = eina_list_append(list, eina_stringshare_add("Vincent"));
+ list = eina_list_append(list, eina_stringshare_add("Raoul"));
+ list = eina_list_append(list, eina_stringshare_add("Fabien"));
+ list = eina_list_append(list, eina_stringshare_add("Philippe"));
+ list = eina_list_append(list, eina_stringshare_add("billiob"));
+
+ for(l = list; l; l = eina_list_next(l))
+ // Printing the data returned by eina_list_data_get
+ printf("%s\n", (char*)eina_list_data_get(l));
+
+ EINA_LIST_FREE(list, list_data)
+ eina_stringshare_del(list_data);
+
+ return 0;
+}
+
+
+=== To move in a list ===
+
+Use the ''eina_list_last()'', ''eina_list_next()'', or ''eina_list_prev()''
+functions to move to the last, next, or previous element in the list.
+
+The following example scrolls backwards starting from the end of the list:
+
+
+
+for(l = eina_list_last(list); l; l = eina_list_prev(l))
+ printf("%s\n", (char*)eina_list_data_get(l));
+
+
+=== To count the list elements ===
+
+Use the ''eina_list_count()'' function. The function returns the number of
+items in a list.
+
+
+printf("List size: %d\n", eina_list_count(list));
+
+
+=== To iterate through an array ===
+
+You can use various iterators:
+
+ * To iterate over a list from the beginning to the end, use the ''EINA_LIST_FOREACH'' macro:
+ * The first parameter is the list to iterate.
+ * The second parameter is an ''Eina_List *'' to hold the current "List" (node).
+ * The last parameter receives the current data during the run.
+
+The following example prints the data of each "List" (node) of the list:
+
+
+Eina_List *list = NULL;
+Eina_List *l;
+void *list_data;
+
+list = eina_list_append(list, "ls");
+list = eina_list_append(list, "top");
+list = eina_list_append(list, "rmdir");
+list = eina_list_append(list, "uname");
+
+EINA_LIST_FOREACH(list, l, list_data)
+ printf("%s\n", (char*)list_data);
+
+eina_list_free(list);
+
+
+ * To iterate from the last element to the first, use the ''EINA_LIST_REVERSE_FOREACH'' macro. It works similarly as ''EINA_LIST_FOREACH()''.
+ * To iterate over a list from the beginning to the end, you can also use the
+''EINA_LIST_FOREACH_SAFE'' macro. It is called safe, because it stores the next "List" (node), so you can safely remove the current "List" (node) and continue the iteration.
+
+
+Eina_List *list;
+Eina_List *l;
+Eina_List *l_next;
+char *data;
+
+list = eina_list_append(list, "enlightenment");
+list = eina_list_append(list, "enlightenment");
+list = eina_list_append(list, "enlightenment");
+list = eina_list_append(list, "enlightenment");
+
+// Using EINA_LIST_FOREACH_SAFE to free the elements that match "enlightenment"
+
+EINA_LIST_FOREACH_SAFE(list, l, l_next, data)
+ if (strcmp(data, "enlightenment") == 0)
+ {
+ free(data);
+ list = eina_list_remove_list(list, l);
+ }
+
+
+ * To remove each list element while having access to the node's data, use the ''EINA_LIST_FREE'' macro. Pass the list and a pointer to hold the current data.
+
+
+Eina_List *list;
+char *data;
+
+// List is filled
+
+EINA_LIST_FREE(list, data)
+ free(data);
+
+
+==== Using an Inline List ====
+
+The ''Eina_Inlist'' is a special data type drawn to store nodes pointers in
+the same memory as data. This way the memory is less fragmented, but
+operations, such as sort and count, are slower. The ''Eina_Inlist'' has its
+own purpose, but if you do not understand what the purpose is, use the regular
+''Eina_List'' instead.
+
+The ''Eina_Inlist'' nodes can be part of a regular ''Eina_List'', simply added
+with the ''eina_list_append()'' or ''eina_list_prepend()'' functions.
+
+To use the inline list:
+
+__**1**__. Define the structure of the data before creating the inline list:
+
+
+struct my_struct
+{
+ EINA_INLIST;
+ int a, b;
+};
+
+
+The structure is composed of 2 integers, the real data, and the
+''EINA_INLIST'' type which is composed of 3 pointers defining the inline list
+structure:
+ * ''Eina_Inlist * next'': next node
+ * ''Eina_Inlist * prev'': previous node
+ * ''Eina_Inlist * last'': last node
+
+__**2**__. To create the inlist nodes, allocate the memory and use the
+''eina_inlist_append()'' function:
+
+ * The first parameter is the existing list head or NULL to create a new list. \\ \\ The following example passes NULL to create a new list.
+ * The second parameter is the new list node, and it must not be NULL. \\ \\ You must use the ''EINA_INLIST_GET()'' macro to get the inlist object of the datastruct.
+
+
+struct my_struct *d, *cur;
+Eina_Inlist *list, *itr, *tmp;
+
+d = malloc(sizeof(*d));
+d->a = 1;
+d->b = 10;
+
+list = eina_inlist_append(NULL, EINA_INLIST_GET(d));
+
+
+Repeat this operation for every new node:
+
+
+d = malloc(sizeof(*d));
+d->a = 2;
+d->b = 20;
+list = eina_inlist_append(list, EINA_INLIST_GET(d));
+
+
+__**3**__. To add data to the inline list:
+
+ * Put data at the end of the inline list with the ''eina_inlist_prepend()'' function:
+
+
+d = malloc(sizeof(*d));
+d->a = 3;
+d->b = 30;
+list = eina_inlist_prepend(list, EINA_INLIST_GET(d));
+
+
+ * Add a node before or after a given node with the ''eina_inlist_prepend_relative()'' and ''eina_inlist_append_relative()'' functions. \\ \\ In both functions, the first parameter is the target list, the second is the element you want to add, and the last is the reference element to place data after (in this case). Similarly as in a regular ''Eina_List'', everything is a list, so the last parameter is an ''Eina_Inlist'' typed variable.
+
+
+d = malloc(sizeof(*d));
+d->a = 4;
+d->b = 40;
+list = eina_inlist_append_relative(list, EINA_INLIST_GET(d), list);
+
+
+__**4**__. To sort and iterate an inline list, to find and move list elements, and to perform other inline list operations, see the Inline List API.
+
+__**5**__. When the inline list is no longer needed, destroy it by looping over the list to free each ''EINA_INLIST'' structure and the data using allocated memory. Use the ''eina_inlist_remove()'' function on each node.
+
+In the following example, the ''EINA_INLIST_CONTAINER_GET()'' macro returns
+the container object of an inlist (the ''EINA_INLIST'' of ''my_struct''), and
+the list element is removed and the allocated memory of the container "object"
+is freed.
+
+
+while (list)
+ {
+ struct my_struct *aux = EINA_INLIST_CONTAINER_GET(list, struct my_struct);
+
+ // Remove the current list element
+ list = eina_inlist_remove(list, list);
+ free(aux);
+ }
+
+
+------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/eina/memory_pool_tools.txt b/public_html/data/pages/develop/legacy/program_guide/eina/memory_pool_tools.txt
new file mode 100644
index 00000000..7d57cb39
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/eina/memory_pool_tools.txt
@@ -0,0 +1,22 @@
+{{page>index}}
+--------
+===== Memory Pool =====
+
+The ''Eina_Mempool'' tool provides memory pool functionality. With a memory
+pool, you can preallocate fixed-size memory spaces for easy memory management.
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__Memory__Pool__Group.html|Memory Pool API]]
+
+The following mempools are available:
+
+ * ''buddy''
+ * ''chained_pool''
+ * ''ememoa_fixed and ememoa_unknown''
+ * ''fixed_bitmap''
+ * ''pass_through''
+ * ''one_big''
+
+--------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/eina/safety_checks_tools.txt b/public_html/data/pages/develop/legacy/program_guide/eina/safety_checks_tools.txt
new file mode 100644
index 00000000..38a289a6
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/eina/safety_checks_tools.txt
@@ -0,0 +1,83 @@
+{{page>index}}
+--------
+===== Safety Checks =====
+
+Eina safety checks are a set of macros that can be used to check for
+parameters or values that must never occur. The concept is similar to the
+''assert()'' function, but safety checks log the parameter or value and return
+instead of aborting your program.
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__Safety__Checks__Group.html|Safety Checks API]]
+
+The following safety checks are available:
+
+ * ''EINA_SAFETY_ON_NULL_RETURN(exp)''
+ * ''EINA_SAFETY_ON_NULL_RETURN_VAL(exp, val)''
+ * ''EINA_SAFETY_ON_NULL_GOTO(exp, label)''
+ * ''EINA_SAFETY_ON_TRUE_RETURN(exp)''
+ * ''EINA_SAFETY_ON_TRUE_RETURN_VAL(exp, val)''
+ * ''EINA_SAFETY_ON_TRUE_GOTO(exp, label)''
+ * ''EINA_SAFETY_ON_FALSE_RETURN(exp)''
+ * ''EINA_SAFETY_ON_FALSE_RETURN_VAL(exp, val)''
+ * ''EINA_SAFETY_ON_FALSE_GOTO(exp, label)''
+ * ''EINA_ARG_NONNULL(...)''
+
+To return if a variable is ''NULL'', use the ''EINA_SAFETY_ON_NULL_RETURN()''
+function. This macro calls return if the given parameter is ''NULL''.
+
+
+Eina_Bool myfunction(char *param)
+{
+ // If my param is NULL, EINA_SAFETY_ON_NULL_RETURN calls "return"
+ EINA_SAFETY_ON_NULL_RETURN(param);
+
+ printf("My pram is : %s\n", param);
+
+ return EINA_TRUE;
+}
+
+
+To return a specific value, use the ''EINA_SAFETY_ON_NULL_RETURN_VAL()''
+function instead of the ''EINA_SAFETY_ON_NULL_RETURN()'' function. This macro
+returns the given value.
+
+
+Eina_Bool void myfunction(char *param)
+{
+ // If the parameter is NULL, return EINA_FALSE;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(param, EINA_FALSE);
+ printf("My pram is : %s\n", param);
+
+ return EINA_TRUE;
+}
+
+
+To call another function if a parameter is ''NULL'', use the
+''EINA_SAFETY_ON_NULL_GOTO()'' function. This macro works similarly to the
+''EINA_SAFETY_ON_NULL_RETURN()'' function except that it calls goto with the
+given function instead of return.
+
+
+static void isnullcb()
+{
+ printf("The parameter is NULL\n");
+}
+Eina_Bool void myfunction(char *param)
+{
+ // If the parameter is NULL we return EINA_FALSE;
+ EINA_SAFETY_ON_NULL_GOTO(param, isnullcb);
+ printf("My pram is : %s\n", param);
+
+ return EINA_TRUE;
+}
+
+
+Eina also provides macros that check whether a given value is ''TRUE'' or
+''FALSE''. For example, to call return if a given value is ''TRUE'', use the
+''EINA_SAFETY_ON_TRUE_RETURN()'' function. To call "goto" in a given function
+if a given value is ''TRUE'', use the ''EINA_SAFETY_ON_NULL_GOTO()'' function.
+
+--------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/eina/string_tools.txt b/public_html/data/pages/develop/legacy/program_guide/eina/string_tools.txt
new file mode 100644
index 00000000..efcb31ea
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/eina/string_tools.txt
@@ -0,0 +1,115 @@
+{{page>index}}
+-------
+===== String =====
+
+When creating applications, you always need to manipulate strings. Eina
+provides a very useful API for manipulating C strings:
+
+=== Table of Contents ===
+
+ * [[#The_most_common_string_manipulation_is_the_"split"|The most common string manipulation is the "split"]]
+ * [[#To_change_the_string_to_lowercase_or_uppercase|To change the string to lowercase or uppercase]]
+ * [[#If_you_need_to_"join"_2_strings_of_known_length|If you need to "join" 2 strings of known length]]
+ * [[#To_check_whether_a_string_starts_or_ends_with_another_string|To check whether a string starts or ends with another string]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__String__Group.html|String Tools API]]
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_eina_string.html|Example]]
+
+=== The most common string manipulation is the "split" ===
+
+If you have a string, such as
+"Rasterman:Bluebugs:Tasn:Illogict:billiob:Puppet_Master", and you want to
+print it in an easily readable format, you can use the ''eina_str_split()''
+function to split the string using a delimiter. The first parameter is the
+string to split, the second determines where to split the string, and the
+final parameter is the maximum number of strings to split the string into. If
+you set a number less than 1, it splits the string as many times as possible.
+
+The function returns a newly-allocated ''NULL''-terminated array of strings,
+or NULL, if it fails to allocate the array. Always remember to free the memory
+allocated by the ''eina_str_split()'' function.
+
+
+char *nicks = "Rasterman:Bluebugs:Tasn:Illogict:billiob:Puppet_Master";
+char **result_arr;
+int i;
+
+// Splitting the string with ':' delimiter
+result_arr = eina_str_split(names, ":", 0);
+// Printing the result
+for (i = 0; result_arr[i]; i++)
+ printf("Nick : %s\n", result_arr[i]);
+// Remember to free memory
+free(arr[0]);
+free(arr);
+
+
+=== To change the string to lowercase or uppercase ===
+
+Use the ''eina_str_tolower()'' and ''eina_str_toupper()'' functions. They
+change the case for all characters of the given string. These functions modify
+the original strings.
+
+
+char *str;
+// Initialize the string
+str = malloc(sizeof(char) * 4);
+strcpy(str, "bsd");
+// Change the string to uppercase
+eina_str_toupper((char **)&str);
+printf("%s\n", str);
+// Change the string to lowercase
+eina_str_tolower(&str);
+printf("%s\n", str);
+// Free the allocated memory
+free(str);
+
+
+=== If you need to "join" 2 strings of known length ===
+
+Use the ''eina_str_join()'' function. The fist parameter is the buffer to
+store the result, the second is the size of the buffer, the third is the
+separator between the 2 strings, and the 2 final parameters are the stings to
+be joined.
+
+
+char *part1 = "Elementary powered by";
+char *part2 = "Enlightenment Foundation Libraries";
+char *res;
+size_t size;
+// Calculate the string size + 1 for the delimiter
+size = strlen(part1) + strlen(part2) + 1
+// Allocate memory for the result
+res = malloc(sizeof(char) * size);
+// Join the strings
+eina_str_join(res, size, ' ', part1, part2);
+printf("%s\n", res);
+// Free the allocated memory
+free(res):
+
+
+=== To check whether a string starts or ends with another string ===
+use the
+''eina_str_has_prefix()'' or ''eina_str_has_suffix()'' function. You can also
+check whether a string has a particular extension with the
+''eina_str_has_extension()'' function.
+
+These functions return ''EINA_TRUE'' if the given string contains the
+specified prefix, suffix, or extension, and ''EINA_FALSE'' if it does not.
+
+
+char *names = "Carsten;Cedric;Tom;Chidambar;Boris;Philippe"
+if (eina_str_has_prefix(names, "Carsten"))
+ printf("String starts with 'Carsten'")
+if (eina_str_has_suffix(names, "Philippe"))
+ printf("String ends with 'Philippe'")
+if (eina_str_has_extension(names, "philippe"))
+ printf("String has extension 'philippe'")
+else
+ printf("String does not have extension "philippe)
+
+
+-------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/eina/strings.txt b/public_html/data/pages/develop/legacy/program_guide/eina/strings.txt
new file mode 100644
index 00000000..2d929949
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/eina/strings.txt
@@ -0,0 +1,153 @@
+{{page>index}}
+-------
+===== Strings =====
+
+=== Table of Contents ===
+
+ * [[#Stringshare]]
+ * [[String_Buffer|String Buffer]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__Stringshare__Group.html|Stringshare API]]
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Eina__String__Buffer__Group.html|String Buffer API]]
+
+|[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_str_01_8c-example.html|String Example]]|[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_strbuf_01_8c-example.html|String Buffer Example]]|[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_stringshare_01_8c-example.html|Stringshare Example]]|
+
+==== Stringshare ====
+
+The ''Eina_Stringshare'' data type functions allow you to store a single copy
+of a string and use it in multiple places throughout your program. This way
+you can save a lot of strings with less memory. It improves string creation
+and destruction speed, reduces memory use, and decreases memory fragmentation.
+
+With this data type you can reduce the number of duplicated strings kept in
+memory. It is common for the same strings to be dynamically allocated
+repeatedly between applications and libraries, especially in circumstances
+where you can have multiple copies of a structure that allocates the string.
+Rather than duplicating and freeing these strings, request a read-only pointer
+to an existing string and only incur the overhead of a hash lookup. This can
+sound like micro-optimizing, but profiling has shown that this can have a
+significant impact as the number of copies grows.
+
+=== To manage stringshares ===
+
+__**1**__. To create a stringshare, declare a string variable and call the ''eina_stringshare_add()'' function:
+
+
+
+const char *mystr;
+const char *prologue = "Enlightenment is not just a window manager for Linux/X11 and others"
+
+mystr = eina_stringshare_add(prologue);
+
+
+__**2**__. To retrieve or modify the string data:
+ * Retrieve a string for use in a program from a format string using the ''eina_stringshare_printf()'' function. If you have a "format" string to pass to a function like ''printf'', you can store it as a stringshare as well. \\ The following example produces "1 desktop manager to rule them all".
+
+
+const char *myfmtstr = "%d desktop manager to rule them all";
+const char *str;
+
+str = eina_stringshare_printf(myfmtstr, 1);
+
+print(str)
+
+ * Replace the value of a stringshare with the ''eina_stringshare_replace()'' function. Pass the pointer address and the new value to the function.
+
+eina_stringshare_replace(&str,"One desktop manager to rule them all");
+
+ * Retrieve the length of the stringshare value with the ''eina_stringshare_strlen()'' function.
+
+ printf("length: %d\n", eina_stringshare_strlen(str));
+
+
+__**3**__. When the string is no longer needed, delete it using the
+''eina_stringshare_del()'' function:
+
+
+eina_stringshare_del(mystr);
+
+
+==== String Buffer ====
+
+The string buffer data type is designed to be a mutable string, allowing you
+to append, prepend or insert a string to a buffer. It allows easy handling of
+buffers in your applications.
+
+=== To manage string buffer ===
+
+__**1**__. Initialize the ''Eina_Strbuf'' instance and create the buffer:
+
+
+Eina_Strbuf *buf;
+mybuffer = eina_strbuf_new();
+
+
+__**2**__. Manage the buffer content:
+ * To append characters to the buffer:
+
+//For basic strings, use the ''eina_strbuf_append()'' function//:
+
+eina_strbuf_append(mybuffer, "This is my string.");
+
+//To append 1 character to your buffer, use the ''eina_strbuf_append_char()''
+function. You can also append a sized string to the buffer using the
+''eina_strbuf_append_length()'' function//:
+
+eina_strbuf_append_length(mybuffer, "Buffe", 5);
+eina_strbuf_append_char(mybuffer, 'r');
+
+//To handle "printf" format strings, use the
+''eina_strbuf_append_printf()'' function to add formatted strings to the
+buffer//:
+
+
+eina_strbuf_append_printf(buf, "%s%c", "buffe", 'r');
+
+
+ * To remove characters from one position to another, use the ''eina_strbuf_remove()'' function. The first parameter is the buffer, the second is the start position of the characters you want to delete, and the last the end position. \\ This example removes the first 19 characters of the buffer:
+
+
+eina_strbuf_remove(buf, 0, 18);
+
+
+ * To replace characters:
+ * ''eina_strbuf_replace()'' replaces a specific occurrence of a given string in the buffer with another string.
+ * ''eina_strbuf_replace_all()'' replaces all occurrences of a given string in the buffer with another string.
+
+
+eina_strbuf_append(mybuffer, "buffer buffer buffer");
+
+// Replacing one occurrence of "buffer" by "B-U-F-F-E-R"
+eina_strbuf_replace(mybuffer, "buffer", "B-U-F-F-E-R", 1);
+
+// Replacing all the occurrences of "buffer" by "B-U-F-F-E-R"
+eina_strbuf_replace_all(mybuffer, "buffer", "B-U-F-F-E-R");
+
+// Replacing all the occurrences of "B-U-F-F-E-R" by "Buffer"
+eina_strbuf_replace_all(mybuffer, "B-U-F-F-E-R", "Buffer");
+
+
+ * To insert a string at the specified position, use the ''eina_strbuf_insert()'' function. Use the ''eina_strbuf_insert_printf()'' function with formatted strings.
+
+
+eina_strbuf_insert(mybuffer, "More buffer", 10);
+
+// Using eina_strbuf_length_get to get the buffer length
+eina_strbuf_insert_printf(buf, " %s: %d", 6, "length", eina_strbuf_length_get(buf));
+
+
+ * To get the complete length of the string and the buffer, use the ''eina_strbuf_string_get()'' and ''eina_strbuf_length_get()'' functions:
+
+
+printf("%s : %d\n", eina_strbuf_string_get(mybuffer), eina_strbuf_length_get(buf));
+
+
+__**3**__. When no longer needed, free the buffer with the ''eina_strbuf_free()'' function. You can also free the content of ''Eina_Strbuf'' without freeing the buffer itself using the ''eina_strbuf_string_free()'' function.
+
+
+eina_strbuf_free(mybuffer);
+
+-------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/eina_pg.txt b/public_html/data/pages/develop/legacy/program_guide/eina_pg.txt
new file mode 100644
index 00000000..6d71be59
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/eina_pg.txt
@@ -0,0 +1,70 @@
+~~Title: Eina Programming Guide~~
+{{page>index}}
+===== Eina Programming Guide =====
+
+Eina provides data types and useful tools.
+
+The Eina library implements an API for data types in an efficient way. It also
+provides some useful tools, such as opening shared libraries, error
+management, type conversion, time accounting, and memory pool.
+
+=== Table of Contents ===
+
+ * Data Types
+ * [[/develop/legacy/program_guide/eina/iterator_functions|Iterator Functions]]
+ * [[/develop/legacy/program_guide/eina/strings|Strings]]
+ * [[/develop/legacy/program_guide/eina/arrays|Arrays]]
+ * [[/develop/legacy/program_guide/eina/hash_tables|Hash Tables]]
+ * [[/develop/legacy/program_guide/eina/lists|Lists]]
+ * [[/develop/legacy/program_guide/eina/generic_value|Generic Value]]
+ * Eina Tools
+ * [[/develop/legacy/program_guide/eina/string_tools|String]]
+ * [[/develop/legacy/program_guide/eina/memory_pool_tools|Memory Pool]]
+ * [[/develop/legacy/program_guide/eina/safety_checks_tools|Safety Checks]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_main.html|Eina API]]
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/eina_examples.html|Eina Examples]]
+
+==== Data Types ====
+
+The Eina library is a central part of the EFL. It implements an API for
+data types, and allows you to create and manipulate several data types.
+
+ * [[/develop/legacy/program_guide/eina/arrays#Creating_and_Destroying_an_Inline_Array|Inline Array]]: standard array of inlined members
+ * [[/develop/legacy/program_guide/eina/arrays|Array]]: standard array of ''void*'' data
+ * [[/develop/legacy/program_guide/eina/hash_tables|Hash Table]]: standard hash of void* data
+ * [[/develop/legacy/program_guide/eina/lists#Using_an_Inline_List|Inline List]]: list with nodes inlined into the user type
+ * Compact List
+ * [[/develop/legacy/program_guide/eina/lists|List]]: standard list of ''void*'' data
+ * [[/develop/legacy/program_guide/eina/iterator_functions|Iterator Functions]]
+ * Sparse Matrix: sparse matrix of ''void*'' data
+ * Red-Black tree: red-black tree with nodes inlined into the user type
+ * [[/develop/legacy/program_guide/eina/strings#String_Buffer|String Buffer]]: mutable string to prepend, insert, or append strings to a buffer
+ * [[/develop/legacy/program_guide/eina/strings#Stringshare|Stringshare]]: shares read-only string references
+ * Tiler split: merges and navigates into 2D tiled regions
+ * Trash: container of unused but allocated data
+ * [[/develop/legacy/program_guide/eina/generic_value|Generic Value Storage]]: container for generic value storage and access
+ * Data Model API: container for data with a user-defined hierarchy or structure
+
+==== Eina Tools ====
+
+Eina provides a number of tools, such as string manipulation, that make
+your life easier when coding applications.
+
+ * Convert fast: conversion from, for example, strings to integers and double
+ * Counter: measures the number of calls and their time
+ * Error: error identifiers
+ * File: file list and path split
+ * Lazy allocator: lazy allocator
+ * Log: full-featured logging system
+ * Magic: provides runtime type checking
+ * [[/develop/legacy/program_guide/eina/memory_pool_tools|Memory Pool]]: abstraction for various memory allocators
+ * Module lists: loads and shares modules using the ''Eina_Module'' standard
+ * Rectangle: rectangle structure and standard manipulation methods
+ * [[/develop/legacy/program_guide/eina/safety_checks_tools|Safety Checks]]: extra checks that report unexpected conditions and can be disabled during compilation
+ * [[/develop/legacy/program_guide/eina/string_tools|String]]: set of functions that manage C strings
+
+----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/evas/clipping_objects.txt b/public_html/data/pages/develop/legacy/program_guide/evas/clipping_objects.txt
new file mode 100644
index 00000000..d9077363
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/evas/clipping_objects.txt
@@ -0,0 +1,48 @@
+~~Title: Clipping Objects~~
+{{page>index}}
+------
+===== Clipping Objects =====
+
+==== Limiting Visibility ====
+
+An Evas object can be clipped – in other words, its visible area is restricted
+with the clipper object.
+
+It is often necessary to show only parts of an object, and while it may be
+possible to create an object that corresponds only to the part that must be
+shown (which is not always possible), it is usually easier to use a clipper. A
+clipper is a rectangle that defines what is visible and what is not. The way
+to do this is to create a solid white rectangle (by default, so you need not
+use ''evas_object_color_set()'') and give it a position and size of what is
+wanted visible. The following code exemplifies showing the center half of
+my_evas_object:
+
+
+Evas_Object *clipper = evas_object_rectangle_add(evas_canvas);
+evas_object_move(clipper, my_evas_object_x / 4, my_evas_object_y / 4);
+evas_object_resize(clipper, my_evas_object_width / 2, my_evas_object_height / 2);
+evas_object_clip_set(my_evas_object, clipper);
+evas_object_show(clipper);
+
+
+==== Layer of Color ====
+
+A solid white clipper does not produce a change in the color of the clipped
+object, only hides what is outside the clipper's area. Changing the color of
+an object is accomplished by using a colored clipper. Clippers with color
+function by multiplying the colors of the clipped object. The following code
+shows how to remove all the red from an object.
+
+
+Evas_Object *clipper = evas_object_rectangle_add(evas);
+evas_object_move(clipper, my_evas_object_x, my_evas_object_y);
+evas_object_resize(clipper, my_evas_object_width, my_evas_object_height);
+evas_object_color_set(clipper, 0, 255, 255, 255);
+evas_object_clip_set(obj, clipper);
+evas_object_show(clipper);
+
+
+\\
+-----
+{{page>index}}
+
diff --git a/public_html/data/pages/develop/legacy/program_guide/evas/evas_engines_concept.txt b/public_html/data/pages/develop/legacy/program_guide/evas/evas_engines_concept.txt
new file mode 100644
index 00000000..e6862606
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/evas/evas_engines_concept.txt
@@ -0,0 +1,27 @@
+~~Title: Evas Engines Concept~~
+{{page>index}}
+-----
+===== Evas Engines Concept =====
+
+Evas delegates most of the actual rendering work to its engines. Engines are
+the backends that Evas uses to render (primitive) objects on a canvas. The
+canvas can be the screen, or a buffer in the memory.
+
+Evas can work with and provides multiple engines, such as (this list is
+non-exhaustive):
+
+ * buffer: all the rendering takes place in a buffer
+ * fb: the rendering takes place in the system's framebuffer
+ * software_x11: this is the most used, using X11
+ * gl_x11: this also renders to an X11 window, except that it uses OpenGL
+
+These implement the rendering of all the basic objects by themselves, because
+they often can be accelerated by the hardware or backend software libraries to
+provide fast rendering.
+
+If a particular engine does not have the provision for a certain primitive
+object, it reverts back to using a default software version.
+
+\\
+-----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/evas/evas_object.txt b/public_html/data/pages/develop/legacy/program_guide/evas/evas_object.txt
new file mode 100644
index 00000000..396d0b93
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/evas/evas_object.txt
@@ -0,0 +1,299 @@
+~~Title: Evas Object~~
+{{page>index}}
+-----
+===== Evas Object =====
+
+An Evas object is the most basic visual entity used in Evas. Everything, be it
+a single line or a complex list of widgets, is an Evas object.
+
+ * [[#Primitive_Renderable_Objects|Primitive Renderable Objects]]
+ * [[#Rectangle|Rectangle]] ([[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Object__Rectangle.html|API]]).
+ * [[#Text|Text]] ([[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Object__Text.html| API]]).
+ * [[/develop/legacy/program_guide/evas/textblock_objects|Textblock]] ([[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Object__Textblock.html|API]])
+ * [[/develop/legacy/program_guide/evas/image_objects|Image]] ([[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Object__Image.html|API]])
+ * [[#Primitive_Smart_Objects|Primitive Smart Objects]] ([[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Smart__Object__Group.html|API]])
+ * [[#Primitive_Container_Objects|Primitive Container Objects]]
+ * [[#Table|Table]] ([[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Object__Table.html|API]])
+ * [[#Grid|Grid]] ([[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Object__Grid.html|API]])
+ * [[#Box|Box]] ([[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Object__Box.html|API]])
+
+==== Primitive Renderable Objects ====
+
+Primitive objects are the base upon which to build a complex interface:
+rectangles, lines, polygons, [[/develop/legacy/program_guide/evas/image_objects|images]],
+[[/develop/legacy/program_guide/evas/textblock_objects|textblocks]] and texts.
+
+=== Rectangle ===
+
+There is only one function to deal with rectangle objects (see
+[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Object__Rectangle.html|Rectangle
+Object Functions API]]). However, the rectangle is manipulated using the
+generic evas object functions.
+
+The evas rectangle serves a number of key functions when working on Evas
+programs.
+
+ * background
+ * debugging
+ * clipper
+
+== Background ==
+
+A common requirement of Evas programs is to have a solid color background,
+which can be accomplished with the following code.
+
+
+Evas_Object *bg = evas_object_rectangle_add(evas_canvas);
+
+//Here we set the rectangles red, green, blue and opacity levels
+evas_object_color_set(bg, 255, 255, 255, 255); // opaque white background
+evas_object_resize(bg, WIDTH, HEIGHT); // covers full canvas
+evas_object_show(bg);
+
+
+== Debugging ==
+
+When debugging visual issues with evas programs, the rectangle is a useful
+tool. The rectangle's simplicity means that it is easier to pinpoint issues
+with it than with more complex objects. A common technique to use when writing
+an evas program and not getting the desired visual result is to replace an
+object for a solid color rectangle and seeing how it interacts with the other
+elements. This often allows us to notice clipping, parenting or positioning
+issues. Once the issues are identified and corrected, the rectangle can be
+replaced for the original object, and in all likelihood any remaining issues
+are specific to that object's type.
+
+== Clipping ==
+
+[[/develop/legacy/program_guide/evas/clippling_objects|Clipping]] serves two main functions:
+
+ * limiting visibility
+ * applying a layer of color to an object
+
+=== Text ===
+
+An Evas text object shows a basic single-line single-style text (see
+[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Object__Text.html|
+Text Object Functions API]]).
+
+
+Evas_Object *text = evas_object_text_add(evas_canvas);
+evas_object_text_text_set(text, "some text");
+evas_object_color_set(text, 127, 0, 0, 127);
+evas_object_show(text);
+
+
+To set the text, use ''evas_object_text_text_set(text, some_text)''. You can
+set the current text with ''evas_object_text_text_get(text)''.
+
+To set the font, use ''evas_object_text_font_set(text, font, size)'':
+
+ * ''text'': The text object
+ * ''font'': The font name you want to use
+ * ''size'': The font size you want to use. To query the current font, use ''evas_object_text_font_set(text, font, size)''.
+
+To set the text style, use ''evas_object_text_style_set(text, style)''. The
+following styles are supported:
+
+ * ''EVAS_TEXT_STYLE_PLAIN'': Plain, standard text
+ * ''EVAS_TEXT_STYLE_SHADOW'': Text with shadow underneath
+ * ''EVAS_TEXT_STYLE_OUTLINE'': Text with an outline
+ * ''EVAS_TEXT_STYLE_SOFT_OUTLINE'': Text with a soft outline
+ * ''EVAS_TEXT_STYLE_GLOW'': Text with a glow effect
+ * ''EVAS_TEXT_STYLE_OUTLINE_SHADOW'': Text with both outline and shadow effects
+ * ''EVAS_TEXT_STYLE_FAR_SHADOW'': Text with (far) shadow underneath
+ * ''EVAS_TEXT_STYLE_OUTLINE_SOFT_SHADOW'': Text with outline and soft shadow effects combined
+ * ''EVAS_TEXT_STYLE_SOFT_SHADOW'': Text with (soft) shadow underneath
+ * ''EVAS_TEXT_STYLE_FAR_SOFT_SHADOW'': Text with (far soft) shadow underneath
+ * ''EVAS_TEXT_STYLE_SHADOW_DIRECTION_BOTTOM_RIGHT'': Shadow growing to bottom right
+ * ''EVAS_TEXT_STYLE_SHADOW_DIRECTION_BOTTOM'': Shadow growing to the bottom
+ * ''EVAS_TEXT_STYLE_SHADOW_DIRECTION_BOTTOM_LEFT'': Shadow growing to bottom left
+ * ''EVAS_TEXT_STYLE_SHADOW_DIRECTION_LEFT'': Shadow growing to the left
+ * ''EVAS_TEXT_STYLE_SHADOW_DIRECTION_TOP_LEFT'': Shadow growing to top left
+ * ''EVAS_TEXT_STYLE_SHADOW_DIRECTION_TOP'': Shadow growing to the top
+ * ''EVAS_TEXT_STYLE_SHADOW_DIRECTION_TOP_RIGHT'': Shadow growing to top right
+ * ''EVAS_TEXT_STYLE_SHADOW_DIRECTION_RIGHT'': Shadow growing to the right. To query the current style, use ''evas_object_text_style_get(text)''.
+
+
+If the text does not fit, make an ellipsis on it by using
+''evas_object_text_ellipsis_set(text, ellipsis)''. The (float) value
+specifies, which part of the text is shown.
+
+ * ''0.0'': The beginning is shown and the end trimmed.
+ * ''1.0'': The beginning is trimmed and the end shown.
+ * Any value in between means that both ends of the text have ellipsis and the set part is shown.
+ * ''-1.0'': Ellipsis is disabled. To query the current ellipsis value, use ''evas_object_text_ellipsis_get(text)''.
+
+When the text style is set to glow, set the glow color using
+''evas_object_text_glow_color_set(text, r, g, b, a)'', where ''r'', ''g'',
+''b'', and ''a'' are respectively the red, green, blue, and alpha values. The
+effect is placed at a short distance from the text but not touching it. For
+glows set right at the text, use ''evas_object_text_glow2_color_set(text, r,
+g, b, a)''. To query the current color, use
+''evas_object_text_glow_color_get(text, r, g, b, a)'', respectively
+''evas_object_text_glow2_color_get(text, r, g, b, a)''.
+
+If your text style is set to display a shadow, use
+''evas_object_text_shadow_color_set(text, r, g, b, a)'', where ''r'', ''g'',
+''b'', and ''a'' are respectively the red, green, blue, and alpha values. To
+query the current color, use ''evas_object_text_shadow_color_get(text, r, g,
+b, a)''
+
+If your text style is set to display an outline, use
+''evas_object_text_outline_color_set(text, r, g, b, a)'', where ''r'', ''g'',
+''b'', and ''a'' are respectively the red, green, blue, and alpha values. To
+query the current color, use ''evas_object_text_outline_color_get(text, r, g,
+b, a)''
+
+=== Textblock ===
+
+See [[/develop/legacy/program_guide/evas/textblock_objects|Textblock]] section.
+
+=== Image ===
+
+See [[/develop/legacy/program_guide/evas/image_objects|Image]] section.
+
+==== Primitive Smart Objects ====
+
+A smart object is a special Evas object that provides custom functions to
+handle automatically clipping, hiding, moving, resizing color setting and more
+on child elements, for the smart object's user. They could be, for example, a
+group of objects that move together, or implementations of whole complex UI
+widgets, providing some intelligence and extension to simple Evas objects.
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Smart__Object__Group.html|Smart Object Functions API]]
+
+=== Primitive Container Objects ===
+
+A container is a Smart object that holds children Evas objects in a specific
+fashion.
+
+== Table ==
+
+A table is a smart object that packs children using a tabular layout (see
+[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Object__Table.html|Table
+Smart Object API]]).
+
+
+table = evas_object_table_add(evas);
+evas_object_table_homogeneous_set(table, EVAS_OBJECT_TABLE_HOMOGENEOUS_NONE);
+evas_object_table_padding_set(table, 0, 0);
+evas_object_resize(table, WIDTH, HEIGHT);
+evas_object_show(table);
+
+rect = evas_object_rectangle_add(evas);
+evas_object_color_set(rect, 255, 0, 0, 255);
+evas_object_size_hint_min_set(rect, 100, 50);
+evas_object_show(rect);
+evas_object_table_pack(table, rect, 1, 1, 2, 1);
+
+rect = evas_object_rectangle_add(d.evas);
+evas_object_color_set(rect, 0, 255, 0, 255);
+evas_object_size_hint_min_set(rect, 50, 100);
+evas_object_show(rect);
+evas_object_table_pack(table, rect, 1, 2, 1, 2);
+
+rect = evas_object_rectangle_add(d.evas);
+evas_object_color_set(rect, 0, 0, 255, 255);
+evas_object_size_hint_min_set(rect, 50, 50);
+evas_object_show(rect);
+evas_object_table_pack(table, rect, 2, 2, 1, 1);
+
+rect = evas_object_rectangle_add(d.evas);
+evas_object_color_set(rect, 255, 255, 0, 255);
+evas_object_size_hint_min_set(rect, 50, 50);
+evas_object_show(rect);
+evas_object_table_pack(table, rect, 2, 3, 1, 1);
+
+
+In this example, we add a non-homogeneous table to the canvas with its padding
+set to 0.
+
+We then add four different colored rectangles with different properties.
+
+ * the first one, at the first column and first line, spans two columns and one line
+ * the second one, at the first column and second line, spans one columns and two lines
+ * the third one, at the second column and second line, fits in one cell
+ * the fourth one, at the second column and third line, also fits in one cell
+
+
+To create a table, use ''evas_object_table_add(evas)''.
+
+To set the table layout (the cells), use
+''evas_object_table_homogeneous_set(table, homogeneous)''. The following
+values can be homogeneous:
+
+ * ''EVAS_OBJECT_TABLE_HOMOGENEOUS_NONE'': This default value has columns and rows calculated based on hints of individual cells. This is flexible, but much heavier on computations.
+ * ''EVAS_OBJECT_TABLE_HOMOGENEOUS_TABLE'': The table size is divided equally among children, filling the whole table area. If the children have a minimum size that is larger than this (including padding), then the table overflows and is aligned respecting the alignment hint, possibly overlapping sibling cells.
+ * ''EVAS_OBJECT_TABLE_HOMOGENEOUS_ITEM'': The greatest minimum cell size is used: if no element is set to expand, the contents of the table are the minimum size and the bounding box of all the children is aligned relatively to the table object using ''evas_object_table_align_get()''. If the table area is too small to hold this minimum bounding box, then the objects keep their size and the bounding box overflows the box area, still respecting the alignment. To set the current mode, use ''evas_object_table_homogeneous_get(table)''.
+
+
+The table's content alignment is set using
+''evas_object_table_align_set(table, horizontal, vertical)'', where
+''horizontal'' and ''vertical'' are floating values. To see them, use
+''evas_object_table_align_get(table, horizontal, vertical)''.
+
+To set the padding, use ''evas_object_table_padding_set(table, horizontal,
+vertical)''. To see the current value, use
+''evas_object_table_padding_get(table, horizontal, vertical)''.
+
+To see the current column and row count, use
+''evas_object_table_col_row_size_get(table, columns, rows)''.
+
+== Grid ==
+
+A grid is a smart object that packs its children as with a regular grid layout
+(see
+[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Object__Grid.html|Grid
+Smart Object API]])
+
+Grids are added to the canvas with ''evas_object_grid_add(evas)''.
+
+To change a grid's virtual resolution, use ''evas_object_grid_size_set(grid,
+width, height)'', to see it, use ''evas_object_grid_size_get(grid, width,
+height)''.
+
+To add an object, use ''evas_object_grid_pack(grid, child, x, y, w, h)'',
+where
+
+ * ''x'' is the virtual X coordinate of the child
+ * ''y'' is the virtual y coordinate of the child
+ * ''w'' is the virtual width of the child
+ * ''h'' is the virtual height of the child
+
+== Box ==
+
+A box is a simple container that sets its children objects linearly (see
+[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Object__Box.html|Box
+Smart Object API]]).
+
+To add a box to your canvas, use ''evas_object_box_add(evas)''.
+
+To add a child to the box, use
+
+ * ''evas_object_box_append(box, child)'': The child is appended.
+ * ''evas_object_box_insert_after(box, child, reference)'': The child is added after ''reference''.
+ * ''evas_object_box_insert_before(box, child, reference)'': The child is added before ''reference''.
+ * ''evas_object_box_insert_at(box, child, pos)'': The child is added at the specified position.
+
+To set the alignment, use ''evas_object_box_align_set(box, horizontal,
+vertical)''.
+
+ * ''horizontal'': 0.0 means aligned to the left, 1.0 means to the right;
+ * ''vertical'': 0.0 means aligned to the top, 1.0 means to the bottom.
+
+Evas has predefined box layouts available:
+
+ * ''evas_object_box_layout_horizontal()'';
+ * ''evas_object_box_layout_vertical()'';
+ * ''evas_object_box_layout_homogeneous_horizontal()'';
+ * ''evas_object_box_layout_homogeneous_vertical()'';
+ * ''evas_object_box_layout_homogeneous_max_size_horizontal()'';
+ * ''evas_object_box_layout_homogeneous_max_size_vertical()'';
+ * ''evas_object_box_layout_flow_horizontal()'';
+ * ''evas_object_box_layout_flow_vertical()'';
+ * ''evas_object_box_layout_stack()''.
+
+\\
+-----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/evas/image_objects.txt b/public_html/data/pages/develop/legacy/program_guide/evas/image_objects.txt
new file mode 100644
index 00000000..414df9fa
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/evas/image_objects.txt
@@ -0,0 +1,407 @@
+~~Title: Image Objects~~
+{{page>index}}
+-----
+===== Image Objects =====
+
+Using Evas, you can create and manipulate image objects. Evas supports image
+loaders of various formats as plug-in modules.
+
+The image formats that Evas supports include ''bmp'', ''edj'', ''gif'',
+''ico'', ''jpeg'', ''pmaps'', ''png'', ''psd'', ''svg'', ''tga'', ''tiff'',
+''wbmp'', ''webp'', and ''xpm''.
+
+{{ :evas_image_loader.png }}
+
+=== Table of Contents ===
+
+ * [[#Evas_Object_Image_Functions|Evas Object Image Functions]]
+ * [[#Creating_an_Image_Object_and_Setting_the_Image_Data_Source|Creating an Image Object and Setting the Image Data Source]]
+ * [[#Image_Scaling|Image Scaling]]
+ * [[#Setting_Raw_Data_to_Image_Object|Setting Raw Data to Image Object]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Object__Image.html|Image Object Functions API]]
+
+==== Evas Object Image Functions ====
+
+Evas has over 70 image object functions. The following functions are discussed
+in this document:
+
+
+Evas_Object *evas_object_image_add(Evas *e);
+void evas_object_image_file_set(Evas_Object *obj, const char *file, const char *key);
+void evas_object_image_fill_set(Evas_Object *obj, int x, int y, int w, int h);
+void evas_object_image_filled_set(Evas *e, Eina_Bool setting);
+Evas_Object *evas_object_image_filled_add(Evas *e);
+void evas_object_image_smooth_scale_set(Evas_Object *obj, Eina_Bool smoothscale);
+void evas_object_image_load_size_set(Evas_Object *obj, int w, int h);
+void evas_object_image_data_set(Evas_Object *obj, void *data);
+void *evas_object_image_data_get(const Evas_Object *obj, Eina_Bool for_writing);
+void evas_object_image_size_set(Evas_Object *obj, int w, int h);
+void evas_object_image_data_update_add(Evas_Object *obj, int x, int y, int w, int h);
+Eina_Bool evas_object_image_save(const Evas_Object *obj, const char *file, const char *key, const char *flags);
+
+
+==== Creating an Image Object and Setting the Image Data Source ====
+
+A common use case of an image object is to set a file as the image data
+source. The process has 3 steps and each one involves the following API calls:
+
+
+ * The ''evas_object_image_add()'' function creates an image object and returns the pointer.
+
+Evas_Object *evas_object_image_add(Evas *e);
+
+ * The ''evas_object_image_file_set()'' function sets a source file on the image object. The object fetches the image pixel data from the source file.
+
+void evas_object_image_file_set(Evas_Object *obj, const char *file, const char *key);
+
+ * The ''evas_object_image_fill_set()'' sets how to fill the image object's area with the given pixel data.
+
+void evas_object_image_fill_set(Evas_Object *obj, int x, int y, int w, int h);
+
+
+In the following code example, the ''main()'' function creates an image object
+and displays it on a window. The image object size is 300x300 and the source
+image resolution is 100x127. The image is scaled into 300 by 300 to fill the
+image object area using the ''evas_object_image_fill_set()'' function.
+
+
+#include
+
+int main(int argc, char **argv)
+{
+ elm_init(argc, argv);
+
+ // Create a window object
+ Evas_Object *win = elm_win_add(NULL, "main", ELM_WIN_BASIC);
+ evas_object_resize(win, 400, 400);
+ evas_object_show(win);
+
+ // Return Evas handle from window
+ Evas *e = evas_object_evas_get(win);
+
+ // Create an image object
+ Evas_Object *img = evas_object_image_add(e);
+
+ // Set a source file to fetch pixel data
+ evas_object_image_file_set(img, "./logo.png", NULL);
+
+ // Set the size and position of the image on the image object area
+ evas_object_image_fill_set(img, 0, 0, 300, 300);
+
+ evas_object_move(img, 50, 50);
+ evas_object_resize(img, 300, 300);
+ evas_object_show(img);
+
+ elm_run();
+ elm_shutdown();
+
+ return 0;
+}
+
+
+{{ :evas_object_display.png }}
+
+==== Image Scaling ====
+
+Users can decide how to fill the image object area with the given image pixel
+data by setting the position, width, and height of the image using the
+''evas_object_image_fill_set()'' function. Without setting this information,
+the image is not displayed. If the size of the image is bigger than the image
+object area, only a sub-region of the original image is displayed. If the
+image is smaller than the area, images are tiled repeatedly to fill the object
+area.
+
+{{ :evas_image_scaling.png }}
+
+{{ :evas_scaling.png }}
+
+the ''evas_object_image_filled_set()'' function scales the image to fit the
+object area. Resizing the image object automatically triggers an internal call
+to the ''evas_object_image_fill_set()'' function.
+
+
+void evas_object_image_filled_set(Evas * e,
+ Eina_Bool setting
+ )
+
+
+The ''evas_object_image_filled_add()'' function creates a new image object
+that automatically scales its bound image to the object area. This is a helper
+function around the ''evas_object_image_add()'' and
+''evas_object_image_filled_set()'' functions.
+
+Scaled images' quality can differ according to scaling algorithms. Smooth
+scaling improves the image quality in the process of size reducing or
+enlarging. Evas runs its own smooth scaling algorithm by default and provides
+an API so users can disable the function.
+
+
+Evas_Object *evas_object_image_filled_add(Evas *e);
+
+
+
+void evas_object_image_smooth_scale_set(Evas_Object * obj,
+ Eina_Bool smoothscale
+ )
+
+
+The algorithm is implemented using the SIMD (Single Instruction Multiple Data)
+vectorization in case of software rendering. It is optimized on Intel and ARM
+CPU through MMX and NEON command respectively.
+
+There is a trade-off between image smoothness and rendering performance. The
+load gets bigger as the image gets bigger. Users can avoid such scaling
+overload by using the same size of the image object and the source image.
+
+In the following code, 2 image objects are created to show the effects of
+smooth scaling. The one with smooth scaling applied appears softer on the
+screen.
+
+
+
+#include
+
+int main(int argc, char **argv)
+{
+ elm_init(argc, argv);
+
+ // Create a window object
+ Evas_Object *win = elm_win_add(NULL, "main", ELM_WIN_BASIC);
+ evas_object_resize(win, 400, 200);
+ evas_object_show(win);
+
+ // Return Evas handle from window
+ Evas *e = evas_object_evas_get(win);
+
+ // Create an image object
+ Evas_Object *img = evas_object_image_filled_add(e);
+ evas_object_image_file_set(img, "./logo.png", NULL);
+ evas_object_move(img, 0, 0);
+ evas_object_resize(img, 200, 200);
+ evas_object_show(img);
+
+ // Create another image object
+ Evas_Object *img2 = evas_object_image_filled_add(e);
+ evas_object_image_file_set(img2, "./logo.png", NULL);
+
+ // Disable smooth scaling
+ evas_object_image_smooth_scale_set(img2, EINA_FALSE);
+ evas_object_move(img2, 200, 0);
+ evas_object_resize(img2, 200, 200);
+ evas_object_show(img2);
+
+ elm_run();
+
+ elm_shutdown();
+
+ return 0;
+}
+
+
+Smooth scaling disabled:
+
+{{ :evas_smooth_disabled.png }}
+
+Smooth scaling enabled:
+
+{{ :evas_smooth_enabled.png }}
+
+Evas caches scaled image data and reuses them. Users can save the memory by
+loading the image in the scaled size to the memory at the beginning. This
+option is available only for ''jpeg'' format at the moment.
+
+
+void evas_object_image_load_size_set(Evas_Object * obj,
+ int w,
+ int h
+ )
+
+
+An example code is as follows.
+
+
+
+#include
+
+int main(int argc, char **argv)
+{
+ elm_init(argc, argv);
+
+ // Create a window object
+ Evas_Object *win = elm_win_add(NULL, "main", ELM_WIN_BASIC);
+ evas_object_resize(win, 400, 200);
+ evas_object_show(win);
+
+ // Return Evas handle from window
+ Evas *e = evas_object_evas_get(win);
+
+ // Create an image object
+ Evas_Object *img = evas_object_image_filled_add(e);
+
+ // Load the image scaled into the object size
+ // before evas_object_image_file_set() is called
+ evas_object_image_load_size_set(img, 300, 300);
+
+ evas_object_image_file_set(img, "./logo.png", NULL);
+
+ evas_object_move(img, 50, 50);
+ evas_object_resize(img, 300, 300);
+ evas_object_show(img);
+
+ elm_run();
+
+ elm_shutdown();
+
+ return 0;
+}
+
+
+==== Setting Raw Data to Image Object ====
+
+Users can set raw data to the image object manually using the
+''evas_object_image_data_set()'' function instead of setting an image file as
+the data source. The image data should be in raw data form. In case of an
+200x200 sized image with alpha channel enabled (32 bits per pixel), the size
+of the image data is 160000 (=200*200*4) bytes.
+
+
+void evas_object_image_data_set(Evas_Object * obj,
+ void * data
+ )
+
+
+Image objects fetch metadata such as width or height from the header of the
+image files. Since the raw data does not have the metadata, users must set the
+size of the image using the ''evas_object_image_size_set()'' function.
+
+
+void evas_object_image_size_set(Evas_Object * obj,
+ int w,
+ int h
+ )
+
+
+The ''evas_object_image_data_get()'' function returns the data pointer of an
+image object and requires a parameter to determine whether the data is
+modified or not. If users pass ''EINA_TRUE'' for ''for_writing'', Evas updates
+the image pixels in the next rendering cycle.
+
+
+void* evas_object_image_data_get(const Evas_Object * obj,
+ Eina_Bool for_writing
+ )
+
+
+The ''evas_object_image_data_update_add()'' helps to mark the updated area for
+rendering efficiency.
+
+
+void evas_object_image_data_update_add(Evas_Object * obj,
+ int x,
+ int y,
+ int w,
+ int h
+ )
+
+
+The following example code and figure show how to specify the area to update.
+
+
+evas_object_image_data_update_add(image, 100, 100, 50, 50);
+evas_object_image_data_update_add(image, 180, 100, 50, 50);
+evas_object_image_data_update_add(image, 85, 200, 160, 80);
+
+
+{{ :evas_partial_update.png }}
+
+The following code creates an image object and sets a source file on it. Then
+it implements the blur effect to the pixel data and saves them using the
+''evas_object_image_save()'' function.
+
+
+Eina_Bool evas_object_image_save(const Evas_Object * obj,
+ const char * file,
+ const char * key,
+ const char * flags
+ )
+
+
+
+#include
+
+void image_blur(Evas_Object *img)
+{
+ unsigned char *img_src = evas_object_image_data_get(img, EINA_TRUE);
+
+ int w, h;
+ evas_object_image_size_get(img, &w, &h);
+ int blur_size = 4;
+ int x, y, xx, yy;
+
+ for (y = 0; y < h; y++)
+ {
+ for (x = 0; x < w; x++)
+ {
+ int avg_color[3] = {0, 0, 0};
+ int blur_pixel_cnt = 0;
+
+ for (xx = x; (xx < x + blur_size) && (xx < w); xx++)
+ {
+ for (yy = y; (yy < y + blur_size) && (yy < h); yy++)
+ {
+ int idx = (yy * w * 4) + (xx * 4);
+ avg_color[0] += img_src[idx + 0];
+ avg_color[1] += img_src[idx + 1];
+ avg_color[2] += img_src[idx + 2];
+ ++blur_pixel_cnt;
+ }
+ }
+ avg_color[0] /= blur_pixel_cnt;
+ avg_color[1] /= blur_pixel_cnt;
+ avg_color[2] /= blur_pixel_cnt;
+
+ int idx = (y * w * 4) + (x * 4);
+ img_src[idx + 0] = avg_color[0];
+ img_src[idx + 1] = avg_color[1];
+ img_src[idx + 2] = avg_color[2];
+ }
+ }
+ evas_object_image_data_update_add(img, 0, 0, w, h);
+}
+
+int main(int argc, char **argv)
+{
+ elm_init(argc, argv);
+
+ Evas_Object *win = elm_win_add(NULL, "main", ELM_WIN_BASIC);
+ evas_object_resize(win, 200, 200);
+ evas_object_show(win);
+
+ Evas *e = evas_object_evas_get(win);
+
+ Evas_Object *img = evas_object_image_filled_add(e);
+ evas_object_image_file_set(img, "./logo.png", NULL);
+ evas_object_resize(img, 200, 200);
+ evas_object_show(img);
+
+ image_blur(img);
+
+ evas_object_image_save(img, "logo2.png", NULL, "quality=100 compress=8");
+
+ elm_run();
+ elm_shutdown();
+
+ return 0;
+}
+
+
+Before: {{ :evas_blur1.png }}
+
+After: {{ :evas_blur2.png }}
+
+\\
+-----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/evas/index.txt b/public_html/data/pages/develop/legacy/program_guide/evas/index.txt
new file mode 100644
index 00000000..7ac0de21
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/evas/index.txt
@@ -0,0 +1,7 @@
+++++Evas Menu|
+^ [[/develop/legacy/program_guide/evas_pg|Evas Programming Guide]] ([[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/evas_main.html|Evas API]]) ^^^
+| [[/develop/legacy/program_guide/evas/rendering_concept_and_method_in_evas|Rendering Concept and Method in Evas]] | [[/develop/legacy/program_guide/evas/evas_object|Evas Object]] | [[/develop/legacy/program_guide/evas/clipping_objects|Clipping Objects]] |
+| [[/develop/legacy/program_guide/evas/mapping_objects|Mapping Objects]] | [[/develop/legacy/program_guide/evas/evas_engines_concept|Evas Engines Concept]] | [[/develop/legacy/program_guide/evas/ui_rendering_mode|UI Rendering Mode]] |
+++++
+
+
diff --git a/public_html/data/pages/develop/legacy/program_guide/evas/mapping_objects.txt b/public_html/data/pages/develop/legacy/program_guide/evas/mapping_objects.txt
new file mode 100644
index 00000000..17b04721
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/evas/mapping_objects.txt
@@ -0,0 +1,180 @@
+~~Title: Mapping Objects~~
+{{page>index}}
+-----
+===== Mapping Objects =====
+
+Evas allows different transformations to be applied to all kinds of objects.
+These are applied by means of UV mapping. With UV mapping, one map points in
+the source object to a 3D space positioning at target. This allows rotation,
+perspective, scale, and many other effects depending on the map that is used.
+
+=== Table of Contents ===
+
+ * [[#Creating_a_Map_|Creating a Map ]]
+ * [[#Manual_Point_Setting|Manual Point Setting]]
+ * [[#Applying_a_Map_|Applying a Map ]]
+ * [[#Basic_Utility_Functions_|Basic Utility Functions ]]
+ * [[#3D_Utility_Functions_|3D Utility Functions ]]
+ * [[#Color_and_Lighting_|Color and Lighting ]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Object__Group__Map.html|UV Mapping (Rotation, Perspective, 3D...) API]]
+
+==== Creating a Map ====
+
+A map consists of a set of points, but currently only four are supported. Each
+of these points contains a set of canvas coordinates x and y that are used to
+alter the geometry of the mapped object, and a z coordinate that indicates the
+depth of that point. This last coordinate does not normally affect the map,
+but is used by several of the utility functions to calculate the right
+position of the point given other parameters.
+
+The coordinates for each point are set with ''evas_map_point_coord_set(map,
+index, x, y, z)''. In the example below, there is a rectangle whose
+coordinates are (100, 100) and (300, 300).
+
+
+Evas_Object *object = evas_object_rectangle_add(evas);
+evas_object_move(object, 100, 100);
+evas_object_resize(object, 200, 200);
+Evas_Map map = evas_map_new(4);
+evas_map_point_coord_set(map, 0, 100, 100, 0);
+evas_map_point_coord_set(map, 1, 300, 100, 0);
+evas_map_point_coord_set(map, 2, 300, 300, 0);
+evas_map_point_coord_set(map, 3, 100, 300, 0);
+
+
+There are functions to ease the process.
+
+Use ''evas_map_util_points_populate_from_geometry(map, x, y, w, h, z)'', where
+the map coordinates are set to the given rectangle, and ''z'' is the
+coordinate in the Z axis, which is the same for all points.
+
+
+Evas_Object *object = evas_object_rectangle_add(evas);
+evas_object_move(object, 100, 100);
+evas_object_resize(object, 200, 200);
+Evas_Map map = evas_map_new(4);
+evas_map_util_points_populate_from_geometry(map, 100, 100, 200, 200, 0);
+
+
+You can also use ''evas_map_util_points_populate_from_object(map, object)''.
+
+
+Evas_Object *object = evas_object_rectangle_add(evas);
+evas_object_move(object, 100, 100);
+evas_object_resize(object, 200, 200);
+Evas_Map map = evas_map_new(4);
+evas_map_util_points_populate_from_object(map, object);
+
+
+You can also use ''evas_map_util_points_populate_from_object_full(map, object,
+z)'', where ''z'' is the coordinate in the Z axis, which is the same for all
+points.
+
+
+Evas_Object *object = evas_object_rectangle_add(evas);
+evas_object_move(object, 100, 100);
+evas_object_resize(object, 200, 200);
+Evas_Map map = evas_map_new(4);
+evas_map_util_points_populate_from_object_full(map, object, 0);
+
+
+==== Manual Point Setting ====
+
+Several effects are applied to an object by setting each point of the map to
+the right coordinates. For example, a simulated perspective is achieved as
+follows.
+
+
+evas_map_point_coord_set(map, 0, 300, 100, 0);
+evas_map_point_coord_set(map, 1, 450, 120, 0);
+evas_map_point_coord_set(map, 2, 450, 260, 0);
+evas_map_point_coord_set(map, 3, 300, 300, 0);
+
+
+The Z coordinate is not used when setting points by hand; thus its value is
+not important.
+
+==== Applying a Map ====
+
+Regardless of the specific way you create a map, to apply it to a specific
+object, use
+
+
+evas_object_map_set(object, map);
+evas_object_map_enable_set(object, EINA_TRUE);
+
+
+==== Basic Utility Functions ====
+
+Evas provides utility functions for common transformations:
+
+ * ''evas_map_util_rotate(map, angle, cx, cy)'': This performs a rotation of the ''angle'' degrees around the center point with the coordinates (cx, cy).
+ * ''evas_map_util_zoom(map, zoomx, zoomy, cx, cy)'': This performs a ''zoomx'' and ''zoomy'' zoom in the X and Y directions respectively, with the center point with the coordinates (cx, cy).
+
+
+For example, the following code rotates an object around its center.
+
+
+int x, y, w, h;
+evas_object_geometry_get(object, &x, &y, &w, &h);
+Evas_Map *map = evas_map_new(4);
+evas_map_util_points_populate_from_object(map, object);
+evas_map_util_rotate(map, 45, x + (w / 2), y + (h / 2));
+evas_object_map_set(object, map);
+evas_object_map_enable_set(object, EINA_TRUE);
+evas_map_free(m);
+
+
+The following code rotates an object around the center of the window.
+
+
+int w, h;
+evas_output_size_get(evas, &w, &h);
+Evas_Map *map = evas_map_new(4);
+evas_map_util_points_populate_from_object(map, object);
+evas_map_util_rotate(map, 45, w / 2, h / 2);
+evas_object_map_set(object, map);
+evas_object_map_enable_set(object, EINA_TRUE);
+evas_map_free(m);
+
+
+==== 3D Utility Functions ====
+
+Evas provides utility functions for 3D transformations.
+
+To make a 3D rotation, use ''evas_map_util_3d_rotate(map, anglex, angley,
+anglez, cx, cy, cz)''. With this code, you can set the Z coordinate of the
+rotation center, and the angles to rotate through around all axes.
+
+Rotating in the 3D space does not look natural. A more natural look becomes by
+adding perspective to the transformation, which is done with
+''evas_map_util_3d_perspective(map, px, py, z0, focal)'' on the map after its
+position has been set.
+
+ * ''px'' and ''py'' specify the "infinite distance" point in the 3D conversion, where all lines converge to.
+ * ''z0'' specifies the Z value at which there is a 1:1 mapping between spatial coordinates and screen coordinates: any points on this Z value do not have their X and Y coordinates modified in the transform, while those further away (Z value higher) shrink into the distance, and those less than this value expand.
+ * ''focal'' determines the "focal length" of the camera: this is the distance in reality between the camera lens plane (the rendering results are undefined at or closer than this) and the ''z0'' value; this function allows for some "depth" control.
+
+
+==== Color and Lighting ====
+
+Each point in a map can be set to a color, which is multiplied with the
+object's own color and linearly interpolated in between adjacent points. To do
+this, use ''evas_map_point_color_set(map, index, r, g, b, a)'' for each point
+of the map, or ''evas_map_util_points_color_set(map, r, g, b, a)'' to set
+every point into the same color.
+
+To add lighting for the objects, which is useful with 3D transforms, use
+''evas_map_util_3d_lighting(map, lightx, lighty, lightz, lightr, lightg,
+lightb, ambientr, ambientg, ambientb)'':
+
+ * ''lightx'', ''lighty'' and ''lightz'' are the local light source coordinates;
+ * ''lightr'', ''lightg'' and ''lightb'' are the local light source colors;
+ * ''ambientr'', ''ambientg'' and ''ambientb'' are the ambient light colors. Evas sets the color of each point based on the distance to the light source, the angle with which the object is facing the light and the ambient light. The orientation of each point is important. If the map is defined counter-clockwise, the object faces away from the user and becomes obscured, since no light does not reflect from it.
+
+\\
+------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/evas/rendering_concept_and_method_in_evas.txt b/public_html/data/pages/develop/legacy/program_guide/evas/rendering_concept_and_method_in_evas.txt
new file mode 100644
index 00000000..935b320e
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/evas/rendering_concept_and_method_in_evas.txt
@@ -0,0 +1,116 @@
+~~Title: Rendering Concept and Method in Evas~~
+{{page>index}}
+-----
+===== Rendering Concept and Method in Evas =====
+
+Evas is a canvas display library. It is markedly different from most display
+and windowing systems as the canvas is structural and is also a state engine,
+whereas most display and windowing systems are immediate mode display targets.
+Evas handles the logic between a structural display via its state engine, and
+controls the target windowing system in order to produce rendered results of
+the current canvas' state on the display.
+
+Immediate mode display systems retain very little or no state. A program
+executes a series of commands, as in the following pseudo code.
+
+
+draw line from position (0, 0) to position (100, 200);
+
+draw rectangle from position (10, 30) to position (50, 500);
+
+bitmap_handle = create_bitmap();
+scale bitmap_handle to size 100 x 100;
+draw image bitmap_handle at position (10, 30);
+
+
+The series of commands is executed by the windowing system and the results are
+typically displayed on the screen. Once the commands are executed, the display
+system does not know how to reproduce this image again, and has to be
+instructed by the application on how to redraw sections of the screen if
+needed. Each successive command is executed as instructed by the application
+and either emulated by software or sent to the graphics hardware on the device
+to be performed.
+
+The advantage of such a system is that it is simple and gives a program tight
+control over how something looks and is drawn. Given the increasing complexity
+of displays and demands by users to have better looking interfaces, more work
+needs to be done at this level by the internals of widget sets, custom display
+widgets and other programs. This means that more logic and display rendering
+code needs to be written again each time the application needs to figure out
+how to minimize redraws so that display is fast and interactive, and keep
+track of redraw logic.
+
+For example, if in the scene below, the windowing system requires the
+application to redraw the area from 0, 0 to 50, 50 (also referred to as the
+"expose event"). Then the programmer calculates manually the updates and
+repaints it again.
+
+
+Redraw from position (0, 0) to position (50, 50):
+
+// What was in area (0, 0, 50, 50)?
+
+// 1. intersection part of line (0, 0) to (100, 200)?
+ draw line from position (0, 0) to position (25, 50);
+
+// 2. intersection part of rectangle (10, 30) to (50, 500)?
+ draw rectangle from position (10, 30) to position (50, 50)
+
+// 3. intersection part of image at (10, 30), size 100 x 100?
+ bitmap_subimage = subregion from position (0, 0) to position (40, 20)
+ draw image bitmap_subimage at position (10, 30);
+
+
+If all elements in the above scene are opaque, the system is doing useless
+paints: part of the line is behind the rectangle, and part of the rectangle is
+behind the image. These useless paints tend to be very costly.
+
+Evas is a structural system in which the programmer creates and manages
+display objects and their properties, and as a result of this higher level
+state management, the canvas is able to redraw the set of objects when needed
+to represent the current state of the canvas.
+
+For example, see the following pseudo code.
+
+
+line_handle = create_line();
+set line_handle from position (0, 0) to position (100, 200);
+show line_handle;
+
+rectangle_handle = create_rectangle();
+move rectangle_handle to position (10, 30);
+resize rectangle_handle to size 40 x 470;
+show rectangle_handle;
+
+bitmap_handle = create_bitmap();
+scale bitmap_handle to size 100 x 100;
+move bitmap_handle to position (10, 30);
+show bitmap_handle;
+
+render scene;
+
+
+This looks longer, but when the display needs to be refreshed or updated, the
+programmer only moves, resizes, shows, hides etc. the objects that need to
+change. The programmer thinks at the object logic level, and the canvas
+software does the rest of the work, figuring out what changed in the canvas
+since it was last drawn, how to most efficiently redraw the canvas and its
+contents to reflect the current state, and doing the actual drawing of the
+canvas.
+
+This allows the programmer think in a more natural way when dealing with a
+display, and saves time and effort of working out how to load and display
+images, to render given the current display system etc. Since Evas is portable
+across different display systems, this gives the programmer the ability to
+port and display the code on different display systems with little work.
+
+Evas is a display system somewhere between a widget set and an immediate mode
+display system. It retains basic display logic, but does little high-level
+logic such as scrollbars, sliders, push buttons etc.
+
+For more information on the UI rendering modes (immediate and retained), see
+[[/develop/legacy/program_guide/evas/ui_rendering_mode|UI Rendering Mode]].
+
+\\
+-----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/evas/textblock_objects.txt b/public_html/data/pages/develop/legacy/program_guide/evas/textblock_objects.txt
new file mode 100644
index 00000000..9c075413
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/evas/textblock_objects.txt
@@ -0,0 +1,64 @@
+~~Title: Textblock Objects~~
+{{page>index}}
+-----
+===== Textblock Objects =====
+
+Unlike basic text objects, a textblock handles complex text, managing multiple
+styles and multiline text based on HTML-like tags. However, these extra
+features are heavier on memory and processing cost.
+
+The textblock objects is an object that shows big chunks of text. Textblock
+supports many features, including text formatting, automatic and manual text
+alignment, embedding items (icons, for example). Textblock has three important
+parts: the text paragraphs, the format nodes and the cursors.
+
+To set markup to format text, use for example
+''
+void update()
+{
+ Image *img = load_image(NEW_IMG);
+
+ // Switch button image to new one
+ update_button_image(img);
+
+ // Issue the invalidate area (button area) to be redrawn on the screen
+ invalidate_area(button_x, button_y, button_w, button_h);
+
+ // Move rectangle from (200, 200) to (300, 300)
+ int rect_prev_x = rect_x;
+ int rect_prev_y = rect_y;
+ rectangle_x = 300;
+ rectangle_y = 300;
+ set_rect_position(rect_x, rect_y);
+
+ // Issue the invalidate area (changed area) to be redrawn on the screen
+ int diff_x = rect_x – rect_prev_x;
+ int diff_y = rect_y – rect_prev_y;
+ invalidate_area(rect_prev_x, rect_prev_y, (rect_w + diff_x), (rect_h + diff_y));
+
+
+ // After setting the invalidate area, request rendering to update the screen
+ render();
+
+ // Now you can see how the button image and rectangle position are changed
+}
+
+
+==== Retained Mode ====
+
+A graphics system adopting the retained mode is basically responsible for
+responding to all repaint requests for rendering the application objects.
+Clients do not directly cause actual rendering, but objects are redrawn when
+parts of them are updated.
+
+{{ :evas_retained_mode.png }}
+
+Since Evas works with the retained mode, there is no need to command any
+drawings. The following example shows how to write a GUI code with Evas for
+your application:
+
+
+
+void create_image()
+{
+ // Initialize an image object to be displayed on the screen
+ Evas_Object *img = evas_object_image_add(e);
+
+ // Set image resource
+ evas_object_image_file_set(img, IMG, NULL);
+
+ // Set image position
+ evas_object_move(img, 100, 100);
+
+ // Set image size
+ evas_object_resize(img, 200, 200);
+
+ // Set image visibility (show or hide)
+ evas_object_show(img);
+}
+
+void create_rectangle()
+{
+ // Initialize an rectangle object to be displayed on the screen
+ Evas_Object *rect = evas_object_rectangle_add(e);
+
+ // Set rectangle color
+ evas_object_color_set(rect, 255, 0, 0, 255);
+
+ // Set rectangle position
+ evas_object_move(rect, 200, 200);
+
+ // Set rectangle size
+ evas_object_resize(rect, 200, 200);
+
+ // Set rectangle visibility (show or hide)
+ evas_object_show(rect);
+}
+
+
+A few main loops later you can replace the image with another one and move the
+rectangle. You only need to set a new image file to the image object and move
+the rectangle object. Evas computes the invalidate area and redraws the image
+and rectangle behind the application when it's on rendering time.
+
+
+void update()
+{
+ // Set new image resource
+ elm_image_file_set(img, NEW_IMG, NULL);
+
+ // Set new rectangle position
+ evas_object_move(rect, 300, 300);
+}
+
+
+==== Evas Rendering ====
+
+EFL and/or Elementary applications work on the ecore main loop, and the loop
+goes on a few steps for every frame. Evas redraws some changes in the objects
+when the main loop goes to the idle enterer step. If there are no changes,
+Evas rendering is skipped. Otherwise, Evas calculates any changed portions of
+all display objects and redraws them.
+
+{{ :evas_rendering_main_loop.png }}
+
+To minimize the rendering, Evas tracks the states of all display objects, such
+as position, size, visibility, and color. Even if some of these states are
+changed but the object is hidden by other obscured objects, it is not redrawn.
+In other words, Evas draws only the necessary changes in the screen.
+
+The following figures illustrate how Evas redraws the changed area:
+
+ * In the first example, there is a blue-color background object (a sky-blue color rectangle) and a partially hidden cloud image object. Above them, there are a red and green rectangle, and the "Hello out there" text is printed on the green rectangle.
+{{ :evas_redrawing01.png }}
+ * In the second example, some of the objects have moved (the cloud image is moved to right and the green rectangle is moved downwards).
+{{ :evas_redrawing02.png }}
+ * As a result, the third example illustrates some regions that require updates.
+{{ :evas_redrawing03.png }}
+ * Evas decides which portions are invalid and to be redrawn. The fourth example shows the cleaned portion of the screen, which is the redrawn area.
+
+Evas redraws the content only in the redrawn portions.
+
+{{ :evas_redrawing04.png }}
+
+ * Finally, the fifth example shows how the screen is updated and the result is visible.
+{{ :evas_redrawing05.png }}
+
+If Evas worked in an immediate mode style, the application would need to
+calculate the changed areas themselves, adding extra work. With Evas, you can
+let Evas figure out the updates and you can yourself concentrate on the
+application and UI core and logic.
+
+\\
+-----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/evas_pg.txt b/public_html/data/pages/develop/legacy/program_guide/evas_pg.txt
new file mode 100644
index 00000000..5ee80e6f
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/evas_pg.txt
@@ -0,0 +1,68 @@
+~~Title: Evas Programming Guide~~
+{{page>index}}
+===== Evas Programming Guide =====
+
+Evas is a clean display canvas API for several target display systems that can
+draw anti-aliased text, smooth super and sub-sampled scaled images,
+alpha-blend objects and much more.
+
+It abstracts any need to know much about what the characteristics of your
+display system are, what graphics calls are used to draw them, and how. It
+deals on an object level where all you do is create and manipulate objects in
+a canvas and set their properties.
+
+Evas optimizes the rendering pipeline to minimize effort in redrawing changes
+made to the canvas and so takes this work out of the programmers hand, saving
+a lot of time and energy.
+
+It is designed to work on embedded systems all the way to large and powerful
+multi-cpu workstations. It can be compiled to only have the features you need
+for your target platform if you so wish. It has several display back-ends,
+allowing it display on several display systems, making it portable for
+cross-device and cross-platform development.
+
+Evas is not a widget set or a widget toolkit, but it is their base. See
+Elementary for a toolkit based on Evas, Edje, Ecore and other Enlightenment
+technologies.
+
+It is not dependent or aware of main loops, input or output systems. Input
+must be polled from various sources and fed to Evas. It does not create
+windows or report windows updates to your system, but draws the pixels and
+reports to the user the areas that are changed. These operations are ready to
+be used in Ecore, particularly in Ecore_Evas wrapper/helper set of functions.
+
+=== Table of Contents ===
+
+ * [[/develop/legacy/program_guide/evas/rendering_concept_and_method_in_evas|Rendering Concept and Method in Evas]]
+ * [[/develop/legacy/program_guide/evas/evas_object|Evas Object]]
+ * [[develop/legacy/program_guide/evas/evas_object#Primitive_Renderable_Objects|Primitive Renderable Objects]]
+ * [[develop/legacy/program_guide/evas/evas_object#Rectangle|Rectangle]] ([[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Object__Rectangle.html|API]]).
+ * [[develop/legacy/program_guide/evas/evas_object#Text|Text]] ([[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Object__Text.html| API]]).
+ * [[/develop/legacy/program_guide/evas/textblock_objects|Textblock]] ([[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Object__Textblock.html|API]])
+ * [[/develop/legacy/program_guide/evas/image_objects|Image]] ([[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Object__Image.html|API]])
+ * [[develop/legacy/program_guide/evas/evas_object#Primitive_Smart_Objects|Primitive Smart Objects]] ([[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Smart__Object__Group.html|API]])
+ * [[develop/legacy/program_guide/evas/evas_object#Primitive_Container_Objects|Primitive Container Objects]]
+ * [[develop/legacy/program_guide/evas/evas_object#Table|Table]] ([[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Object__Table.html|API]])
+ * [[develop/legacy/program_guide/evas/evas_object#Grid|Grid]] ([[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Object__Grid.html|API]])
+ * [[develop/legacy/program_guide/evas/evas_object#Box|Box]] ([[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Object__Box.html|API]])
+ * [[/develop/legacy/program_guide/evas/clipping_objects|Clipping Objects]]
+ * [[/develop/legacy/program_guide/evas/mapping_objects|Mapping Objects]]
+ * [[/develop/legacy/program_guide/evas/evas_engines_concept|Evas Engines Concept]]
+ * [[/develop/legacy/program_guide/evas/ui_rendering_mode|UI Rendering Mode]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/evas_main.html|Evas API]]
+ * [[/develop/legacy/program_guide/event_effect/evas_smart_events|Evas Smart Object Events PG]]
+ * [[/develop/legacy/program_guide/event_effect/evas_object_events|Evas Object Events PG]]
+ * [[/develop/legacy/program_guide/event_effect/evas_events|Evas Events PG]]
+ * [[/develop/legacy/program_guide/event_effect/evas_map_animations|Evas Map Effects PG]]
+
+\\
+^ Evas Examples ^^^^^^
+| [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/Example_Evas_Buffer_Simple.html|Simple Evas canvas]] | [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/Example_Evas_Init_Shutdown.html|Evas' init/shutdown routines]] | [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/Example_Evas_Text.html|Evas text object]] | [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/Example_Evas_Images.html|Some image object functions]] | [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/Example_Evas_Images_2.html|Some more image object functions]] | [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/Example_Evas_Events.html|Evas events (canvas and object ones) and some canvas operations]] |
+| [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/Example_Evas_Object_Manipulation.html|Evas objects basic manipulation]] | [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/Example_Evas_Aspect_Hints.html|Evas aspect hints example]] | [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/Example_Evas_Size_Hints.html|Evas alignment, minimum size, maximum size, padding and weight hints]] | [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/Example_Evas_Stacking.html|Evas object stacking functions (and some event handling)]] | [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/Example_Evas_Smart_Objects.html|Evas object smart objects]] | [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/Example_Evas_Box.html|Evas box]] |
+
+\\
+----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/evasgl_pg.txt b/public_html/data/pages/develop/legacy/program_guide/evasgl_pg.txt
new file mode 100644
index 00000000..5062e8d5
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/evasgl_pg.txt
@@ -0,0 +1,426 @@
+{{page>index}}
+===== Evas GL Programming Guide =====
+
+This guide assumes that the application uses EvasGL directly instead of using
+the GLView. (If the application uses a GLView, EvasGL is created internally.)
+
+=== Table of Contents ===
+
+ * [[#What_is_OpenGL_?|WhatisOpenGL?]]
+ * [[#The_graphics_pipeline|Thegraphicspipeline]]
+ * [[#The_vertex_and_element_array|Thevertexandelementarray]]
+ * [[#Uniform_states_and_textures|Uniformstatesandtextures]]
+ * [[#The_vertex_shader|Thevertexshader]]
+ * [[#Triangle_assembly|Triangleassembly]]
+ * [[#Rasterization|Rasterization]]
+ * [[#The_fragment_shader|Thefragmentshader]]
+ * [[#Framebuffer,_testing_and_blending|Framebuffer,testingandblending]]
+ * [[#Benefit_of_Evas_GL_compared_with_direct_OpenGL_usage|BenefitofEvas_GLcomparedwithdirectOpenGLusage]]
+ * [[#Declaration_of_EvasGL_Objects|DeclarationofEvasGLObjects]]
+ * [[#Creating_the_Elm_Window_and_EvasGL|CreatingtheElmWindowandEvasGL]]
+ * [[#Getting_OpenGL_ES_APIs|GettingOpenGLESAPIs]]
+ * [[#Callbacks|Callbacks]]
+ * [[#Setting_a_Surface_into_the_Image_Object|SettingaSurfaceintotheImageObject]]
+
+=== Related Info ===
+
+ * [[/develop/legacy/tutorial/gl_2d_tutorial|GL 2D Tutorial]]
+
+==== What is OpenGL ? ====
+
+OpenGL (Open Graphics Library) is a cross-language, multi-platform application
+programming interface (API) for rendering 2D and 3D vector graphics. The API
+is typically used to interact with a graphics processing unit (GPU), to
+achieve hardware-accelerated rendering. In recent years, the Khronos group has
+taken stewardship of the OpenGL standard, updating it to support the features
+of modern programmable GPUs, pushing it into the mobile and online domains
+with OpenGL ES and WebGL, and streamlining it in OpenGL 3 by deprecating the
+outdated features that cluttered earlier versions of the library. For this
+programming guide, I'm going to assume you're already a programmer and that
+you know C, but that you haven't necessarily seen OpenGL or done graphics
+programming before. Knowing at least some basic algebra and geometry will help
+a lot though. We are going to cover standards from the API of OpenGL ES 2.0,
+which is used by Evas_GL library.
+
+==== The graphics pipeline ====
+
+{{ :evasgl_graphics_pipeline.png }}
+
+Ever since the early days of real-time 3d, the triangle has been the
+paintbrush with which scenes have been drawn. Although modern GPUs can perform
+all sorts of flashy effects to cover up this dirty secret, underneath all the
+shading, triangles are still the medium in which they work. The graphics
+pipeline that OpenGL implements reflects this: the host program fills
+OpenGL-managed memory buffers with arrays of vertices; these vertices are
+projected into screen space, assembled into triangles, and rasterized into
+pixel-sized fragments; finally, the fragments are assigned color values and
+drawn to the framebuffer. Modern GPUs get their flexibility by delegating the
+"project into screen space" and "assign color values" stages to uploadable
+programs called shaders. Let's look at each stage in more detail:
+
+=== The vertex and element array ===
+
+The graphic pipeline starts with a set of one or more vertex buffers, filled
+with arrays of vertex attributes which are used as inputs to the vertex
+shaders. The vertex attributes can be for example the location of the vertex
+in 3d space, or some sets of texture coordinates that map the vertex to a
+sample point on one or more textures. We call the vertex array the set of
+vertex buffers supplying data to the rendering job. When a render job is
+submitted, we supply an additional element array, an array of indexes into the
+vertex array that select which vertices get fed into the pipeline. We will see
+later on that the order of the indexes also controls how the vertices get
+assembled.
+
+=== Uniform states and textures ===
+
+The uniform state provides a set of shared read-only values to the shaders at
+each programmable stage of the graphics pipeline. It allows the shader program
+to use parameters that don't change between vertices or fragments. The uniform
+state include texture that are commonly used to map texture images onto
+surfaces. These textures are translated into one-, two-, or three-dimensional
+arrays that can be sampled by shaders. They can be used as datasets for
+various kind of effects ot as lookup tables for precalculated functions.
+
+=== The vertex shader ===
+
+The vertex shader is a program that takes a set of vertex attributes as inputs
+and outputs a new set of attributes. refered to as varying values, that are
+given to the rasterizer. The GPU begins by reading each selected vertex out of
+the vertex array and running it through the vertex shader. The vertex shader
+calculates the projected position of the vertex in screen space. The vertex
+shader can also be used to generate other varying outputs such as a color or
+texture coordinates, for the rasterizer to blend across the surface of the
+triangles connecting the vertex.
+
+=== Triangle assembly ===
+
+Afterwards, the GPU connects the projected vertices to draw triangles. This is
+done by taking the vertices in the order spécified by the element array and
+grouping them by group of three. There is a few ways to group the vertices
+rtices of the next.
+
+ * ''TRIANGLES'': Take every three elements as independent triangle.
+ * ''TRIANGLE_STRIP'': Reusing the last two vertices of each triangle as the first two vertices of the next.
+ * ''TRIANGLE_FAN'': Connecting the first element to every subsequent pair of elements.
+
+The following diagram shows how the three different modes behave :
+
+{{ :evasgl_triangle_assembly.png }}
+
+=== Rasterization ===
+
+The resterization step consist in taking each triangle, clipping it and
+discarding parts that are outside the screen. The remaining visible parts are
+then broken into pixel-sized fragments. The vertex shaders varying outputs are
+also interpolated across the rasterized surface of each triangle, assigning a
+smooth gradient of values to each fragment. If the vertex shader assigns a
+color value to each vertex for instance, the rasterizer will blend those
+colors across the pixelated surface as shown in the diagram below :
+
+{{ :evasgl_rasterization.png }}
+
+=== The fragment shader ===
+
+The generated fragments will then pass through another program called the
+fragment shader. The fragment shader takes as arguments the varying values
+output by the vertex shader and interpolated by the rasterizer as inputs. The
+program returns the color and the depth values that get drawn into the
+framebuffer. Most common fragment shader operations include lighting and
+texture mapping. It can perform the most sophisticated special effects since
+the fragment shader runs independently for every pixel drawn. However, it is
+also the most performance-sensitive part of the graphics pipeline.
+
+=== Framebuffer, testing and blending ===
+
+The framebuffer is the rendering job's output. OpenGL allows you to render the
+final scene to the screen using the default framebuffer, but it also lets you
+make framebuffer objets that draw into offscreen renderbuffers or into
+textures. Those textures can be used as inputs to other rendering jobs. With
+Evas_GL, the framebuffer will be most of the time a single 2d image widget. In
+addiction to the color buffers, a framebuffer can have a depth buffer and/or
+stencil buffer, which can filter fragments before they are drawn : Depth
+testing discards fragments from objects that are behind the ones already
+drawn, and stencil testing uses shapes drawn into the stencil buffer to
+constrain the drawable part of the framebuffer. Fragments that remain after
+these two gauntlets have their color value alpha blended with the color value
+they are overwritting. The final color, depth and stencil values are drawn
+into the target buffers.
+
+=== Benefit of Evas_GL compared with direct OpenGL usage ===
+
+Evas allows you to use OpenGL to render into specially set up image objects
+(which act as render target surfaces). Such mechanism permits you to take full
+advantage of all methods and callbacks provided by Elementary widgets directly
+into the framebuffer. Indeed, the framebuffer is a image widget with which we
+can manage events such as mouse mouvement, click or even keyboard input. The
+rendering pipeline is implemented directly within a function that will be
+called every time the program is getting pixels from the image. Using
+Ecore_Evas animation loop, it allows us to mark pixels as "dirty" at every
+single tick of the clock in order implement any animation of our choice.
+
+Evas_GL provides the OpenGL ES 1.x and 2.x API, which give full control over
+the scene to the user. In this version of OpenGL, there is many functions that
+have been depreciated from the previous API such as matrix transformation,
+translation, rotation, but it is for the better. OpenGL ES 2.0 introduces the
+programmable pipeline on mobile devices discarding the old fixed-pipeline
+approach; probably for this reason you find it more difficult to use, but just
+a change of mindset and some hours passed on coding will make you change your
+idea about this. And we will see that, it isn't so hard to code back the
+missing bricks, if you remember your math lessons.
+
+==== Declaration of EvasGL Objects ====
+
+This is how to define the application data structure to hold all the objects
+for your EvasGL application:
+
+
+typedef struct appdata
+{
+ Evas_Object *win;
+ Evas_Object *img;
+
+ Evas_GL *evasgl;
+ Evas_GL_API *glapi;
+ Evas_GL_Context *ctx;
+ Evas_GL_Surface *sfc;
+ Evas_GL_Config *cfg;
+ Evas_Coord sfc_w;
+ Evas_Coord sfc_h;
+
+ unsigned int program;
+ unsigned int vtx_shader;
+ unsigned int fgmt_shader;
+ unsigned int vbo;
+} appdata_s;
+
+
+ * ''Evas_Object *win'': Application window.
+ * ''Evas_Object *img'': OpenGL ES canvas.
+ * ''Evas_GL *evasgl'': EvasGL Object for rendering gl in Evas.
+ * ''Evas_GL_API *glapi'': EvasGL API object that contains the GL APIs to be used in Evas GL.
+ * ''Evas_GL_Context *ctx'': EvasGL Context object, a GL rendering context in Evas GL.
+ * ''Evas_GL_Surface *sfc'': EvasGL Surface object, a GL rendering target in Evas GL.
+ * ''Evas_GL_Config *cfg'': EvasGL Surface configuration object for surface creation.
+
+==== Creating the Elm Window and EvasGL ====
+
+To create the Elm window and EvasGL:
+
+**__1__**. Manage HW acceleration
+
+To develop a GL application, call the ''elm_config_accel_preference_set()''
+function before creating a window. This makes an application to use GPU.
+
+To use the Direct Rendering mode of EvasGL, set the same option values (depth,
+stencil, and MSAA) to a rendering engine and a ''Evas_GL_Surface'' object. You
+can set the option values to a rendering engine using the
+''elm_config_accel_preference_set()'' function and to a ''Evas_GL_Surface''
+object using the ''Evas_GL_Config'' object. If the ''Evas_GL_Config'' object
+option values are bigger or higher than the rendering engine's, the Direct
+Rendering mode is disabled or abnormal rendering occurs.
+
+
+Evas_Object *win;
+
+// To use OpenGL ES, the application must switch on hardware acceleration
+// To enable that, call elm_config_accel_preference_set() with "opengl"
+// before creating the Elm window
+elm_config_accel_preference_set("opengl");
+// Creating Elm window
+ad->win = elm_win_util_standard_add("Evas_GL Example", "Evas_GL Example");
+
+
+You can create your EvasGL handler using the ''evas_gl_new(Evas * e)''
+function. This initializer takes as a parameter the Evas canvas on which
+OpenGL ES is to be used. When developing an application with Elementary, use
+the canvas of your window:
+
+
+ad->evasgl = evas_gl_new(evas_object_evas_get(ad->win));
+
+
+To free the memory allocated to this handler, use the ''evas_gl_free(Evas_GL
+*evas_gl)'' function.
+
+**__2__**. Create a surface.
+
+You must allocate a new config object to fill the surface out using the
+''evas_gl_config_new()'' function. As long as Evas creates a config object for
+the user, it takes care of the backward compatibility issue. Once you have
+your config object, you can specify the surface settings:
+
+
+appdata_s *ad;
+ad->cfg = evas_gl_config_new();
+ad->cfg->color_format = EVAS_GL_RGBA_8888; // Surface Color Format
+ad->cfg->depth_bits = EVAS_GL_DEPTH_BIT_24; // Surface Depth Format
+ad->cfg->stencil_bits = EVAS_GL_STENCIL_NONE; // Surface Stencil Format
+ad->cfg->options_bits = EVAS_GL_OPTIONS_NONE; // Configuration options (here, no extra options)
+
+
+Once we have configured the surface behavior, we must initialize the surface
+using ''evas_gl_surface_create(Evas_GL* evas_gl, Evas_GL_Config * cfg, int w,
+int h)''. This function takes the given Evas_GL object as the first parameter
+and the pixel format, and configuration of the rendering surface as the second
+parameter. The last two parameters are the width and height of the surface,
+which we recover directly from the window.
+
+
+Evas_Coord w, h;
+evas_object_geometry_get(ad->win, NULL, NULL, &w, &h);
+ad->sfc = evas_gl_surface_create(ad->evasgl, ad->cfg, w, h);
+
+
+To manually delete a GL surface, use the ''evas_gl_surface_destroy(Evas_GL
+*evas_gl, Evas_GL_Surface *surf)'' function.
+
+**__3__**. Create a context.
+
+Create a context for Evas_GL using the ''evas_gl_context_create(Evas_GL *
+evas_gl, Evas_GL_Context * share_ctx)'' function. You can merge the context
+with a higher context definition you must pass as a second parameter.
+
+
+ad->ctx = evas_gl_context_create(ad->evasgl, NULL);
+
+
+To delete the context later, use the ''evas_gl_context_destroy(Evas_GL
+*evas_gl, Evas_GL_Context *ctx)'' function. To delete the entire configuration
+object, use the ''evas_gl_config_free(Evas_GL_Config *cfg)'' function instead.
+
+==== Getting OpenGL ES APIs ====
+
+If you want to get the API of OpenGL ES, you can get the API for rendering
+OpenGL ES with the ''evas_gl_api_get(Evas_GL *evas_gl_)''function. This
+function returns a structure that contains all the OpenGL ES functions you can
+use to render in Evas. These functions consist of all the standard OpenGL ES
+2.0 functions and any extra ones Evas has decided to provide in addition. If
+you have your code ported to OpenGL ES 2.0, it is easy to render to Evas.
+
+If you already use a global macro, such as ''EVAS_GL_GLOBAL_GLES2_XXX'', you need not get the APIs.
+
+
+ad->glapi = evas_gl_api_get(ad->evasgl);
+
+
+==== Callbacks ====
+
+Now that we have configured the EvasGL environment, we declare a UI component
+in which all the OpenGL ES transformation takes place. In the example below,
+we selected the image component because it provides callbacks that allow us to
+play with the mouse events and coordinates, and we set up an image object that
+inherits the size of the parent window.
+
+
+ad->img = evas_object_image_filled_add(evas_object_evas_get(ad->win));
+
+
+We define the "OpenGL ES main loop" function that is called every time the
+program attempts to have pixels from the image. We put all the OpenGL ES
+statements in charge of rendering the scene in this callback.
+
+
+evas_object_image_pixels_get_callback_set(ad->img, img_pixels_get_cb, ad);
+
+
+To define a function that takes care of the drawing using EvasGL (called the
+OpenGL ES main loop), use:
+
+
+static void
+img_pixels_get_cb(void *data, Evas_Object *obj)
+{
+ appdata_s *ad = data;
+ Evas_GL_API *gl = ad->glapi;
+
+ // Rendering process
+ evas_gl_make_current(ad->evasgl, ad->sfc, ad->ctx);
+ // Because the surface size can be changed, set the viewport in this callback
+ gl->glViewport(0, 0, ad->sfc_w, ad->sfc_h);
+ // Paint it blue
+ gl->glClearColor(0.2, 0.2, 0.6, 1.0);
+ gl->glClear(GL_COLOR_BUFFER_BIT);
+ // The usual OpenGL ES draw commands come here
+ // draw_scene();
+}
+
+At every tick, we must set the given context as a current context for the
+given surface using ''evas_gl_make_current(Evas_GL *evas_gl, Evas_GL_Surface
+*surf, Evas_GL_Context *ctx)''.
+
+You can use the ''Ecore_Animator'' to define the OpenGL ES main loop. To do
+so, create a callback that is called on every animation tick. This animation
+callback is used only to mark the image as "dirty", meaning that it needs an
+update next time Evas renders. It calls the pixel get callback that redraws
+the scene.
+
+
+static Eina_Bool
+animate_cb(void *data)
+{
+ Evas_Object *img = data;
+ evas_object_image_pixels_dirty_set(img, EINA_TRUE);
+
+ return ECORE_CALLBACK_RENEW;
+}
+
+ecore_animator_add(animate_cb, ad->img);
+
+
+You can define several other callbacks that have an impact on the drawing
+depending on the mouse, resize, and deletion events.
+
+
+evas_object_event_callback_add(ad->img, EVAS_CALLBACK_DEL, img_del_cb, ad);
+evas_object_event_callback_add(ad->img, EVAS_CALLBACK_MOUSE_DOWN, mouse_down_cb, ad);
+evas_object_event_callback_add(ad->img, EVAS_CALLBACK_MOUSE_UP, mouse_up_cb, ad);
+evas_object_event_callback_add(ad->img, EVAS_CALLBACK_MOUSE_MOVE, mouse_move_cb, ad);
+evas_object_event_callback_add(ad->win, EVAS_CALLBACK_RESIZE, win_resize_cb, ad);
+
+
+Because the window size can be changed, you must set a resize callback for the
+window. In addition, you must recreate an ''Evas_GL_Surface'' in the resize
+callback and reset the viewport size with the new window size:
+
+
+static void
+win_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ appdata_s *ad = data;
+
+ if (ad->sfc)
+ {
+ evas_object_image_native_surface_set(ad->img, NULL);
+ evas_gl_surface_destroy(ad->evasgl, ad->sfc);
+ ad->sfc = NULL;
+ }
+
+ evas_object_geometry_get(obj, NULL, NULL, &ad->sfc_w, &ad->sfc_h);
+ evas_object_image_size_set(ad->img, ad->sfc_w, ad->sfc_h);
+ evas_object_resize(ad->img, ad->sfc_w, ad->sfc_h);
+ evas_object_show(ad->img);
+
+ if (!ad->sfc)
+ {
+ Evas_Native_Surface ns;
+
+ ad->sfc = evas_gl_surface_create(ad->evasgl, ad->cfg, ad->sfc_w, ad->sfc_h);
+ evas_gl_native_surface_get(ad->evasgl, ad->sfc, &ns);
+ evas_object_image_native_surface_set(ad->img, &ns);
+ evas_object_image_pixels_dirty_set(ad->img, EINA_TRUE);
+ }
+}
+
+==== Setting a Surface into the Image Object ====
+
+We can also fill in the native Surface information from the given EvasGL surface. For example, to adapt the surface to the target image when the size of the canvas changes, use the following code.
+
+
+Evas_Native_Surface ns;
+evas_gl_native_surface_get(ad->evasgl, ad->sfc, &ns);
+evas_object_image_native_surface_set(ad->img, &ns);
+
+
+
+-----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/event_effect/ecore_animators.txt b/public_html/data/pages/develop/legacy/program_guide/event_effect/ecore_animators.txt
new file mode 100644
index 00000000..2ff02257
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/event_effect/ecore_animators.txt
@@ -0,0 +1,441 @@
+~~Title: Ecore Animator~~
+{{page>index}}
+----
+===== Ecore Animator =====
+
+Ecore provides a facility for animations called ''Ecore_Animator''. Ecore animators use the Ecore main loop for creating animations, running a specific action on each tick of a timer in the main loop.
+
+=== Table of Contents ===
+
+ * [[#Create_an_Ecore_Animation|Create an Ecore Animation]]
+ * [[#Creating_an_Animation_with_a_Finite_Duration|Creating an Animation with a Finite Duration]]
+ * [[#Position_Mappings|Position Mappings]]
+ * [[#Using_Position_Mappings|Using Position Mappings]]
+ * [[#Creating_an_Infinite_Animation|Creating an Infinite Animation]]
+ * [[#Chaining_Animations|Chaining Animations]]
+ * [[#Pausing_and_Resuming_Animations|Pausing and Resuming Animations]]
+ * [[#Freeing_Up_Memory|Freeing Up Memory]]
+ * [[#Frametime|Frametime]]
+ * [[#Custom_Timer|Custom Timer]]
+
+=== Related Info ===
+
+ * [[/develop/legacy/tutorial/effects_tutorial|Effects Tutorial]]
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Ecore__Animator__Group.html|Ecore Animator Functions API]] ([[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/ecore_main.html|Ecore API]])
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_ecore_animator.html|Ecore animator example]]
+==== Create an Ecore Animation ====
+
+To create an Ecore animation:
+
+ - Determine the duration of the animation.
+ - Define a callback function that performs the animation with that duration.
+
+To use Ecore animators in your application, you must include the ''
+static Eina_Bool
+_do_animation(void *data, double pos)
+{
+ evas_object_move(data, 100 * pos, 100 * pos);
+ // Do some more animating...
+}
+
+
+ecore_animator_timeline_add(2, _do_animation, my_evas_object);
+
+
+In the above example, we create a linear transition to move ''my_evas_object''
+from position (0,0) to position (100,100) in 2 seconds.
+
+==== Creating an Animation with a Finite Duration ====
+
+Most of the time, you will want to create animations that last for a
+predefined time.
+
+The ''ecore_animator_timeline_add()'' function allows you to define an
+animator that is automatically deleted after the animation is finished:
+
+
+Ecore_Animator* ecore_animator_timeline_add(double runtime,
+ Ecore_Timeline_Cb func,
+ const void *data
+)
+
+
+
+ * ''runtime'' is the duration of the animation in seconds. The duration is not affected by frame rate.
+ * ''func'' is the callback function that performs the animation.
+ * ''data'' is the parameter passed to the callback function. This is usually the Evas object to animate.
+
+
+
+
+static Eina_Bool
+_my_animation(void *data, double pos)
+{
+ Evas_Object *obj = data; // Get the target object
+ int x, y, w, h; // Target object geometry
+ evas_object_geometry_get(obj, &x, &y, &w, &h); // Get current object position and size attributes
+ evas_object_move(obj, 500 * pos, y); // Linear translation of the Evas object
+}
+
+
+ecore_animator_timeline_add(8, _my_animation, my_evas_object);
+
+
+==== Position Mappings ====
+
+The ''Ecore_Pos_Map'' position mappings are used to define the evolution of a
+given position in accordance with the desired effects. The value ranges from
+0.0 to 1.0 on a given timeline. This position variation allows you to apply
+dynamic changes to any attribute of your Evas object, such as position, width,
+height, scale, angle, and color.
+
+Ecore supports the following position mappings (with the listed v1 and v2
+parameters):
+
+ * ''ECORE_POS_MAP_LINEAR'': linear 0.0 - 1.0
+ * v1: not used
+ * v2: not used
+ * ''ECORE_POS_MAP_ACCELERATE'': start slow, then speed up
+ * v1: not used
+ * v2: not used
+ * ''ECORE_POS_MAP_DECELERATE'': start fast, then slow down
+ * v1: not used
+ * v2: not used
+ * ''ECORE_POS_MAP_SINUSOIDAL'': start slow, speed up, then slow down at the end
+ * v1: not used
+ * v2: not used
+ * ''ECORE_POS_MAP_ACCELERATE_FACTOR'': start slow, then speed up
+ * v1: power factor: 0.0 is linear, 1.0 is standard acceleration, 2.0 is a much more pronounced acceleration (squared), 4.0 is cubed, and so on
+ * v2: not used
+ * ''ECORE_POS_MAP_DECELERATE_FACTOR'': start fast, then slow down
+ * v1: power factor: 0.0 is linear, 1.0 is standard deceleration, 2.0 is a much more pronounced deceleration (squared), 3.0 is cubed, and so on
+ * v2: not used
+ * ''ECORE_POS_MAP_SINUSOIDAL_FACTOR'': start slow, speed up, then slow down at the end
+ * v1: power factor: 0.0 is linear, 1.0 is a standard sinusoidal, 2.1 is a much more pronounced sinusoidal (squared), 3.0 is cubed, and so on
+ * v2: not used
+ * ''ECORE_POS_MAP_DIVISOR_INTERP'': start at gradient * v1, interpolated via power of v2 curve
+ * v1: multiplication factor for gradient
+ * v2: curve value
+ * ''ECORE_POS_MAP_BOUNCE'': start at 0.0, then "drop" like a ball bouncing to the ground at 1.0, and bounce v2 times, with a decay factor of v1
+ * v1: bounce decay factor
+ * v2: number of bounces
+ * ''ECORE_POS_MAP_SPRING'': start at 0.0, then "wobble" like a spring until rest position at 1.0, and wobble v2 times, with a decay factor of v1
+ * v1: wobble decay factor
+ * v2: number of wobbles
+
+{{ :event_effect_ecore_animator_position_mapping.png }}
+
+==== Using Position Mappings ====
+
+When using the animation callback function, the animator passes a timeline
+position parameter with a value between 0.0 (start) and 1.0 (end) to indicate
+where along the timeline the animator is running.
+
+If you want to create a non-linear animation, map the position value to one of
+several curves and mappings:
+
+
+double ecore_animator_pos_map(double pos,
+ Ecore_Pos_Map map,
+ double v1,
+ double v2
+ )
+
+
+ * ''pos'' is the current position value, which ranges from 0.0 to 1.0.
+ * ''map'' is the position mapping you want to apply.
+ * ''v1'' is the first parameter (v1) to pass to the position mapping.
+ * ''v2'' is the second parameter (v2) to pass to the position mapping.
+
+
+static Eina_Bool
+_my_animation_callback(void *data, double pos)
+{
+ Evas_Object *obj = data; // Get the target object
+ int x, y, w, h; // Target object geometry
+ double frame = pos; // Actual position variation
+ frame = ecore_animator_pos_map(pos, ECORE_POS_MAP_BOUNCE, 1.8, 7); //Get frame relative position depending on desired effect
+ evas_object_geometry_get(obj, &x, &y, &w, &h); // Get current object position and size attributes
+ evas_object_move(obj, x, 600 * frame); // Move the Evas object according to desired effect
+
+ return EINA_TRUE;
+}
+
+
+ecore_animator_timeline_add(5, _my_animation_callback, my_evas_object);
+
+
+==== Creating an Infinite Animation ====
+
+If you want the animation to run for an unspecified amount of time, use the
+''ecore_animator_add()'' function. This function works the same way as the
+''ecore_animation_timeline_add()'' function, except its interval is based on
+frame rate. Using frame rate as the basis benefits performance, especially if
+you define multiple animations, since you may want to have a different timer
+for each callback function.
+
+
+Ecore_Animator* ecore_animator_add(Ecore_Task_Cb func,
+ const void *data
+ )
+
+
+ * ''func'' is the callback function that performs the animation.
+ * ''data'' is the parameter passed to the callback function. This is usually the Evas object to animate.
+
+
+static Eina_Bool
+_slide_back_and_forth(void *data)
+{
+ typedef enum {LEFT, RIGHT} direction_t; // Direction datatype
+ static int x = 0; // Initial position
+ static direction_t direction = RIGHT; // Initial direction
+ if (x >= 250)
+ direction = LEFT; // Change direction
+ else if (x <= 0)
+ direction = RIGHT; // Change direction
+ if (direction == RIGHT)
+ evas_object_move(data, ++x, 350); // Slide to right
+ else if (direction == LEFT)
+ evas_object_move(data, --x, 350); // Slide to left
+
+ return EINA_TRUE;
+}
+int
+main(int argc, char *argv[])
+{
+ // Declarations
+
+ // Ecore Evas init
+
+ // Draw Evas objects
+
+ // Animations go here
+ anim = ecore_animator_add(_slide_back_and_forth, rectangle);
+ // Ecore main loop
+
+ // Free memory
+}
+
+
+
+static int runtime = 5;
+static int delay = runtime;
+
+static Eina_Bool
+_start_fold_animation(void *data)
+{
+ ecore_animator_timeline_add(runtime, _fold_animation, data);
+
+ return EINA_FALSE;
+}
+
+static Eina_Bool
+_start_unfold_animation(void *data)
+{
+ ecore_animator_timeline_add(runtime, _unfold_animation, data);
+
+ return EINA_FALSE;
+}
+
+_start_fold_animation(my_evas_object);
+ecore_timer_add(delay, _start_unfold_animation, my_evas_object);
+
+
+==== Pausing and Resuming Animations ====
+
+You can pause and resume Ecore animations. To pause a running animation, use
+the ''ecore_animator_freeze()'' function:
+
+The parameter is the ''Ecore_Animator'' to pause.
+
+
+ecore_animator_freeze(Ecore_Animator *animator)
+
+
+To resume the paused animation, use the ''ecore_animator_thaw()'' function:
+
+
+ecore_animation_thaw(Ecore_Animator *animator)
+
+
+The parameter is the ''Ecore_Animator'' to resume.
+
+The following example pauses a transition after 5 seconds and resumes it after
+5 more seconds:
+
+
+static Eina_Bool
+_freeze_animation(void *data)
+{
+ ecore_animator_freeze(data);
+
+ return EINA_FALSE;
+}
+
+static Eina_Bool
+_thaw_animation(void *data)
+{
+ ecore_animator_thaw(data);
+
+ return EINA_FALSE;
+}
+
+ecore_timer_add(5, _freeze_animation, animator);
+ecore_timer_add(10, _thaw_animation, animator);
+
+
+==== Freeing Up Memory ====
+
+When you create an animation that does not have a timeout, you will have to
+manually free up the memory allocated to the ''Ecore_Animator'' object. By
+comparison, if the animation has a timeout, Ecore implements the mechanisms to
+automatically delete the animator from the list of pointers: When your
+animation callback returns 0 or ''ECORE_CALLBACK_CANCEL'', the animator
+manager takes care of freeing up the allocated memory.
+
+To manually free up the memory, delete the pointer by using the
+''ecore_animator_del()'' function:
+
+
+ecore_animator_del(Ecore_Animator *animator)
+
+
+The argument is the ''Ecore_Animator'' whose memory allocation to free up.
+
+Regardless of the type of animation, it is good practice to always ensure that
+the allocated memory is freed up before the program exits:
+
+
+if (animator != NULL)
+ ecore_animator_del(animator);
+
+
+==== Frametime ====
+
+In most cases, you will want to use the default timer
+''ECORE_ANIMATOR_SOURCE_TIMER''. This timer ticks every "frametime" seconds
+and allows you to perform transitions within a predefined timeline. The timer
+uses the system clock to tick over every Nth second, with the default being
+1/30th of a second.
+
+To tweak performance, you can change the frametime value:
+
+The argument is the new frametime value.
+
+
+ecore_animator_frametime_set(double frametime)
+
+
+
+void ecore_animator_custom_source_tick_begin_callback_set(Ecore_Cb func,
+ const void *data
+ )
+
+
+ * ''func'' is the callback function to call on the tick start.
+ * ''data'' is the data to pass to the callback function.
+
+
+void ecore_animator_custom_source_tick_end_callback_set(Ecore_Cb func,
+ const void *data
+ )
+
+
+ * ''func'' is the callback function to call on the tick end.
+ * ''data'' is the data to pass to the callback function to set the functions that will be called to start and stop the ticking source.
+
+Next, trigger a tick over one frame:
+
+
+ecore_animator_custom_tick(void)
+
+
+The following example supposes a progress bar that will be refreshed every
+time some progress occurs:
+
+
+ecore_animator_source_set(ECORE_ANIMATOR_SOURCE_CUSTOM);
+void _on_progress_update()
+{
+ // Called when some progress occurs
+ ecore_animator_custom_tick(); // Tick (next frame in progress bar animation)
+}
+
+
+Finally, to get the current animator source, use the ''ecore_animator_source_get()'' function.
+
+\\
+------------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/event_effect/ecore_events.txt b/public_html/data/pages/develop/legacy/program_guide/event_effect/ecore_events.txt
new file mode 100644
index 00000000..eff57174
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/event_effect/ecore_events.txt
@@ -0,0 +1,303 @@
+~~Title: Ecore Events~~
+{{page>index}}
+----
+===== Ecore Events =====
+
+Ecore events are used for low-level handling of events such as key presses,
+network connections, and communication with sub-processes.
+
+The low-level handling of key presses is particularly useful for shortcuts:
+instead of adding a signal handler to a specific graphical element, you can
+add one globally. This guarantees that no matter which widget is currently
+receiving events, the shortcut is caught.
+
+Note that ecore events are also used to implement new graphical back-ends, but
+they are low-level and not useful for most applications.
+
+=== Table of Contents ===
+
+ * [[#Ecore_Events_Useful_for_Shortcuts|Ecore Events Useful for Shortcuts]]
+ * [[#Add_an_Event_Handler:_ecore_event_handler_add()|Add an Event Handler: ecore_event_handler_add()]]
+ * [[#Remove_an_Event_Handler:_ecore_event_handler_del()|Remove an Event Handler: ecore_event_handler_del()]]
+ * [[#Send_Events_to_the_Main_Loop_Yourself:_ecore_event_add()|Send Events to the Main Loop Yourself: ecore_event_add()]]
+ * [[#Create_Your_Own_Type_of_Events:_ecore_event_type_new()|Create Your Own Type of Events: ecore_event_type_new()]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Ecore__Event__Group.html|Ecore Event functions API]]
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/ecore_event_example_01_c.html|Ecore Event Example]]
+
+==== Ecore Events Useful for Shortcuts ====
+
+There are eight ecore events for shortcuts:
+
+
+int ECORE_EVENT_KEY_DOWN;
+int ECORE_EVENT_KEY_UP;
+int ECORE_EVENT_MOUSE_BUTTON_DOWN;
+int ECORE_EVENT_MOUSE_BUTTON_UP;
+int ECORE_EVENT_MOUSE_MOVE;
+int ECORE_EVENT_MOUSE_WHEEL;
+int ECORE_EVENT_MOUSE_IN;
+int ECORE_EVENT_MOUSE_OUT;
+
+
+The callbacks receive additional data through a ''void *'' object, whose type
+depends on the event that has been received.
+
+ * for ''ECORE_EVENT_KEY_DOWN'' and ''ECORE_EVENT_KEY_UP'':
+
+
+typedef struct _Ecore_Event_Key Ecore_Event_Key;
+
+struct _Ecore_Event_Key
+{
+ const char *keyname;
+ const char *key;
+ const char *string;
+ const char *compose;
+ Ecore_Window window;
+ Ecore_Window root_window;
+ Ecore_Window event_window;
+
+ unsigned int timestamp;
+ unsigned int modifiers;
+
+ int same_screen;
+};
+
+
+ * for ''ECORE_EVENT_MOUSE_BUTTON_DOWN'' and ''ECORE_EVENT_MOUSE_BUTTON_UP'':
+
+
+typedef struct _Ecore_Event_Mouse_Button Ecore_Event_Mouse_Button;
+
+struct _Ecore_Event_Mouse_Button
+{
+ Ecore_Window window;
+ Ecore_Window root_window;
+ Ecore_Window event_window;
+
+ unsigned int timestamp;
+ unsigned int modifiers;
+ unsigned int buttons;
+ unsigned int double_click;
+ unsigned int triple_click;
+ int same_screen;
+
+ int x;
+ int y;
+ struct
+ {
+ int x;
+ int y;
+ } root;
+
+ struct
+ {
+ int device; // 0 if normal mouse, 1+ for other mouse-devices (eg multi-touch - other fingers)
+ double radius, radius_x, radius_y; // Radius of press point - radius_x and y if its an ellipse (radius is the average of the 2)
+ double pressure; // Pressure - 1.0 == normal, > 1.0 == more, 0.0 == none
+ double angle; // Angle relative to perpendicular (0.0 == perpendicular), in degrees
+ double x, y; // Same as x, y root.x, root.y, but with sub-pixel precision, if available
+ struct
+ {
+ double x;
+ double y;
+ } root;
+ } multi;
+};
+
+
+ * for ''ECORE_EVENT_MOUSE_MOVE'' and ''ECORE_EVENT_MOUSE_WHEEL'':
+
+
+typedef struct _Ecore_Event_Mouse_Wheel Ecore_Event_Mouse_Wheel;
+struct _Ecore_Event_Mouse_Wheel
+{
+ Ecore_Window window;
+ Ecore_Window root_window;
+ Ecore_Window event_window;
+
+ unsigned int timestamp;
+ unsigned int modifiers;
+
+ int same_screen;
+ int direction;
+ int z;
+
+ int x;
+ int y;
+ struct
+ {
+ int x;
+ int y;
+ } root;
+};
+
+
+ * for ''ECORE_EVENT_MOUSE_IN ''and ''ECORE_EVENT_MOUSE_OUT'':
+
+
+typedef struct _Ecore_Event_Mouse_Move Ecore_Event_Mouse_Move;
+struct _Ecore_Event_Mouse_Move
+{
+ Ecore_Window window;
+ Ecore_Window root_window;
+ Ecore_Window event_window;
+
+ unsigned int timestamp;
+ unsigned int modifiers;
+
+ int same_screen;
+
+ int x;
+ int y;
+ struct
+ {
+ int x;
+ int y;
+ } root;
+
+ struct
+ {
+ int device; // 0 if normal mouse, 1+ for other mouse-devices (eg multi-touch - other fingers)
+ double radius, radius_x, radius_y; // radius of press point - radius_x and y if it is an ellipse (radius is the average of the two)
+ double pressure; // pressure - 1.0 == normal, > 1.0 == more, 0.0 == none
+ double angle; // angle relative to perpendicular (0.0 == perpendicular), in degrees
+ double x, y; // same as x, y root.x, root.y, but with sub-pixel precision, if available
+ struct
+ {
+ double x, y;
+ } root;
+ } multi;
+};
+
+
+==== Add an Event Handler: ecore_event_handler_add() ====
+
+The ''ecore_event_handler_add()'' function enables registering a callback for
+the given event. Its prototype is:
+
+
+Ecore_Event_Handler* ecore_event_handler_add(int type,
+ Ecore_Event_Handler_Cb func,
+ const void* data
+ )
+
+
+
+ * ''type'' is an identifier for the event; for example, if you wish to receive notifications when keys are pressed, give ''ECORE_EVENT_KEY_DOWN''.
+ * ''func'' is the callback that is called when the event takes place.
+ * ''data'' is a pointer to additional data that is given as the argument to the callback; it is optional and ''NULL'' is an acceptable value.
+ * return value is a pointer to the event handler, which can be used later to uninstall the handler.
+
+The type of the callback function is defined as follows.
+
+
+Eina_Bool (* Ecore_Event_Handler_Cb) (void *data, int type, void *event)
+
+
+The callback function declaration is similar to:
+
+
+Eina_Bool some_ecore_event_cb(void *data, int type, void *event);
+
+
+
+ * ''data'' is the same as the ''data'' which was given as a parameter to ''ecore_event_handler_add()''.
+ * ''type'' is the same as the type which was given as a parameter to ''ecore_event_handler_add()''.
+ * ''event'' is an object whose actual type depends on the value of the ''type'' parameter and is one of ''Ecore_Event_Key'', ''Ecore_Event_Mouse_Button'', ''Ecore_Event_Mouse_Wheel'', ''Ecore_Event_Mouse_Move''.
+ * The return value is either ''ECORE_CALLBACK_PASS_ON'', to allow other callbacks for that event be called, or ''ECORE_CALLBACK_DONE'' to not call them.
+
+
+
+The code below is a short example of how to set a global variable to
+''EINA_TRUE'' when the Control key is pressed.
+
+
+Eina_Bool ctrl_pressed = EINA_FALSE;
+
+static Eina_Bool
+_key_down_cb(void *data __UNUSED__, int type __UNUSED__, void *ev)
+{
+ // The callback is used with the ECORE_EVENT_KEY_DOWN signal: the
+ // parameter "void *ev" is therefore of the actual type Ecore_Event_Key
+ // The following renders its fields accessible
+ Ecore_Event_Key *event = ev;
+
+ // Test whether the key that is pressed is Ctrl.
+ if (!strcmp("Control_L", event->key))
+ {
+ // If it is, store that piece of information
+ ctrl_pressed = EINA_TRUE;
+ }
+
+ // Let the event continue to other callbacks which have not been called yet
+ return ECORE_CALLBACK_PASS_ON;
+}
+
+ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _key_down_cb, NULL);
+
+
+==== Remove an Event Handler: ecore_event_handler_del() ====
+
+To remove an event handler, use the ''ecore_event_handler_del()'' function.
+The prototype is:
+
+
+void* ecore_event_handler_del(Ecore_Event_Handler *event_handler)
+
+
+ * event_handler is the value returned by ''ecore_event_handler_add()''.
+ * The return value is the data pointer that was used in the corresponding ''call to ecore_event_handler_add()''.
+
+==== Send Events to the Main Loop Yourself: ecore_event_add() ====
+
+You can send events to the main-loop, which helps to handle actions of various
+origins through the same codepath. Note that this is a thread-safe operation.
+
+To send an event, use the ''ecore_event_add()'' function. The prototype is
+
+
+Ecore_Event* ecore_event_add(int type,
+ void* ev,
+ Ecore_End_Cb func_free,
+ void* func_free_data
+ )
+
+
+ * ''type'' is the event type. For example, ECORE_EVENT_KEY_DOWN.
+ * ''ev'' is the event data. It is given as a parameter to the callback.
+ * ''func_free'' is a function to free ev after the callback is called. It is optional: ''NULL'' is an acceptable value.
+ * ''func_free_data'' is a pointer to additional data that is given as an argument to the ''func_free'' callback. It is optional: ''NULL'' is an acceptable value.
+
+The type of the ''func_free'' function is defined as follows.
+
+
+void (* Ecore_End_Cb)(void *user_data, void *func_free_data)
+
+
+The callback function declaration is thus similar to
+
+
+void some_func_free(void *user_data, void *func_free_data);
+
+
+==== Create Your Own Type of Events: ecore_event_type_new() ====
+
+You can create your own events. It also helps to use a single codepath.
+
+The function for creating your own events is ''ecore_event_type_new()''. The
+prototype is:
+
+
+int ecore_event_type_new(void);
+
+
+It generates a new unique identifier, which you can use as ''type'' in the
+functions described above.
+
+\\
+-----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/event_effect/edje_animations.txt b/public_html/data/pages/develop/legacy/program_guide/event_effect/edje_animations.txt
new file mode 100644
index 00000000..412cb572
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/event_effect/edje_animations.txt
@@ -0,0 +1,463 @@
+~~Title: Edje Animation~~
+{{page>index}}
+----
+===== Edje Animation =====
+
+The Edje animations are based on a very simple principle: going from one state to another. If you want to animate something with Edje, you must define two states and move from the first state to the second.
+
+=== Table of Contents ===
+
+ * [[#Animating_a_Rectangle|Animating a Rectangle]]
+ * [[#Actions|Actions]]
+ * [[#Transitions|Transitions]]
+ * [[#Chaining_Edje_Programs|Chaining Edje Programs]]
+ * [[#Playing_on_Signals|Playing on Signals]]
+ * [[#Rotate_with_Edje|Rotate with Edje]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/edcref.html|Edje Data Collection Reference]]
+
+
+==== Animating a Rectangle ====
+
+This example shows how to animate a rectangle. It is positioned in the top left corner of the window and is moved to the bottom right corner in five seconds. To do that with Edje, define a ''part'' called "rectangle" with the ''type RECT:'' this part has two descriptions (or states). In the first state, the rectangle is in is the top left corner. In the second state, it is in is the bottom right corner. To create the transition, set this EDC code for Edje to switch the object from its current state to another.
+
+
+
+collections
+{
+ group
+ {
+ name: "main";
+ parts
+ {
+ part
+ {
+ name: "rectangle";
+ type: RECT;
+ description
+ {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ rel1 {relative: 0.0 0.0;}
+ rel2 {relative: 0.3 0.1;}
+ color: 0 0 255 255;
+ }
+ description
+ {
+ state: "default" 0.5;
+ align: 0.0 0.0;
+ rel1 {relative: 0.7 0.9;}
+ rel2 {relative: 1.0 1.0;}
+ color: 0 0 255 255;
+ }
+ }
+ }
+ programs
+ {
+ program
+ {
+ name: "animation,state1";
+ source: "";
+ signal: "load";
+ action: STATE_SET "default" 0.5;
+ target: "rectangle";
+ transition: LINEAR 5;
+ }
+ }
+ }
+}
+
+
+The "rectangle" part has two descriptions that share the same name, but have a different "version".
+
+
+
+part
+{
+ name: "rectangle";
+ type: RECT;
+ description
+ {
+ state: "default" 0.0;
+ }
+ description
+ {
+ state: "default" 0.5;
+ }
+}
+
+
+The program defines when and how to move from one state to another. A program is called upon reception of a signal from a source. Here the program is called when the signal load is received from any source.
+
+
+
+program
+{
+ name: "animation,state1";
+ source: "";
+ signal: "load";
+}
+
+
+An action is performed upon the signal reception. In this example, the state is changed.
+
+
+
+action: STATE_SET "default" 0.5;
+
+
+The program has a target, here the "rectangle".
+
+
+
+target: "rectangle";
+
+
+The program uses a transition to perform the action.
+
+
+
+transition: LINEAR 5;
+
+
+This example produces a blue rectangle that moves from the upper left to the lower right corner with a linear transition in five seconds.
+
+==== Actions ====
+
+The Edje programs are not only for animations. There are different actions, for example ''STATE_SET'' and ''ACTION_STOP''. You may also send signals with ''SIGNAL_EMIT''.
+
+The ''STATE_SET'' action changes the state of the "target".
+
+In the following example, the state of the part named "image" changes to "default" "0.0".
+
+
+
+program
+{
+ name: "animate";
+ signal: "animate";
+ action: STATE_SET "default" 0.0;
+ transition: LINEAR 3.0;
+ target: "image";
+}
+
+
+The ''ACTION_STOP'' stops the program specified by "target".
+
+
+
+program
+{
+ name: "animate_stop";
+ signal: "animate_stop";
+ action: ACTION_STOP;
+ target: "animate_loop";
+}
+
+
+The previous example stops the program defined as "target" named ''animate_loop''. This program runs on the ''animate_stop'' signal.
+
+The ''SIGNAL_EMIT'' emits a signal that is used to communicate with the application directly from the theme.
+
+The following example emits a signal ''frame_move'' "start" when it receives the signal ''mouse,down,*'' from the ''video_over'' part. In other words, it sends the signal ''frame_move'' "start" when the mouse is pressed in the ''video_over'' part.
+
+
+
+program
+{
+ name: "video_move_start";
+ signal: "mouse,down,*";
+ source: "video_mover";
+ action: SIGNAL_EMIT "frame_move" "start";
+}
+
+
+==== Transitions ====
+
+The transitions available are:
+
+ * ''LIN'' or ''LINEAR'': makes a linear transition and takes the duration in seconds as the parameter
+ * ''SIN'' or ''SINUSOIDAL'': makes a sinusoidal transition and takes the duration in seconds as the parameter
+ * ''ACCEL'' or ''ACCELERATE'': makes an accelerated transition and takes the duration in seconds as the parameter
+ * ''DECEL'' or ''DECELERATE'': makes a decelerated transition and takes the duration in seconds as the parameter
+ * ''ACCEL_FAC'' or ''ACCELERATE_FACTOR'': makes an accelerated transition and takes the duration and the factor as the parameters
+ * ''DECEL_FAC'' or ''DECELERATE_FACTOR'': makes a decelerated transition and takes the duration and the factor as the parameters
+ * ''SIN_FAC'' or ''SINUSOIDAL_FACTOR'': makes a sinusoidal transition and takes the duration and the factor as the parameters
+ *
+
+after: "animation,state0";
+
+
+This is how to add the bounce animation. To return the blue rectangle to its initial position with a ''BOUNCE'' transition: it bounces with a factor of 1.8, six times. This program is only to be used at the end of the first one, so it does not have any signal statement.
+
+
+
+program
+{
+ name: "animation,state0";
+ source: "";
+ signal: "";
+ action: STATE_SET "default" 0.0;
+ target: "rectangle";
+ transition: BOUNCE 5 1.8 6;
+}
+
+
+==== Playing on Signals ====
+
+The programs start when they receive a signal from a source. Edje handles many kind of signals, including mouse events.
+
+edje_player -p myfile.edj
.
+
+
+// To be place in the "part" definition
+description
+{
+ state: "color" 0.0;
+ rel1 {relative: 0.3 0.3;}
+ rel2 {relative: 0.7 0.4;}
+ color: 255 0 0 255;
+}
+
+
+The program is as follows:
+
+
+
+program
+{
+ name: "animation,color";
+ source: "rectangle";
+ signal: "mouse,clicked,1";
+ action: STATE_SET "color" 0.0;
+ target: "rectangle";
+ transition: SIN 2;
+}
+
+
+This starts when the rectangle is left clicked.
+
+If you want to send a signal from your application when you use signals to start transitions, create a program waiting for your own special signal. For example:
+
+
+
+program
+{
+ name: "animation,menu_side,hide";
+ source: "MenuButton";
+ signal: "hide,sidemenu";
+ action: STATE_SET "default" 1.0;
+ target: "menu/side";
+ transition: LINEAR 0.2;
+}
+
+
+This program changes the state of the target named ''animation,menu_side,hide'' to ''"default" 1.0''. It waits for the ''hide,sidemenu'' signal emitted by a source called ''MenuButton''.
+
+
+
+edje_object_signal_emit(layout, "hide,sidemenu", "MenuButton");
+
+
+This statement sends a signal named ''hide,sidemenu'' with a source named ''MenuButton'' to the object called ''layout''.
+
+The ''edje_object_signal_emit'' function emits a signal on an ''Evas_Object'' part of the application.
+
+
+
+edje_object_signal_emit(Evas_Object *obj,
+ const char *emission,
+ const char *source)
+
+
+If you use the Elementary in the application, you can use ''elm_object_signal_emit''. It functions exactly the same way as ''edje_object_signal_emit'' and takes the same parameters.
+
+elm_object_signal_emit
in the Menu Tutorial.
+
+
+map
+{
+ on: 1;
+ smooth: 1;
+ perspective_on: 1;
+ rotation.x: 0;
+ rotation.y: 0;
+ rotation.z: 0;
+}
+
+
+To add a new rotate state with a rotation around any axis, do the following.
+
+
+
+description
+{
+ state: "rotate" 0.0;
+ inherit: "default" 0.0;
+ map.rotation.z: 120;
+}
+
+
+This rotate state inherits all the default state properties, but changes the value of ''map.rotation.z'' from 0° to 120°.
+
+To set a program to run the rotate state, do the following.
+
+
+
+program
+{
+ name: "animation,rotate";
+ source: "rectangle";
+ signal: "mouse,clicked,3";
+ action: STATE_SET "rotate" 0.0;
+ target: "rectangle";
+ transition: LIN 5;
+}
+
+
+This program runs on a right click on the rectangle object.
+
+The complete code of this example is as follows.
+
+
+
+collections
+{
+ group
+ {
+ name: "main";
+ parts
+ {
+ part
+ {
+ name: "rectangle";
+ type: RECT;
+ description
+ {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ rel1 {relative: 0.0 0.0;}
+ rel2 {relative: 0.3 0.1;}
+ map
+ {
+ on: 1;
+ smooth: 1;
+ perspective_on: 1;
+ rotation
+ {
+ z: 0;
+ x: 0;
+ y: 0;
+ }
+ }
+ color: 0 0 255 255;
+ }
+ description
+ {
+ state: "default" 0.5;
+ align: 0.0 0.0;
+ rel1 {relative: 0.7 0.9;}
+ rel2 {relative: 1.0 1.0;}
+ color: 0 0 255 255;
+ }
+ description
+ {
+ state: "color" 0.0;
+ rel1 {relative: 0.3 0.3;}
+ rel2 {relative: 0.7 0.4;}
+ color: 255 0 0 255;
+ }
+ description
+ {
+ state: "rotate" 0.0;
+ inherit: "default" 0.0;
+ map.rotation.z: 120;
+ }
+ }
+ }
+ programs
+ {
+ program
+ {
+ name: "animation,state1";
+ source: "";
+ signal: "load";
+ action: STATE_SET "default" 0.5;
+ target: "rectangle";
+ transition: LINEAR 1;
+ after: "animation,state0";
+ }
+ program
+ {
+ name: "animation,state0";
+ source: "";
+ signal: "";
+ action: STATE_SET "default" 0.0;
+ target: "rectangle";
+ transition: BOUNCE 2 1.8 26;
+ }
+ program
+ {
+ name: "animation,color";
+ source: "rectangle";
+ signal: "mouse,clicked,1";
+ action: STATE_SET "color" 0.0;
+ target: "rectangle";
+ transition: SIN 2;
+ }
+ program
+ {
+ name: "animation,rotate";
+ source: "rectangle";
+ signal: "mouse,clicked,3";
+ action: STATE_SET "rotate" 0.0;
+ target: "rectangle";
+ transition: LIN 5;
+ }
+ }
+ }
+}
+
+
+\\
+------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/event_effect/edje_events.txt b/public_html/data/pages/develop/legacy/program_guide/event_effect/edje_events.txt
new file mode 100644
index 00000000..99fc5072
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/event_effect/edje_events.txt
@@ -0,0 +1,121 @@
+~~Title: Edje Events~~
+{{page>index}}
+----
+===== Edje Events =====
+
+Edje themes have ''program'' sections. These are small sections triggered upon
+the reception of a signal that can execute actions, such as changing the state
+of an edje part and running another program.
+
+For more information on themes and programs, see the [[/develop/legacy/program_guide/edje_pg|Edje
+guide]].
+
+=== Table of Contents ===
+
+ * [[#Basic_Usage,_for_a_Single_Part|Basic Usage, for a Single Part]]
+ * [[#Usual_Usage_for_Parts_Aggregated_in_Groups:_with_Layouts|Usual Usage for Parts Aggregated in Groups: with Layouts]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/edcref.html|Edje Data Collection Reference]]
+
+==== Basic Usage for a Single Part ====
+
+An example ''program'' is shown below:
+
+
+program
+{
+ name: "change_color";
+ signal: "mouse,clicked,*";
+ source: "*";
+ action: SIGNAL_EMIT "got.a.click" "color_changer";
+}
+
+
+This is a program named "change_color", which triggers on mouse clicks on the
+current part and emits a signal "got.a.click". The source is set to
+"color_changer".
+
+To catch this signal from the C side, you need to use either
+''edje_object_signal_callback_add()'' or ''elm_object_signal_callback_add()''.
+The only difference between the two is that the previous one operates on an
+edje object and the latter one on an elementary object. Unless you do not use
+Elementary at all, use the Elementary variant.
+
+The prototypes of these two functions are shown below.
+
+
+void edje_object_signal_callback_add(Edje_Object *obj,
+ const char *emission,
+ const char *source,
+ Edje_Signal_Cb func,
+ void *data
+ )
+
+
+void elm_object_signal_callback_add(Evas_Object *obj,
+ const char *emission,
+ const char *source,
+ Edje_Signal_Cb func,
+ void *data
+ )
+
+
+ * ''obj'' the object which emits the signal that you react on.
+ * ''emission'' is the signal name ("*" acts as a wildcard).
+ * ''source'' is the signal source (the second parameter to ''SIGNAL_EMIT'' above). ("*" acts as a wildcard.)
+ * ''func'' is the callback when ''emission'' and ''source'' match.
+ * ''data'' is a pointer to additional data to pass that is given as the argument to the callback. It is optional and NULL is an acceptable value.
+
+The type of the callback function is defined as follows.
+
+
+void (*Edje_Signal_Cb) (void *data, Evas_Object *obj, const char *emission, const char *source);
+
+
+The callback function definition is similar to
+
+
+void func(void *data, Evas_Object *obj, const char *emission, const char *source);
+
+
+
+ * ''data'' is the same as the data which was given as parameter to either ''edje_object_signal_callback_add()'' or ''elm_object_signal_callback_add()''.
+ * ''obj'' is the object which emits the signal.
+ * ''emission'' is the signal name.
+ * ''source'' is the signal source.
+
+==== Usual Usage for Parts Aggregated in Groups: with Layouts ====
+
+Most of the time, edje and elementary are used together. In particular, you
+can define a group in Edje and use it as a layout in Elementary. This enables
+doing the theming and object placement in Edje while benefiting from the
+higher-level functions of Elementary. This is achieved through ''layouts'',
+which contain several parts and are explained in the
+[[/develop/legacy/program_guide/containers/layout|Layout Container guide]].
+
+Since there are several parts in a layout, it is not possible to use
+''elm_object_signal_callback_add()'' and
+''edje_object_signal_callback_add()'', as they require a single emitter
+object. The solution is to use the dedicated function
+''elm_layout_signal_callback_add()''. Its prototype is shown below.
+
+
+void elm_layout_signal_callback_add(Evas_Object *obj,
+ const char *emission,
+ const char *source,
+ Edje_Signal_Cb func,
+ void *data
+ )
+
+
+''elm_layout_signal_callback_add()'' works very similarly to the functions
+described in the previous section. The only difference is the type of the
+object in the first parameter. For ''elm_layout_signal_callback_add()'' it is
+a pointer to an Evas_Object, which is obtained through ''elm_layout_add()'' as
+described in the [[/develop/legacy/program_guide/containers/layout|Layout Container guide]].
+
+\\
+------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/event_effect/elementary_transitions.txt b/public_html/data/pages/develop/legacy/program_guide/event_effect/elementary_transitions.txt
new file mode 100644
index 00000000..4c9cf94e
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/event_effect/elementary_transitions.txt
@@ -0,0 +1,999 @@
+~~Title: Elementary Animations~~
+{{page>index}}
+----
+===== Elementary Animations =====
+
+Elementary transitions (''Elm_Transit'') allow you to apply various transition
+effects, such as translation and rotation, to Evas objects. Elementary
+transitions are mostly based on Ecore animators, but provide some transition
+methods at a higher level of abstraction. Elementary transitions provide a
+simpler way of animating objects than Ecore animators or Edje animations.
+
+To use Elementary transitions, you must create an ''Elm_Transit'' object and
+define the desired transitions using the methods of this object. After the
+transitions are registered, they will be automatically managed: their callback
+functions will be called for the set duration, and they will be deleted upon
+completion.
+
+Use Elementary transitions only when Edje animations are not sufficient. Edje
+animations are better at handling transitions, have more flexibility, and can
+be manipulated inside themes. The only drawback is that Edje animations have
+their own definition language. If you want to code with the C language, use
+Elementary transitions.
+
+=== Table of Contents ===
+
+ * [[#Getting_Started|Getting Started]]
+ * [[#Adding_Objects_to_an_Animation|Adding Objects to an Animation]]
+ * [[#Animation_Duration|Animation Duration]]
+ * [[#Animation_Acceleration_Mode_("Tween_Mode")|Animation Acceleration Mode ("Tween Mode")]]
+ * [[#Animation_Repeat|Animation Repeat]]
+ * [[#Animation_Auto-reverse|Animation Auto-reverse]]
+ * [[#Transitions|Transitions]]
+ * [[#Built-in_Transitions|Built-in Transitions]]
+ * [[#Translation|Translation]]
+ * [[#Color_Transition|Color Transition]]
+ * [[#Rotation|Rotation]]
+ * [[#Wipe_Effect|Wipe Effect]]
+ * [[#Zoom_Effect|Zoom Effect]]
+ * [[#Resizing_Effect|Resizing Effect]]
+ * [[#Flip_Effect|Flip Effect]]
+ * [[#Resizable_Flip_Effect|Resizable Flip Effect]]
+ * [[#Fade_Effect|Fade Effect]]
+ * [[#Blend_Effect|Blend Effect]]
+ * [[#Combining_Transitions|Combining Transitions]]
+ * [[#Animation_Chain|Animation Chain]]
+ * [[#Animation_Timeline|Animation Timeline]]
+ * [[#Custom_Transition|Custom Transition]]
+
+=== Related Info ===
+
+ * [[/develop/legacy/tutorial/effects_tutorial|Effects Tutorial]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Transit.html|Elementary Transit API]]
+
+^ Elm Transit Examples ^^^^
+|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/transit_example_01_explained.html|Basic Transit Usage]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/transit_example_02_explained.html|Chained Transitions]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/transit_example_03_explained.html|Combined effects and options]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/transit_example_04_c.html|Combined effects over two objects]]|
+
+==== Getting Started ====
+
+The first thing you need to do when creating an transition with
+''Elm_Transit'' is to build your transit object using the
+''elm_transit_add()'' function:
+
+
+Elm_Transit *transit = elm_transit_add();
+
+
+You now have an ''Elm_Transit'' instance that will allow you to perform
+transitions on one or more objects. The transit object holds the information
+about the target objects and the transition effects that will be used. The
+transit object also contains information about animation duration, number of
+repetitions, auto-reverse, and so on. The transit object starts playing as
+soon as the application enters the main loop.
+
+==== Adding Objects to an Animation ====
+
+You can add your Evas objects to your transition using the
+''elm_transit_object_add()'' function:
+
+
+void elm_transit_object_add (Elm_Transit* transit,
+ Evas_Object* obj
+ )
+
+
+ * ''transit'' handles the transition.
+ * ''obj'' is the Evas object to animate.
+
+
+void elm_transit_object_remove(Elm_Transit *transit,
+ Evas_Object *obj
+ )
+
+
+ * ''transit'' handles the transition.
+ * ''obj'' is the Evas object to remove from the transition.
+
+
+Elm_Transit* elm_transit_effect_image_animation_add(Elm_Transit *transit,
+ Eina_List *images
+ )
+
+
+ * ''transit'' handles the transition.
+ * ''images'' is a list of the image paths.
+
+
+char buf[PATH_MAX];
+Eina_List *images = NULL;
+Elm_Transit *transit = elm_transit_add();
+snprintf(buf, sizeof(buf), "%s/images/btn_default.png", PACKAGE_DATA_DIR);
+images = eina_list_append(images, eina_stringshare_add(buf));
+snprintf(buf, sizeof(buf), "%s/images/btn_hover.png", PACKAGE_DATA_DIR);
+images = eina_list_append(images, eina_stringshare_add(buf));
+elm_transit_effect_image_animation_add(transit, images);
+
+
+==== Animation Duration ====
+
+With ''Elm_Transit'', setting the transition duration is mandatory. To set the
+duration, use the ''elm_transit_duration_set()'' function:
+
+
+void elm_transit_duration_set(Elm_Transit *transit,
+ double duration
+ )
+
+
+ * ''transit'' handles the transition.
+ * ''duration'' is the duration in seconds.
+
+
+Elm_Transit *transit = elm_transit_add();
+elm_transit_object_add(transit, my_evas_object);
+elm_transit_effect_rotation_add(transit, 0.0, 360);
+elm_transit_duration_set(transit, 2.0);
+elm_transit_go(transit);
+
+
+To get the duration of the transition, use the ''elm_transit_duration_get()''
+function.
+
+==== Animation Acceleration Mode ("Tween Mode") ====
+
+''Elm_Transit'' supports a number of built-in interpolation methods. By
+default, all interpolations are linear. If you want to change the animation's
+dynamics, use the ''elm_transit_tween_mode_set()'' function:
+
+
+void elm_transit_tween_mode_set(Elm_Transit * transit,
+ Elm_Transit_Tween_Mode tween_mode
+ )
+
+
+ * ''transit'' handles the transition.
+ * ''tween_mode'' is the tween mode of the transition.
+
+
+''tween_mode'' can be one of the following:
+
+ * ''ELM_TRANSIT_TWEEN_MODE_LINEAR'' Constant speed.
+ * ''ELM_TRANSIT_TWEEN_MODE_SINUSOIDAL'' Starts slow, increase speed over time, then decrease again and stop slowly, v1 being a power factor.
+ * ''ELM_TRANSIT_TWEEN_MODE_DECELERATE'' Starts fast and decrease speed over time, v1 being a power factor.
+ * ''ELM_TRANSIT_TWEEN_MODE_ACCELERATE'' Starts slow and increase speed over time, v1 being a power factor.
+ * ''ELM_TRANSIT_TWEEN_MODE_DIVISOR_INTERP'' Start at gradient v1, interpolated via power of v2 curve.
+ * ''ELM_TRANSIT_TWEEN_MODE_BOUNCE'' Start at 0.0 then "drop" like a ball bouncing to the ground at 1.0, and bounce v2 times, with decay factor of v1.
+ * ''ELM_TRANSIT_TWEEN_MODE_SPRING'' Start at 0.0 then "wobble" like a spring rest position 1.0, and wobble v2 times, with decay factor of v1.
+ * ''ELM_TRANSIT_TWEEN_MODE_BEZIER_CURVE'' Since 1.13: Follow the cubic-bezier curve calculated with the control points (x1, y1), (x2, y2)
+
+
+To get the current tween mode, use the ''elm_transit_tween_mode_get()''
+function.
+
+==== Animation Repeat ====
+
+To set a transition to repeat, use the ''elm_transit_repeat_times_set()''
+function:
+
+
+void elm_transit_repeat_times_set(Elm_Transit * transit,
+ int repeat
+ )
+
+
+ * ''transit'' is the transition you want to repeat.
+ * ''repeat'' is the number of times the transition repeats.
+
+
+Elm_Transit *transit = elm_transit_add();
+elm_transit_object_add(transit, my_evas_object);
+elm_transit_effect_rotation_add(transit, 0.0, 360);
+elm_transit_duration_set(transit, 2.0);
+elm_transit_repeat_set(transit, 3.0);
+elm_transit_go(transit);
+
+
+==== Animation Auto-reverse ====
+
+''Elm_Transit'' provides a helper function for automatically reversing the
+transition once it finishes:
+
+
+void elm_transit_auto_reverse_set(Elm_Transit * transit,
+ Eina_Bool reverse
+ )
+
+
+ * ''transit'' is the transition you want to reverse.
+ * ''reverse'' is the reverse state. If the reverse state is set to ''EINA_TRUE'', this function will perform the same transition backwards as soon as the first transition is complete.
+
+
+Elm_Transit *transit = elm_transit_add();
+elm_transit_object_add(transit, my_evas_object);
+elm_transit_effect_rotation_add(transit, 0.0, 360);
+elm_transit_duration_set(transit, 2.0);
+elm_transit_auto_reverse_set(transit, EINA_TRUE);
+elm_transit_go(transit);
+
+
+To determine whether the auto-reverse mode is enabled, use the
+''elm_transit_auto_reverse_get()'' function.
+
+==== Transitions ====
+
+We distinguish two main transition types:
+
+ * Transitions that are applied to the properties of objects, such as position, size, angle, and color.
+ * Transitions from one object to another, where the first object is hidden to let the second one appear.
+
+
+All transitions are based on the same principle: we set the starting and the
+ending values for the properties we want to animate, we then set the lifespan
+of the animation, and finally we inquire the preferred interpolation method
+(such as linear, acceleration, or bounce).
+
+You must declare the transitions after the parent window has been created,
+since the transition effects make use of the geometric properties of the
+parent window. If the parent window does not yet exist when calculating the
+interpolation, the interpolation may end up being based on wrong information.
+
+==== Built-in Transitions ====
+
+''Elm_Transit'' provides several built-in transition definitions that are
+useful for the most common cases, so you that will not have to code them from
+scratch.
+
+All these built-in effects are implemented as follows:
+
+
+Elm_Transit *transit = elm_transit_add();
+elm_transit_effect_add(transit,
+ elm_transit_effect_translation_op,
+ elm_transit_effect_translation_context_new(),
+ elm_transit_effect_translation_context_free);
+
+ * ''transit'': The ''Elm_Transit'' object that contains the target Evas objects and all the information needed to setup the transition.
+ * ''elm_transit_effect_translation_op'': The callback function that performs the transition (resizing interpolation in this example).
+ * ''elm_transit_effect_translation_context_new()'': The callback function that returns the context used in the transition for calculations. In this example, the context is the coordinates of the before and after objects.
+ * ''elm_transit_effect_translation_context_free'': The callback function that frees up the memory once the transition is complete.
+
+All the definitions above can be rewritten as follows:
+
+
+
+Elm_Transit *transit = elm_transit_add();
+elm_transit_effect_translation_add(transit, from_x, from_y, to_x, to_y);
+
+
+=== Translation ===
+
+To perform a translation on an Evas object, use the following method:
+
+
+Elm_Transit_Effect* elm_transit_effect_translation_add(Elm_Transit * transit,
+ Evas_Coord from_dx,
+ Evas_Coord from_dy,
+ Evas_Coord to_dx,
+ Evas_Coord to_dy
+ )
+
+
+ * ''transit'' is the transit object that contains (among other things) all the Evas objects subject to the translation.
+ * ''from_dx'': The starting X coordinate (source).
+ * ''from_dy'': The starting Y coordinate (source).
+ * ''to_dx'': The ending X coordinate (destination).
+ * ''to_dy'': The ending Y coordinate (destination).
+
+The following example shows how to slide an Evas object (a rectangle) on a
+45-degree diagonal, from bottom-left to top-right, at a constant speed, and in
+1 second:
+
+
+Elm_Transit *transit = elm_transit_add();
+elm_transit_object_add(transit, rectangle);
+elm_transit_effect_translation_add(transit, 0, 0, 280, 280);
+elm_transit_duration_set(transit, 1);
+elm_transit_go(transit);
+
+
+=== Color Transition ===
+
+Color transitions allow you to dynamically change the color of Evas objects.
+The first argument is the transit object, while the other arguments will be
+used to define the color transition using RGB colors. There is also an alpha
+channel that controls the opacity of the color (the background of the object,
+not the object itself).
+
+
+
+Elm_Transit_Effect * elm_transit_effect_color_add(Elm_Transit * transit,
+ unsigned int from_r,
+ unsigned int from_g,
+ unsigned int from_b,
+ unsigned int from_a,
+ unsigned int to_r,
+ unsigned int to_g,
+ unsigned int to_b,
+ unsigned int to_a
+ )
+
+
+
+ * ''transit'': The transit object that contains (among other things) all the Evas objects subject to the translation.
+ * ''from_r'': The start value for "Red".
+ * ''from_g'': The start value for "Green".
+ * ''from_b'': The start value for "Blue".
+ * ''from_a'': The start value for "Alpha".
+ * ''to_r'': The end value for "Red".
+ * ''to_g'': The end value for "Green".
+ * ''to_b'': The end value for "Blue".
+ * ''to_a'': The end value for "Alpha".
+
+The following example shows how to transit a rectangle from red to blue in 3
+seconds:
+
+
+Elm_Transit *transit = elm_transit_add();
+elm_transit_object_add(transit, rectangle);
+elm_transit_effect_color_add(transit, // Target object
+ 255, 0, 0, 255, // From color
+ 0, 0, 255, 255); // To color
+elm_transit_duration_set(transit, 3);
+elm_transit_go(transit);
+
+
+=== Rotation ===
+
+
+Elm_Transit_Effect* elm_transit_effect_rotation_add(Elm_Transit * transit,
+ float from_degree,
+ float to_degree
+ )
+
+
+ * ''transit'': The transit object that contains (among other things) all the Evas objects subject to the translation.
+ * ''from_degree'': The start degree of rotation.
+ * ''to_degree'': The end degree of rotation.
+
+This function can be used to perform a rotation on any Evas object. It works
+the same way as the other transit effects and takes two arguments for the
+starting and ending angles. Note that if you apply a rotation on multiple
+objects, they will individually mill around and not act as a group. If you
+want several objects to revolve around a common point, you must encapsulate
+the objects into a single parent object and apply the rotation to the parent
+object. The following example shows how to achieve this:
+
+
+// Parent container
+Evas_Object *parent = elm_box_add(my_window);
+evas_object_show(parent);
+elm_box_horizontal_set(parent, EINA_TRUE);
+elm_box_homogeneous_set(parent, EINA_TRUE);
+
+// Button 1
+Evas_Object *btn1 = elm_button_add(parent);
+elm_object_text_set(btn1, "Btn1");
+elm_box_pack_start(parent, btn1);
+evas_object_show(btn1);
+
+// Button 2
+Evas_Object *btn2 = elm_button_add(parent);
+elm_object_text_set(btn2, "Btn2");
+elm_box_pack_end(parent, btn2);
+evas_object_show(btn2);
+
+// Make the parent container do a 360 degrees spin
+Elm_Transit *transit = elm_transit_add();
+elm_transit_object_add(transit, parent);
+elm_transit_effect_rotation_add(transit, 0.0, 360);
+elm_transit_duration_set(transit, 2.0);
+elm_transit_go(transit);
+
+
+=== Wipe Effect ===
+
+The wipe effect is designed to dynamically hide or show any element on the
+scene.
+
+
+Elm_Transit_Effect* elm_transit_effect_wipe_add(Elm_Transit * transit,
+ Elm_Transit_Effect_Wipe_Type type,
+ Elm_Transit_Effect_Wipe_Dir dir
+ )
+
+
+In addition to the ''Elm_Transit'' instance passed as the first argument, the
+function takes the following arguments:
+
+ * ''type'': The wipe type ''Elm_Transit_Effect_Wipe_Type'' defines whether to show or hide the target elements. The value can be one of the following:
+ * ''ELM_TRANSIT_EFFECT_WIPE_TYPE_HIDE'': Hide the object during the animation.
+ * ''ELM_TRANSIT_EFFECT_WIPE_TYPE_SHOW'': Show the object during the animation.
+ * ''dir'': The wipe direction ''Elm_Transit_Effect_Wipe_Dir'' defines in which direction the target will progressively appear or disappear. The value can be one of the following:
+ * ''ELM_TRANSIT_EFFECT_WIPE_DIR_LEFT''
+ * ''ELM_TRANSIT_EFFECT_WIPE_DIR_RIGHT''
+ * ''ELM_TRANSIT_EFFECT_WIPE_DIR_UP''
+ * ''ELM_TRANSIT_EFFECT_WIPE_DIR_DOWN''
+
+The following example shows how to make an object disappear progressively from
+left to right:
+
+
+Elm_Transit *transit = elm_transit_add();
+elm_transit_object_add(transit, my_evas_object);
+elm_transit_effect_wipe_add(transit,
+ ELM_TRANSIT_EFFECT_TYPE_HIDE,
+ ELM_TRANSIT_EFFECT_WIPE_DIR_RIGHT);
+elm_transit_duration_set(transit, 2.0);
+elm_transit_go(transit);
+
+
+=== Zoom Effect ===
+
+''Elm_Transit'' provides a zoom function.
+
+
+Elm_Transit_Effect* elm_transit_effect_zoom_add(Elm_Transit * transit,
+ float from_rate,
+ float to_rate
+ )
+
+
+
+ * ''transit'': The transit object that contains (among other things) all the Evas objects subject to the translation.
+ * ''from_rate'': The starting level of the zoom.
+ * ''to_rate'': The ending level of the zoom.
+
+The ''from_rate'' argument defines the scale of the target objects at the
+beginning of the animation. A value of 1 represents the initial scale of the
+objects.
+
+Setting the value of the ''to_rate'' argument to 2 will double the size of the
+target objects (double the width and double the height). When using this
+effect, the width and height of a target object will remain proportional to
+one another. If you want to customize the zoom effect, use the
+''elm_transit_effect_resizing_add()'' function.
+
+The following example shows how to implement a zoom-out transition. At the end
+of the 2-secondstransition, the animated object will be half its original
+size.
+
+
+Elm_Transit *transit = elm_transit_add();
+elm_transit_object_add(transit, my_evas_object);
+elm_transit_effect_zoom_add(transit, 1, 0.5);
+elm_transit_duration_set(transit, 2.0);
+elm_transit_go(transit);
+
+
+=== Resizing Effect ===
+
+The resizing effect allows you to design an interpolation of the width and
+height attributes of one or more target elements.
+
+
+Elm_Transit_Effect* elm_transit_effect_resizing_add(Elm_Transit * transit,
+ Evas_Coord from_w,
+ Evas_Coord from_h,
+ Evas_Coord to_w,
+ Evas_Coord to_h)
+ )
+
+
+
+ * ''transit'': The transit object that contains (among other things) all the Evas objects subject to the translation.
+ * ''from_w'': The starting width.
+ * ''from_h'': The starting height.
+ * ''to_w'': The ending width.
+ * ''to_h'': The ending height.
+
+The ''from_w'' and ''from_h'' arguments define the size at the beginning of
+the animation. The ''to_w'' and ''to_h'' arguments define the size at the end.
+
+
+Evas_Coord w, h;
+evas_object_geometry_get(my_evas_object, NULL, NULL, &w, &h);
+
+Elm_Transit *transit = elm_transit_add();
+elm_transit_object_add(transit, my_evas_object);
+elm_transit_effect_resize_add(transit, // Transition object
+ w, h, // Original sizing
+ h, w); // Target sizing
+elm_transit_duration_set(transit, 2.0);
+elm_transit_go(transit);
+
+
+=== Flip Effect ===
+
+This transition combines the target Evas objects in pairs, so that one object
+will show up while the other one disappears. This association relates the even
+objects in the transit list of objects with the odd ones. The even objects are
+shown at the beginning of the animation, and the odd objects shown when the
+transition is complete. In other words, the effect applies to each pair of
+objects in the order in which they are listed in the transit list of objects.
+
+The flip effect itself is a pseudo-3D effect where the first object in the
+pair is the front object and the second one is the back object. When the
+transition launches, the front object rotates around a preferred axis in order
+to let the back object take its place.
+
+
+
+Elm_Transit_Effect* elm_transit_effect_flip_add(Elm_Transit * transit,
+ Elm_Transit_Effect_Flip_Axis axis,
+ Eina_Bool cw
+ )
+
+
+ * ''transit'' is the transit object.
+ * ''axis'' is the prefered axis of rotation:
+ * ''ELM_TRANSIT_EFFECT_FLIP_AXIS_X''
+ * ''ELM_TRANSIT_EFFECT_FLIP_AXIS_Y''
+ * ''cw'' is the direction of the rotation:
+ * ''EINA_TRUE'' is clockwise.
+ * ''EINA_FALSE'' is counterclockwise.
+
+
+The following example shows how to create a coin that flips indefinitely. Note
+that we use images as Elementary widgets for demonstration purposes. You can
+use the ''elm_transit_effect_image_animation_add()'' function if you do not
+want to bother creating widgets.
+
+
+// Coin Heads
+Evas_Object *coin_heads = elm_image_add(win);
+if (!elm_image_file_set(coin_heads, IMG_DIR"/coin_heads.png", NULL))
+ printf("error: could not load image");
+elm_win_resize_object_add(win, coin_heads);
+
+// Coin Tails
+Evas_Object *coin_tails = elm_image_add(win);
+if (!elm_image_file_set(coin_tails, IMG_DIR"/coin_tails.png", NULL))
+ printf("error: could not load image");
+elm_win_resize_object_add(win, coin_tails);
+
+// Transition definition
+Elm_Transit *transit = elm_transit_add();
+elm_transit_object_add(transit, coin_heads);
+elm_transit_object_add(transit, coin_tails);
+elm_transit_duration_set(transit, 2.0);
+elm_transit_auto_reverse_set(transit, EINA_TRUE);
+elm_transit_repeat_times_set(transit, -1);
+elm_transit_effect_flip_add(transit, ELM_TRANSIT_EFFECT_FLIP_AXIS_X, EINA_TRUE);
+elm_transit_go(transit);
+
+
+{{ :event_effect_elementary_transitions_coin_flip.png }}
+
+=== Resizable Flip Effect ===
+
+In the flip example above, we used two objects that have the same size.
+However, you may sometimes want to flip from one object to another object with
+different size attributes. The most common example would be using buttons with
+dimensions that depend on their contents (such as labels). If you decide to
+use the classic ''elm_transit_effect_flip_add()'' function, the size of the
+object will change at the moment one object becomes completely hidden and the
+other one begins to show up. If you wish to interpolate the size attributes as
+well, use the ''elm_transit_effect_resizable_flip_add()'' function:
+
+
+Elm_Transit_Effect* elm_transit_effect_resizable_flip_add(Elm_Transit * transit,
+ Elm_Transit_Effect_Flip_Axis axis,
+ Eina_Bool cw
+ )
+
+
+ * ''transit'' is the transit object.
+ * ''axis'' is the preferred axis of rotation:
+ * ''ELM_TRANSIT_EFFECT_FLIP_AXIS_X''
+ * ''ELM_TRANSIT_EFFECT_FLIP_AXIS_Y''
+ * ''cw'' is the direction of the rotation:
+ * ''EINA_TRUE'' is clockwise.
+ * ''EINA_FALSE'' is counterclockwise.
+
+This function works the exact same way as the standard flip effect function.
+
+=== Fade Effect ===
+
+This effect is used to transition from one Evas object to another one using a
+fading effect: the first object will slowly disappear to let the second object
+take its place.
+
+
+Elm_Transit_Effect* elm_transit_effect_fade_add(Elm_Transit *transit)
+
+
+This effect is applied to each pair of objects in the order in which they are
+listed in the transit list of objects. The first object in the pair will be
+the before object and the second one will be the after object.
+
+Building on the coin flip example, the following example shows how to fade out
+one face of the coin while fading in the other face:
+
+
+Elm_Transit *transit = elm_transit_add();
+elm_transit_object_add(transit, coin_heads);
+elm_transit_object_add(transit, coin_tails);
+elm_transit_duration_set(transit, 2.0);
+elm_transit_effect_fade_add(transit);
+elm_transit_go(transit);
+
+
+If you simply want to hide an object with a fade transition, consider using a
+transparent after object.
+
+=== Blend Effect ===
+
+Another transition involving at least two Evas objects is the blend effect.
+This transition makes the before object blurry before the after object
+appears.
+
+
+elm_transit_effect_blend_add(Elm_Transit *transit)
+
+
+The argument is the transition target of the blend effect.
+
+Building on the coin flip example, the following example shows how to blur out
+one face of the coin while blurring in the other face:
+
+
+Elm_Transit *transit = elm_transit_add();
+elm_transit_object_add(transit, coin_heads);
+elm_transit_object_add(transit, coin_tails);
+elm_transit_duration_set(transit, 2.0);
+elm_transit_effect_blend_add(transit);
+elm_transit_go(transit);
+
+
+If you simply want to hide an object with a blur transition, consider using a
+transparent after object.
+
+==== Combining Transitions ====
+
+To use multiple transitions at the same time on the same objects, simply
+declare the transitions one after the other.
+
+Building on the coin flip example, the following example shows how to roll the
+coin on the ground using a rotation and a translation effect:
+
+
+Evas_Object *coin_heads = elm_image_add(parent);
+if (!elm_image_file_set(coin_heads, IMG_DIR"/coin_heads.png", NULL))
+ printf("error: could not load image");
+evas_object_resize(coin_heads, 100, 100);
+evas_object_show(coin_heads);
+
+Elm_Transit *transit = elm_transit_add();
+elm_transit_object_add(transit, coin_heads);
+elm_transit_duration_set(transit, 5.0);
+elm_transit_effect_translation_add(transit, 0, 0, 3.1415 * 2 * 100, 0);
+elm_transit_effect_rotation_add(transit, 0, 360);
+elm_transit_go(transit);
+
+
+==== Animation Chain ====
+
+Now that we have listed all the effects that can be implemented using
+''Elm_Transit'', we will see how to chain transitions into sequences. To
+create complex, chained animations without worrying about synchronization
+between the transitions, use the ''elm_transit_chain_transit_add()'' function.
+This function takes as arguments two ''Elm_Transit'' objects and will
+automatically take care of the chaining for you: the second transition will
+start as soon as the first transition is finished.
+
+The following example shows how to move a datetime widget on a square
+trajectory:
+
+
+Evas_Object *dt = elm_datetime_add(parent);
+evas_object_resize(dt, 350, 50);
+evas_object_show(dt);
+
+// The first transition
+Elm_Transit *t1 = elm_transit_add();
+elm_transit_object_add(t1, dt);
+elm_transit_duration_set(t1, 2);
+elm_transit_effect_translation_add(t1, 0, 0, 100, 0);
+
+// The second transition
+Elm_Transit *t2 = elm_transit_add();
+elm_transit_object_add(t2, dt);
+elm_transit_duration_set(t2, 2);
+elm_transit_effect_translation_add(t2, 100, 0, 100, 100);
+
+// The third transition
+Elm_Transit *t3 = elm_transit_add();
+elm_transit_object_add(t3, dt);
+elm_transit_duration_set(t3, 2);
+elm_transit_effect_translation_add(t3, 100, 100, 0, 100);
+
+// The fourth transition
+Elm_Transit *t4 = elm_transit_add();
+elm_transit_object_add(t4, dt);
+elm_transit_duration_set(t4, 2);
+elm_transit_effect_translation_add(t4, 0, 100, 0, 0);
+
+// Chaining the transitions
+elm_transit_chain_transit_add(t1, t2);
+elm_transit_chain_transit_add(t2, t3);
+elm_transit_chain_transit_add(t3, t4);
+
+// Starting the transitions
+elm_transit_go(t1);
+
+
+Note that we cannot use transition chaining to make a loop animation, since
+the transit object is automatically destroyed as soon as the transition
+completes. Therefore, you cannot do something like this:
+
+
+elm_transit_chain_transit_add(t4, t1);
+
+
+To create a looped animation chain, you have to use low-level components
+provided by the Ecore and Evas transition libraries, or you can use the
+''elm_transit_del_cb_set()'' function to define a callback function for when a
+transition gets deleted. This way, you could recreate your objects and
+reiterate the transition chain as soon as the last transition ends.
+
+
+void elm_transit_del_cb_set(Elm_Transit * transit,
+ Elm_Transit_Del_Cb cb,
+ void * data
+ )
+
+
+ * ''transit'' is the transition object.
+ * ''cb'' is the callback function to run on transition delete.
+ * ''data'' is the data to pass to the callback function.
+
+You can severe the chain relationship between two transits by using the
+''elm_transit_chain_transit_del()'' function:
+
+
+void elm_transit_chain_transit_del(Elm_Transit * transit,
+ Elm_Transit * chain_transit
+ )
+
+
+ * ''transit'' is the first transition in the chain.
+ * ''chain_transit'' is the second transition in the chain.
+
+To get the current chain transit list, use the
+''elm_transit_chain_transits_get()'' function.
+
+==== Animation Timeline ====
+
+After you have defined all the properties that define your transition, start
+the transition with the ''elm_transit_go()'' function:
+
+
+void elm_transit_go(Elm_Transit *transit)
+
+
+You can maintain full control over the execution process even after the
+transition has started. You can pause the transition by setting the paused
+argument to ''EINA_TRUE'':
+
+
+elm_transit_paused_set(Elm_Transit * transit,
+ Eina_Bool paused
+ )
+
+
+You can resume the transition by using the same method but setting the paused
+argument to ''EINA_FALSE''. If you want to know whether the transition is
+currently paused, use the ''elm_transit_paused_get()'' function.
+
+You can remain informed about the present transition flow and get the current
+frame by using the ''elm_transit_progress_value_get()'' function. This
+function will return the timeline position of the animation, ranging between
+0.0 (start) and 1.0 (end).
+
+==== Custom Transition ====
+
+''Elm_Transit'' provides a standard function for defining any effect of your
+choosing that will be applied to some context data:
+
+
+elm_transit_effect_add(Elm_Transit * transit,
+ Elm_Transit_Effect_Transition_Cb transition_cb,
+ Elm_Transit_Effect * effect,
+ Elm_Transit_Effect_End_Cb end_cb
+ )
+
+
+ * ''transit'' is the transition target of the new effect.
+ * ''transition_cb'' is the transition callback function.
+ * ''effect'' is the new effect.
+ * ''end_cb'' is the callback function to call at the end of the effect.
+
+As described earlier in this programming guide, this function embraces three
+callbacks that will allow you to define every aspects of your transition from
+its creation to its deletion. The following is an example of how to build a
+custom resizing animation.
+
+First, we define a structure capable of holding the context information about
+resizing an Evas object:
+
+
+typedef struct
+{
+ struct _size
+ {
+ Evas_Coord w, h;
+ }
+ from, to;
+}
+Custom_Effect;
+
+
+We can now implement our custom resizing callback function. This function
+takes the following arguments:
+
+ * ''data'' is the context data that holds the custom properties of our transition, which are used as parameters to calculate the interpolation.
+ * ''transit'' is the transit object that contains the list of our Evas objects to animate and all the information about duration, auto-reverse, looping, and so on.
+ * ''progress'' is the progress (position along the animation timeline) that ranges from 0.0 to 1.0 and allows us to calculate the desired interpolation for each frame.
+
+
+static void
+_custom_op(void *data, Elm_Transit *transit, double progress)
+{
+ if (!data) return;
+ Evas_Coord w, h;
+ Evas_Object *obj;
+ const Eina_List *elist;
+ Custom_Effect *custom_effect = data;
+ const Eina_List *objs = elm_transit_objects_get(transit);
+ if (progress < 0.5)
+ {
+ h = custom_effect->from.h + (custom_effect->to.h * progress * 2);
+ w = custom_effect->from.w;
+ }
+ else
+ {
+ h = custom_effect->from.h + custom_effect->to.h;
+ w = custom_effect->from.w + (custom_effect->to.w * (progress - 0.5) * 2);
+ }
+ EINA_LIST_FOREACH(objs, elist, obj)
+ evas_object_resize(obj, w, h);
+}
+
+
+The callback function above resizes our Evas objects in two steps. During the
+first half of the transition, only the height changes, while the width remains
+the same. During the second half, it is the other way around until we get to
+the desired size.
+
+You must then define the context used by your animation:
+
+
+static void*
+_custom_context_new(Evas_Coord from_w, Evas_Coord from_h, Evas_Coord to_w, Evas_Coord to_h)
+{
+ Custom_Effect *custom_effect;
+
+ custom_effect = calloc(1, sizeof(Custom_Effect));
+ if (!custom_effect) return NULL;
+
+ custom_effect->from.w = from_w;
+ custom_effect->from.h = from_h;
+ custom_effect->to.w = to_w - from_w;
+ custom_effect->to.h = to_h - from_h;
+
+ return custom_effect;
+}
+
+
+You must define the function that will take care of deleting all the context
+objects used by your custom transition and free up the allocated memory:
+
+
+static void
+_custom_context_free(void *data, Elm_Transit *transit __UNUSED__)
+{
+ free(data);
+}
+
+
+Finally, apply your custom transition to your ''Elm_Transit'' object:
+
+
+Elm_Transit *transit = elm_transit_add();
+elm_transit_effect_add(transit,
+ _custom_op,
+ _custom_context_new(),
+ _custom_context_free);
+
+
+If you want to delete an effect from your effects list, use the
+''elm_transit_effect_del()'' function.
+
+\\
+^ Elm Transit Examples ^^^^^
+|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/transit_example_01_explained.html|Basic Transit Usage]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/transit_example_02_explained.html|Chained Transitions]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/transit_example_03_explained.html|Combined effects and options]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/transit_example_04_c.html|Combined effects over two objects]]|
+
+------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/event_effect/evas_events.txt b/public_html/data/pages/develop/legacy/program_guide/event_effect/evas_events.txt
new file mode 100644
index 00000000..6784baa1
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/event_effect/evas_events.txt
@@ -0,0 +1,69 @@
+~~Title: Evas Events~~
+{{page>index}}
+----
+===== Evas Events =====
+
+Evas events happen on a canvas as a whole. This kind of events are too
+low-level for writing applications and are most often used when writing the
+graphical toolkit itself.
+
+=== Table of Contents ===
+
+ * [[#Adding_Callbacks_to_Canvases:_evas_event_callback_add/del|Adding Callbacks to Canvases: evas_event_callback_add/del]]
+ * [[#Types_of_Evas_Events|Types of Evas Events]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Canvas__Events.html|Canvas Events API]] ([[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas.html#gad64cde0da38a60e7cb7905b3ab216968|Evas API]])
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/Example_Evas_Events.html|Evas events example]]
+
+==== Adding Callbacks to Canvases: evas_event_callback_add/del ====
+
+The callbacks are added with ''evas_event_callback_add()''. Its prototype is
+
+
+void evas_event_callback_add(Evas* e,
+ Evas_Callback_Type type,
+ Evas_Event_Cb func,
+ const void* data
+ )
+
+
+ * ''e'' is the evas canvas on which the events happen. If needed, it can be
+obtained from an Evas_Object through the ''evas_object_evas_get()'' function.
+ * ''type'' is the type of event that triggers the callback (the list is in the next section).
+ * ''func'' is the function that is called.
+ * ''data'' is a pointer to additional data that is given as an argument to the callback. It is optional and ''NULL'' is an acceptable value.
+
+The type of the callback function is defined as follows.
+
+
+void (* Evas_Event_Cb) (void *data, Evas *e, void *event_info)
+
+
+The callback function definition is similar to
+
+
+void some_evas_object_event_cb(void *data, Evas *e, void *event_info);
+
+
+ * ''data'' is the same as the data which was given as the parameter to ''evas_event_callback_add()''.
+ * ''e'' is the canvas on which the event occurred.
+ * ''event_info'' is data which depends on the object type and the event at play. The documentation must be read for each such event.
+
+==== Types of Evas Events ====
+
+The values are defined from the ''Evas_Callback_Type'' enum. Some of them are
+not used for ''evas_event_callback_add()'' but are used in the previous
+section.
+
+ * ''EVAS_CALLBACK_CANVAS_FOCUS_IN '': Image has been preloaded.
+ * ''EVAS_CALLBACK_CANVAS_FOCUS_OUT '': Canvas got focus as a whole.
+ * ''EVAS_CALLBACK_RENDER_FLUSH_PRE '': Canvas lost focus as a whole.
+ * ''EVAS_CALLBACK_RENDER_FLUSH_POST '': Called just before rendering is updated on the canvas target.
+ * ''EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN '': Called just after rendering is updated on the canvas target.
+ * ''EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT'': Canvas object got focus.
+
+\\
+--------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/event_effect/evas_map_animations.txt b/public_html/data/pages/develop/legacy/program_guide/event_effect/evas_map_animations.txt
new file mode 100644
index 00000000..56e0ed7f
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/event_effect/evas_map_animations.txt
@@ -0,0 +1,577 @@
+~~Title: Evas Map Effects~~
+{{page>index}}
+----
+===== Evas Map Effects =====
+
+Evas Map animations allow you to apply transformations to all types of objects
+by way of UV mapping.
+
+In UV mapping, you map points in the source object to 3D space positions in
+the target object. This allows for rotation, perspective, scale, and other
+transformation effects, depending on the map. In addition, each map point can
+carry a multiplier color, which, if properly calculated, can be used to apply
+3D shading effects on the target object.
+
+Evas provides both raw and easy-to-use functions for UV mapping. The raw
+functions allow you to create UV maps outside Evas and import them into your
+application, for example by loading them from an external file. The
+easy-to-use functions allow you to create UV maps directly in Evas by
+calculating the map points based on high-level parameters, such as rotation
+angle and ambient light.
+
+=== Table of Contents ===
+
+ * [[#Map_Points|Map Points]]
+ * [[#Utility_Functions|Utility Functions]]
+ * [[#Zoom|Zoom]]
+ * [[#3D_Maps|3D Maps]]
+ * [[#3D_Rotation_and_Perspective|3D Rotation and Perspective]]
+ * [[#Color_and_Lighting|Color and Lighting]]
+ * [[#Mapping|Mapping]]
+ * [[#Lighting|Lighting]]
+ * [[#Alpha_Channel|Alpha Channel]]
+ * [[#Smoothing|Smoothing]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Object__Group__Map.html | Evas Map API]]
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/Example_Evas_Map_Overview.html|Evas Map Example]]
+
+==== Map Points ====
+
+A map consists of a set of points. (Currently, only four points are
+supported.) Each point contains X and Y canvas coordinates that can be used to
+alter the geometry of the mapped object, and a Z coordinate that indicates the
+depth of the point. The Z coordinate does not normally affect the map, but
+several utility functions use it to calculate the right position of the point
+given the other parameters.
+
+First, create an ''Evas_Map'' object using the ''evas_map_new()'' function.
+This function creates the specified number of map points (currently only up to
+four points). Each point is empty and ready to be modified with ''Evas_Map''
+functions.
+
+
+Evas_Map *m = evas_map_new(4);
+
+
+If you want to get the size (number of points) of an existing map, use the
+''evas_map_count_get()'' function.
+
+To set the coordinates for each point, use the ''evas_map_point_coord_set()''
+function:
+
+
+evas_map_point_coord_set(Evas_Map *m, int idx, Evas_Coord x, Evas_Coord y, Evas_Coord z)
+
+
+The following example shows a common way to define a map that matches the
+geometry of a rectangle (a square in this case):
+
+
+evas_map_point_coord_set(m, 0, 100, 100, 0);
+evas_map_point_coord_set(m, 1, 300, 100, 0);
+evas_map_point_coord_set(m, 2, 300, 300, 0);
+evas_map_point_coord_set(m, 3, 100, 300, 0);
+
+
+{{ :event_effect_evas_map_1.png }}
+
+The following examples all produce the same result as the above example, but
+with simpler code:
+
+ * To create a rectangle map using the starting X and Y coordinates combined with width and height, use the ''evas_map_util_points_populate_from_geometry()'' function:
+
+
+evas_map_util_points_populate_from_geometry(Evas_Map *m, Evas_Coord x,
+Evas_Coord y, Evas_Coord w, Evas_Coord h, Evas_Coord z)
+
+
+The following example creates the same map as above:
+
+
+evas_map_util_points_populate_from_geometry(m, 100, 100, 200, 200, 0);
+
+
+ * To create a map based on the geometry of a given object, use the ''evas_map_util_points_populate_from_object()'' or ''evas_map_util_points_populate_from_object_full()'' function. The former sets the Z coordinate of all points to 0, whereas the latter allows you to define the same custom Z coordinate for all points:
+
+
+evas_map_util_points_populate_from_object(Evas_Map *m, const Evas_Object *obj)
+
+
+evas_map_util_points_populate_from_object_full(Evas_Map *m, const Evas_Object *obj, Evas_Coord z)
+
+The following example creates the same map as above:
+
+
+Evas_Object *o;
+evas_object_move(o, 100, 100);
+evas_object_resize(o, 200, 200);
+evas_map_util_points_populate_from_object(m, o);
+// OR
+evas_map_util_points_populate_from_object_full(m, o, 0);
+
+
+You can apply several effects to an object by simply setting each point of the
+map to the appropriate coordinates. The following example shows how to create
+a simulated perspective:
+
+{{ :event_effect_evas_map_2.png }}
+
+
+evas_map_point_coord_set(m, 0, 100, 100, 0);
+evas_map_point_coord_set(m, 1, 250, 120, 0);
+evas_map_point_coord_set(m, 2, 250, 280, 0);
+evas_map_point_coord_set(m, 0, 100, 300, 0);
+
+
+In the above example, the Z coordinate is unused: when setting points by hand,
+the Z coordinate is irrelevant.
+
+If you want to get the actual coordinates of a map, use the
+''evas_map_point_coord_get()'' function:
+
+
+evas_map_point_coord_get(const Evas_Map *m, int idx, Evas_Coord *x, Evas_Coord *y, Evas_Coord *z)
+
+
+After you have defined the map points, apply them to your map for
+transformation:
+
+
+evas_object_map_set(o, m);
+evas_object_map_enable_set(o, EINA_TRUE);
+
+
+Finally, after you are done with the map, release the memory allocated to it
+using the ''evas_map_free()'' function:
+
+
+evas_map_free(m);
+
+
+The utility functions described in the next section allow you to perform the
+above tasks with less coding work.
+
+==== Utility Functions ====
+
+Utility functions take an already configured map and allow you to easily
+modify it to produce specific effects. For example, to rotate an object around
+its center, you need the rotation angle and the coordinates of each corner of
+the object to perform the math required to get the new set of coordinates that
+needs to be set for the map. Evas provides a utility function that does the
+math for you:
+
+void evas_map_util_rotate(Evas_Map * m,
+ double degrees,
+ Evas_Coord cx,
+ Evas_Coord cy
+ )
+
+
+ * ''m'' map to change.
+ * ''zoomx'' horizontal zoom to use.
+ * ''zoomy'' vertical zoom to use.
+ * ''cx'' zooming center horizontal position.
+ * ''cy'' zooming center vertical position.
+
+This function rotates the map based on the angle and the center coordinates of
+the rotation provided as arguments. A positive angle rotates the map
+clockwise, while a negative angle rotates the map counterclockwise.
+
+The following example shows how to rotate an object around its center point by
+45 degrees clockwise. In the following figure, the center of rotation is the
+red dot.
+
+
+evas_object_geometry_get(o, &x, &y, &w, &h);
+m = evas_map_new(4);
+evas_map_util_points_populate_from_object(m, o);
+evas_map_util_rotate(m, 45, x + (w / 2), y + (h / 2));
+evas_object_map_set(o, m);
+evas_object_map_enable_set(o, EINA_TRUE);
+evas_map_free(m);
+
+
+{{ :event_effect_evas_map_3.png }}
+
+You can rotate the object around any other point simply by setting the last
+two arguments of the ''evas_map_util_rotate()'' function to the appropriate
+values:
+
+
+evas_map_util_rotate(m, 45, x + w - 20, y + h - 20);
+
+
+{{ :event_effect_evas_map_4.png }}
+
+You can also set the center of the window as the center of the rotation using
+the appropriate coordinates of the Evas canvas:
+
+
+evas_output_size_get(evas, &w, &h);
+m = evas_map_new(4);
+evas_map_util_points_populate_from_object(m, o);
+evas_map_util_rotate(m, 45, w, h);
+evas_object_map_set(o, m);
+evas_object_map_enable_set(o, EINA_TRUE);
+evas_map_free(m);
+
+
+==== Zoom ====
+
+The ''evas_map_util_zoom()'' function zooms the points of the map from a
+center point, defined by ''cx'' and ''cy''. The ''zoomx'' and ''zoomy''
+arguments specify how much to zoom in on the X and Y axes. A value of 1.0
+means no zoom, 2.0 means double the size, 0.5 means half the size, and so on.
+All the coordinates are global canvas coordinates.
+
+
+void evas_map_util_zoom(Evas_Map * m,
+ double zoomx,
+ double zoomy,
+ Evas_Coord cx,
+ Evas_Coord cy
+ )
+
+
+ * ''m'' map to change.
+ * ''zoomx'' horizontal zoom to use.
+ * ''zoomy'' vertical zoom to use.
+ * ''cx'' zooming center horizontal position.
+ * ''cy'' zooming center vertical position.
+
+==== 3D Maps ====
+
+Maps can also be used to achieve a 3D effect. In a 3D effect, the Z coordinate
+of each point is meaningful: the higher the value, the further back the point
+is located. Smaller values (usually negative) mean that the point is closer to
+the user.
+
+3D also introduces the concept of the back face of an object. An object is
+said to be facing the user when all its points are placed in a clockwise
+formation, as shown in the left map in the following figure. Rotating the map
+around its Y axis swaps the order of the points into a counterclockwise
+formation, making the object face away from the user, as shown in the right
+map in the following figure. The back face is especially relevant in lighting
+(see below).
+
+{{ :event_effect_evas_map_5.png }}
+
+To determine whether a map is facing the user, use the
+''evas_map_util_clockwise_get()'' function. This function returns
+''EINA_TRUE'' if the map is facing the user and ''EINA_FALSE'' if the map is
+facing away from the user. This is normally done after all the other
+operations are applied to the map.
+
+
+Eina_Bool evas_map_util_clockwise_get(Evas_Map *m)
+
+
+==== 3D Rotation and Perspective ====
+
+The ''evas_map_util_3d_rotate()'' function transforms a map to apply a 3D
+rotation to the mapped object. You can apply the rotation around any point in
+the canvas (including a Z coordinate). You can also apply the rotation around
+any of the three axes.
+
+
+evas_map_util_3d_rotate(Evas_Map * m,
+ double dx,
+ double dy,
+ double dz,
+ Evas_Coord cx,
+ Evas_Coord cy,
+ Evas_Coord cz
+ )
+
+
+ * ''m'': map to change.
+ * ''dx'': amount of degrees from 0.0 to 360.0 to rotate around X axis.
+ * ''dy'': amount of degrees from 0.0 to 360.0 to rotate around Y axis.
+ * ''dz'': amount of degrees from 0.0 to 360.0 to rotate around Z axis.
+ * ''cx'': rotation's center horizontal position.
+ * ''cy'': rotation's center vertical position.
+ * ''cz'': rotation's center vertical position.
+
+Starting from this simple setup, and setting the maps so that the blue square
+rotates around the Y axis, we get the following:
+
+{{ :event_effect_evas_map_6.png }}
+
+A simple overlay over the image shows the original geometry of each object and
+the axis around which they are being rotated. The Z axis is not shown, since
+it is orthogonal to the screen. To show the Z axis, that is, to add 3D
+perspective to the transformation, use the ''evas_map_util_3d_perspective()''
+function on the map after its position has been set:
+
+
+void evas_map_util_3d_perspective(Evas_Map * m,
+ Evas_Coord px,
+ Evas_Coord py,
+ Evas_Coord z0,
+ Evas_Coord foc
+ )
+
+
+ * ''m'': map to change.
+ * ''px'': The perspective distance X coordinate
+ * ''py'': The perspective distance Y coordinate
+ * ''z0'': The "0" z plane value
+ * ''foc'': The focal distance
+
+The result makes the vanishing point the center of each object:
+
+{{ :event_effect_evas_map_7.png }}
+
+==== Color and Lighting ====
+
+Each point in a map can be set to a color, which will be multiplied with the
+object’s own color and linearly interpolated between adjacent points. To set
+the color separately for each point, use the ''evas_map_point_color_set()''
+function:
+
+
+void evas_map_point_color_set(Evas_Map * m,
+ int idx,
+ int r,
+ int g,
+ int b,
+ int a
+ )
+
+
+ * ''m'' map to change the color of.
+ * ''idx'' index of point to change. Must be smaller than map size.
+ * ''r'' red (0 - 255)
+ * ''g'' green (0 - 255)
+ * ''b'' blue (0 - 255)
+ * ''a'' alpha (0 - 255)
+
+To set the same color for every point, use the
+''evas_map_util_points_color_set()'' function:
+
+
+void evas_map_util_points_color_set(Evas_Map *m, int r, int g, int b, int a)
+
+
+When using a 3D effect, colors can be used to improve its look by simulating a
+light source. The ''evas_map_util_3d_lighting()'' function makes this task
+easier by taking the coordinates of the light source and its color, along with
+the color of the ambient light. Evas then sets the color of each point based
+on its distance to the light source, the angle at which the object is facing
+the light source, and the ambient light. Here, the orientation of each point
+is important.
+
+
+evas_map_util_3d_lighting(Evas_Map * m,
+ Evas_Coord lx,
+ Evas_Coord ly,
+ Evas_Coord lz,
+ int lr,
+ int lg,
+ int lb,
+ int ar,
+ int ag,
+ int ab
+ )
+
+
+ * ''m'' map to change.
+ * ''lx'' X coordinate in space of light point
+ * ''ly'' Y coordinate in space of light point
+ * ''lz'' Z coordinate in space of light point
+ * ''lr'' light red value (0 - 255)
+ * ''lg'' light green value (0 - 255)
+ * ''lb'' light blue value (0 - 255)
+ * ''ar'' ambient color red value (0 - 255)
+ * ''ag'' ambient color green value (0 - 255)
+ * ''ab'' ambient color blue value (0 - 255)
+
+If the map points are defined counterclockwise, the object faces away from the
+user and is therefore obscured, since no light is reflecting back from it.
+
+{{ :event_effect_evas_map_8.png }}
+
+==== Mapping ====
+
+Images need special handling when mapped. While Evas can easily handle objects, it is completely oblivious to the contents of images. This means that each point in a map needs to be mapped to a specific pixel in the source image. Failing to do this can result in unexpected behavior.
+
+Let's get started with the following three images, each sized at 200 × 200 pixels:
+
+{{ :event_effect_evas_map_9.png }}
+
+The following three images illustrate the case where a map is set to an image
+object without setting the right UV mapping for each map point. The objects
+themselves are mapped properly to their new geometries, but the images are not
+displayed correctly within the mapped objects.
+
+{{ :event_effect_evas_map_10.png }}
+
+To transform an image correctly, Evas needs to know how to handle the image
+within the map. You can do this using the ''evas_map_point_image_uv_set()''
+function, which allows you to map a given point in a map to a given pixel in a
+source image:
+
+
+void evas_map_point_image_uv_set(Evas_Map *m,
+ int idx,
+ double u,
+ double v
+ )
+
+
+ * ''m'' map to change the point of.
+ * ''idx'' index of point to change. Must be smaller than map size.
+ * ''u'' the X coordinate within the image/texture source
+ * ''v'' the Y coordinate within the image/texture source
+
+To match our example images to the maps above, all we need is the size of each
+image, which we can get using the ''evas_object_image_size_get()'' function.
+
+
+// Tux 1: Some cropping and stretch up
+evas_map_point_image_uv_set(m, 0, 0, 20);
+evas_map_point_image_uv_set(m, 1, 200, 20);
+evas_map_point_image_uv_set(m, 2, 200, 180);
+evas_map_point_image_uv_set(m, 3, 0, 180);
+evas_object_map_set(tux1, m);
+evas_object_map_enable_set(tux1, EINA_TRUE);
+
+// Inverted texture for shadow:
+evas_map_point_image_uv_set(m, 0, 0, 180);
+evas_map_point_image_uv_set(m, 1, 200, 180);
+evas_map_point_image_uv_set(m, 2, 200, 20);
+evas_map_point_image_uv_set(m, 3, 0, 20);
+evas_object_map_set(tux1_shadow, m);
+evas_object_map_enable_set(tux1_shadow, EINA_TRUE);
+
+// Tux 2: Make it fit to the map:
+evas_map_point_image_uv_set(m, 0, 0, 0);
+evas_map_point_image_uv_set(m, 1, 200, 0);
+evas_map_point_image_uv_set(m, 2, 200, 200);
+evas_map_point_image_uv_set(m, 3, 0, 200);
+evas_object_map_set(tux2, m);
+evas_object_map_enable_set(tux2, EINA_TRUE);
+
+// Tux 3: Zoom and fit relatively to image size
+evas_object_image_size_get(evas_object_image_source_get(tux3), &w, &h);
+evas_map_point_image_uv_set(m, 0, 0.1 * w, 0.1 * h);
+evas_map_point_image_uv_set(m, 1, 0.9 * w, 0.1 * h);
+evas_map_point_image_uv_set(m, 2, 0.9 * w, 0.9 * h);
+evas_map_point_image_uv_set(m, 3, 0.1 * w, 0.9 * h);
+evas_object_map_set(tux3, m);
+evas_object_map_enable_set(tux3, EINA_TRUE);
+
+
+{{ :event_effect_evas_map_11.png }}
+
+You can also set a map to use only part of an image, or you can even map the
+points in inverted order. Combined with the ''evas_object_image_source_set()''
+function, you can achieve more interesting results still.
+
+==== Lighting ====
+
+''Evas_Map'' allows you to define an ambient light and a light source within
+the scene. Both of these light sources have their own colors.
+
+
+void evas_map_util_3d_lighting(Evas_Map * m,
+ Evas_Coord lx,
+ Evas_Coord ly,
+ Evas_Coord lz,
+ int lr,
+ int lg,
+ int lb,
+ int ar,
+ int ag,
+ int ab
+ )
+
+
+ * ''m'' map to change.
+ * ''lx'' X coordinate in space of light point
+ * ''ly'' Y coordinate in space of light point
+ * ''lz'' Z coordinate in space of light point
+ * ''lr'' light red value (0 - 255)
+ * ''lg'' light green value (0 - 255)
+ * ''lb'' light blue value (0 - 255)
+ * ''ar'' ambient color red value (0 - 255)
+ * ''ag'' ambient color green value (0 - 255)
+ * ''ab'' ambient color blue value (0 - 255)
+
+The above function is used to apply lighting calculations (from a single light
+source) to a given map. The red, green, and blue values of each vertex will be
+modified to reflect the lighting based on the light source coordinates, its
+color, the ambient color, and the angle at which the map faces the light
+source. The points of a surface should be defined in a clockwise formation if
+the surface is facing the user, since faces have a logical side for lighting.
+
+To get the reflections (gradient) in the shadow of our previous example, you
+have to define a source of light close enough to the user and a very bright
+ambient light, for example:
+
+
+evas_map_util_3d_lighting(m, // Evas_Map object
+ 250/2, 150/2, -100, // Spot light coordinates
+ 255, 255, 255, // Spot light color
+ 200, 200, 200); // Ambient light color
+
+
+==== Alpha Channel ====
+
+You can also use an alpha channel on your map by enabling the alpha channel
+feature:
+
+
+evas_map_alpha_set(Evas_Map *m, Eina_Bool enabled)
+
+
+Next, set the alpha value separately for each map point:
+
+
+evas_map_point_color_set(Evas_Map *m, int idx, int r, int g, int b, int a)
+
+
+Alternatively, you can set the same alpha value to all map points:
+
+
+evas_map_util_points_color_set(Evas_Map *m, int r, int g, int b, int a)
+
+
+The following code sets the shadow transparency for the first image in the
+above three-image example:
+
+
+// Set object transparency to 50%:
+evas_map_util_points_color_set(m, 255, 255, 255, 127);
+
+// Tux's head is almost invisible in the shadow:
+evas_map_point_color_set(m, 3, 255, 255, 255, 15);
+evas_map_point_color_set(m, 4, 255, 255, 255, 15);
+
+
+==== Smoothing ====
+
+To enable smoothing when rendering a map, use the ''evas_map_smooth_set()''
+function:
+
+
+evas_map_smooth_set(Evas_Map *m, Eina_Bool enabled)
+
+
+The first argument is the ''Evas_Map'' object to apply smoothing to. The second argument sets whether to enable the smoothing:
+
+ * ''EINA_TRUE'': Enable smoothing.
+ * ''EINA_FALSE'': Disable smoothing.
+
+If the object is of a type that has its own smoothing settings, the smoothing
+settings must be disabled for both the object and the map. Map smoothing is
+enabled by default. To check whether map smoothing is enabled, use the
+''evas_map_smooth_get()'' function.
+
+\\
+[[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/Example_Evas_Map_Overview.html|Evas Map Example]]
+
+-------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/event_effect/evas_object_events.txt b/public_html/data/pages/develop/legacy/program_guide/event_effect/evas_object_events.txt
new file mode 100644
index 00000000..bf7b6ab0
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/event_effect/evas_object_events.txt
@@ -0,0 +1,87 @@
+~~Title: Evas Object Events~~
+{{page>index}}
+----
+===== Evas Object Events =====
+
+Each of the evas objects on a given evas canvas can be manipulated
+independently. They send events, to which callbacks can be attached through
+''evas_object_event_callback_add()'' and removed with
+''evas_object_event_callback_del()''. These events all relate to single
+objects, not the whole canvas.
+
+=== Table of Contents ===
+
+ * [[#Adding_and_Removing_Callbacks:_evas_object_event_callback_add/del|Adding and Removing Callbacks: evas_object_event_callback_add/del]]
+ * [[#Types_of_Evas_Object_Events|Types of Evas Object Events]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Object__Group__Events.html|Object Events API]]
+
+==== Adding and Removing Callbacks: evas_object_event_callback_add/del ====
+
+Callbacks are added with ''evas_event_callback_add()''. Its prototype is
+
+
+void evas_object_event_callback_add(Evas_Object* obj,
+ Evas_Callback_Type type,
+ Evas_Object_Event_Cb func,
+ const void* data
+ )
+
+
+
+ * ''obj'' is the object to attach the callback to.
+ * ''type'' is the type of event that triggers the callback (the list is in the next section).
+ * ''func'' is the function that is called.
+ * ''data'' is a pointer to additional data that is given as the argument to the callback. It is optional and ''NULL'' is an acceptable value.
+
+The type of the callback function is defined as follows.
+
+
+void (* Evas_Object_Event_Cb) (void *data, Evas *e, Evas_Object *obj, void *event_info)
+
+
+The callback function definition is similar to
+
+
+void some_evas_object_event_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+
+
+
+ * ''data'' is the same as the data which was given as the parameter to ''evas_object_smart_callback_add()''.
+ * ''e'' is the canvas on which the event occurred.
+ * ''obj'' is the object to which the event happened.
+ * ''event_info'' is data which depends on the object type and event at play. The documentation must be read for each event.
+
+==== Types of Evas Object Events ====
+
+The values are defined from the ''Evas_Callback_Type'' enum. Some of them are
+not used for ''evas_object_event_callback_add()'', but are used in the next
+section.
+
+ * ''EVAS_CALLBACK_MOUSE_IN'': the pointer got over an object (with no other object between the two). This takes place no matter how the pointer becomes directly above the object. ''event_info'' in the callback is a pointer to an ''Evas_Event_Mouse_In'' struct.
+ * ''EVAS_CALLBACK_MOUSE_OUT'': triggered similarly to ''EVAS_CALLBACK_MOUSE_IN'', but when the pointer goes outside an object's area. ''event_info'' in the callback is a pointer to an ''Evas_Event_Mouse_Out'' struct.
+ * ''EVAS_CALLBACK_MOUSE_DOWN'': a mouse button is pressed while the object is receiving events (either because the pointer is on top of the object or because the object had focus). ''event_info'' in the callback is a pointer to an ''Evas_Event_Mouse_Down'' struct.
+ * ''EVAS_CALLBACK_MOUSE_UP'': triggered similarly to ''EVAS_CALLBACK_MOUSE_DOWN''. ''event_info'' in the callback is a pointer to an ''Evas_Event_Mouse_Up'' struct.
+ * ''EVAS_CALLBACK_MOUSE_MOVE'': triggered similarly to ''EVAS_CALLBACK_MOUSE_DOWN''. ''event_info'' in the callback is a pointer to an ''Evas_Event_Mouse_Move'' struct.
+ * ''EVAS_CALLBACK_MOUSE_WHEEL'': triggered similarly to ''EVAS_CALLBACK_MOUSE_DOWN''. ''event_info'' in the callback is a pointer to an ''Evas_Event_Mouse_Wheel'' struct.
+ * ''EVAS_CALLBACK_MULTI_DOWN'': triggered similarly to ''EVAS_CALLBACK_MOUSE_DOWN''. ''event_info'' in the callback is a pointer to an ''Evas_Event_Multi_Down'' struct.
+ * ''EVAS_CALLBACK_MULTI_UP'': triggered similarly to ''EVAS_CALLBACK_MOUSE_DOWN''. ''event_info'' in the callback is a pointer to an ''Evas_Event_Multi_Up'' struct.
+ * ''EVAS_CALLBACK_MULTI_MOVE'': triggered similarly to ''EVAS_CALLBACK_MOUSE_DOWN''. ''event_info'' in the callback is a pointer to an ''Evas_Event_Multi_Move'' struct.
+ * ''EVAS_CALLBACK_KEY_DOWN'': triggered similarly to ''EVAS_CALLBACK_MOUSE_DOWN''. ''event_info'' in the callback is a pointer to an ''Evas_Event_Key_Down'' struct.
+ * ''EVAS_CALLBACK_KEY_UP'': triggered similarly to ''EVAS_CALLBACK_MOUSE_DOWN''. ''event_info'' in the callback is a pointer to an ''Evas_Event_Key_Up'' struct.
+ * ''EVAS_CALLBACK_FOCUS_IN'': the object gained focus. ''event_info'' in the callback is a pointer to an ''Evas_Event_Mouse_In'' struct.
+ * ''EVAS_CALLBACK_FOCUS_OUT'': the object lost focus. ''event_info'' in the callback is a pointer to an ''Evas_Event_Mouse_In'' struct.
+ * ''EVAS_CALLBACK_SHOW'': the object is shown by a call to ''evas_object_show()''. ''event_info'' in the callback is NULL.
+ * ''EVAS_CALLBACK_HIDE'': the object is hidden by a call to ''evas_object_hide()''. ''event_info'' in the callback is NULL.
+ * ''EVAS_CALLBACK_MOVE'': the object's origin was moved (origin is the top-left corner at the creation time of the object). ''event_info'' in the callback is NULL.
+ * ''EVAS_CALLBACK_RESIZE'': the object is resized. ''event_info'' in the callback is NULL.
+ * ''EVAS_CALLBACK_RESTACK'': the object is re-stacked by ''evas_object_stack_below()'', ''evas_object_stack_above()'' or other events. ''event_info'' in the callback is NULL.
+ * ''EVAS_CALLBACK_DEL'': the object is deleted.
+ * ''EVAS_CALLBACK_FREE'': for internal use only. Do not use (the object resources are about to be freed). ''event_info'' in the callback is NULL.
+ * ''EVAS_CALLBACK_HOLD'': for internal use only. ''event_info'' in the callback is a pointer to an ''Evas_Event_Hold'' struct.
+ * ''EVAS_CALLBACK_CHANGED_SIZE_HINTS'': the size hints of the object changed.
+ * ''EVAS_CALLBACK_IMAGE_PRELOADED'': an image which was preloaded through ''evas_object_image_preload()'' is loaded. ''event_info'' in the callback is NULL.
+ * ''EVAS_CALLBACK_IMAGE_UNLOADED'': the image data is unloaded. ''event_info'' in the callback is NULL.
+
diff --git a/public_html/data/pages/develop/legacy/program_guide/event_effect/evas_smart_events.txt b/public_html/data/pages/develop/legacy/program_guide/event_effect/evas_smart_events.txt
new file mode 100644
index 00000000..43cb9a3d
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/event_effect/evas_smart_events.txt
@@ -0,0 +1,162 @@
+~~Title: Evas Smart Object Events~~
+{{page>index}}
+----
+===== Evas Smart Object Events =====
+
+Evas smart objects events are the most widely-used type of events in graphical
+applications, since they are used for signals such as "clicked",
+"clicked,double" (double-click), "pressed", etc. They are identified by
+strings and each smart object is able to define its own events (although the
+names follow conventions).
+
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Callback_on_an_Event:_evas_object_smart_callback_add()|Adding a Callback on an Event: evas_object_smart_callback_add()]]
+ * [[#Removing_a_Callback_on_an_Event:_evas_object_smart_callback_del()|Removing a Callback on an Event: evas_object_smart_callback_del()]]
+ * [[#Examples|Examples]]
+ * [[#Basic_Usage:_Button_with_a_Callback_on_the_"clicked"_Signal|Basic Usage: Button with a Callback on the "clicked" Signal]]
+ * [[#Usage_with_evas_object_smart_callback_del():_Clicking_on_the_Button_Removes_the_Callback|Usage with evas_object_smart_callback_del(): Clicking on the Button Removes the Callback]]
+
+=== Related Info ===
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Evas__Smart__Object__Group.html#ga18a8b179f94d21b2b09e19db11741061|Smart Object Functions API]]
+
+==== Adding a Callback on an Event: evas_object_smart_callback_add() ====
+
+Use the ''evas_object_smart_callback_add()'' function to add a callback for an
+event to an object. Its prototype is
+
+
+void evas_object_smart_callback_add(Evas_Object* obj,
+ const char* event,
+ Evas_Smart_Cb func,
+ const void* data
+ )
+
+
+ * ''obj'' a smart object
+ * ''event'' the event's name string
+ * ''func'' the callback function
+ * ''data'' user data to be passed to the callback function
+
+Evas smart objects' "smart callback" has the following signature:
+
+
+void (* Evas_Smart_Cb) (void *data, Evas_Object *obj, void *event_info)
+
+
+The callback function definition is similar to
+
+
+void some_evas_smart_cb(void *data, Evas_Object *obj, void *event_info);
+
+
+ * ''data'' is the same as the ''data'' which is given as the parameter to ''evas_object_smart_callback_add()''.
+ * ''obj'' is the object for which the event happened.
+ * ''event_info'' is data, which depends on the object type and event at play. The actual type is given in the documentation for the callback that is triggered
+
+The following defines the ''_button_clicked()'' function and sets it as the
+callback for the ''clicked'' event of an ''Evas_Object'' (a button here).
+
+
+static void
+_button_clicked(void *data, Evas_Object *obj, void *event_info)
+{
+ // Insert function body here
+}
+
+
+static void
+some_function(void)
+{
+ // Code to build the window object
+ Evas_Object *button = elm_button_add(window);
+ evas_object_smart_callback_add(button, "clicked", _button_clicked, NULL);
+}
+
+
+If some of the arguments are not used by the callback function, the compiler
+may raise the "unused parameter" warning. To avoid it, you can annotate the
+argument with the ''__UNUSED__'' macro, which is a compiler-independent way to
+let the compiler know that the parameter is willingly unused rather than by a
+mistake.
+
+
+void cb(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__);
+
+
+For a given object and event, callbacks are called in the order they have been
+added. The ''evas_object_smart_callback_add()'' function does not execute any
+special processing if it is called several times with the same callback
+function and/or data. Callbacks are called as many times as they have been
+added and in the order they have been added.
+
+==== Removing a Callback on an Event: evas_object_smart_callback_del() ====
+
+The ''evas_object_smart_callback_del()'' function enables deleting a callback
+for a signal on an object. Its prototype is
+
+
+void* evas_object_smart_callback_del(Evas_Object* obj,
+ const char* event,
+ Evas_Smart_Cb func
+ )
+
+
+It removes the first match for the given event and callback and returns the
+''data'' pointer that was used in the corresponding call to
+''evas_object_smart_callback_add()''.
+
+==== Examples ====
+
+=== Basic Usage: Button with a Callback on the "clicked" Signal ===
+
+
+static void
+_button_clicked(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+ fprintf(stdout, "Button clicked.\n");
+ fflush(stdout);
+ elm_exit();
+}
+
+static void
+_add_button(Evas_Object *window)
+{
+ Evas_Object *button;
+
+ button = elm_button_add(window);
+ elm_object_text_set(button, "Click Me To Exit!");
+ evas_object_smart_callback_add(button, "clicked", _button_clicked, NULL);
+
+ evas_object_show(button);
+}
+
+
+=== Usage with evas_object_smart_callback_del(): Clicking on the Button Removes the Callback ===
+
+
+static void
+_button_clicked(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
+{
+ fprintf(stdout, "Button clicked.\n");
+ fflush(stdout);
+ evas_object_smart_callback_del(obj, "clicked", _button_clicked);
+}
+
+static void
+_add_button(Evas_Object *window)
+{
+ Evas_Object *button;
+
+ button = elm_button_add(window);
+ elm_object_text_set(button, "Click Me!");
+ evas_object_smart_callback_add(button, "clicked", _button_clicked, NULL);
+
+ evas_object_show(button);
+}
+
+
+\\
+----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/event_effect/index.txt b/public_html/data/pages/develop/legacy/program_guide/event_effect/index.txt
new file mode 100644
index 00000000..e04ad128
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/event_effect/index.txt
@@ -0,0 +1,5 @@
+++++Event and Effect Menu|
+^ [[/develop/legacy/program_guide/event_effect_pg|Event and Effect Programming Guide]] ^^^^^^
+^ Events |[[/develop/legacy/program_guide/event_effect/evas_smart_events|Evas smart events]]|[[/develop/legacy/program_guide/event_effect/ecore_events|Ecore events]]|[[/develop/legacy/program_guide/event_effect/edje_events|Edje events]]|[[/develop/legacy/program_guide/event_effect/evas_object_events|Evas object events]]|[[/develop/legacy/program_guide/event_effect/evas_events|Evas events]]|
+^ Effects |[[/develop/legacy/program_guide/event_effect/ecore_animators|Ecore Animators]]|[[/develop/legacy/program_guide/event_effect/elementary_transitions|Elementary Transitions]]|[[/develop/legacy/program_guide/event_effect/edje_animations|Edje Animations]]|[[/develop/legacy/program_guide/event_effect/evas_map_animations|Evas Map Animations]]||
+++++
diff --git a/public_html/data/pages/develop/legacy/program_guide/event_effect_pg.txt b/public_html/data/pages/develop/legacy/program_guide/event_effect_pg.txt
new file mode 100644
index 00000000..f4145378
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/event_effect_pg.txt
@@ -0,0 +1,119 @@
+~~Title: Event and Effect PG~~
+{{page>index}}
+===== Event and Effect =====
+
+EFL and Elementary allow you to manage different kinds of events and create various types
+of effects and animations in your application.
+
+=== Table of Contents ===
+
+ * [[#Handling_Events|Handling Events]]
+ * [[/develop/legacy/program_guide/event_effect/evas_smart_events|Evas smart events]]: the most comon king of GUI pregramming
+ * [[/develop/legacy/program_guide/event_effect/ecore_events|Ecore events]]: for system events
+ * [[/develop/legacy/program_guide/event_effect/edje_events|Edje events]]: signals and messages to or from themes
+ * [[/develop/legacy/program_guide/event_effect/evas_object_events|Evas object events]]: drawing- or focus-related low-level events for specific objects on a canvas
+ * [[/develop/legacy/program_guide/event_effect/evas_events|Evas events]]: drawing or focus-related low-level events for a whole canvas
+ * [[#Creating_Animations_and_Effects|Creating Animations and Effects]]
+ * [[/develop/legacy/program_guide/event_effect/ecore_animators|Ecore Animators]]
+ * [[/develop/legacy/program_guide/event_effect/elementary_transitions|Elementary Transitions]]
+ * [[/develop/legacy/program_guide/event_effect/edje_animations|Edje Animations]]
+ * [[/develop/legacy/program_guide/event_effect/evas_map_animations|Evas Map Animations]]
+
+==== Handling Events ====
+
+The EFLs rely on events and callbacks. In case of an event, (for example, a
+key press, mouse click or a battery running low), the mainloop calls the
+callback functions that are associated to that specific event. After the
+callbacks have finished, the mainloop takes over and waits for new events,
+upon which to trigger new callbacks.
+
+It is important to do light work in the callbacks and to return to the
+mainloop relatively quickly. If there is heavy work to do, it is best to use
+an asynchronous mechanism like Ecore_con for network I/O or threads for
+CPU-intensive tasks. Failure to return quickly to the mainloop blocks the
+application's UI and it appears frozen.
+
+=== EFL Event Types ===
+
+There are several event types in the EFLs, and their use depends on the level
+of the event. The event types from lower- to higher-level are:
+
+ * [[/develop/legacy/program_guide/event_effect/evas_smart_events|Evas smart events]] are the most often used and take place on collections of evas objects (which are most typically handled). They are called "smart" because they have internal logic and can define their own events while other event types are fixed.
+ * [[/develop/legacy/program_guide/event_effect/ecore_events|Ecore events]] are the lowest-level events and come directly from the system. Except for application-wide shortcuts, it is not advisable to use them.
+ * [[/develop/legacy/program_guide/event_effect/evas_object_events|Evas object events]] events concern the objects that are on the canvas.
+ * [[/develop/legacy/program_guide/event_effect/evas_events|Evas events]] are events on the graphical canvas as a whole. They are fairly low-level and mostly useful when drawing directly on the canvas.
+
+Event types in the EFLs: Inner boxes are more specific than outer ones{{ :event_effect_scope.png |Event types in the EFLs: Inner boxes are more specific than outer ones}}
+
+
+Evas_Object *main, *obj1, *obj2, *obj3, *obj4, *obj5;
+
+Eina_List *focus_chain = NULL;
+focus_chain = eina_list_append(focus_chain, obj3);
+focus_chain = eina_list_append(focus_chain, obj2);
+// The chain is obj3, then obj2. We set it.
+elm_object_focus_custom_chain_set(main, focus_chain);
+// Here we prepend obj5 at the beginning of the chain.
+elm_object_focus_chain_prepend(main, NULL, obj5);
+// We append obj1 after obj3.
+elm_object_focus_chain_append(main, obj3, obj1);
+// We prepend obj4 before obj1.
+elm_object_focus_chain_prepend(main, obj1, obj4);
+
+
+The focus chain is ''obj5, obj3, obj4, obj1, obj2''.
+
+This actually applies to any container: it is possible to set the focus chain
+of, for example, a box.
+
+=== Customizing Collision of Both ===
+
+If an object is part of a focus chain and has the next focused object defined,
+the next object takes precedence over the focus chain.
+
+Following on the previous example, if ''obj4'' has ''obj5'' defined as its
+next object, the actual focus chain is ''obj5, obj3, obj4'', and loop back to
+''obj5''.
+
+==== Focus on UI Component ====
+
+If your Evas object has several sub-objects, set its focus chain using the
+same functions as for the application. Elementary first follows the main focus
+chain, and then the focus chain of each UI component if applicable.
+
+Use ''elm_object_focus_get(object)'' to set whether a specific object has the
+focus. Set the focus to an object using ''elm_object_focus_set(object, set)'',
+where ''set'' is a Boolean value. If it is set to ''EINA_TRUE'', the focus is
+set to that given object. If it is set to ''EINA_False'', the focus is unset
+and passed back to the previous element in the focus chain. Set the focus only
+after the object is shown, that is, after ''evas_object_show(object)'' has
+been called. Call the function back when the object receives or loses focus by
+registering on smart event "focused" or "unfocused"
+
+Use ''elm_object_tree_focus_allow_set(object, focusable)'' to tell Elementary
+whether an object and its children are focusable, where ''focusable'' is a
+Boolean value. Get the current value using
+''elm_object_tree_focus_allow_get(object)''.
+
+The similar functions for a specific object are
+''elm_object_focus_allow_set(object, focusable)'' and
+''elm_object_focus_allow_get(object)''.
+
+------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/index.txt b/public_html/data/pages/develop/legacy/program_guide/index.txt
new file mode 100644
index 00000000..af47ef71
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/index.txt
@@ -0,0 +1,17 @@
+++++Programming Guide Menu|
+ * [[/develop/legacy/program_guide/basic_application_structure_pg|Basic Application structure PG]]
+ * [[/develop/legacy/program_guide/containers_pg|Container PG]]
+ * [[/develop/legacy/program_guide/widgets_pg|Widgets PG]]
+ * [[/develop/legacy/program_guide/event_effect_pg|Event and Effect PG]]
+ * [[/develop/legacy/program_guide/evas_pg|Evas PG]]
+ * [[/develop/legacy/program_guide/edje_pg|Edje PG]]
+ * [[/develop/legacy/program_guide/multilingual_pg|Multilingual PG]]
+ * [[/develop/legacy/program_guide/connectivity_pg|Connectivity PG]]
+ * [[/develop/legacy/program_guide/eina_pg|Eina PG]]
+ * [[/develop/legacy/program_guide/customizing_ui_pg|Customizing UI Components PG]]
+ * [[/develop/legacy/program_guide/focus_ui_pg|Managing UI Component Focus PG]]
+ * [[/develop/legacy/program_guide/main_loop_pg|Main Loop PG]]
+ * [[/develop/legacy/program_guide/threading_pg|Threading PG]]
+ * [[/develop/legacy/program_guide/scalability_pg|Scalability PG]]
+ * [[/develop/legacy/program_guide/evasgl_pg|Evas GL PG]]
+++++
diff --git a/public_html/data/pages/develop/legacy/program_guide/main_loop/animators.txt b/public_html/data/pages/develop/legacy/program_guide/main_loop/animators.txt
new file mode 100644
index 00000000..6061b0d5
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/main_loop/animators.txt
@@ -0,0 +1,130 @@
+{{page>index}}
+---------
+===== Animators =====
+
+Animators are a specific type of timer, specially designed for on-screen
+animation purposes:
+
+ * The time interval is usually known when they are created.
+ * They are called at each screen refresh and their interval can vary. The interval can depend on the system load, the target power consumption, and other factors. The exact interval is not relevant.
+
+To implement animators, Ecore provides the Ecore animator subsystem.
+
+=== Table of Contents ===
+
+ * [[#Forever-running_Animator|Forever-running Animator]]
+ * [[#Specific-duration_Animator|Specific-duration Animator]]
+ * [[#To_create_and_destroy_the_animator|To create and destroy the animator]]
+ * [[#To_create_the_animator|To create the animator]]
+ * [[#To_destroy_the_animator|To destroy the animator]]
+ * [[#To_manage_the_animator|To manage the animator]]
+ * [[#To_pause_the_currently_running_animator|To pause the currently running animator]]
+ * [[#To_query_Ecore_for_the_interval_between_2_animator_calls|To query Ecore for the interval between 2 animator calls]]
+ * [[#To_change_the_interval|To change the interval]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Ecore__Animator__Group.html|Ecore Animator functions API]]
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_ecore_animator.html|Ecore Animator Example]]
+
+==== Forever-running Animator ====
+
+To create an animation that runs for an indefinite time:
+
+
+Eina_Bool my_anim_cb(void *data)
+{
+ static int count = 0;
+ count++;
+ if (count < 5)
+ return ECORE_CALLBACK_RENEW;
+
+ return ECORE_CALLBACK_CANCEL;
+}
+ecore_animator_add(my_anim_cb, my_data);
+
+
+This example looks the same as the one using an Ecore timer. The
+''ecore_animator_add()'' function takes the callback function and data to pass
+to it, and returns an ''Ecore_Animator'' object. The function is called at a
+system-defined interval until it returns ''ECORE_CALLBACK_CANCEL'' instead of
+''ECORE_CALLBACK_RENEW''.
+
+==== Specific-duration Animator ====
+
+An animator callback for an animator running a specific time has a different
+prototype than the forever running animator.
+
+This callback function receives both data and a position which represents the
+current time among the full timeline, 0 meaning the beginning of the
+animation, and 1 meaning the end of the animation, returning
+''ECORE_CALLBACK_CANCEL'' to abort, or ''ECORE_CALLBACK_RENEW'' to continue.
+
+==== To create and destroy the animator ====
+
+== To create the animator ==
+
+Use the ''ecore_animator_timeline_add()'' function. The first parameter
+specifies the animator duration, the second parameter is the callback
+function, and the third parameter is the data to pass to the callback. The
+data parameter is optional.
+
+
+Eina_Bool my_anim_cb(void *data, double position)
+{
+ if (position < .5)
+ return ECORE_CALLBACK_RENEW;
+
+ return ECORE_CALLBACK_CANCEL;
+}
+ecore_animator_timeline_add(5., my_anim_cb, my_data);
+
+
+In this example, the animator is specified to run for five seconds. The
+function returns ''ECORE_CALLBACK_CANCEL'' as soon as the position among the
+timeline passes half of the duration, 2.5 seconds.
+
+Ecore can generate a virtual position from the original one using
+''ecore_animator_pos_map(position, map, v1, v2)''. Several maps are available:
+
+ * ''ECORE_POS_MAP_LINEAR'': linear from 0.0 to 1.0.
+ * ''ECORE_POS_MAP_ACCELERATE'': start slow, then speed up.
+ * ''ECORE_POS_MAP_DECELERATE'': start fast, then slow down.
+ * ''ECORE_POS_MAP_SINUSOIDAL'': start slow, speed up, then slow down at the end.
+ * ''ECORE_POS_MAP_ACCELERATE_FACTOR'': start slow, then speed up, v1 being a power factor: 0.0 is linear, 1.0 is standard acceleration, 2.0 is a much more pronounced acceleration (squared), and 3.0 is cubed.
+ * ''ECORE_POS_MAP_DECELERATE_FACTOR'': start fast, then slow down, v1 being a power factor: 0.0 is linear, 1.0 is standard deceleration, 2.0 is a much more pronounced deceleration (squared), and 3.0 is cubed.
+ * ''ECORE_POS_MAP_SINUSOIDAL_FACTOR'': start slow, speed up, then slow down at the end, v1 being a power factor: 0.0 is linear, 1.0 is a standard sinusoidal, 2.0 is a much more pronounced sinusoidal (squared), and 3.0 is cubed.
+ * ''ECORE_POS_MAP_DIVISOR_INTERP'': start at gradient * v1, interpolated with the power of v2 curve.
+ * ''ECORE_POS_MAP_BOUNCE'': start at 0.0, then drop like a ball bouncing to the ground at 1.0, and bounce v2 times, with a decay factor of v1.
+ * ''ECORE_POS_MAP_SPRING'': start at 0.0, then wobble like a spring to the rest position 1.0, and wobble v2 times, with a decay factor of v1.
+
+{{ :mainloop_pos_map_all.png }}
+
+== To destroy the animator ==
+
+Use the ''ecore_animator_del()'' function. The animator to destroy must be
+running, that is, it has not returned a ''false'' value. If the animator is
+not running, the function cannot be called.
+
+
+==== To manage the animator ====
+
+== To pause the currently running animator ==
+
+Use the ''ecore_animator_freeze()'' function. Note that time continues ticking
+even if the animator is frozen, and that resuming the animation using the
+''ecore_animator_thaw()'' function does not actually resume, if the full
+runtime has been passed in the meanwhile.
+
+== To query Ecore for the interval between 2 animator calls ==
+
+Use the ''ecore_animator_frametime_get()'' function.
+
+== To change the interval ==
+
+Use the ''ecore_animator_frametime_set(interval)'' function. Note that too
+small a value causes performance and power consumption issues, and too high a
+value makes the animation jerky.
+
+------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/main_loop/file_descriptors.txt b/public_html/data/pages/develop/legacy/program_guide/main_loop/file_descriptors.txt
new file mode 100644
index 00000000..1f84af15
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/main_loop/file_descriptors.txt
@@ -0,0 +1,96 @@
+{{page>index}}
+---------
+===== File Descriptors =====
+
+Ecore provides an infrastructure to monitor file descriptors, so that files do
+not have to be blocked or polled to read or write on them. Instead, monitor
+sockets, pipes, or other streams are used to get a file descriptor.
+
+=== Table of Contents ===
+
+ * [[#To_manage_the_file_descriptors|To manage the file descriptors]]
+ * [[#To_set_a_callback|To set a callback]]
+ * [[#To_listen_to_events|To listen to events]]
+ * [[#To_wait_for_incoming_data_on_the_file_descriptor|To wait for incoming data on the file descriptor]]
+ * [[#To_delete_a_file_descriptor_handler|To delete a file descriptor handler]]
+ * [[#To_get_the_handler's_file_descriptor|To get the handler's file descriptor]]
+ * [[#To_select_whether_a_flag_is_active_on_a_handler|To select whether a flag is active on a handler]]
+ * [[#To_change_the_flags_the_handler_is_monitoring|To change the flags the handler is monitoring]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Ecore__FD__Handler__Group.html|File Descriptor Handling Functions API]]
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/ecore_fd_handler_example_c.html|File Descriptors Example]]
+
+==== To manage the file descriptors ====
+
+== To set a callback ==
+
+Use the ''_my_cb_func()'' function. Its first parameter is the data passed to
+it (optional), and the second one is the Ecore file descriptor handler. Its
+return value is, as in most Ecore callbacks, ''ECORE_CALLBACK_RENEW'' or
+''ECORE_CALLBACK_CANCEL''. It tells Ecore whether it wants to be called again
+or whether its treatment is finished.
+
+== To listen to events ==
+
+Use the ''ecore_main_fd_handler_add()'' function.
+
+== To wait for incoming data on the file descriptor ==
+
+To wait for incoming data (that is, to read data) on the ''my_fd'' file
+descriptor, passing ''my_data'':
+
+
+Eina_Bool my_fd_cb(void *data, Ecore_Fd_Handler *handler)
+{
+ int fd;
+ fd = ecore_main_fd_handler_fd_get(handler);
+ count = read(fd, buf, sizeof(buf)); // This is guaranteed not to block
+
+ return ECORE_CALLBACK_RENEW;
+}
+ecore_main_fd_handler_add(my_fd, ECORE_FD_READ, my_fd_cb, my_data, NULL, NULL);
+
+
+== To delete a file descriptor handler ==
+
+Use the ''ecore_main_fd_handler_del()'' function. This does not close the file
+descriptor. Always delete the handlers before closing the actual file
+descriptors.
+
+== To get the handler's file descriptor ==
+
+Use the ''ecore_main_fd_handler_fd_get()'' function.
+
+== To select whether a flag is active on a handler ==
+
+Use the
+''ecore_main_fd_handler_active_get()'' function. For example, the handler is
+set to monitor both ''ECORE_FD_READ'' and ''ECORE_FD_ERROR''. The following
+example finds out whether the function was called because of an error:
+
+
+Eina_Bool my_fd_cb(void *data, Ecore_Fd_Handler *handler)
+{
+ int fd;
+ fd = ecore_main_fd_handler_fd_get(handler);
+ if (ecore_main_fd_handler_active_get(handler, ECORE_FD_ERROR) == EINA_TRUE)
+ {
+ // We have an error!
+
+ return ECORE_CALLBACK_CANCEL;
+ }
+ count = read(fd, buf, sizeof(buf)); // This is guaranteed not to block
+
+ return ECORE_CALLBACK_RENEW;
+}
+ecore_main_fd_handler_add(my_fd, ECORE_FD_READ | ECORE_FD_ERROR, my_fd_cb, my_data, NULL, NULL);
+
+
+== To change the flags the handler is monitoring ==
+
+Use the ''ecore_main_fd_handler_active_set()'' function.
+
+-------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/main_loop/idlers.txt b/public_html/data/pages/develop/legacy/program_guide/main_loop/idlers.txt
new file mode 100644
index 00000000..cdebe2ba
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/main_loop/idlers.txt
@@ -0,0 +1,70 @@
+{{page>index}}
+--------------
+===== Idlers =====
+
+When the rendering is done and all work is finished, the main loop enters its idle state until the next loop. You can get the functions of your application called back before the main loop enters or exits the idle state, or when it is in the idle state. They are respectively called ''Ecore_Idle_Enterer'', ''Ecore_Idle_Exiter'', and ''Ecore_Idler''.
+
+{{ :mainloop_idlers.png }}
+
+The idle enterers, exiters, and idlers all have the same prototype,
+''my_idler()'', which receives data and returns ''ECORE_CALLBACK_RENEW'' or
+''ECORE_CALLBACK_CANCEL'' to tell Ecore whether it wants to be called again or
+is finished.
+
+=== Table of Contents ===
+
+ * [[#To_manage_the_idlers|To manage the idlers]]
+ * [[#To_add_an_idler|To add an idler]]
+ * [[#To_delete_an_idler|To delete an idler]]
+ * [[#To_add_and_delete_idle_exiters|To add and delete idle exiters]]
+ * [[#To_add_and_delete_idle_enterers|To add and delete idle enterers]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Ecore__Idle__Group.html|Ecore Idle functions API]]
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/ecore_idler_example_c.html|Ecore Idle Example]]
+
+=== To manage the idlers ===
+
+== To add an idler ==
+
+Use the ''ecore_idler_add()'' function.
+
+== To delete an idler ==
+
+Use the ''ecore_idler_del()'' function.
+
+== To add and delete idle exiters ==
+
+Use the ''ecore_idle_exiter_add()'' and ''ecore_idle_exiter_del()'' functions.
+
+== To add and delete idle enterers ==
+
+Use the ''ecore_idle_enterer_add()'' and ''ecore_idle_enterer_del()''
+functions. The ''ecore_idle_enterer_before_add()'' function is also available,
+if you want your function to be added at the top of the list so that it is
+called before the others.
+
+
+Eina_Bool my_idle_enterer_cb(void *data)
+{
+ return ECORE_CALLBACK_RENEW;
+}
+
+Eina_Bool my_idle_exiter_cb(void *data)
+{
+ return ECORE_CALLBACK_CANCEL;
+}
+
+Eina_Bool my_idler(void *data)
+{
+ return ECORE_CALLBACK_RENEW;
+}
+
+ecore_idle_enterer_add(my_idle_enterer_cb, my_data);
+ecore_idle_exiter_add(my_idle_exiter_cb, my_data);
+ecore_idler_add(my_idler_cb, my_data);
+
+
+-------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/main_loop/index.txt b/public_html/data/pages/develop/legacy/program_guide/main_loop/index.txt
new file mode 100644
index 00000000..174b11ba
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/main_loop/index.txt
@@ -0,0 +1,5 @@
+++++Main Loop Menu|
+^ [[/develop/legacy/program_guide/main_loop_pg|Main Loop Guide]] ^^^^^
+| [[/develop/legacy/program_guide/main_loop/timers|Timers]] | [[/develop/legacy/program_guide/main_loop/animators|Animators]] | [[/develop/legacy/program_guide/main_loop/file_descriptors|File Descriptors]] | [[/develop/legacy/program_guide/main_loop/threads|Threads]] | [[/develop/legacy/program_guide/main_loop/idlers|Idlers]] |
+++++
+
diff --git a/public_html/data/pages/develop/legacy/program_guide/main_loop/threads.txt b/public_html/data/pages/develop/legacy/program_guide/main_loop/threads.txt
new file mode 100644
index 00000000..879b76f6
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/main_loop/threads.txt
@@ -0,0 +1,123 @@
+{{page>index}}
+---------
+===== Threads ====
+
+EFL is not entirely thread-safe. This means that if a task is running in
+another thread and, for example, an Evas object shows the status progress of
+this task, the object cannot be updated from within the thread. Updating can
+only be done from the main thread that runs the main loop.
+
+Ecore provides a facility to perform tasks on separate worker threads. It is
+not a simple wrapper around standard threads provided by the operating system.
+With Ecore threads, it is easier to dispatch a worker function to perform some
+heavy tasks and get the result once it completes. It does not block the
+application UI. It is also easy to cancel and reschedule threads. Several
+threads can be launched simultaneously, since Ecore schedules them according
+to the number of processors the system has and the maximum amount of
+concurrent threads set for the application.
+
+Ecore has 2 kinds of threads:
+
+ * Short jobs do not give any kind of information on their status to the parent. They are best used for short computing-intensive snippets of code.
+ * Feedback jobs give information on their status to the parent. They are best used for longer snippets requiring a feedback loop, such as an ongoing file download.
+
+=== Table of Contents ===
+
+ * [[#To_manage_threads|To manage threads]]
+ * [[#To_cancel_a_thread|To cancel a thread]]
+ * [[#To_execute_a_thread_later|To execute a thread later]]
+ * [[#To_get_the_maximum_number_of_concurrent_threads|To get the maximum number of concurrent threads]]
+ * [[#To_query_the_number_of_active_threads|To query the number of active threads]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Ecore__Thread__Group.html|Ecore Thread functions API]]
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/ecore_thread_example_c.html|Ecore Thread Example]]
+
+Ecore creates a pool of worker threads. The exact count is computed from the
+number of CPUs or cores, or it can be specified by the application itself.
+
+When a worker thread is idle, it picks a job to execute from the waiting list
+until there is none left. In the following example, there are 2 threads
+defined by ''my_short_job()'' and ''my_feedback_job()''. Both threads take 2
+parameters: some data passed to them, and the actual thread running. Call a
+callback when the jobs end, whether they are cancelled (''my_job_cancel()'')
+or end normally (''my_job_end()'').
+
+
+struct feedback_msg
+{
+ int pos;
+};
+
+void my_short_job(void *data, Ecore_Thread *thread)
+{
+ usleep(200000);
+}
+
+void my_feedback_job(void *data, Ecore_Thread *thread)
+{
+ int i;
+ for (i = 0; i < 100; i++)
+ {
+ usleep(50000); // You can have some real computation done
+ struct feedback_msg *message = malloc(sizeof(struct feedback_msg));
+ if (message)
+ {
+ message->pos = i;
+ ecore_thread_feedback(thread, message);
+ }
+ if (ecore_thread_check(thread))
+ return;
+ }
+}
+
+void my_feedback_job_notify(void *data, Ecore_Thread *thread, void *msg)
+{
+ struct feedback_msg *message = msg;
+ free(message);
+}
+
+void my_job_end(void *data, Ecore_Thread *thread)
+{
+ printf("Thread has normally ended.\n");
+}
+
+void my_job_cancel(void *data, Ecore_Thread *thread)
+{
+ printf("Thread has been cancelled.\n");
+}
+
+ecore_thread_run(my_short_job, my_job_end, my_job_cancel, my_data);
+ecore_thread_feedback_run(my_feedback_job, my_feedback_job_notify, my_job_end, my_job_cancel, my_data, EINA_FALSE);
+
+
+==== To manage threads ====
+
+== To cancel a thread ==
+
+Use the ''ecore_thread_cancel()'' function. However, note that this is done
+cooperatively: the thread continues to run until it exists. Call the
+''ecore_thread_check()'' function regularly to check whether the thread has
+been marked for cancellation and exit if ''true''.
+
+== To execute a thread later ==
+
+Use the ''ecore_thread_reschedule()'' function. This function is added to the
+end of the pending tasks.
+
+== To get the maximum number of concurrent threads ==
+
+Use the ''ecore_thread_max_get()'' function. If needed, set it by using the
+''ecore_thread_max_set()'' function, or reset the default value using the
+''ecore_thread_max_reset()'' function.
+
+== To query the number of active threads ==
+
+Use the ''ecore_thread_active_get()'' function. To query the number of
+available worker threads, use the ''ecore_thread_available_get()'' function,
+which is basically the same as the ''ecore_thread_max_get()'' -
+''ecore_thread_active_get()''.
+
+---------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/main_loop/timers.txt b/public_html/data/pages/develop/legacy/program_guide/main_loop/timers.txt
new file mode 100644
index 00000000..1662033a
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/main_loop/timers.txt
@@ -0,0 +1,105 @@
+{{page>index}}
+---------
+===== Timers =====
+
+Ecore provides timers, which schedule events that are executed later at a
+specific time. The event can occur once or several times at specific
+intervals.
+
+=== Table of Contents ===
+
+ * [[#To_create_and_destroy_a_timer|To create and destroy a timer]]
+ * [[#To_create_a_timer|To create a timer]]
+ * [[#To_delete_the_timer|To delete the timer]]
+ * [[#To_manage_a_timer|To manage a timer]]
+ * [[#To_change_the_timer's_interval|To change the timer's interval]]
+ * [[#To_get_the_timer's_pending_time|To get the timer's pending time]]
+ * [[#To_delay_the_timer's_next_occurrence|To delay the timer's next occurrence]]
+ * [[#To_pause_the_currently_running_timer|To pause the currently running timer]]
+ * [[#To_query_the_current_value_of_the_defined_timer_infrastructure_precision|To query the current value of the defined timer infrastructure precision]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Ecore__Timer__Group.html|Ecore Timer functions API]]
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/ecore_timer_example_c.html|Ecore Timers Example]]
+
+A timer callback prototype looks like the ''my_timed_cb()'' callback function.
+This function receives data from the application, and returns a Boolean value
+to specify whether it is called again or completed. The following macros are
+also provided:
+
+ * ''ECORE_CALLBACK_RENEW'': the function is called again after the timeout.
+ * ''ECORE_CALLBACK_CANCEL'': the function is not called again, Ecore destroys automatically everything associated with the timer.
+
+==== To create and destroy a timer ====
+
+== To create a timer ==
+
+Use the ''ecore_timer_add()'' function. The interval, specified
+in seconds, indicates when the given function is called, and receives the
+specified data as a parameter. It returns an ''Ecore_Timer'' object.
+
+In the following example, the ''my_timed_cb()'' function is run after 2
+seconds and it receives ''my_data''. It is renewed while its count variable
+value is under 5, and stops after that.
+
+
+Eina_Bool my_timed_cb(void *data)
+{
+ static int count = 0;
+ count++;
+
+ if (count < 5)
+ return ECORE_CALLBACK_RENEW;
+
+ return ECORE_CALLBACK_CANCEL;
+}
+ecore_timer_add(2.0, my_timed_cb, my_data);
+
+
+== To delete the timer ==
+
+Use the ''ecore_timer_del()'' function. The timer to delete must still be
+running, that is, it has not returned a ''false'' value. If the timer is not
+running, the function cannot be called.
+
+=== To manage a timer ===
+
+== To change the timer's interval ==
+
+Use the ''ecore_timer_interval_set()'' function. The interval is specified in
+seconds. If set during a timer call, this affects the next interval. Use the
+''ecore_timer_interval_get()'' function to get the timer's current interval.
+
+== To get the timer's pending time ==
+
+Use the ''ecore_timer_pending_get()'' function.
+
+== To delay the timer's next occurrence ==
+
+Use the ''ecore_timer_delay()'' function. The function adds the specified time
+to the current interval. It does not change the future occurrences' interval.
+You can also reset the current interval to its full value by using the
+''ecore_timer_reset()'' function.
+
+== To pause the currently running timer ==
+
+Use the ''ecore_timer_freeze()'' function. The remaining time is saved and
+used again when the timer is resumed with the ''ecore_timer_thaw()'' function.
+
+== To query the current value of the defined timer infrastructure precision ==
+
+Use the ''ecore_timer_precision_get()'' function. A higher delay means that
+more timers can be run together. It diminishes the need to use system wake-ups
+and thus lowers the power consumption.
+
+To set the precision, use the ''ecore_timer_precision_set()'' function. This sets
+the precision for all timers. For example, there are 2 timers, one that
+expires in 2.0 seconds and another that expires in 2.1 seconds. If the
+precision is set to 0.1 seconds, Ecore requests the next expiration to happen
+in 2.1 seconds and runs both callbacks at once, instead of one at 2.0 seconds
+and the other one 0.1 seconds later. However, if there is no timer expiring in
+2.1 seconds, the timeout is at the minimum interval, 2 seconds.
+
+--------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/main_loop_pg.txt b/public_html/data/pages/develop/legacy/program_guide/main_loop_pg.txt
new file mode 100644
index 00000000..76331735
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/main_loop_pg.txt
@@ -0,0 +1,63 @@
+{{page>index}}
+-------
+===== Main Loop =====
+
+The EFL is event-driven. This means that the application polls for data, and
+listens for events to interact with it.
+
+The Ecore library provides the main loop abstraction. It gets data when data
+is available and sends the events so that costly polling threads are not
+needed. Ecore manages polling, timers, events, and file descriptors. When
+there is no ongoing event, the main loop automatically enters an idle mode,
+minimizing the power consumption. The loop wakes up when needed.
+
+=== Table of Contents ===
+
+ * [[/develop/legacy/program_guide/main_loop/timers|Timers]]
+ * [[/develop/legacy/program_guide/main_loop/timers#To_create_and_destroy_a_timer|To create and destroy a timer]]
+ * [[/develop/legacy/program_guide/main_loop/timers#To_create_a_timer|To create a timer]]
+ * [[/develop/legacy/program_guide/main_loop/timers#To_delete_the_timer|To delete the timer]]
+ * [[/develop/legacy/program_guide/main_loop/timers#To_manage_a_timer|To manage a timer]]
+ * [[/develop/legacy/program_guide/main_loop/timers#To_change_the_timer's_interval|To change the timer's interval]]
+ * [[/develop/legacy/program_guide/main_loop/timers#To_get_the_timer's_pending_time|To get the timer's pending time]]
+ * [[/develop/legacy/program_guide/main_loop/timers#To_delay_the_timer's_next_occurrence|To delay the timer's next occurrence]]
+ * [[/develop/legacy/program_guide/main_loop/timers#To_pause_the_currently_running_timer|To pause the currently running timer]]
+ * [[/develop/legacy/program_guide/main_loop/timers#To_query_the_current_value_of_the_defined_timer_infrastructure_precision|To query the current value of the defined timer infrastructure precision]]
+ * [[/develop/legacy/program_guide/main_loop/animators|Animators]]
+ * [[/develop/legacy/program_guide/main_loop/animators#Forever-running_Animator|Forever-running Animator]]
+ * [[/develop/legacy/program_guide/main_loop/animators#Specific-duration_Animator|Specific-duration Animator]]
+ * [[/develop/legacy/program_guide/main_loop/animators#To_create_and_destroy_the_animator|To create and destroy the animator]]
+ * [[/develop/legacy/program_guide/main_loop/animators#To_create_the_animator|To create the animator]]
+ * [[/develop/legacy/program_guide/main_loop/animators#To_destroy_the_animator|To destroy the animator]]
+ * [[/develop/legacy/program_guide/main_loop/animators#To_manage_the_animator|To manage the animator]]
+ * [[/develop/legacy/program_guide/main_loop/animators#To_pause_the_currently_running_animator|To pause the currently running animator]]
+ * [[/develop/legacy/program_guide/main_loop/animators#To_query_Ecore_for_the_interval_between_2_animator_calls|To query Ecore for the interval between 2 animator calls]]
+ * [[/develop/legacy/program_guide/main_loop/animators#To_change_the_interval|To change the interval]]
+ * [[/develop/legacy/program_guide/main_loop/file_descriptors|File Descriptors]]
+ * [[/develop/legacy/program_guide/main_loop/file_descriptors#To_manage_the_file_descriptors|To manage the file descriptors]]
+ * [[/develop/legacy/program_guide/main_loop/file_descriptors#To_set_a_callback|To set a callback]]
+ * [[/develop/legacy/program_guide/main_loop/file_descriptors#To_listen_to_events|To listen to events]]
+ * [[/develop/legacy/program_guide/main_loop/file_descriptors#To_wait_for_incoming_data_on_the_file_descriptor|To wait for incoming data on the file descriptor]]
+ * [[/develop/legacy/program_guide/main_loop/file_descriptors#To_delete_a_file_descriptor_handler|To delete a file descriptor handler]]
+ * [[/develop/legacy/program_guide/main_loop/file_descriptors#To_get_the_handler's_file_descriptor|To get the handler's file descriptor]]
+ * [[/develop/legacy/program_guide/main_loop/file_descriptors#To_select_whether_a_flag_is_active_on_a_handler|To select whether a flag is active on a handler]]
+ * [[/develop/legacy/program_guide/main_loop/file_descriptors#To_change_the_flags_the_handler_is_monitoring|To change the flags the handler is monitoring]]
+ * [[/develop/legacy/program_guide/main_loop/threads|Threads]]
+ * [[/develop/legacy/program_guide/main_loop/threads#To_manage_threads|To manage threads]]
+ * [[/develop/legacy/program_guide/main_loop/threads#To_cancel_a_thread|To cancel a thread]]
+ * [[/develop/legacy/program_guide/main_loop/threads#To_execute_a_thread_later|To execute a thread later]]
+ * [[/develop/legacy/program_guide/main_loop/threads#To_get_the_maximum_number_of_concurrent_threads|To get the maximum number of concurrent threads]]
+ * [[/develop/legacy/program_guide/main_loop/threads#To_query_the_number_of_active_threads|To query the number of active threads]]
+ * [[/develop/legacy/program_guide/main_loop/idlers|Idlers]]
+ * [[/develop/legacy/program_guide/main_loop/idlers#To_manage_the_idlers|To manage the idlers]]
+ * [[/develop/legacy/program_guide/main_loop/idlers#To_add_an_idler|To add an idler]]
+ * [[/develop/legacy/program_guide/main_loop/idlers#To_delete_an_idler|To delete an idler]]
+ * [[/develop/legacy/program_guide/main_loop/idlers#To_add_and_delete_idle_exiters|To add and delete idle exiters]]
+ * [[/develop/legacy/program_guide/main_loop/idlers#To_add_and_delete_idle_enterers|To add and delete idle enterers]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Ecore__Main__Loop__Group.html|Ecore Main Loop API]]
+
+-----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/multilingual_pg.txt b/public_html/data/pages/develop/legacy/program_guide/multilingual_pg.txt
new file mode 100644
index 00000000..9126a7a8
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/multilingual_pg.txt
@@ -0,0 +1,427 @@
+{{page>index}}
+------
+===== Multilingual Programming Guide =====
+
+=== Table of Contents ===
+
+ * [[#Concepts|Concepts]]
+ * [[#Localization_in_EFL|Localization in EFL]]
+ * [[#Marking_text_parts_as_translatable|Marking text parts as translatable]]
+ * [[#Translating_texts_directly|Translating texts directly]]
+ * [[#Plurals|Plurals]]
+ * [[#Handling_language_changes_at_runtime|Handling language changes at runtime]]
+ * [[#compiling_and_running_a_Localized_Application|compiling and running a Localized Application]]
+ * [[#Extracting_messages_for_translation|Extracting messages for translation]]
+ * [[#Localization_tips|Localization tips]]
+ * [[#Don't_make_assumptions_about_languages|Don't make assumptions about languages]]
+ * [[#Translations_will_be_of_different_lengths|Translations will be of different lengths]]
+ * [[#For_source_control,_don't_commit_.po_if_only_line_indicators_have_changed|For source control, don't commit .po if only line indicators have changed]]
+ * [[#Using__()_as_a_shorthand_to_the_gettext()_function|Using _() as a shorthand to the gettext() function]]
+ * [[#Proper_sorting:_strcoll()|Proper sorting: strcoll()]]
+ * [[#Working_with_translators|Working with translators]]
+
+==== Concepts ====
+
+Localization (also called l10n) is done by using strings in a specific
+language in the code (typically English) and then translating them to the
+target language.
+
+Not using resource identifiers but actual strings makes it much more convenient
+and readable. A typical code to create a button that will be translated is:
+
+
+Evas_Object *button = elm_button_add(parent);
+elm_object_translatable_text_set(button, "Click Here");
+
+
+The messages that require translations are typically automatically extracted
+from the sources and put into .po files, one per language. For the example
+above, the "fr.po" file could contain:
+
+
+#: some_file.c:43 another_file.c:41
+msgid "Click Here"
+msgstr "Cliquez ici"
+
+
+In the example above, the program that extracts strings has found two
+occurrences of the same string, one in some_file.c at line 43 and another one
+in another_file.c at line 41. It gives the original string after "msgid" and
+the translation goes after "msgstr".
+
+Strings without translation are stored as the empty string "" in the .po file
+and the program will use the original strings, providing a sane fallback.
+
+It is possible that the "fuzzy" keyword is added by the extractor program on
+the line before "msgid"; it means the original string has changed and needs
+review.
+
+
+elm_object_translatable_text_set(Evas_Object *obj, const char *text)
+elm_object_item_translatable_text_set(Elm_Object_Item *it, const char *text)
+
+
+They set the untranslated string for the "default" part of the given
+''Evas_Object'' or ''Elm_Object_Item'' and mark the string as translatable.
+
+Similar functions are available if you wish to set the text for a part that is
+not "default":
+
+
+elm_object_translatable_part_text_set(Evas_Object *obj, const char *part, const char *text)
+elm_object_item_translatable_part_text_set(Elm_Object_Item *it, const char *part, const char *text)
+
+
+It is important to provide the untranslated string to these functions because
+the EFLs will trigger the translation themselves and re-translate the strings
+automatically should the system language change.
+
+It is also possible to set the text and the translatable property separately.
+Setting the text is done as usual while the translatable property is set
+through the ''elm_object_part_text_translatable_set()'':
+
+There are also ''get()'' counterparts to the ''set()'' functions above.
+
+=== Translating texts directly ===
+
+The approach described in the previous section is not always applicable.
+For instance, it won't work if you are populating a genlist, if you need
+plurals in the translation or if you want to do something else with the
+translation than putting it in elementary widgets.
+
+It is however possible to retrieve the translation for a given text using
+gettext from ''
+char * gettext(const char * msgid);
+
+
+The input of this function is a string (that will be copied to an msgid
+field in the .po files) and returns the translation (the
+corresponding msgstr field).
+
+In order to use gettext, you have to set the local before:
+
+
+setlocale(LC_ALL,"");
+
+
+''LC_ALL'' is a catch-all Locale Category (LC). Setting it will alter all LC
+categories such as ''LC_MESSSAGES'' and ''LC_TYPES'' which are other categories
+for translation: ''LC_MESSSAGES'' is for message translations and ''LC_TYPES''
+indicates the character set supported.
+
+By setting the locale to ''""'', you are implicitly assigning the locale to
+the user's defined locale (grabbed from the user's LC or LANG environment
+variables). If there is no user-defined locale, the default locale "C" is
+used.
+
+
+bindtextdomain("hello","/usr/share/locale/");
+
+
+This command binds the name ''"hello"'' to the directory root of the message
+files. In fact, the program will be looking for your ''hello.mo'' in
+''/usr/share/locale/
+textdomain("hello");
+
+
+This sets the application name as ''"hello"'', as cited above. This makes gettext
+calls look for the file ''hello.mo'' in the appropriate directory. By binding
+various domains and setting the textdomain (or using ''dcgettext()'',
+explained elsewhere) at runtime, you can switch between different domains as
+desired.
+
+When giving the text for a genlist item, you could use it in a similar manner
+as the one below:
+
+
+#include
+#include
+
+#define _(str) gettext(str)
+
+static char *
+_genlist_text_get(void *data, Evas_Object *obj, const char *part)
+{
+ return strdup(gettext("Some Text"));
+ /* or usual way
+ * return strdup(_("Some Text"));
+ */
+}
+
+EAPI_MAIN int
+elm_main(int argc, char **argv)
+{
+ setlocale(LC_ALL,"");
+ bindtextdomain("hello","/usr/share/locale");
+ textdomain("hello");
+
+ /* ... */
+
+ elm_run();
+ elm_shutdown();
+ return 0;
+}
+ELM_MAIN()
+
+
+== Plurals ==
+
+Plurals are handled in a similar way but through the ''ngettext()'' function.
+Its prototype is shown below:
+
+
+char * ngettext (const char * msgid, const char * msgid_plural, unsigned long int n);
+
+
+ * ''msgid'' is the same as before, i.e. the untranslated string
+ * ''msgid_plural'' is the plural form of msgid
+ * the quantity (with English, 1 would be singular and anything else would be plural)
+
+A matching fr.po file would contain the following lines:
+
+
+msgid "%d Comment"
+msgid_plural "%d Comments"
+msgstr[0] "%d commentaire"
+msgstr[1] "%d commentaires"
+
+
+==Several plurals==
+
+It is even possible to have several plural forms. For instance, the .po file
+for Polish could contain:
+
+The index values after msgstr are defined in system-wide settings. The ones
+for Polish are given below:
+
+
+"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+
+There are 3 forms (including singular). The index is 0 (singular) if the given
+integer n is 1. Then, if ''(n % 10 >= 2 && % 10 <= 4 &&
+(n % 100 < 10 || n % 100 >= 20)'', the index is 1 and otherwise it is 2.
+
+== Handling language changes at runtime ==
+
+The user can change the system language settings at any time. When that is
+done, Ecore Events notifies the application which can then change the language used
+in elementary. The widgets then receive a "language,changed" signal and can
+set their text again.
+
+The first step is to handle the ecore event:
+
+
+static Eina_Bool
+_app_language_changed(void *data, int type, void *event)
+{
+ // Set the language in elementary
+ elm_language_set(setlocale(LC_ALL,NULL));
+}
+
+int
+main(int argc, char *argv[])
+{
+ ...
+
+ // Retrieve the current system language
+ ecore_event_handler_add(ECORE_EVENT_LOCALE_CHANGED , _app_language_changed, NULL);
+
+ ...
+}
+
+
+The call to ''elm_language_set()'' above will trigger the emission of the
+"language,changed" signal which can then be handled like usual smart events
+signals.
+
+=== Extracting messages for translation ===
+
+The xgettext tool can extract strings to translate to a .pot file (po
+template) while msgmerge can maintain existing .po files. The typical workflow
+is as follows:
+
+ * run xgettext once; it will generate a .pot file
+ * when adding a new translation, copy the .pot file to
+ xgettext --directory=src --output-dir=res/po --keyword=_ --keyword=N_ --keyword=elm_object_translatable_text_set:2 --keyword=elm_object_item_translatable_text_set:2 --add-comments= --from-code=utf-8 --foreign-user
+
+
+This will extract all strings that are used inside the "_()" function (usual
+optional short-hand for gettext()), use UTF-8 as the encoding and add the
+comments right before the strings to the output files.
+
+A typical call to msgmerge looks like:
+
+
+msgmerge --width=120 --update res/po/fr.po res/po/ref.pot
+
+
+POT file (.pot) stands for Portable Object Template file.
+It contains a series of lines in pair starting with the keywords msgid and msgstr
+respectively. In the above example there is only one such pair & msgid is
+shown first followed by a string in the source language, followed by a msgstr
+in the next line which is immediately followed by a blank string.
+
+Now in order to translate the application, these POT files are copied as PO
+(.po) files in respective language folders and then translated. What I mean by
+translation here is that, corresponding to every string adjacent to msgid
+there is a translated string (in local script), adjacent to msgstr. For Hindi
+it will look something like this:
+
+
+msgid "Click Here\n"
+msgstr "Cliquez ici\n"
+
+
+=== compiling and running a Localized Application ===
+
+Create an MO (.mo) file using the following command:
+
+
+msgfmt helloworld.po -o helloworld.mo
+
+
+In root mode copy the MO file to /usr/share/locale/
+cp helloworld.mo /usr/share/locale/fr_FR/LC_MESSAGES/
+
+
+Don't forget to export your language here:
+
+
+export LANG=fr_FR.utf8
+
+
+Then compile and execute your program.
+
+==== Localization tips ====
+
+=== Don't make assumptions about languages ===
+
+Languages vary wildly and even though you might know several of them, you
+shouldn't assume there is any common logic to them.
+
+For instance, with English typography no character must appear before colons
+and semicolons (':' and ';'). However, with French typography, there should be
+"espace fine insécable", i.e. a non-breakable space (HTML's ) that
+is narrower that regular spaces.
+
+This prevents proper translation in the following construct:
+
+
+snprintf(buf, some_size, "%s: %s", gettext(error), gettext(reason));
+
+
+The proper way to do it is to use a single string and let the translators
+manage the punctuation. This means, translating the format string instead:
+
+
+snprintf(buf, some_size, gettext("%s: %s"), gettext(error), gettext(reason));
+
+
+Of course, it might not always be doable but you should strive for this unless
+a specific issue arises.
+
+=== Translations will be of different lengths ===
+
+Depending on the language, the translation will have a different length on
+screen. Some languages have shorter constructs than other in some cases while
+it is reversed for others; some languages can also have a word for a concept
+while others won't and will require a circumlocution (designating something by
+using several words).
+
+=== For source control, don't commit .po if only line indicators have changed ===
+
+From the example above, a translation block looks like:
+
+
+#: some_file.c:43 another_file.c:41
+msgid "Click Here"
+msgstr "Cliquez ici"
+
+
+In case you insert a new line at the top of "some_file.c", the line indicator
+will change to look like
+
+
+#: some_file.c:44 another_file.c:41
+
+
+Obviously, on non-trivial projects, such changes will happen often. If you use
+source control (you should) and commit such changes even though no actual
+translation change has happened, each and every commit will probably contain a
+change to .po files. This will hamper readability of the change history and in
+case several people are working in parallel and need to merge their changes,
+this will create huge merge conflicts each time.
+
+Only commit changes to .po files when actual translation changes have
+happened, not merely because line comments have changed.
+
+=== Using _() as a shorthand to the gettext() function ===
+
+Since calling ''gettext()'' might happen very often, it is often abbreviated
+to ''_()'':
+
+
+#define _(str) gettext(str)
+
+
+== Proper sorting: strcoll() ==
+
+Quite often you will want to sort data for display. There is a string
+comparison tailored for that: ''strcoll()''. It works the same as ''strcmp()''
+but sorts according to the current locale settings.
+
+
+int strcmp(const char *s1, const char *s2);
+int strcoll(const char *s1, const char *s2);
+
+
+The function prototype is a standard one and indicates how to order strings. A
+detailed explanation would be out of scope for this guide but chances are you
+will be able to provide the ''strcoll()'' function as the comparison function
+for sorting the data set you are using.
+
+== Working with translators ==
+
+The system described above is a common one and will likely be known to
+translators, meaning that giving its name ("gettext") might be enough to
+explain how to work. In addition to this documentation, there is extensive
+additional documentation and questions and answers on the topic on the
+Internet.
+
+Don't hesitate to put comments in your code right above the strings to
+translate since they can be extracted along with the strings and put in the
+.po files for the translator to see them.
diff --git a/public_html/data/pages/develop/legacy/program_guide/sandbox_gadgets.md.txt b/public_html/data/pages/develop/legacy/program_guide/sandbox_gadgets.md.txt
new file mode 100644
index 00000000..179b3fe6
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/sandbox_gadgets.md.txt
@@ -0,0 +1,651 @@
+---
+~~Title: Creating Enlightenment Gadgets~~
+---
+
+# Creating Enlightenment Gadgets #
+**The code blocks in this guide are not intended to be compiled separately or work individually. They are meant to be used as a visual reference of the changes that need to be made to make an EFL application a gadget. The final code block, along with the accompanying .desktop file and meson.build at the end of this page are the intended files to use if you would like to compile and install this example as a gadget.**
+
+*Gadgets* are standalone applications that Enlightenment can use as extensions to its desktop. They are similar to modules in that they can be placed in containers, called *gadget sites*; they differ in that they are not internal to Enlightenment and do not run in the same process.
+
+This process separation occurs through Enlightenment placing gadgets into a sandbox. This sandbox is a gadget visual that manages the necessary gadget requirements, in place of the application handling this. Sandboxing is beneficial to the user desktop experience as it encourages the creation of gadgets through a much easier development path while also protecting the user desktop experience from being interrupted by faulty extensions.
+
+This guide demonstrates how to develop these gadgets.
+
+## Prerequisites ##
+
+* Install and configure Enlightenment and the EFL with Wayland support: [Get Enlightenment](http://www.enlightenment.org/docs/distros/start).
+* Create the Hello World program: [Get started with EFL](http://www.enlightenment.org/develop/efl/start)
+
+## Gadget Advantages and Limitations ##
+
+Creating gadgets directly, rather than as modules, reduces the need to call upon additional application programming interfaces (APIs). Gadgets are also more robust: as gadgets run in a separate process from Enlightenment they will not crash the desktop when encountering an error, instead gracefully recovering from their own crashes.
+
+There are, however, a few limitations for gadgets. It is not recommended to use forced sizes or size hints in the gadget application. The sandbox will manage sizing for the application; setting minimum or maximum sizes, resizing or moving objects will clash with how the sandbox is managing sizes. Simply setting the desired aspect for the application will tell the sandbox how it needs to prioritize the size of the application.
+
+Running additional applications from within the gadget application will also bring unintended results. The gadget lives in a sandbox and is bound by the size and space that the sandbox provides. If the gadget tries to open further windows or applications on its own these windows and applications will be restricted to the gadget visual. Fortunately, the sandbox provides smart callbacks than can be called to run external applications and also provides a method for opening further windows or popups within the gadget application.
+
+## Gadget Basics ##
+
+Enlightenment populates its list of gadgets by looking for ``.desktop`` files installed to the directory ``enlightenment/gadgets`` under Enlightenment's library directory, which can be found using ``pkg-config --variable=libdir enlightenment``. This gadget list is then made available for use through each gadget site's "Add Gadgets" popup. These popups display either a live view of the gadget or a still image.
+
+When Enlightenment executes the gadget application it sets the environment variable ``E_GADGET_ID``. This environmental variable is how the gadget application will determine if it is being run as a gadget, if it is being displayed in the "Add Gadget" popup or if it has been added to a gadget site and has a unique gadget ID. The environment variable ``E_GADGET_ORIENTATION`` is also set. It will be equal to one of three values. ``Horizontal`` ``Vertical`` or ``None`` and will indicate whether the gadget is being placed in a container that will layout its children horizontally, vertically, or neither. For the purpose of this example, this environment variable is not used.
+
+To demonstrate this, a modified version of the Hello World app referenced in the Prerequisites section of this guide is used. Note the following important change: in the original version the window is created using ``elm_win_util_standard_add()``, but in order to achieve transparency on the window for use as a gadget this is changed to ``elm_win_add()`` in this guide.
+
+In the ``elm_main()`` function the application can check for the ``E_GADGET_ID`` with the following code:
+
+```c
+EAPI_MAIN int
+elm_main(int argc, char **argv)
+{
+ Evas_Object *win, *btn, *icon;
+ int gadget =0, id_num = 0;
+ char buf[16];
+
+ elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
+
+ if (getenv("E_GADGET_ID"))
+ {
+ gadget = 1;
+ snprintf(buf, sizeof(buf), "%s", getenv("E_GADGET_ID"));
+ id_num = atoi(buf);
+ }
+
+ win = elm_win_add(NULL, "Main", ELM_WIN_BASIC);
+ elm_win_title_set(win, "Hello, World!");
+ elm_win_autodel_set(win, EINA_TRUE);
+
+ if (gadget) elm_win_alpha_set(win, EINA_TRUE);
+
+ if (gadget && id_num == -1)
+ {
+ icon = elm_icon_add(win);
+ elm_icon_standard_set(icon, "start-here");
+ evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_win_resize_object_add(win, icon);
+ evas_object_show(icon);
+ }
+ else
+ {
+ btn = elm_button_add(win);
+ elm_object_text_set(btn, "Goodbye Cruel World");
+ elm_win_resize_object_add(win, btn);
+ evas_object_smart_callback_add(btn, "clicked", on_click, win);
+ evas_object_show(btn);
+ }
+ evas_object_show(win);
+
+ elm_run();
+
+ return 0;
+}
+```
+
+The variable ``gadget`` is used to determine if the application is running as a gadget or as a standalone application. The variable ``id_num`` is used to identify the ID of the gadget, if the application is indeed running as a gadget. If the application is running as a gadget, the window is set to alpha so that the background of the window does not show up. This is for aesthetics purposes so that gadgets on gadget sites don't all have a background.
+
+If the id of the gadget is ``-1`` the application is being run in the "Add Gadget" popup. In this case the application displays an icon. If the ID of the gadget is not ``-1`` the application is being run as a gadget in a gadget site and the ID will be unique to this gadget. This is important for complex gadgets where the application would like to save settings or configurations and have them loaded after restarts. This unique ID is how the application will identify which settings to load.
+
+## Gadget Events and Smart Callbacks ##
+
+Gadget applications will receive the following smart callbacks on their main window using ``evas_object_smart_callback_add(application_window, smart_callback_type, function, data)``:
+
+* ``gadget_action`` - There was an error with the gadget action.
+* ``gadget_action_deleted`` - The gadget action has been deleted.
+* ``gadget_action_end`` - The gadget action has ended.
+* ``gadget_configure`` - The configure menu item of the gadget has been clicked.
+* ``gadget_site_anchor`` - The position of the gadget has changed.
+* ``gadget_site_gravity`` - The gravity of the gadget has changed.
+* ``gadget_site_orient`` - The orientation of the gadget has changed.
+
+Gadget applications can call the following smart callbacks on their main window using ``evas_object_smart_callback_call(application_window, smart_callback_type, data)``:
+
+* ``gadget_action_request`` - This requests that the gadget sets up an action. The data on this call should be the action name.
+* ``gadget_open_uri`` - This requests the gadget to open an application that handles a uri. The data on this call should be the uri.
+
+You can call actions you set up via the ``evas_object_smart_callback_call(application_window, action, action_data)`` function.
+
+For more advanced purposes beyond the scope of this gadget introduction, it is worth noting that you can set an ecore event handler for ``ECORE_EVENT_SIGNAL_USER`` and the handler will be called when the user requests the gadget be removed. Inside of the handler, the user number will be equal to 2 if the user requested the gadget be removed.
+
+For the purpose of the Hello World gadget, a label detailing the anchor position and orientation of the gadget can be displayed using the following code:
+
+```c
+#include
+parts
+{
+ part
+ {
+ name: "box";
+ type: RECT;
+ scale: 1;
+ }
+}
+
+
+If you set the fixed size in C code, you can use the ''ELM_SCALE_SIZE'' macro:
+
+
+evas_object_size_hint_min_set(object, ELM_SCALE_SIZE(100), ELM_SCALE_SIZE(100));
+
+
+=== Do not fill the width or height out with a fixed size only ===
+
+If you fill the entire height out with a fixed size only and it is scaled, the
+end result can be larger than the screen size.
+
+{{ :scalability_scale_fixed_height.png }}
+
+If you set a partial width or height with a fixed size and leave the remaining
+area flexible, the layout does not expand outside the screen.
+
+{{ :scalability_scale_flexible_height.png }}
+
+------------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/scalability/scalability_using_edje.txt b/public_html/data/pages/develop/legacy/program_guide/scalability/scalability_using_edje.txt
new file mode 100644
index 00000000..ac409985
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/scalability/scalability_using_edje.txt
@@ -0,0 +1,420 @@
+{{page>index}}
+---------
+===== Scalability Using Edje =====
+
+Edje provides an abstraction layer between the application code
+and the interface. You can use Edje in your EFL applications to create
+visual elements and control the layout, look, and feel.
+
+Internally, Edje holds a geometry state machine and a state graph that
+defines, for example, what is visible, where, at what size, and with what
+colors. These details are described to Edje using an Edje .edj file. The file
+can be produced by using Edje_cc to take a text file (a .edc file) and
+"compile" an output .edj file that contains the state graph information,
+images, and any other needed data.
+
+While creating Edje, you set specific element properties to control the
+scalable behavior of the UI. Before creating a scalable UI using Edje, you
+must be familiar with the following scalability properties and part types.
+
+=== Table of Contents ===
+
+ * [[#Part]]
+ * [[#Description]]
+ * [[#Text]]
+ * [[#Image]]
+ * [[#Image_Set|ImageSet]]
+ * [[#Part_Types|PartTypes]]
+
+==== Part ====
+
+Parts are used to represent the most basic layout elements, such as a line in
+a border or a text on an image.
+
+The parts can have the following property:
+
+ * scale: 0-1 \\ Specifies whether the part scales its size with the scaling factor. This property is used to scale properties, such as font size or min/max size of the part. \\ The default value is 0 (off) and the default scaling factor is 1.0. To make a part scalable, set the property to 1 (on).
+
+==== Description ====
+
+Every part can have one or more description blocks to define the layout
+properties of the part.
+
+The descriptions can have the following properties:
+
+ * ''min''/''max'': width height \\ Specifies the minimum or maximum size of the part in pixels. It has no effect on the container size. \\ When the ''scale'' property of the part is set to 1 (on), the size is multiplied by the scaling factor.
+
+ * ''fixed'': 0-1 0-1 \\ When the ''min'' or ''max'' property is set, this property sets a boolean value for each dimension (horizontal and vertical, respectively) that tells the application whether it must be scaled when resized. \\ The default value is ''0 0''. To fix a part size to its min or max, set the value to 1.
+
+ * ''align'': X-axis Y-axis \\ When the displayed object size is smaller than its container, this property moves it along both axes using the relative position. \\ To move the property, use x = 0.0 to move to left, x = 1.0 to move to right, y = 0.0 to move to the top, and y = 1.0 to move to the bottom. The x = 0.5, y = 0.5 value sets the object at the center of its container. \\ The default value is ''0.5 0.5''.
+
+ * ''rel1''/''rel2'' \\ Specifies the position of the left-top and bottom-right corners of the part's container.
+ * relative: X-axis Y-axis \\ Specifies the relative position of the part's container. \\ The default value is 0.0 0.0 for rel1.relative and 1.0 1.0 for rel2.relative.
+ * ''to''/''to_x''/''to_y'' \\ Specified that a corner must be positioned relatively to another part's container. \\ By default, the corners of a part are placed to the whole interface.
+
+^ Edje part property example ^^
+|
+collections
+{
+ group
+ {
+ name: "property_test";
+
+ images
+ {
+ image: "panorama.png" COMP;
+ }
+
+ parts
+ {
+ part
+ {
+ name: "rect1";
+ type: RECT;
+ description
+ {
+ state: "default" 0.0;
+ rel1 {relative: 0.3 0.4;}
+ rel2 {relative: 0.7 0.6;}
+ color: 0 127 255 255;
+ }
+ }
+ part
+ {
+ name: "rect2";
+ type: RECT;
+ // Affected by scaling factor
+ scale: 1;
+ description
+ {
+ state: "default" 0.0;
+ fixed: 0 1;
+ // Height: 100 pixels (when the scaling factor is 1.0)
+ min: 0 100;
+ rel1 {relative: 0.0 1.0;}
+ rel2 {relative: 1.0 1.0;}
+ // Bottom-aligned
+ align: 0.5 1.0;
+ color: 255 127 0 255;
+ }
+ }
+ part
+ {
+ name: "image";
+ // Affected by scaling factor
+ scale: 1;
+ description
+ {
+ state: "default" 0.0;
+ fixed: 1 1;
+ // Image size: 720 x 180 pixels (when the scaling factor is 1.0)
+ min: 720 180;
+ // Y-axis is positioned relative to "rect2" part
+ rel1 {relative: 0.5 0.0; to_y: "rect2";}
+ rel2 {relative: 0.5 0.0; to_y: "rect2";}
+ // Bottom-aligned
+ align: 0.5 1.0;
+ image.normal: "panorama.png";
+ }
+ }
+ }
+ }
+}
+
| {{ :scalability_scale_example_part.png }} |
+
+ * ''aspect'': min max \\ Specifies the width to height ratio to keep when the part is resized. When both values are the same, the ratio is fixed. When they differ, the part is forced to keep the ratio between the ''min'' and ''max'' properties when resized. \\ The default value is ''0.0 0.0''.
+
+ * ''aspect_preference'': dimension \\ Specifies the scope of the ''aspect'' property to a given dimension. \\ The possible values are ''BOTH'', ''VERTICAL'', ''HORIZONTAL'', and ''NONE''. The default is ''NONE''.
+
+^ Edje part property aspect example ^^
+|
+collections
+{
+ group
+ {
+ name: "property_test";
+
+ images
+ {
+ image: "island.png" COMP;
+ }
+
+ parts
+ {
+ part
+ {
+ name: "image";
+ description
+ {
+ state: "default" 0.0;
+ rel1 {relative: 0.0 0.0;}
+ rel2 {relative: 1.0 1.0;}
+ image.normal: "island.png";
+ aspect: 8/5 8/5;
+ // Keep the aspect ratio based on the part width
+ aspect_preference: HORIZONTAL;
+ }
+ }
+ }
+ }
+}
| {{ :scalability_scale_example_part_aspect.png }} |
+
+==== Text ====
+
+The text elements are used to display text on the screen.
+
+The texts can have the following properties:
+
+ * ''size'': font-size \\ Specifies the font size for the text. When the ''scale'' property of the part is set to 1 (on), the size is multiplied by the scaling factor.
+
+ * ''min'': horizontal vertical \\ Specifies a pair of boolean values that define whether the container can be reduced further than the text size. The property is used to prevent the container from chopping the text. \\ When ''min'' is set horizontally or vertically, the minimum height or width of the part is decided by the text size. \\ The default value is ''0 0''.
+
+ * ''max'': horizontal vertical \\ Specifies a pair of boolean values that define whether the container can be expanded further than the text size. \\ When ''max'' is set horizontally or vertically, the maximum height or width of the part is decided by the text size. \\ The default value is ''0 0''.
+
+^ Edje text property example ^^
+|
+collections
+{
+ group
+ {
+ name: "property_test";
+
+ parts
+ {
+ part
+ {
+ name: "text";
+ type: TEXT;
+ scale: 1;
+ description
+ {
+ state: "default" 0.0;
+ rel1 {relative: 0.0 0.0;}
+ rel2 {relative: 1.0 0.0;}
+ align: 0.5 0.0;
+ color: 108 108 108 255;
+ text
+ {
+ font: "Sans";
+ // Affected by scaling factor
+ size: 80;
+ // Minimum height of the part container is decided by the
+text size
+ min: 0 1;
+ text: "Test properties!!";
+ }
+ }
+ }
+ }
+ }
+}
+
| {{ :scalability_scale_example_text.png }} |
+
+ * ''fit'': horizontal vertical \\ Specifies a pair of values that define whether the text is scaled to fill its container horizontally and/or vertically. \\ The default value is ''0 0''.
+
+^ Edje text property fit example ^^
+|
+collections
+{
+ group
+ {
+ name: "property_test";
+
+ parts
+ {
+ part
+ {
+ name: "text";
+ type: TEXT;
+ description
+ {
+ state: "default" 0.0;
+ rel1 {relative: 0.0 0.0;}
+ rel2 {relative: 1.0 0.1;}
+ color: 108 108 108 255;
+ text
+ {
+ font: "Sans";
+ // Resize text to fill the container height
+ fit: 0 1;
+ text: "Test properties!!";
+ }
+ }
+ }
+ }
+ }
+}
+
| {{ :scalability_scale_example_text_fit.png }} |
+
+==== Image ====
+
+The image elements are used to display images on the screen.
+
+The images can have the following properties:
+
+ * ''border'': left right top bottom \\ Specifies the border size of the image in pixels. This property sets the area of each side of the image to be displayed as a fixed size border, preventing the corners from being changed on a resize.
+
+ * ''border_scale'' \\ Specifies whether the border scales its size according to the scaling factor. \\ The default value is 0 (off). To make the border scalable, the value must be set to 1 (on).
+
+^ Edje image property example ^^
+|
+collections
+{
+ group
+ {
+ name: "property_test";
+
+ images
+ {
+ image: "00_button_01_normal.png" COMP;
+ }
+
+ parts
+ {
+ part
+ {
+ name: "image";
+ description
+ {
+ state: "default" 0.0;
+ rel1 {relative: 0.0 0.6;}
+ rel2 {relative: 1.0 0.7;}
+ image.normal: "00_button_01_normal.png";
+ }
+ }
+ part
+ {
+ name: "ninepatch_image";
+ description
+ {
+ state: "default" 0.0;
+ rel1 {relative: 0.0 0.8;}
+ rel2 {relative: 1.0 0.9;}
+ image
+ {
+ normal: "00_button_01_normal.png";
+ border: 4 4 0 0;
+ // Affected by scaling factor
+ border_scale: 1;
+ }
+ }
+ }
+ }
+ }
+}
+
| {{ :scalability_scale_example_image.png }} |
+
+==== Image Set ====
+
+The image set elements are used to display a specific image on the screen
+based on the container size.
+
+The image sets can have the following properties:
+
+ * ''name'': image-name \\ Specifies the name of the image file.
+
+ * ''size'': minw minh maxw maxh \\ Specifies the minimum and maximum size that causes a specified image to be
+selected and shown. \\ The image set is used to control resource quality when the image part is scaled to multiple devices. According to the size of the part's container, an appropriate image is loaded.
+
+^ Edje image set property example ^^
+|
+collections
+{
+ group
+ {
+ name: "property_test";
+
+ images
+ {
+ set
+ {
+ name: "alternative_animal";
+ image
+ {
+ image: "pig.png" COMP;
+ size: 640 800 1200 1500;
+ }
+ image
+ {
+ image: "monkey.png" COMP;
+ size: 400 500 639 799;
+ }
+ image
+ {
+ image: "cat.png" COMP;
+ size: 240 300 399 499;
+ }
+ image
+ {
+ image: "mouse.png" COMP;
+ size: 80 100 239 299;
+ }
+ image
+ {
+ image: "snail.png" COMP;
+ size: 0 0 79 99;
+ }
+ }
+ }
+
+ parts
+ {
+ part
+ {
+ name: "image1";
+ description
+ {
+ state: "default" 0.0;
+ rel1 {relative: 0.0 0.0;}
+ rel2 {relative: 1.0 0.45;}
+ image.normal: "alternative_animal";
+ aspect: 4/5 4/5;
+ aspect_preference: BOTH;
+ }
+ }
+ part
+ {
+ name: "image2";
+ description
+ {
+ state: "default" 0.0;
+ rel1 {relative: 0.0 0.5;}
+ rel2 {relative: 1.0 0.75;}
+ image.normal: "alternative_animal";
+ aspect: 4/5 4/5;
+ aspect_preference: BOTH;
+ }
+ }
+ part
+ {
+ name: "image3";
+ description
+ {
+ state: "default" 0.0;
+ rel1 {relative: 0.0 0.8;}
+ rel2 {relative: 1.0 1.0;}
+ image.normal: "alternative_animal";
+ aspect: 4/5 4/5;
+ aspect_preference: BOTH;
+ }
+ }
+ }
+ }
+}
+
| {{ :scalability_scale_example_image_set.png }} |
+
+==== Part Types ====
+
+You can use fixed and flexible parts:
+
+ * Fixed parts
+ * Fixed parts have a minimum size (at least width or height).
+ * When the part ''scale'' property is set to 1 (on), the scaling factor has an effect on the minimum size.
+ * Fixed parts are used when the parts must keep a fixed size in any device or any orientation.
+ * Flexible parts
+ * Flexible parts resize according to the container size and other fixed parts' size.
+ * Flexible parts are used when the parts can be resized in any device or any orientation.
+
+//__Fixed and flexible parts__//:{{ :scalability_scale_fixed_flexible.png }}
+---------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/scalability/scalability_using_elementary_ui_components.txt b/public_html/data/pages/develop/legacy/program_guide/scalability/scalability_using_elementary_ui_components.txt
new file mode 100644
index 00000000..9b00d2e2
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/scalability/scalability_using_elementary_ui_components.txt
@@ -0,0 +1,100 @@
+{{page>index}}
+-------
+===== Scalability using Elementary UI components =====
+
+Elementary includes an extensive set of UI components. You can use
+elementary UI components to compose your application user interface (UI).
+While creating the UI, you can set specific properties for the UI components
+to control the scalable behavior of the UI. Before you try to create a
+scalable UI using elementary UI components, make sure you understand the
+following core concepts on how scalability works with elementary UI
+components.
+
+
+static void
+_set_label_text(void *data, Ecore_Thread *thread __UNUSED__, void *msgdata)
+{
+ char buf[64];
+ Evas_Object *label = data;
+ snprintf(buf, sizeof(buf), "Tick %d", (int)(uintptr_t)msgdata);
+ elm_object_text_set(label, buf);
+}
+
+
+**2**. Send the feedback from the other thread using the ''ecore_thread_feedback()''
+function. The following function does nothing besides sending the feedback and
+sleeping.
+
+
+static void
+_long_function(void *data __UNUSED__, Ecore_Thread *thread)
+{
+ int iteration;
+ // Change the text roughly every 1 second. This is only an example; if you
+ // want regular animations, use Ecore animators!
+ for (iteration = 0; ; iteration++)
+ {
+ // Since you are running from another thread, you need to take special
+ // care and instead send data to the main thread and have it run the
+ // feedback function given when creating the thread
+ ecore_thread_feedback(thread, (void*)(uintptr_t)iteration);
+ // Sleep for roughly one second
+ sleep(1);
+ }
+}
+
+
+**3**. Create an end function that is called when the thread exits. In
+this example, the end function is called only right before the application
+exits. However, if the blocking function is more complex, it can trigger the
+end function.
+
+
+static void
+_end_func(void *data, Ecore_Thread *thread __UNUSED__)
+{
+ Evas_Object *label = data;
+ elm_object_text_set(label, "Ticks over");
+}
+
+
+**4**. Call the ''ecore_thread_feedback_run()'' function to start the thread:
+
+
+ecore_thread_feedback_run(_long_function, _set_label_text, _end_func, NULL, label, EINA_FALSE);
+
+
+To use the ''ecore_main_loop_thread_safe_call_sync()'' function:
+
+**1**. Implement the GUI function that sets the text of a label and can be
+called from the main thread. The function receives data as a structure and
+alternatively displays "Tick d" or "Tock d".
+
+
+struct thd
+{
+ Evas_Object *label;
+ Eina_Bool tick_not_tock;
+ int iteration;
+};
+
+static void *
+_set_label_text_tick_tock(void *data)
+{
+ char buf[64];
+ struct thd *thd = data;
+ snprintf(buf, sizeof(buf), "%s %d", (thd->tick_not_tock ? "Tick" : "Tock"), thd->iteration);
+ elm_object_text_set(thd->label, buf);
+
+ return NULL;
+}
+
+
+**2**. Use the ''ecore_main_loop_thread_safe_call_sync()'' function call
+the GUI function. Differentiate between the ticks and the tocks:
+
+
+static void
+_long_function_tick_tock(void *data, Ecore_Thread *thread __UNUSED__)
+{
+ struct thd *thd = malloc(sizeof(struct thd));
+ thd->label = data;
+ for (thd->iteration = 0; ; (thd->iteration)++)
+ {
+ thd->tick_not_tock = EINA_TRUE;
+ ecore_main_loop_thread_safe_call_sync(_set_label_text_tick_tock, thd);
+ sleep(1);
+ thd->tick_not_tock = EINA_FALSE;
+ ecore_main_loop_thread_safe_call_sync(_set_label_text_tick_tock, thd);
+ sleep(1);
+ }
+ free(thd);
+}
+
+
+**3**. Start the thread through the ''ecore_thread_run()'' function:
+
+
+ecore_thread_run(_long_function_tick_tock, _end_func, NULL, label);
+
+
+-------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/threading_pg.txt b/public_html/data/pages/develop/legacy/program_guide/threading_pg.txt
new file mode 100644
index 00000000..bc3c0d52
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/threading_pg.txt
@@ -0,0 +1,29 @@
+{{page>index}}
+===== Threading Programming Guide =====
+
+Threads are concurrent execution environments that are lighter than full-blown
+processes because they share some operating system resources. Threads make it
+possible to do several things at the same time while using less resources and
+offering simpler synchronization and data exchange compared to processes.
+
+If you move a blocking operation to a separate thread, it cannot block the
+event loop and keeps the user interface reactive. Blocking the event loop and
+using long-running callbacks means the application cannot update its graphical
+user interface.
+
+While threads can be useful, they are not always the best choice:
+
+ * The first rule to using threads is to avoid them as much as possible, as there are often better tools and approaches. For example, to do network transfers, use ''Ecore_Con'' that integrates with the event loop to use a function based on callbacks. Being able to use such a function means that specific support work has been done in libraries. In some cases, using a function and libraries is impossible, and in those situations threads are required.
+ * Use threads in CPU-intensive tasks and disk IOs. For example, a thread is the appropriate way to apply filters to an image or to a video without blocking the interface.
+ * Use threads to take advantage of multiple available CPU cores, if the workload can be split into several units of work and spread across the cores. A typical example for an image processing application on a quad-core CPU is to process 4 images at once, each on 1 thread. For such tasks, the thread pool helps with the creation and scheduling of the threads, handling all the grunt work.
+
+=== Table of Contents ===
+
+ * [[/develop/legacy/program_guide/threading/thread_safety|Thread Safety]]
+ * [[/develop/legacy/program_guide/threading/thread_pools|Thread Pools]]
+ * [[/develop/legacy/program_guide/threading/thread_management_with_ecore|Thread Management with ECore]]
+ * [[/develop/legacy/program_guide/threading/low-level_functions|Low-level Functions]]
+ * [[/develop/legacy/program_guide/threading/thread_use_example|Thread Use Example]]
+
+--------
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/background.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/background.txt
new file mode 100644
index 00000000..4e22e35f
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/background.txt
@@ -0,0 +1,88 @@
+~~Title: Background Widget PG~~
+{{page>widgets_index}}
+----
+===== Background Widgets =====
+{{ :widgets_background_tree.png }}{{ :widgets_background.png }}
+
+The background widget can be used to set a solid background decoration to a
+window or to a container object. It works like an image, but has some
+background specific properties, for example it can be set to tiled, centered,
+scaled or stretched mode. There are no specific signals relative to background
+object
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Background|Adding a Background]]
+ * [[#Change_Color_of_the_Background|Change Color of the Background]]
+ * [[#Change_Image_of_the_Background|Change Image of the Background]]
+ * [[#Using_Overlay|Using Overlay]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Bg.html|Background Widget API]]
+
+^Background Examples^^^
+|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/bg_01_example_page.html|Plain color background]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/bg_02_example_page.html|Image background]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/bg_03_example_page.html|Background preperties]]|
+
+==== Adding a Background ====
+
+A background is created with the ''elm_bg_add()''.
+
+
+Evas_Object *bg;
+
+// Creating a background
+bg = elm_bg_add(parent);
+
+
+==== Change Color of the Background ====
+
+You can set the color of the bg with ''elm_bg_color_set()''. Here we set the
+background color to red.
+
+
+Evas_Object *bg;
+
+// Use red color for background
+elm_bg_color_set(bg, 0xFF, 0x00, 0x00);
+
+
+==== Change Image of the Background ====
+
+It is also possible to set an image or an Edje group with
+''elm_bg_file_set()''.
+The display mode of the image in the background can be chosen with
+''elm_bg_option_set()'', where the following modes are available:
+
+ * ''ELM_BG_OPTION_CENTER'': center the background image
+ * ''ELM_BG_OPTION_SCALE'': scale the background image, retaining aspect ratio
+ * ''ELM_BG_OPTION_STRETCH'': stretch the background image to fill the widget's area
+ * ''ELM_BG_OPTION_TILE'': tile background image at its original size
+
+
+Evas_Object *bg;
+
+// Set a file on the disk as background image
+elm_bg_file_set(bg, "/path/to/the/image", NULL);
+// Set an edje group as background image
+elm_bg_file_set(bg, "/path/to/the/edje", "edje_group");
+elm_bg_option_set(bg, ELM_BG_OPTION_STRETCH)
+
+
+==== Using Overlay ====
+
+An overlay can be set using the "overlay" part name.
+
+
+elm_object_part_content_set(bg, "overlay", over);
+
+
+Here, over is an Edje object that will be displayed on top of the current bg
+object.
+
+\\
+^Background Examples^^^
+|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/bg_01_example_page.html|Plain color background]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/bg_02_example_page.html|Image background]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/bg_03_example_page.html|Background preperties]]|
+\\
+----
+{{page>widgets_index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/basics.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/basics.txt
new file mode 100644
index 00000000..85ea612e
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/basics.txt
@@ -0,0 +1,121 @@
+~~Title: Elementary Basics PG~~
+{{page>widgets_index}}
+----
+===== Elementary Basics =====
+
+Elementary widgets are built in a hierarchical fashion. The idea is to
+factorize as much code as possible between widgets that behave in a similar
+manner, so as to facilitate the creation of new widgets. The Elementary
+widgets that we will use inherit a lot of their code from the container
+widgets and the layout widget (a container widget that takes a standard Edje
+design file and wraps it very thinly). We can therefore use the container and
+layout functions on them. We can also use Elementary object functions on them,
+such as ''elm_object_part_content_set()'', ''elm_object_part_content_get()'', and
+''elm_object_part_content_unset()''.
+
+This programming guide does not describe the container widgets. More
+information about containers can be found in
+[[/develop/legacy/program_guide/containers_pg|Container Widgets]].
+
+Generally, an Elementary widget can be added with the
+''elm_[widget_name]_add()''
+function, which returns an Evas object (''Evas_Object*''). The Evas object is then
+be passed to the functions that are used to configure the widget.
+
+At the end of your application, the ''elm_shutdown()'' function takes care of
+freeing the allocated Elementary objects, so there is no need to separately
+deallocate widgets.
+
+==== First Use of the Elementary Library ====
+
+A minimal Elementary application looks like this:
+
+
+#include
+int main(int argc, char **argv)
+{
+ elm_init(argc, argv);
+ elm_run();
+ elm_shutdown();
+
+ return 0;
+}
+
+
+First of all, before using the Elementary library, it has to be initialized
+with the ''elm_init()'' function. The Elementary main loop can then be started
+with the ''elm_run()'' function, which will not return, and will constantly loop
+and run the event and processing tasks. A call to the ''elm_exit()'' function will
+tell the main loop to stop and return to the main function. At the end of the
+application, the ''elm_shutdown()'' function will clean up all resources that were
+allocated with Elementary in the main loop, and finally shut down Elementary.
+
+
+//Creating a button
+Evas_Object *button = elm_button_add(parent);
+
+
+==== Adding an Icon Inside a Button ====
+
+The icon can be updated with ''elm_object_part_content_set()'' function with the
+"icon" part name.
+
+
+Evas_Object *ic;
+ic = elm_icon_add(button);
+elm_image_file_set(ic, "icon.png", NULL);
+elm_object_part_content_set(button, "icon", ic);
+
+
+==== Adding Text Inside a Button ====
+
+The label can be modified using the ''elm_object_text_set()'' function.
+
+
+elm_object_text_set(button, "Click me!");
+
+
+==== Using Button Style ====
+
+Also, defined in the default theme, the button has the following styles
+available:
+
+ * ''default'': a normal button.
+ * ''anchor'': Like default, but the button fades away when the mouse is not over it, leaving only the text or icon.
+ * ''hoversel_vertical'': Internally used by Hoversel to give a continuous look across its options.
+ * ''hoversel_vertical_entry'': Another internal for Hoversel.
+ * ''naviframe'': Internally used by Naviframe for its back button.
+ * ''colorselector'': Internally used by Colorselector for its left and right buttons.
+
+
+To change the style of the button, we call the ''elm_object_style_set()'' function
+on our button object.
+
+
+elm_object_style_set(button,"naviframe");
+
+
+==== Using Button Callbacks ====
+
+Button emits the following signals:
+
+ * ''"clicked"'': the user clicked the button (press/release).
+ * ''"repeated"'': the user pressed the button without releasing it.
+ * ''"pressed"'': button was pressed.
+ * ''"unpressed"'': button was released after being pressed.
+ * ''"focused"'': When the button has received focus. (since 1.8)
+ * ''"unfocused"'': When the button has lost focus. (since 1.8) In all cases, the event parameter of the callback will be NULL.
+
+For all these signals the ''event_info'' parameter returned in the callback is
+NULL.
+
+This is an example to register and define callback function called by the
+clicked signal.
+
+
+evas_object_smart_callback_add(button, "clicked", _clicked_cb, data);
+// Callback function for the "clicked" signal
+// This callback is called when the button is clicked by the user
+
+static void
+_clicked_cb (void *data, Evas_Object *obj, void *event_info)
+{
+ printf("Button clicked\n");
+}
+
+
+==== Using Autorepeat Feature ====
+
+The autorepeat feature (enabled by default) consists of calling the "repeated"
+signal when the user keeps the button pressed. This feature can be disabled
+with the ''elm_button_autorepeat_set()'' function. The autorepeat is configured
+with
+
+ * ''elm_button_autorepeat_initial_timeout_set()'': to set the initial timeout before the autorepeat event is generated
+ * ''elm_button_autorepeat_gap_timeout_set()'': to set the interval between two autorepeat events
+
+Disable the autorepeat feature:
+
+
+elm_button_autorepeat_set(button, EINA_FALSE);
+
+
+Enable the autorepeat feature (enabled by default):
+
+
+elm_button_autorepeat_set(button, EINA_TRUE);
+
+
+Set the initial timeout to five seconds:
+
+
+elm_button_autorepeat_initial_timeout_set(button, 5.0);
+
+
+Set the gap between two signals to 0.5 seconds:
+
+
+elm_button_autorepeat_gap_timeout_set(button, 0.5);
+
+
+\\
+^Button Examples^^
+|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/button_example_00.html|Hello, Button!]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/button_example_01.html|Complete Example]]|
+\\
+----
+{{page>widgets_index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/check.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/check.txt
new file mode 100644
index 00000000..c385c625
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/check.txt
@@ -0,0 +1,135 @@
+~~Title: Check Widget PG~~
+{{page>widgets_index}}
+----
+===== Check Widgets =====
+{{ :widgets_check_tree.png }}{{ :widgets_check.png }}
+
+The check widget is similar to the radio widget, except that it does not work
+as a group. It toggles the value of a boolean between true and false.
+
+This widget inherits from the layout widget. All layout functions can be used
+on the check widget.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Check|Adding a Check]]
+ * [[#Modifying_Check_Styles|Modifying Check Styles]]
+ * [[#Using_Check_Widget|Using Check Widget]]
+ * [[#Using_Check_Callbacks|Using Check Callbacks]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Check.html|Check Widget API]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_check.html|A Check Example]]
+
+==== Adding a Check ====
+
+This is how to create a check widget.
+
+
+Evas_Object *check;
+check = elm_check_add(parent);
+
+
+==== Modifying Check Styles ====
+
+Check widget style can be set with the ''elm_object_style_set()'' function. The
+following styles are available:
+
+ * ''"default"''
+ * ''"toggle"''
+
+''elm_object_style_get()'' allows to get the current style.
+
+==== Using Check Widget ====
+
+After having created a check object, it is possible to set its boolean value
+to ''EINA_TRUE''.
+
+
+elm_check_state_set(check, EINA_TRUE);
+
+
+We can also retrieve the current value of the check object.
+
+
+Eina_Bool value = elm_check_state_get(check);
+
+
+As with the radio object, an icon and a label can be set.
+
+Default content parts of the check widget that you can use for are:
+
+ * ''"icon"'' - An icon of the check
+
+Default text parts of the check widget that you can use for are:
+
+ * ''"default"'' - A label of the check
+ * ''"on"'' - On state label of the check (only valid for "toggle" style.)
+ * ''"off"'' - Off state label of the check (only valid for "toggle" style.)
+
+
+
+// Create a Home icon
+Evas_Object *icon;
+
+icon = elm_icon_add(parent);
+elm_icon_standard_set(icon, "home");
+
+// Set it to the check object
+elm_object_part_content_set(check, "icon", icon);
+
+// Set the check label
+elm_object_text_set(check, "Check label");
+
+
+We can also modify the "on" and "off" labels (only valid for '"toggle" style).
+
+
+elm_object_part_text_set(check, "on", "True");
+elm_object_part_text_set(check, "off", "False");
+
+
+The get functions of the elementary object API can be used to retrieve the
+content set to the check object.
+
+
+// Get the current set text of the check label
+char *text = elm_object_text_get(check);
+
+// Get the content set in the icon part
+Evas_Object *icon = elm_object_part_content_get(check, "icon");
+
+
+==== Using Check Callbacks ====
+
+This widget emits the following signals, besides the ones sent from Layout:
+
+ * ''"changed"'' - This is called whenever the user changes the state of the check objects (event_info is always NULL).
+ * ''"focused"'' - When the check has received focus. (since 1.8)
+ * ''"unfocused"'' - When the check has lost focus. (since 1.8)
+ * ''"language,changed"'' - the program's language changed (since 1.9)
+
+When the value is changed by the user, the ''changed'' signal is emitted.
+''event_info'' parameter is ''NULL''.
+
+This example shows how to register a callback on this signal.
+
+
+evas_object_smart_callback_add(check, "changed", _changed_cb, data);
+
+// Callback function for the "changed" signal
+// This callback is called when the check value changes
+static void
+_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("The value has changed\n");
+}
+
+
+\\
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_check.html|A Check Example]]__**//
+\\
+----
+{{page>widgets_index}}
+
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/colorselector.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/colorselector.txt
new file mode 100644
index 00000000..26e720f4
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/colorselector.txt
@@ -0,0 +1,183 @@
+~~Title: Colorselector Widget PG~~
+{{page>widgets_index}}
+----
+===== Colorselector Widgets =====
+{{ :widgets_colorselector_tree.png }}{{ :widgets_colorselector.png }}
+
+The colorselector widget provides a color selection solution to the user.
+There are different modes available, each of them showing a different
+configuration of the colorselector widget.
+
+The Palette mode displays several color items that enable the user to choose a
+color in the items displayed. It is possible to add new items, or to update
+the color of the current item. The list of color items is called a palette, it
+is associated with a unique identifier. This enable the developer to create
+new series of colors (new palette) and save it under another identifier. By
+default, the color palette is using the "default" identifier.
+
+This widget inherits from the layout widget, so all function concerning the
+layout widget can also be used on the colorselector widget.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Colorselector|Adding a Colorselector]]
+ * [[#Setting_Colorselector_Modes|Setting Colorselector Modes]]
+ * [[#Using_Colorselector_Callbacks|Using Colorselector Callbacks]]
+ * [[#Clear_the_Palette|Clear the Palette]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Colorselector.html|Colorselector Widget API]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_colorselector.html|A Colorselector Example]]
+
+==== Adding a Colorselector ====
+
+This is how to create a colorselector object.
+
+
+Evas_Object *colorsel = elm_colorselector_add(parent);
+
+
+==== Setting Coloselector Modes ====
+
+There are 7 enumeration macros that defines the different modes supported by a
+colorselector object.
+
+^Mode^Description^
+|''ELM_COLORSELECTOR_PALETTE''|Only the color palette is displayed|
+|''ELM_COLORSELECTOR_COMPONENTS''|Only the color selector is displayed|
+|''ELM_COLORSELECTOR_BOTH''|Both the Palette and the selector is displayed, default|
+|''ELM_COLORSELECTOR_PICKER''|Only the color picker is displayed|
+|''ELM_COLORSELECTOR_PLANE''|Only the color plane is displayed|
+|''ELM_COLORSELECTOR_PALETTE_PLANE''|Both the palette and the plane is displayed|
+|''ELM_COLORSELECTOR_ALL''|All possible color selectors are displayed|
+
+This is how to set the mode of the colorselector to the palette mode.
+
+
+elm_colorselector_mode_set(colorsel, ELM_COLORSELECTOR_PALETTE);
+
+
+We want to create a new palette called "mypalette". This new palette will be
+saved by elementary config and it will be loaded again later. Three colors are
+then added in "mypalette": red, green, and blue.
+
+
+elm_colorselector_palette_name_set(colorsel, "mypalette");
+elm_colorselector_palette_color_add(colorsel, 255, 0, 0, 255);
+elm_colorselector_palette_color_add(colorsel, 0, 255, 0, 255);
+elm_colorselector_palette_color_add(colorsel, 0, 0, 255, 255);
+
+
+The "default" palette already contains 14 colors.
+
+
+elm_colorselector_palette_name_set(colorsel, "default");
+
+
+''elm_colorselector_palette_name_get()'' allows to get the palette name.
+
+When the user clicks on the color elements, it changes the color that is set
+to the colorselector widget. The function allows to get the
+current selected color.
+
+
+int r, g, b, a;
+elm_colorselector_color_get(colorsel, &r, &g, &b, &a);
+
+
+''elm_colorselector_color_set()'' color the current selected color.
+
+==== Using Colorselector Callbacks ====
+
+The colorselector emits the following signals:
+
+
+ * "changed" - When the color value changes on selector event_info is NULL.
+ * "color,item,selected" - When user clicks on color item. The event_info parameter of the callback will be the selected color item.
+ * "color,item,longpressed" - When user long presses on color item. The event info parameter of the callback contains selected color item.
+ * "focused" - When the colorselector has received focus. (since 1.8)
+ * "unfocused" - When the colorselector has lost focus. (since 1.8)
+ * "language,changed" - the program's language changed (since 1.9)
+
+To register a callback on the "changed" signal:
+
+
+evas_object_smart_callback_add(colorsel, "changed", _changed_cb, data);
+
+
+The callback function changed the color of data to the current color of the
+colorselector.
+
+
+static void
+_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ int r, g, b, a;
+ elm_colorselector_color_get(obj, r, g, b, a);
+ //ensure colors are pre-multiplierd by alpha
+ evas_color_argb_premul(a, &r, &g, &b);
+ evas_object_color_set(data, r, g, b, a);
+}
+
+
+''elm_colorselector_mode_get()'' returns the colorselector's mode.
+
+==== The Colorselector Items ====
+
+According to the mode, several items of the colorselector are set, the palette
+list is available with:
+
+
+Eina_list palette_items = elm_colorselector_palette_items_get(colorsel);
+
+
+You can get or set/unset the selected one (''NULL'' if none is selected):
+
+Evas_Object_Item *item_selected = elm_colorselector_palette_selected_item_get(colorsel);
+if(item_selected)
+ {
+ /* unset */
+ elm_colorselector_palette_selected_item_set(item_selected, EINA_FALSE);
+ /* set */
+ elm_colorselector_palette_selected_item_set(item_selected, EINA_TRUE);
+ }
+
+
+Plus, ''elm_colorselector_palette_item_selected_get()'' returns the selected state of color palette item.
+
+You finally can get and set the color of palette item with the two following
+functions, in the example below each palette item sets its color to the next
+item in the list:
+
+
+const Eina_List * items = elm_colorselector_palette_items_get(colorsel);
+Elm_Object_Item *item, *first_item = NULL;
+int r = 0, g = 0, b = 0, a = 0;
+int r_prec = 0, g_prec = 0, b_prec = 0, a_prec = 0;
+Eina_Iterator *itr = eina_list_iterator_new(items);
+EINA_ITERATOR_FOREACH(itr, item)
+ {
+ if(!first_item) first_item = item;
+ elm_colorselector_palette_item_color_get(item, &r, &g, &b, &a);
+ elm_colorselector_palette_item_color_set(item, r_prec, g_prec, b_prec, a_prec);
+ r_prec = r; g_prec = g; b_prec = b, a_prec = a;
+ }
+elm_colorselector_palette_item_color_set(first_item, r_prec, g_prec, b_prec, a_prec);
+eina_iterator_free(itr);
+
+
+==== Clear the Palette ====
+
+To clear the palette items:
+
+
+elm_colorselector_palette_clear(colorsel);
+
+
+\\
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_colorselector.html|A Colorselector Example]]__**//
+\\
+----
+{{page>widgets_index}}
+
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/config.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/config.txt
new file mode 100644
index 00000000..cc75cd17
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/config.txt
@@ -0,0 +1,378 @@
+~~Title: Config Widget PG~~
+{{page>widgets_index}}
+----
+===== Elementary configuration =====
+
+An Elementary configuration is composed of a set of options linked to a given
+Elementary profile. Once loaded, the Elementary profile will configure all
+these options and affect the look and feel of your entire Elementary
+application.
+
+An Elementary configuration can be used to store the desired set
+of options that fits your application. Below, we list the different options
+that can be saved in an Elementary profile.
+
+=== Table of Contents ===
+
+ * [[#General_functions|General functions]]
+ * [[#Managing_profiles|Managing profiles]]
+ * [[#Widget_scaling|Widget scaling]]
+ * [[#Configuring_cache|Configuring cache]]
+ * [[#Theme|Theme]]
+ * [[#Configuring_focus|Configuring focus]]
+ * [[#Configuring_gesture_layer|Configuring gesture layer]]
+ * [[#Configuring_scrolling|Configuring scrolling]]
+ * [[#Configuring_longpress|Configuring longpress]]
+ * [[#Configuring_tooltip|Configuring tooltip]]
+ * [[#Configuring_password_show_last|Configuring password show last]]
+ * [[#Configuring_Elementary_engine|Configuring Elementary engine]]
+ * [[#Configuring_access_mode|Configuring access mode]]
+ * [[#Configuring_selection|Configuring selection]]
+ * [[#Configuring_mirroring|Configuring mirroring]]
+ * [[#Configuring_frame_rate|Configuring frame rate]]
+
+
+==== General Functions ====
+
+The ''elm_config_save()'' function provides a way to save the current
+Elementary configuration so that it can be reused in another session:
+
+
+elm_config_save();
+
+
+When a profile is selected, we can ask Elementary to reload its configuration
+with the saved profile:
+
+
+elm_config_reload();
+
+
+==== Managing Profiles ====
+
+A profile is a set of preconfigured options that affects the entire look and
+feel of an application.
+
+We can list the existing profiles:
+
+
+Eina_List *list = elm_config_profile_list_get();
+
+
+We can set a particular profile:
+
+
+elm_config_profile_set("myprofile");
+
+
+We can get the current profile:
+
+
+char *profile = elm_config_profile_get();
+
+
+==== Scaling Widgets ====
+
+An Elementary configuration allows you to configure widget scaling both in
+terms of interactive areas and readable areas. For more information about
+widget scaling, see [[/develop/legacy/program_guide/scalability_pg|Scaling Widgets]].
+
+Setting the global scaling factor to 2.0 will double the size of all scalable
+widgets:
+
+
+elm_config_scale_set(2.0);
+
+
+We can also set the finger size:
+
+
+elm_config_finger_size_set(1.5);
+
+
+==== Configuring the Cache ====
+
+We can enable the globally configured cache flush, and we can then set the
+flush interval to 60 seconds:
+
+
+elm_config_cache_flush_enabled_set(EINA_TRUE);
+elm_config_cache_flush_interval_set(60);
+
+
+We can configure the font cache size to 500 bytes and the image cache size to
+5 000 000 bytes:
+
+
+elm_config_cache_font_cache_size_set(500);
+elm_config_cache_image_cache_size_set(5000000);
+
+
+Finally, we can set the Edje collection cache size and the Edje file cache
+size:
+
+
+elm_config_cache_edje_file_cache_size_set(500);
+elm_config_cache_edje_collection_cache_size_set(500);
+
+
+==== Customizing Themes ====
+
+Elementary uses Edje to theme its widgets. Edje provides a default theme for
+each widget. This theme can be changed per application using the ''ELM_THEME''
+environment variable, or it can be modified globally with the
+''elementary_config'' utility.
+
+When you need custom styles, use extensions. Extensions allow you to write
+styles for specific widgets. Once set, the extension will completely replace
+the default theme of the widget.
+
+
+Eina_List *obj_list = NULL;
+
+list = eina_list_append(list, obj1);
+list = eina_list_append(list, obj4);
+list = eina_list_append(list, obj2);
+list = eina_list_append(list, obj3);
+
+elm_object_focus_custom_chain_set(container_object, list);
+
+
+Use the ''elm_object_focus_custom_chain_unset()'' function to remove the
+custom focus chain and use the default focus chain instead.
+
+Use the ''elm_object_focus_next()'' function to programmatically cycle through
+the focus chain.
+
+For detailed information about focus, see
+[[/develop/legacy/program_guide/focus_ui_pg|Managing Widget Focus]].
+
+We can show a highlight on the focused object:
+
+
+elm_config_focus_highlight_enabled_set(EINA_TRUE);
+
+
+We can also activate an animation when the focus shifts from one object to
+another:
+
+
+elm_config_focus_highlight_animate_set(EINA_TRUE);
+
+
+==== Configuring the Gesture Layer ====
+
+We can configure the duration of the long tap and double tap events on gesture
+layer objects. Here, we set the duration to 500 ms:
+
+
+elm_config_glayer_long_tap_start_timeout_set(0.5);
+elm_config_glayer_double_tap_timeout_set(0.5);
+
+
+==== Configuring Scrolling ====
+
+An Elementary configuration provides several functions for configuring
+scrolling in widgets.
+
+You can enable bouncing, which makes the scroller bounce when it reaches its
+viewport's edge during scrolling:
+
+
+elm_config_scroll_bounce_enabled_set(EINA_TRUE);
+
+
+You can control the inertia of the bounce animation. Here, the inertia is set
+to 0.5:
+
+
+elm_config_scroll_bounce_friction_set(0.5);
+
+
+You can also set the friction for a page scroll, include animations, and zoom
+animations.
+
+You can use the ''elm_config_scroll_thumbscroll_enabled_set()'' function to
+set the scroller to be draggable. You can configure several drag options, such
+as friction, sensitivity, acceleration, and momentum.
+
+Here, we set the scroller to be draggable, and we set the number of pixels one
+should travel while dragging the scroller's view to actually trigger scrolling
+to 20 pixels:
+
+
+// Set the scroller to be draggable
+elm_config_scroll_thumbscroll_enabled_set(EINA_TRUE);
+
+// Set the thumbscroll threshold to 20 pixels
+elm_config_scroll_thumbscroll_threshold_set(20);
+
+
+==== Configuring Long Press ====
+
+Long press events can be configured using the ''elm_config'' API. Here, we get
+the current timeout before a long press event happens and increase it by 1
+second:
+
+
+// Get the long press timeout
+double lp_timeout = elm_config_longpress_timeout_get();
+
+// Increase it by 1 second
+elm_config_longpress_timeout_set(lp_timeout + 1.0);
+
+
+==== Configuring Tooltips ====
+
+The duration after which a tooltip is shown can be configured through the
+''elm_config'' API. Here, we set the delay to 2 seconds:
+
+
+elm_config_tooltip_delay_set(2.0);
+
+
+==== Configuring the Password Show Last Feature ====
+
+The password show last feature enables users to view the last input entered
+for a few seconds before it is masked. The following functions allow you to
+set this feature in the password mode of the entry widget and to change the
+duration over which the input has to be visible.
+
+First, we enable the password show last feature:
+
+
+elm_config_password_show_last_set(EINA_TRUE);
+
+
+Then, we set the visibility timeout to 5 seconds:
+
+
+elm_config_password_show_last_timeout_set(5.0);
+
+
+==== Configuring the Elementary Engine ====
+
+We can use ''elm_config'' to set the rendering engine that Elementary will use
+to draw the windows. The following rendering engines are supported:
+
+ * "software_x11"
+ * "fb"
+ * "directfb"
+ * "software_16_x11"
+ * "software_8_x11"
+ * "xrender_x11"
+ * "opengl_x11"
+ * "software_gdi"
+ * "software_16_wince_gdi"
+ * "sdl"
+ * "software_16_sdl"
+ * "opengl_sdl"
+ * "buffer"
+ * "ews"
+ * "opengl_cocoa"
+ * "psl1ght"
+
+Here, we set the engine to "opengl_x11":
+
+
+elm_config_engine_set("opengl_x11");
+
+
+==== Configuring the Access Mode ====
+
+When the access mode is active, information about an Elementary object is read
+when the object receives an ''EVAS_CALLBACK_MOUSE_IN'' event. Here, we
+activate the access mode:
+
+
+elm_config_access_set(EINA_TRUE);
+
+
+==== Configuring Selection ====
+
+Selection behavior can be set to be cleared when the entry widget is
+unfocused:
+
+==== Configuring Mirroring ====
+
+
+elm_config_selection_unfocused_clear_set(EINA_TRUE);
+
+
+Elementary allows UI mirroring both on a single object and on the entire UI.
+If activated with the ''elm_object_mirrored_set()'' function, an Elementary
+widget will display as if there was a vertical mirror in the middle of it.
+Only the controls and the disposition of the widget are mirrored. Text is not
+mirrored.
+
+The default mirror mode of widgets can be set with ''elm_config''. Here, we
+activate the mirror mode by default:
+
+==== Configuring Frame Rate ====
+
+
+elm_config_mirrored_set(EINA_TRUE);
+
+
+We can also set the frames per second (FPS) value for
+''ecore_animator_frametime'' and ''edje_frametime'' calculations. Here, we set
+the FPS to 60:
+
+
+elm_config_fps_set(60.0);
+
+
+----
+{{page>widgets_index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/ctxpopup.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/ctxpopup.txt
new file mode 100644
index 00000000..c7a3ea97
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/ctxpopup.txt
@@ -0,0 +1,103 @@
+~~Title: Ctxpopup Widget PG~~
+{{page>widgets_index}}
+----
+===== Ctxpopup Widgets =====
+{{ :widgets_ctxpopup_tree.png }}{{ :widgets_ctxpopup.png }}
+
+Ctxpopup is a contextual popup, which can show a list of items.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Ctxpopup|Adding a Ctxpopup]]
+ * [[#Configuring_Ctxpopup|Configuring Ctxpopup]]
+ * [[#Managing_Ctxpopup_Items|Managing Ctxpopup Items]]
+ * [[#Using_Ctxpopup_Callbacks|Using Ctxpopup Callbacks]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Ctxpopup.html|Ctxpopup Widget API]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_ctxpopup.html|A Ctxpopup Example]]
+
+==== Adding a Ctxpopup ====
+
+A ctxpopup can be created with ''elm_ctxpopup_add()'' and when shown, it
+automatically chooses an area inside its parent object's view (set via
+''elm_ctxpopup_hover_parent_set()'') to optimally fit into it.
+
+
+Evas_Object *ctxpopup = elm_ctxpopup_add(parent);
+
+
+==== Configuring Ctxpopup ====
+
+The context popup orientation can be set with
+''elm_ctxpopup_horizontal_set()''. Here we set it to horizontal.
+
+
+elm_ctxpopup_horizontal_set(ctxpopup, EINA_TRUE);
+
+
+We can also disable auto hiding if we want the ctxpopup never to be hidden.
+(Auto hide is enabled by default.)
+
+
+elm_ctxpopup_auto_hide_disabled_set(ctxpopup, EINA_TRUE);
+
+
+==== Managing Ctxpopup Items ====
+
+The ctxpopup can contain a small number of items. Each of them can have a
+label and an icon. Here we append an item with the "Test" label and no icon.
+
+
+Elm_Object_Item *it = elm_ctxpopup_item_append(ctxpopup, "test", NULL, _ctxpopup_item_cb, NULL);
+
+
+The ''_ctxpopup_item_cb()'' callback will be called when the item is clicked. This
+is how to write the definition of this callback.
+
+
+static void
+_ctxpopup_item_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("ctxpopup item selected\n");
+}
+
+
+Then the item label is set to "New label".
+
+
+elm_object_item_part_text_set(it, "default", "New label");
+
+
+And its icon is modified to the standard "home" icon.
+
+
+Evas_Object *home_icon = elm_icon_add(ctxpopup);
+elm_icon_standard_set(home_icon, "home");
+
+elm_object_item_part_content_set(it, "icon", home_icon);
+
+
+==== Using Ctxpopup Callbacks ====
+
+The context popup emits the "dismissed" signal when it is dismissed. We can
+register a callback to this signal. The event_info parameter is NULL.
+
+
+evas_object_smart_callback_add(ctxpopup, "dismissed", _dismissed_cb, data);
+
+
+static void
+_dismissed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("ctxpopup dismissed\n");
+}
+
+
+\\
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_ctxpopup.html|A Ctxpopup Example]]__**//
+\\
+----
+{{page>widgets_index}}
+
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/datetime.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/datetime.txt
new file mode 100644
index 00000000..2dbebd12
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/datetime.txt
@@ -0,0 +1,122 @@
+~~Title: Datetime Widget PG~~
+{{page>widgets_index}}
+----
+===== Datetime Widgets =====
+{{ :widgets_datetime_tree.png }}{{ :widgets_datetime.png }}
+
+The datetime widget displays and adds date and time values.
+
+This widget inherits from the Layout one, so that all the functions acting on
+it also work for datetime objects.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Datetime|Adding a Datetime]]
+ * [[#Setting_Datetime_Format|Setting Datetime Format]]
+ * [[#Using_Datetime_Callbacks|Using Datetime Callbacks]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Datetime.html|Datetime Widget API]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/datetime_example.html|A Datetime Example]]
+
+==== Adding a Datetime ====
+
+The widget is created with ''elm_datetime_add()''. It is then possible to select
+the visible fields with ''elm_datetime_field_visible_set()''. The following fields
+can be controlled:
+
+ * ''ELM_DATETIME_YEAR'': The Year field
+ * ''ELM_DATETIME_MONTH'': The Month field
+ * ''ELM_DATETIME_DATE'': The Date field
+ * ''ELM_DATETIME_HOUR'': The Hour field
+ * ''ELM_DATETIME_MINUTE'': The Minute field
+ * ''ELM_DATETIME_AMPM'': The AM/PM field
+
+As an example, this is how to create a datetime widget and set the HOUR and
+MINUTE fields visible.
+
+
+Evas_Object *datetime = elm_datetime_add(parent);
+elm_datetime_field_visible_set(datetime, ELM_DATETIME_HOUR, EINA_TRUE);
+elm_datetime_field_visible_set(datetime, ELM_DATETIME_MINUTE, EINA_TRUE);
+
+elm_datetime_field_visible_set(datetime, ELM_DATETIME_YEAR, EINA_FALSE);
+elm_datetime_field_visible_set(datetime, ELM_DATETIME_MONTH, EINA_FALSE);
+elm_datetime_field_visible_set(datetime, ELM_DATETIME_DATE, EINA_FALSE);
+elm_datetime_field_visible_set(datetime, ELM_DATETIME_AMPM, EINA_FALSE);
+
+
+==== Setting Datetime Format ====
+
+The format of the date and time can be configured with
+''elm_datetime_format_set()'' using a combination of allowed Libc date format
+specifiers.
+
+Elm_datetime supports only the following sub set of libc date format
+specifiers:
+
+| ''%Y'' | The year as a decimal number including the century (example: 2011).|
+| ''%y'' | The year as a decimal number without a century (range 00 to 99)|
+| ''%m'' | The month as a decimal number (range 01 to 12).|
+| ''%b'' | The abbreviated month name according to the current locale.|
+| ''%B'' | The full month name according to the current locale.|
+| ''%h'' | The abbreviated month name according to the current locale(same as %b).|
+| ''%d'' | The day of the month as a decimal number (range 01 to 31).|
+| ''%e'' | The day of the month as a decimal number (range 1 to 31). single digits are preceded by a blank.|
+| ''%I'' | The hour as a decimal number using a 12-hour clock (range 01 to 12).|
+| ''%H'' | The hour as a decimal number using a 24-hour clock (range 00 to 23).|
+| ''%k'' | The hour (24-hour clock) as a decimal number (range 0 to 23). single digits are preceded by a blank.|
+| ''%l'' | The hour (12-hour clock) as a decimal number (range 1 to 12); single digits are preceded by a blank.|
+| ''%M'' | The minute as a decimal number (range 00 to 59).|
+| ''%p'' | Either 'AM' or 'PM' according to the given time value, or the corresponding strings for the current locale. Noon is treated as 'PM' and midnight as 'AM'|
+| ''%P'' | Like p but in lower case: 'am' or 'pm' or a corresponding string for the current locale.|
+| ''%c'' | The preferred date and time representation for the current locale.|
+| ''%x'' | The preferred date representation for the current locale without the time.|
+| ''%X'' | The preferred time representation for the current locale without the date.|
+| ''%r'' | The complete calendar time using the AM/PM format of the current locale.|
+| ''%R'' | The hour and minute in decimal numbers using the format H:M.|
+| ''%T'' | The time of day in decimal numbers using the format H:M:S.|
+| ''%D'' | The date using the format %m/%d/%y.|
+| ''%F'' | The date using the format %Y-%m-%d.|
+
+//For more reference on the available LIBC date format specifiers, please visit
+the link:
+[[http://www.gnu.org/s/hello/manual/libc.html#Formatting-Calendar-Time|Formatting
+Calendar Time]].//
+
+
+Here, as an example, we set the format to: "HH : MM".
+
+
+elm_datetime_format_set(datetime, "%H : %M");
+
+
+==== Using Datetime Callbacks ====
+
+This widget emits the following signals, besides the ones sent from Layout:
+
+ * ''"changed"'' - whenever Datetime field value is changed, this signal is sent.
+ * ''"language,changed"'' - whenever system locale changes, this signal is sent.
+ * ''"focused"'' - When the datetime has received focus. (since 1.8)
+ * ''"unfocused"'' - When the datetime has lost focus. (since 1.8)
+
+A callback can be registered on the ''"changed"'' signal to detect when the
+Datetime field values are changed. The ''event_info'' parameter is NULL.
+
+
+evas_object_smart_callback_add(datetime, "changed", _changed_cb, data);
+
+
+static void
+_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("Datetime field changed. \n");
+}
+
+
+\\
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/datetime_example.html|A Datetime Example]]__**//
+\\
+----
+{{page>widgets_index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/entry.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/entry.txt
new file mode 100644
index 00000000..b0c720d4
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/entry.txt
@@ -0,0 +1,437 @@
+~~Title: Entry Widget PG~~
+{{page>widgets_index}}
+----
+===== Entry Widgets =====
+{{ :widgets_entry_tree.png }}{{ :widgets_entry.png }}
+
+The entry widget is a box where the user can enter text. It supports the
+following features:
+
+ * text wrapping
+ * multiline
+ * scrolling
+ * formatted markup text
+ * password mode
+ * filtering text
+ * read/write from a file
+ * theme style overrides
+
+=== Table of Contents ===
+
+ * [[#Adding_an_Entry|Adding an Entry]]
+ * [[#Using_Text_Edition|Using Text Edition]]
+ * [[#Setting_Password_Mode|Setting Password Mode]]
+ * [[#Entry_Line_Modes_And_Wrapping|Entry Line Modes And Wrapping]]
+ * [[#Selecting_Text|Selecting Text]]
+ * [[#Controlling_Cursor|Controlling Cursor]]
+ * [[#Formatting_Text|Formatting Text]]
+ * [[#Using_Special_Markups|Using Special Markups]]
+ * [[#Overriding_Style|Overriding Style]]
+ * [[#Filtering_Text|Filtering Text]]
+ * [[#File_Load/Save|File Load/Save]]
+ * [[#Using_Entry_Theme_Content|Using Entry Theme Content]]
+ * [[#Using_Entry_Theme_Texts|Using Entry Theme Texts]]
+ * [[#Using_Entry_Callbacks|Using Entry Callbacks]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Entry.html|Entry Widget API]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/entry_example.html|A Simple Editing example]]
+
+==== Adding an Entry ====
+
+The entry widget is created with the ''elm_entry_add()'' function, and the text
+inside the entry can be set with ''elm_entry_entry_set()''.
+
+
+Evas_Object *entry = elm_entry_add(parent);
+elm_entry_entry_set(entry, "A short text.");
+
+
+By default, entries are:
+
+ * not scrolled
+ * multi-line
+ * word wrapped
+ * autosave is enabled
+
+==== Using Text Edition ====
+
+We can also append text to the end of existing content,
+
+
+elm_entry_entry_append(entry, "END");
+
+
+or insert text at the current cursor position.
+
+
+elm_entry_entry_insert(entry, "CURSOR");
+Eina_Bool Empty = elm_entry_is_empty(entry);
+
+
+Call ''elm_entry_is_empty()'' to see whether the entry is empty. Here, the boolean
+variable Empty will return ''EINA_FALSE''.
+
+By default, the user can enter text in the entry widget when it is in the
+focus. We can prevent the user from editing text if needed.
+
+
+elm_entry_editable_set(entry, EINA_FALSE);
+
+
+
+elm_entry_password_set(entry, EINA_TRUE);
+
+
+==== Entry Line Modes And Wrapping ====
+
+The entry widget has two line modes:
+
+ * single line mode
+ * multiline mode
+
+First, we set the entry in single line mode.
+
+
+elm_entry_single_line_set(entry, EINA_TRUE);
+
+
+In this mode, the text does not wrap when reaching the edge, but the entry
+grows horizontally instead. Pressing the "Enter" key in this mode generates an
+"activate" event instead of adding a new line.
+
+When the entry is set to multiline mode (single line off), the text wraps at
+the end of the entry and pressing "Enter" creates a new line.
+
+
+elm_entry_single_line_set(entry, EINA_FALSE);
+elm_entry_line_wrap_set(entry, ELM_WRAP_WORD);
+
+
+In multiline entries, ''elm_entry_line_wrap_set()'' provides a way to cut the text
+implicitly into a new line when it reaches the far edge of the widget. The
+following wrap modes are available:
+
+ * ''ELM_WRAP_NONE'': No wrap
+ * ''ELM_WRAP_CHAR'': Wrap between characters
+ * ''ELM_WRAP_WORD'': Wrap in allowed wrapping points (as defined in the unicode standard)
+ * ''ELM_WRAP_MIXED'': Word wrap, and if that fails, char wrap
+
+==== Selecting Text ====
+
+Text selections can be made with different functions. This selects all the
+content of the entry widget.
+
+
+elm_entry_select_all(entry);
+
+
+We can drop the current selection with
+
+
+elm_entry_select_none(entry);
+
+
+To select part of the text, use ''elm_entry_select_region_set()''. The code
+below selects the first twenty characters of the entry content.
+
+
+elm_entry_select_region_set(entry, 0, 20);
+
+
+Current selected text within the entry can be retrieved like this.
+
+
+const char *selection;
+
+selection = elm_entry_selection_get(entry);
+
+
+If the entry text is empty, ''elm_entry_selection_get()'' will return NULL.
+
+We can copy or cut the selection to the clipboard. (There is an example of a
+cut below.)
+
+
+elm_entry_selection_cut(entry);
+
+
+This selection can be pasted in the same or a different entry.
+
+
+elm_entry_selection_paste(entry);
+
+
+==== Controlling Cursor ====
+
+The cursor represents the current position in the entry, where the next action
+is done (for example, text insertion or deletion). Usually, the cursor is
+represented as a blinking character, but that depends on the theme
+configuration. Cursor position can be modified by using several functions.
+
+It can be moved to the beginning of the entry,
+
+
+elm_entry_cursor_begin_set(entry);
+
+
+or to the end.
+
+
+elm_entry_cursor_end_set(entry);
+
+
+It can be moved one line down or up.
+
+
+elm_entry_cursor_down(entry);
+elm_entry_cursor_up(entry);
+
+
+It can also be moved one character to the left or right,
+
+
+elm_entry_cursor_prev(entry);
+elm_entry_cursor_next(entry);
+
+
+or set at a specific position (15th character, for example).
+
+
+elm_entry_cursor_pos_set(entry, 15);
+
+
+We can start a selection at the current cursor position, move five characters
+to the right and end the selection.
+
+
+elm_entry_cursor_selection_begin(entry);
+
+for(i = 0; i < 5; i++)
+ {
+ elm_entry_cursor_next(entry);
+ }
+
+elm_entry_cursor_selection_end(entry);
+
+
+==== Formatting Text ====
+
+The markup tags supported by the Entry are defined by the theme, but even when
+writing new themes or extensions it's a good idea to stick to a sane default,
+to maintain coherency and avoid application breakages. Currently defined by
+the default theme are the following tags:
+
+ * ''...
'': Monospace font without shadows.
+ * ''
+static Elm_Entry_Filter_Limit_Size limit_size =
+{
+ .max_char_count = 8,
+ .max_byte_count = 0
+};
+
+// Append a new callback to the list, this function will be called each time
+// a text is inserted in the entry. Pass the limit_size struct previously
+// created to set the maximum number of characters allowed to 8
+
+elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size,
+ &limit_size);
+
+
+Content can be filtered by passing an ''Elm_Entry_Filter_Accept_Set'' structure.
+This structure contains the accepted characters and rejected characters. In
+the example below we reject the '+', '-', '*', and '/' characters.
+
+
+static Elm_Entry_Filter_Accept_Set accept_set =
+{
+ .accepted = NULL,
+ .rejected = "+*-/"
+};
+
+elm_entry_markup_filter_append(entry, elm_entry_filter_accept_set,
+ &accept_set);
+
+
+==== File Load/Save ====
+
+The entry content can be saved to a file (/tmp/test.txt, for example).
+
+
+// Set the file in which the entry text will be saved. This function
+// implicitly loads the existing file content
+elm_entry_file_set(entry, "/tmp/test.txt", ELM_TEXT_FORMAT_MARKUP_UTF8);
+
+
+Autosave is activated by default and changes are written back to the file
+after a short delay. This feature can be deactivated and we can manually save
+the content when needed.
+
+
+// Disable autosaving
+elm_entry_autosave_set(entry, EINA_FALSE);
+
+// Trigger saving when needed
+elm_entry_file_save(entry);
+
+
+==== Using Entry Theme Content ====
+
+Two content parts of the default theme are available: "icon" and "end". Here
+we set an icon in the "end" content part.
+
+
+Evas_Object *icon;
+
+ic = elm_icon_add(entry);
+elm_image_file_set(ic, "icon.png", NULL);
+elm_object_part_content_set(entry, "end", icon);
+
+
+==== Using Entry Theme Texts ====
+
+The default theme allows the use of the following text parts:
+
+ * "default" - text of the entry
+ * "guide" - placeholder of the entry
+
+This is how to set the placeholder text of the entry to "Hello World".
+
+
+elm_object_part_text_set(entry, "guide", "Hello World");
+
+
+==== Using Entry Callbacks ====
+
+Entry widget emits the following signals, besides the ones sent from Layout:
+
+ * ''"aborted"'': The escape key was pressed on a single line entry. (since 1.7)
+ * ''"activated"'': The enter key was pressed on a single line entry.
+ * ''"anchor,clicked"'': An anchor has been clicked. The event_info parameter for the callback will be an #Elm_Entry_Anchor_Info.
+ * ''"anchor,down"'': Mouse button has been pressed on an anchor. The event_info parameter for the callback will be an #Elm_Entry_Anchor_Info.
+ * ''"anchor,hover,opened"'': The anchor is clicked.
+ * ''"anchor,in"'': Mouse cursor has moved into an anchor. The event_info parameter for the callback will be an #Elm_Entry_Anchor_Info.
+ * ''"anchor,out"'': Mouse cursor has moved out of an anchor. The event_info parameter for the callback will be an #Elm_Entry_Anchor_Info.
+ * ''"anchor,up"'': Mouse button has been unpressed on an anchor. The event_info parameter for the callback will be an #Elm_Entry_Anchor_Info.
+ * ''"changed"'': The text within the entry was changed.
+ * ''"changed,user"'': The text within the entry was changed because of user interaction.
+ * ''"clicked"'': The entry has been clicked (mouse press and release).
+ * ''"clicked,double"'': The entry has been double clicked.
+ * ''"clicked,triple"'': The entry has been triple clicked.
+ * ''"cursor,changed"'': The cursor has changed position.
+ * ''"cursor,changed,manual"'': The cursor has changed position manually.
+ * ''"focused"'': The entry has received focus.
+ * ''"unfocused"'': The entry has lost focus.
+ * ''"language,changed"'': Program language changed.
+ * ''"longpressed"'': A mouse button has been pressed and held for a couple
+ * ''"maxlength,reached"'': Called when a maximum length is reached.
+ * ''"preedit,changed"'': The preedit string has changed.
+ * ''"press"'': A mouse button has been pressed on the entry. seconds.
+ * ''"redo,request"'': Called on redo request.
+ * ''"selection,changed"'': The current selection has changed.
+ * ''"selection,cleared"'': The current selection has been cleared.
+ * ''"selection,copy"'': A copy of the selected text into the clipboard was requested.
+ * ''"selection,cut"'': A cut of the selected text into the clipboard was requested.
+ * ''"selection,paste"'': A paste of the clipboard contents was requested.
+ * ''"selection,start"'': A selection has begun and no previous selection existed.
+ * ''"text,set,done"'': Whole text has been set to the entry.
+ * ''"theme,changed"'': Called when the theme is changed.
+ * ''"undo,request"'': Called on undo request.
+ * ''"rejected"'': Called when some of inputs are rejected by the filter. (since 1.9)
+
+For signals, where ''event_info'' has not been explicitly described, it is set to
+NULL.
+
+As an example, we register a callback to the "focused" signal.
+
+
+evas_object_smart_callback_add(entry, "focused", _focused_cb, data);
+
+// Callback function for the "focused" signal
+// This callback is called when the entry receive the focus
+static void
+_focused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("Entry focused\n");
+}
+
+
+\\
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/entry_example.html|A Simple Editing example]]__**//
+\\
+----
+{{page>widgets_index}}
+
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/flip.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/flip.txt
new file mode 100644
index 00000000..216785ad
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/flip.txt
@@ -0,0 +1,132 @@
+~~Title: Flip Widget PG~~
+{{page>widgets_index}}
+----
+===== Flip Widgets =====
+{{ :widgets_flip_tree.png }}{{ :widgets_flip.png }}
+
+The flip widget can hold two Evas Objects and allows the user flip between
+them using several pre-defined animations.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Flip|Adding a Flip]]
+ * [[#Configuring_Flip_Animation|Configuring Flip Animation]]
+ * [[#Interacting_With_the_User|Interacting With the User]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Flip.html|Flip Widget API]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_flip.html|A Flip Example]]
+
+==== Adding a Flip ====
+
+This is how to create a flip widget.
+
+
+Evas_Object *flip, *content1, *content2;
+flip = elm_flip_add(parent);
+
+
+We can add content to the flip widget. content1 is set to the "front" content
+and content2 is set to the "back" mode.
+
+
+elm_object_part_content_set(flip, "front", content1);
+elm_object_part_content_set(flip, "back", content2);
+
+
+==== Configuring Flip Animation ====
+
+Now we can run an flip animation.
+
+
+elm_flip_go(flip, ELM_FLIP_CUBE_UP);
+
+
+This animation flips up the "front" content object as if it was on a side of a
+cube, letting the down facing side of the cube appear with the "back" content
+object. Several animations are available:
+
+ * ''ELM_FLIP_ROTATE_X_CENTER_AXIS'' - Rotate the currently visible content around a horizontal axis in the middle of its height, the other content is shown as the other side of the flip.
+ * ''ELM_FLIP_ROTATE_Y_CENTER_AXIS'' - Rotate the currently visible content around a vertical axis in the middle of its width, the other content is shown as the other side of the flip.
+ * ''ELM_FLIP_ROTATE_XZ_CENTER_AXIS'' - Rotate the currently visible content around a diagonal axis in the middle of its width, the other content is shown as the other side of the flip.
+ * ''ELM_FLIP_ROTATE_YZ_CENTER_AXIS'' - Rotate the currently visible content around a diagonal axis in the middle of its height, the other content is shown as the other side of the flip.
+ * ''ELM_FLIP_CUBE_LEFT'' - Rotate the currently visible content to the left as if the flip was a cube, the other content is show as the right face of the cube.
+ * ''ELM_FLIP_CUBE_RIGHT'' - Rotate the currently visible content to the right as if the flip was a cube, the other content is show as the left face of the cube.
+ * ''ELM_FLIP_CUBE_UP'' - Rotate the currently visible content up as if the flip was a cube, the other content is show as the bottom face of the cube.
+ * ''ELM_FLIP_CUBE_DOWN'' - Rotate the currently visible content down as if the flip was a cube, the other content is show as the upper face of the cube.
+ * ''ELM_FLIP_PAGE_LEFT'' - Move the currently visible content to the left as if the flip was a book, the other content is shown as the page below that.
+ * ''ELM_FLIP_PAGE_RIGHT'' - Move the currently visible content to the right as if the flip was a book, the other content is shown as the page below that.
+ * ''ELM_FLIP_PAGE_UP'' - Move the currently visible content up as if the flip was a book, the other content is shown as the page below that.
+ * ''ELM_FLIP_PAGE_DOWN'' - Move the currently visible content down as if the flip was a book, the other content is shown as the page below that.
+
+{{ :elm_flip.png }}
+
+
+elm_flip_interaction_set(flip, ELM_FLIP_INTERACTION_ROTATE);
+
+
+The available modes of interaction are
+
+ * ''ELM_FLIP_INTERACTION_NONE'' - No interaction is allowed
+ * ''ELM_FLIP_INTERACTION_ROTATE'' - Interaction causes a rotating animation
+ * ''ELM_FLIP_INTERACTION_CUBE'' - Interaction causes a cube animation
+ * ''ELM_FLIP_INTERACTION_PAGE'' - Interaction causes a page animation
+
+We must also choose, which interaction directions are enabled (only right and
+left in the following example).
+
+
+elm_flip_interaction_direction_enabled_set(flip, ELM_FLIP_DIRECTION_LEFT, EINA_TRUE);
+elm_flip_interaction_direction_enabled_set(flip, ELM_FLIP_DIRECTION_RIGHT, EINA_TRUE);
+
+
+We can also set the amount of the flip that is sensitive to user interaction.
+In the following example, it is set to the entire flip (1) to make the flip
+easy to interact with.
+
+
+elm_flip_interaction_direction_hitsize_set(flip, ELM_FLIP_DIRECTION_LEFT, 1);
+elm_flip_interaction_direction_hitsize_set(flip, ELM_FLIP_DIRECTION_RIGHT, 1);
+
+
+==== Using Flip Callbacks ====
+
+Two signals are emitted by the flip: one when an animation starts and one when
+it ends. For these signals, event_info parameter is NULL.
+
+ * ''"animate,begin"'' - A flip animation is started
+ * ''"animate,done"'' - A flip animation is finished
+
+We can register a callback on the "animation,begin" signal.
+
+
+evas_object_smart_callback_add(entry, "animate,begin", _anim_start_cb, data);
+
+// Callback function for the "animate,begin" signal
+// This callback is called when the flip animation starts
+static void
+_anim_start_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("Animation starts\n");
+}
+
+
+\\
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_flip.html|A Flip Example]]__**//
+\\
+----
+{{page>widgets_index}}
+
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/glview.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/glview.txt
new file mode 100644
index 00000000..8101c0bc
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/glview.txt
@@ -0,0 +1,123 @@
+~~Title: Glview Widget PG~~
+{{page>widgets_index}}
+----
+===== Glview Widgets =====
+{{ :widgets_glview_tree.png }}
+
+This widget renders OpenGL in an elementary object, which hides Evas GL
+complexity.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Glview|Adding a Glview]]
+ * [[#Using_GLView_API|Using GLView API]]
+ * [[#Using_GLView_Callbacks|Using GLView Callbacks]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__GLView.html|Glview Widget API]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/glview_example_01_8c-example.html|A Glview Example]]
+
+==== Adding a Glview ====
+
+Create a GLView widget with the elm_glview_add() function.
+
+
+Evas_Object *glview = elm_glview_add(parent);
+
+
+In this example, the size of the GLView is set to 200x200 pixels.
+
+
+elm_glview_size_set(glview, 200, 200);
+
+
+==== Using GLView API ====
+
+We can configure the GLView rendering mode by activating the following
+rendering modes:
+
+^''ELM_GLVIEW_ALPHA'' |Alpha channel enabled rendering mode. ^''ELM_GLVIEW_DEPTH'' |Depth buffer enabled rendering mode (24 bits by default) |
+^''ELM_GLVIEW_STENCIL'' |Stencil buffer enabled rendering mode (8 bits by default) ^''ELM_GLVIEW_DIRECT'' |Request direct rendering, unless there must be a fallback. |
+^''ELM_GLVIEW_CLIENT_SIDE_ROTATION''|Client will handle GL view rotation if direct rendering is enabled.^''ELM_GLVIEW_DEPTH_8'' |Request min. \\ 8 bits for the depth buffer |
+^''ELM_GLVIEW_DEPTH_16'' |Request min. \\ 16 bits for the depth buffer ^''ELM_GLVIEW_DEPTH_24'' |Request min. \\ 24 bits for the depth buffer (default) |
+^''ELM_GLVIEW_DEPTH_32'' |Request min. \\ 32 bits for the depth buffer ^''ELM_GLVIEW_STENCIL_1'' |Request min. \\ 1 bits for the stencil buffer |
+^''ELM_GLVIEW_STENCIL_2'' |Request min. \\ 2 bits for the stencil buffer ^''ELM_GLVIEW_STENCIL_4'' |Request min. \\ 4 bits for the stencil buffer |
+^''ELM_GLVIEW_STENCIL_8'' |Request min. \\ 8 bits for the stencil buffer (default) ^''ELM_GLVIEW_STENCIL_16'' |Request min. \\ 16 bits for the stencil buffer |
+^''ELM_GLVIEW_MULTISAMPLE_LOW'' |MSAA with minimum number of samples. ^''ELM_GLVIEW_MULTISAMPLE_MED'' |MSAA with half the number of maximum samples. |
+^''ELM_GLVIEW_MULTISAMPLE_HIGH'' |MSAA with maximum number of samples. ^ | |
+
+In this example, we enable alpha channel and depth buffer rendering mode.
+
+
+elm_glview_mode_set(glview, ELM_GLVIEW_ALPHA | ELM_GLVIEW_DEPTH);
+
+
+We decide what to do with the GL surface when the GLView widget is resized.
+
+
+elm_glview_resize_policy_set(glview, ELM_GLVIEW_RESIZE_POLICY_RECREATE);
+
+
+The GL surface is destroyed and recreated to the new size (default function).
+The resize policy can also be set to ''ELM_GLVIEW_RESIZE_POLICY_SCALE''. In that
+case, only the image object is scaled, not the underlying GL surface.
+
+This is how to set the GLView rendering policy.
+
+
+elm_glview_render_policy_set(glview, ELM_GLVIEW_RENDER_POLICY_ALWAYS);
+
+
+The glview object is always redrawn during the rendering loop. It can also be
+set to ''ELM_GLVIEW_RENDER_POLICY_ON_DEMAND'' (default function), where glview
+widget is redrawn only when it is visible.
+
+We can register callbacks:
+
+
+elm_glview_init_func_set(glview, _init_gl_cb);
+elm_glview_del_func_set(glview, _del_gl_cb);
+elm_glview_resize_func_set(glview, _resize_gl_cb);
+elm_glview_render_func_set(glview, _draw_gl_cb);
+
+
+''elm_glview_init_func_set()'' registers an init callback that is called at the
+GLView object creation.
+
+''elm_glview_del_func_set()'' registers a del function that is called when the
+GLView object is deleted.
+
+''elm_glview_resize_func_set()'' registers the resize function that is called
+during the rendering loop when the GLView object is resized.
+
+''elm_glview_render_func_set()'' registers the render function that is called when
+the GLView object must be redrawn.
+
+==== Using GLView Callbacks ====
+
+GLView widget emits the following signals, besides the ones sent from GLView:
+
+ * ''"focused"'' - when glview has received focus.
+ * ''"unfocused"'' - when glview has lost focus.
+ * ''"language,changed"'' - the program's language changed
+
+This is how to register a callback.
+
+
+evas_object_smart_callback_add(glview, "focused", _focused_cb, data);
+
+// Callback function for the "focused" signal
+// This callback is called when the GLView is focused
+static void
+_focused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Elm_Focus_Info *fi = event_info;
+ printf("GLView is focused\n");
+}
+
+
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/glview_example_01_8c-example.html|A Glview Example]]__**//
+\\
+----
+{{page>widgets_index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/icon.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/icon.txt
new file mode 100644
index 00000000..c6837162
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/icon.txt
@@ -0,0 +1,104 @@
+~~Title: Icon Widget PG~~
+{{page>widgets_index}}
+----
+===== Icon Widgets =====
+{{ :widgets_icon_tree.png }}{{ :widgets_icon.png }}
+
+The icon widget inherits from the image widget. It is used to display images
+in an icon context.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Icon|Adding a Icon]]
+ * [[#Changing_Image_File|Changing Image File]]
+ * [[#Using_Icon_Callbacks|Using Icon Callbacks]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Icon.html|Icon Widget API]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_icon.html|An Icon Example]]
+
+==== Adding a Icon ====
+
+We can create an icon and set it as a "Home" standard icon.
+
+
+Evas_Object *icon = elm_icon_add(parent);
+elm_icon_standard_set(icon, "Home");
+
+
+Default images provided by Elementary's default theme are described below.
+
+^standard (since 1.13)^toolbar^menu^media player^
+| "folder" |"home" |"menu/home" |"media_player/forward"|
+| "user-home" |"close" |"menu/close" |"media_player/info"|
+| "user-trash" |"apps" |"menu/apps" |"media_player/next"|
+| "view-close" |"arrow_up" |"menu/arrow_up" |"media_player/pause"|
+| "view-refresh" |"arrow_down" |"menu/arrow_down" |"media_player/play"|
+| "window-close" |"arrow_left" |"menu/arrow_left" |"media_player/prev"|
+| "document-close" |"arrow_right"|"menu/arrow_right"|"media_player/rewind"|
+| "document-edit" |"chat" |"menu/chat" |"media_player/stop"|
+| "dialog-info" |"clock" |"menu/clock" |
+| "dialog-close" |"delete" |"menu/delete" |
+| "arrow-up" |"edit" |"menu/edit" |
+| "arrow-down" |"refresh" |"menu/refresh" |
+| "arrow-left" |"folder" |"menu/folder" |
+| "arrow-right" |"file" |"menu/file" |
+| "arrow-up-left" |
+| "arrow-up-right" |
+| "arrow-down-left" |
+| "arrow-down-right" |
+| "edit-delete" |
+| "application-chat" |
+| "application-clock" |
+| "media-seek-forward" |
+| "media-seek-backward" |
+| "media-skip-forward" |
+| "media-skip-backward" |
+| "media-playback-pause" |
+| "media-playback-start" |
+| "media-playback-stop" |
+| "media-eject" |
+| "audio-volume" |
+| "audio-volume-muted" |
+
+==== Changing Image File ====
+
+We can change the image by using an image in the filesystem (for example,
+/tmp/Home.png),
+
+
+elm_image_file_set(icon, "/tmp/Home.png", NULL);
+
+
+or a group in an Edje file (for example, /tmp/Home.edj).
+
+
+elm_image_file_set(icon, "/tmp/Home.edj", "elm/icon/Home/default");
+
+
+A thumbnail can be generated and cached for future use. (For this, you need
+the Ethumb library support.)
+
+
+elm_icon_thumb_set(icon, "/tmp/Home.png", NULL);
+
+
+This function sets the file in the icon and enables the use of a cached
+thumbnail if it already exists. Otherwise, it creates a new thumbnail and
+caches it for future use.
+
+==== Using Icon Callbacks ====
+
+The icon widget emits the following signals:
+
+ * ''"thumb,done"'' - elm_icon_thumb_set() is completed with success.
+ * ''"thumb,error"'' - elm_icon_thumb_set() fails.
+
+In both cases, event_info is NULL;
+
+\\
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_icon.html|An Icon Example]]__**//
+\\
+----
+{{page>widgets_index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/image.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/image.txt
new file mode 100644
index 00000000..38eb4756
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/image.txt
@@ -0,0 +1,109 @@
+~~Title: Image Widget PG~~
+{{page>widgets_index}}
+----
+===== Image Widgets =====
+{{ :widgets_image_tree.png }}{{ :widgets_image.png }}
+
+The image widget can load and display an image from a disk file or a memory
+region.
+
+=== Table of Contents ===
+
+ * [[#Adding_an_Image|Adding a Image]]
+ * [[#Configuring_Image_Widget|Configuring Image Widget]]
+ * [[#Using_Image_Callbacks|Using Image Callbacks]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Image.html|Image Widget API]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_image.html|An Image Example]]
+
+==== Adding an Image ====
+
+This object is created with ''elm_image_add()''.
+
+
+Evas_Object *image = elm_image_add(parent);
+
+
+==== Configuring Image Widget ====
+
+Various properties of the image can be tuned. First, we disable elementary
+scaling so that the image does not scale but resizes on both directions.
+
+
+elm_image_no_scale_set(image, EINA_TRUE);
+elm_image_resizable_set(image, EINA_TRUE, EINA_TRUE);
+
+
+When scaling images, the smooth scaling algorithm can be used. It provides a
+better quality image but is slower than the default algorithm.
+
+
+elm_image_smooth_set(image, EINA_TRUE);
+
+
+Preloading is used to load images without blocking the user interface. This
+preserves the reactivity of the user experience. The image is loaded in a
+thread. It can be disabled if desired.
+
+
+elm_image_preload_disabled_set(image, EINA_TRUE);
+
+
+The image can be rotated or flipped. Here we rotate our image 180 degrees.
+
+
+elm_image_orient_set(image, ELM_IMAGE_ROTATE_180);
+
+
+The following orientations are available:
+
+ * ''ELM_IMAGE_ORIENT_0'': No orientation change
+ * ''ELM_IMAGE_ROTATE_90'': Rotate the image 90 degrees clockwise
+ * ''ELM_IMAGE_ROTATE_180'': Rotate the image 180 degrees clockwise
+ * ''ELM_IMAGE_ROTATE_270'': Rotate the image 90 degrees counter-clockwise
+ * ''ELM_IMAGE_FLIP_HORIZONTAL'': Flip the image horizontally
+ * ''ELM_IMAGE_FLIP_VERTICAL'': Flip the image vertically
+ * ''ELM_IMAGE_FLIP_TRANSPOSE'': Flip the image along the bottom-left to top-right line
+ * ''ELM_IMAGE_FLIP_TRANSVERSE'': Flip the image along the top-left to bottom-right line
+
+If we want to keep the original aspect ration when resizing the image, we must
+define how the image fits into the object's area.
+
+
+// Tell the image to keep original aspect ratio
+elm_image_aspect_fixed_set(image, EINA_TRUE);
+// Then let the image fit the entire object
+elm_image_fill_outside_set(image, EINA_TRUE);
+
+
+In this configuration, part of the image may go outside the object. If
+''elm_image_fill_outside_set'' is set to ''EINA_FALSE'', the image stays inside the
+limits of the parent object.
+
+==== Using Image Callbacks ====
+
+The image widget emits the signals below:
+
+ * ''"drop"'': The user drops an image typed object onto the object in question - the event info argument is the path to that image file
+ * ''"clicked"'': The user clicks the image. event_info is NULL.
+
+Here is how to register a callback when a user clicks on the image:
+
+
+evas_object_smart_callback_add(image, "clicked", _clicked_cb, data);
+
+// Callback function for the "clicked" signal
+// This callback is called when the image is clicked
+static void
+_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("Image clicked\n");
+}
+
+
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_image.html|An Image Example]]__**//
+\\
+----
+{{page>widgets_index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/index.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/index.txt
new file mode 100644
index 00000000..15f308a9
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/index.txt
@@ -0,0 +1,122 @@
+~~Title: Index Widget PG~~
+{{page>widgets_index}}
+----
+===== Index Widgets =====
+{{ :widgets_index_tree.png }}{{ :widgets_index.png }}
+
+An index widget gives you an index for fast access to whichever group of other
+UI items you have. By default hidden, the index appears when the user clicks
+over its reserved area in the canvas. In the default theme, it is a one finger
+wide area on the right side of the index widget's container. Generally, an
+index is used together with lists, generic lists or generic grids.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Index|Adding a Index]]
+ * [[#Adding_Items|Adding Items]]
+ * [[#Sorting_Index_Items|Sorting Index Items]]
+ * [[#Using_Index_Callbacks|Using Index Callbacks]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Index.html|Index Widget API]]
+
+|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/index_example_01.html|A first Index Example]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/index_example_02.html|A second index example]]|
+
+==== Adding a Index ====
+
+Call ''elm_index_add()'' to create a new index widget.
+
+
+
+Evas_Object *index;
+index = elm_index_add(parent);
+
+
+==== Adding Items ====
+
+Here we add the listitem object at the letter "A", calling the smart callback ''it_select_cb()'' when this item is selected.
+
+
+Elm_Object_Item *list_item1, *list_item2;
+elm_index_item_append(index, "A", _it_select_cb, list_item1);
+
+
+This is how to define the smart callback.
+
+
+// Callback function called when the list_item1 object
+// is selected
+static void
+_it_select_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("Item1 selected\n");
+}
+
+
+In the previous case, the indexes are appended to the existing ones. It is also possible to prepend index items with ''elm_index_item_prepend()''.
+
+==== Sorting Index Items ====
+
+We can insert index items using a sorting function. Indexes can be sorted, for example, by alphabetic order.
+
+We must write a compare function that returns a positive int, 0 or a negative int when the data2 item parameter is respectively greater than, equal to or lower than the data1 parameter.
+
+
+static int
+_index_icmp(const void *data1, const void *data2)
+{
+ int result;
+ // Code that does the item comparison will be written here
+ return result;
+}
+
+
+We add a new item at the "B" index using the compare function to sort the indexes.
+
+
+elm_index_item_sorted_insert(index, "B", NULL, list_item2, _index_icmp, NULL);
+
+
+==== Using Index Callbacks ====
+
+This widget emits the following signals, besides the ones sent from Layout:
+
+ * ''"changed"'' - When the selected index item changes. event_info is the selected item's data pointer.
+ * ''"delay,changed"'' - When the selected index item changes, but after a small idling period. event_info is the selected item's data pointer.
+ * ''"selected"'' - When the user releases a mouse button and selects an item. event_info is the selected item's pointer.
+ * ''"level,up"'' - when the user moves a finger from the first level to the second level
+ * ''"level,down"'' - when the user moves a finger from the second level to the first level
+ * ''"language,changed"'' - the program's language changed
+ * ''"focused"'' - When the index has received focus. (since 1.8)
+ * ''"unfocused"'' - When the index has lost focus. (since 1.8)
+
+The ''"delay,changed"'' event is so that it'll wait a small time before actually
+reporting those events and, moreover, just the last event happening on those
+time frames will actually be reported.
+
+When the user selects an item in the index, the ''"selected"'' signal is emitted.
+The developer can then implement the associated callback to do the appropriate
+action (to show a given area or child object depending on the index item
+selected, for example). Here is an example of such a callback.
+
+
+static void
+_index_selected_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Elm_Object_Item *lit = event_info;
+ // Code that does the desired action
+}
+
+
+Then we register this callback to the "selected" signal.
+
+
+evas_object_smart_callback_add(index, "selected", _index_selected_cb, NULL);
+
+
+\\
+|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/index_example_01.html|A first Index Example]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/index_example_02.html|A second index example]]|
+
+----
+{{page>widgets_index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/label.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/label.txt
new file mode 100644
index 00000000..30e3191d
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/label.txt
@@ -0,0 +1,87 @@
+~~Title: Label Widget PG~~
+{{page>widgets_index}}
+----
+===== Label Widgets =====
+{{ :widgets_label_tree.png }}{{ :widgets_label.png }}
+
+The label widget displays text with simple html-like markup.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Label|Adding a Label]]
+ * [[#Using_Label_Styles|Using Label Styles]]
+ * [[#Configuring_the_Label|Configuring the Label]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Label.html|Label Widget API]]
+ * [[/develop/legacy/tutorial/basic/label|Basic Label Tutorial]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_label.html|A Label Example]]
+
+==== Adding a Label ====
+
+To add a label and set the text in it, use the following functions.
+
+
+Evas_Object *label = elm_label_add(win);
+elm_object_text_set(label, "Some long text for our label, that is not so long");
+
+
+==== Using Label Styles ====
+
+Label displays the text with several predefined styles.
+
+ * ''default'' - No animation
+ * ''marker'' - Centers the text in the label and makes it bold by default
+ * ''slide_long'' - The entire text appears from the right of the screen and slides until it disappears in the left of the screen(reappearing on the right again).
+ * ''slide_short'' - The text appears in the left of the label and slides to the right to show the overflow. When all of the text has been shown the position is reset.
+ * ''slide_bounce'' - The text appears in the left of the label and slides to the right to show the overflow. When all of the text has been shown the animation reverses, moving the text to the left.
+
+Here we set the style to ''"slide_long"''.
+
+
+elm_object_style_set(label, "slide_long");
+
+
+==== Configuring the Label ====
+
+The duration of the animation and the slide mode can be set.
+
+
+elm_label_slide_duration_set(label, 3);
+elm_label_slide_mode_set(label, ELM_LABEL_SLIDE_MODE_ALWAYS);
+
+
+The style can be modified.
+
+
+elm_object_style_set(label, "slide_bounce");
+
+
+==== Using Label Callbacks ====
+
+This widget emits the following signals, besides the ones sent from Layout:
+
+ * ''"language,changed"'': The program's language changes.
+ * ''"slide,end"'': The slide reaches the end.
+
+Here we register a callback on the ''"slide,end"'' signal.
+
+
+evas_object_smart_callback_add(label, "slide,end", _slide_end_cb, data);
+
+
+// Callback function for the "slide,end" signal
+// This callback is called when the label slide reaches the end
+static void
+_slide_end_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("Slide has reach the end.\n");
+}
+
+
+\\
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_label.html|A Label Example]]__**//
+\\
+----
+{{page>widgets_index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/list.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/list.txt
new file mode 100644
index 00000000..0c5621c3
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/list.txt
@@ -0,0 +1,224 @@
+~~Title: List Widget PG~~
+{{page>widgets_index}}
+----
+===== List Widgets =====
+{{ :widgets_list_tree.png }}{{ :widgets_list.png }}
+
+This widget is a very simple type of a list widget. It is not to be used to
+manage a lot of items. For that, genlists are a better option.
+
+The list items can contain a text and two contents ("start", and "end"). These
+are set with the ''elm_object_item_*()'' functions.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_List|Adding a List]]
+ * [[#Using_the_List|Using the List]]
+ * [[#Adding_Item_to_the_List|Adding Item to the List]]
+ * [[#Changing_Text_Or_Icon_of_an_Item|Changing Text Or Icon of an Item]]
+ * [[#Retrieving_Selected_Items|Retrieving Selected Items]]
+ * [[#List_Item_Operations|List Item Operations]]
+ * [[#Using_List_Callbacks|Using List Callbacks]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__List.html|List Widget API]]
+ * [[/develop/legacy/tutorial/basic/list|Basic List Tutorial]]
+
+^List Examples^^^
+|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/list_example_01.html|A List Example]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/list_example_02.html|A List Example]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/list_example_03.html|Item management Example]]|
+
+==== Adding a List ====
+
+To create a list:
+
+
+Evas_Object *list = elm_list_add(parent);
+
+
+==== Using the List ====
+
+This widget implements the scrollable interface, so the scroller widget
+functions can be used on it. For example, if you want to change the bounce
+property of the scroller or the scrolling policy:
+
+
+Evas_Object *list;
+
+// Change the scroller policy to fix the scroll only vertically
+elm_scroller_policy_set(list, ELM_SCROLLER_POLICY_ON,
+ELM_SCROLLER_POLICY_OFF);
+// Enable bounce effect when the list reaches the upper and lower limits
+elm_scroller_bounce_set(list, EINA_TRUE, EINA_TRUE);
+
+
+The ''elm_list_multi_select_set()'' function can be called to enable
+multi-selection of items. Each time an item is clicked, the state changes to
+"selected".
+
+
+Evas_Object *list;
+
+// Activate multi selection
+elm_list_multi_select_set(list, EINA_TRUE);
+
+
+==== Adding Item to the List ====
+
+Items are added ''with elm_list_item_append()'' or ''elm_list_item_prepend()''. Here
+an example of adding ten items with text and one icon on the front: The last
+two arguments are the callback function when the created item is clicked and
+the data passed to the callback function.
+
+
+Evas_Object *list;
+int i;
+
+// This function is called when the list item is selected
+static void
+_selected_item_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Elm_Object_Item *list_it = elm_list_selected_item_get(obj);
+ Eina_Bool selected = elm_list_item_selected_get(list_it);
+ printf("item is %s\n", selected? "selected": "unselected");
+}
+
+for (i = 0; i < 10; i++)
+ {
+ Evas_Object *ic;
+ char tmp[8];
+ snprintf(tmp, sizeof(tmp), "Item %02d", i);
+ // Create an icon
+ ic = elm_icon_add(win);
+ // Set the file to the icon file
+ elm_image_file_set(ic, "path/to/file", NULL);
+ // Add item to the list
+ elm_list_item_append(list, tmp, ic, NULL, _selected_item_cb, NULL);
+ }
+
+
+==== Changing Text Or Icon of an Item ====
+
+If you want to change the state of an item, you can do it by using all the
+functions relative to ''Elm_Object_Item''. Each item of the list contains two
+evas_object. Give those as the third and the fourth arguments when you append
+or prepend the item in the list. Those evas objects are changed with
+''elm_object_item_part_content_set''. The first object is referenced as the
+"start" object in the theme, whereas the second one is referenced as the "end"
+object. Give these names when you use the ''elm_object_item_part_content_set''.
+The label of the item is changed by using ''elm_object_item_text_set''.
+
+
+Evas_Object *list;
+Eina_List *l;
+Elm_Object_Item *it;
+
+// Retrieve the current selected item
+it = elm_list_selected_item_get(list);
+if (!it)
+ return;
+
+ic = elm_icon_add(win);
+// Set the file to the icon file
+elm_image_file_set(ic, "path/to/file", NULL);
+// Change the first icon
+elm_object_item_part_content_set(it, "start", ic);
+// Change the second icon
+elm_object_item_part_content_set(it, "end", ic);
+// Change the label
+elm_object_item_text_set(it, "I've been selected !");
+
+
+==== Retrieving Selected Items ====
+
+The list of the currently selected items is retrieved with
+''elm_list_selected_items_get()''. If the multiselect mode is false, you can
+retrieve the only selected item with ''elm_list_selected_item_get()''. For
+example, this is how to unselect all previously selected items.
+
+
+Evas_Object *list; Eina_List *l;
+Eina_List *selected_items;
+// List of Elm_Object_Item
+Elm_Object_Item *it;
+
+selected_items = elm_list_selected_items_get(list);
+EINA_LIST_FOREACH(selected_items, l, it)
+ elm_list_item_selected_set(it, EINA_FALSE);
+
+
+==== List Item Operations ====
+
+To find out if an item is selected, call elm_list_item_selected_get. This
+function returns ''EINA_TRUE'' if the item is selected, otherwise ''EINA_FALSE''.
+
+Elementary list provides two functions for sliding a list to a specific item.
+''elm_list_item_show'' shows the item passed as an argument, whereas
+''elm_list_item_bring_in'' shows the item, but only after animating the slide.
+
+You can go to the item immediately preceding a specific item with the function
+''elm_list_item_prev'', or to the one immediately following a specific item with
+the function ''elm_list_item_next''.
+
+The following example shows selecting the item immediately following the
+currently selected one, unselecting it, selecting the next one and bringing it
+to the screen.
+
+
+Evas_Object *list;
+Elm_Object_Item *current, *next;
+current = elm_list_selected_item_get(list);
+elm_list_item_selected_set(current, EINA_FALSE);
+next = elm_list_item_next(current);
+elm_list_item_selected_set(next, EINA_TRUE);
+elm_list_item_bring_in(next);
+
+
+==== Using List Callbacks ====
+
+This widget emits the following signals, besides the ones sent from Layout:
+
+ * ''"activated"'' - The user has double-clicked or pressed (enter|return|spacebar) on an item. The event_info parameter is the item that was activated.
+ * ''"clicked,double"'' - The user has double-clicked an item. The event_info parameter is the item that was double-clicked.
+ * ''"clicked,right"'' - The user has right-clicked an item. The event_info parameter is the item that was right-clicked. (since 1.13)
+ * ''"selected"'' - when the user selected an item
+ * ''"unselected"'' - when the user unselected an item
+ * ''"longpressed"'' - an item in the list is long-pressed
+ * ''"edge,top"'' - the list is scrolled until the top edge
+ * ''"edge,bottom"'' - the list is scrolled until the bottom edge
+ * ''"edge,left"'' - the list is scrolled until the left edge
+ * ''"edge,right"'' - the list is scrolled until the right edge
+ * ''"highlighted"'' - an item in the list is highlighted. This is called when the user presses an item or keyboard selection is done so the item is physically highlighted. The event_info parameter is the item that was highlighted.
+ * ''"unhighlighted"'' - an item in the list is unhighlighted. This is called when the user releases an item or keyboard selection is moved so the item is physically unhighlighted. The event_info parameter is the item that was unhighlighted.
+ * ''"language,changed"'' - the program's language changed
+ * ''"focused"'' - When the list has received focus. (since 1.8)
+ * ''"unfocused"'' - When the list has lost focus. (since 1.8)
+ * ''"item,focused"'' - When the list item has received focus. (since 1.10)
+ * ''"item,unfocused"'' - When the list item has lost focus. (since 1.10)
+
+You can register to the ''"clicked,double"'' signal with the following code. Note
+that the currently double-clicked item can be retrieved via the event_info
+pointer. This code registers to the "double,clicked" signal and unselects the
+item that has been double-clicked.
+
+
+Evas_Object *list;
+evas_object_smart_callback_add(list, "clicked,double", _double_clicked_cb, data);
+
+
+// Callback function for the "clicked" signal
+// This callback is called when the button is clicked by the user
+static void
+_double_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ elm_Object_Item *it = event_info;
+ elm_list_selected_item_set(it, EINA_FALSE);
+}
+
+
+\\
+^List Examples^^^
+|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/list_example_01.html|A List Example]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/list_example_02.html|A List Example]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/list_example_03.html|Item management Example]]|
+
+----
+{{page>widgets_index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/map.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/map.txt
new file mode 100644
index 00000000..6c22773b
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/map.txt
@@ -0,0 +1,265 @@
+~~Title: Map Widget PG~~
+{{page>widgets_index}}
+----
+===== Map Widgets =====
+{{ :widgets_map_tree.png }}{{ :widgets_map.png?400 }}
+
+The map widget displays a geographic map. The default map data are provided by
+the [[http://www.openstreetmap.org/|OpenStreetMap project]]. Custom providers
+can also be added.
+
+It supports some basic but yet nice features:
+
+ * zooming
+ * scrolling
+ * markers with content to be displayed when user clicks over them
+ * group of markers
+ * routes
+
+The map widget implements the scroller interface so that all the functions
+that work with the scroller widget also work with maps.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Map|Adding a Map]]
+ * [[#Playing_with_the_Map|Playing with the Map]]
+ * [[#Drawing_Overlays|Drawing Overlays]]
+ * [[#Adding_Other_Overlays|Adding Other Overlays]]
+ * [[#Calculating_Routes|Calculating Routes]]
+ * [[#Using_Map_Callbacks|Using Map Callbacks]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Map.html|Map Widget API]]
+
+^ Map Examples ^^^
+|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/map_example_01.html|Creation and Zoom]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/map_example_02.html|Overlay Usage]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/map_example_03.html|Route and Name Usage]]|
+
+==== Adding a Map ====
+
+Once created with the ''elm_map_add()'' function, zoom level x12 can be set.
+
+
+
+Evas_Object *map = elm_map_add(parent);
+elm_map_zoom_mode_set(map, ELM_MAP_ZOOM_MODE_MANUAL);
+elm_map_zoom_set(map, 12);
+
+
+Here the zoom mode is set to manual, there the list of all the available
+options:
+
+ * ''ELM_MAP_ZOOM_MODE_MANUAL'' - Zoom controlled manually by ''elm_map_zoom_set()''. It's set by default.
+ * ''ELM_MAP_ZOOM_MODE_AUTO_FIT'' - Zoom until map fits inside the scroll frame with no pixels outside this area.
+ * ''ELM_MAP_ZOOM_MODE_AUTO_FILL'' - Zoom until map fills scroll, ensuring no pixels are left unfilled.
+
+==== Playing with the Map ====
+
+If we have coordinates of a specific area (2 2 N, 48 8 E), we can show it on the map.
+
+
+elm_map_region_show(map, 2.2, 48.8);
+
+
+This shows the desired coordinates. We can also show the location with a bring-in animation.
+
+
+
+elm_map_region_bring_in(map, 2.2, 48.8);
+
+
+The map is rotated 90 degrees around the current position.
+
+
+
+elm_map_rotate_set(map, 90, 2.2, 48.8);
+
+
+==== Drawing Overlays ====
+
+Overlays are markers that can be placed anywhere on the map. They can
+represent any object we want to put on the map.
+
+=== Creating an Overlay Class ===
+
+Overlay classes can be created if several objects are of the same type. For
+example, we create a forest overlay class to represent the forests visible on
+the map. We set the minimum zoom level at which this class is visible. The
+forest class overlay is visible when the zoom level is superior to eight.
+
+We set an icon ("Home" icon here) to the forest class. This icon is displayed
+in place of the forest class on the map.
+
+
+
+Evas_Object *icon;
+Elm_Map_Overlay *forest_class = elm_map_overlay_class_add(map);
+
+// Set min zoom level at which class is displayed
+elm_map_overlay_displayed_zoom_min_set(forest_class, 8);
+
+// Create a Home icon object and set it to the forest class
+icon = elm_icon_add(map);
+elm_icon_standard_set(icon, "home");
+elm_map_overlay_icon_set(forest_class, icon);
+
+
+=== Adding Overlays to a Class ===
+
+After creating a forest class, we can add overlay objects to it. Here we
+create an overlay for the Meudon forest. Data is linked to the overlay with
+the ''elm_map_overlay_data_set()'' function. We set the name of the forest in
+the data. The icon can be set to the overlay with the
+''elm_map_overlay_icon_set()'' function.
+
+
+
+Elm_Map_Overlay *ovl;
+const char* data_meudon = "Meudon forest";
+const char* data_fausses = "Fausse forest";
+
+// Add an overlay
+ovl = elm_map_overlay_add(map, 2.20718, 48.79759);
+icon = elm_icon_add(map);
+elm_icon_standard_set(icon, "stop");
+elm_map_overlay_icon_set(ovl, icon);
+elm_map_overlay_data_set(ovl, &data_meudon);
+
+// Add the new ovl object to the forest class
+elm_map_overlay_class_append(forest_class, ovl);
+
+// Add another overlay next to the first one
+ovl = elm_map_overlay_add(map, 2.1699, 48.8189);
+icon = elm_icon_add(map);
+elm_icon_standard_set(icon, "stop");
+elm_map_overlay_icon_set(ovl, icon);
+elm_map_overlay_data_set(ovl, &data_fausses);
+elm_map_overlay_class_append(forest_class, ovl);
+
+
+If we add another overlay to the forest class, the two overlays can be grouped
+under the forest class icon on certain zoom level conditions. We can define on
+which zoom level items are grouped.
+
+
+elm_map_overlay_class_zoom_max_set(forest_class, 8);
+
+
+In this case, overlay members of the forest class are grouped when the map is
+displayed at less than zoom level eight.
+
+=== Creating Bubbles Following Overlays ===
+
+This is how to set a content in a bubble following an overlay.
+
+
+
+// Add an overlay bubble object
+Elm_Map_Overlay *bubble = elm_map_overlay_bubble_add(map);
+
+// Set it to follow a specific overlay (the last created one here)
+elm_map_overlay_bubble_follow(bubble, ovl);
+
+
+Once following an overlay, the bubble appears, moves or hides following the
+parent overlay's behavior.
+
+Content is added to the bubble with the
+''elm_map_overlay_bubble_content_append()'' function.
+
+==== Adding Other Overlays ====
+
+We can draw a circle on the map with coordinates and a radius size.
+
+
+Elm_Map_Overlay *circle = elm_map_overlay_circle_add(map, 2.2, 48.8, 0.02);
+
+
+We can also add a scale at the 200x0 coordinate (in pixels).
+
+
+
+Elm_Map_Overlay *scale = elm_map_overlay_scale_add(map, 200, 0);
+
+
+Or we can draw a line, a polygon, or a route. See the full API for a full
+description of these functions.
+
+==== Calculating Routes ====
+
+A route between a starting point and an ending point is calculated with the
+''elm_map_route_add()'' call. The type of transport and the routing
+calculation method can be provided so as to have the desired result.
+
+In this example, we want a route calculation between the first and the second
+overlay. We configure it to use the bicycle, and we want to find the fastest
+route in time.
+
+
+Elm_Map_Route *route = elm_map_route_add(map,
+ ELM_MAP_ROUTE_TYPE_BICYCLE,
+ ELM_MAP_ROUTE_METHOD_FASTEST,
+ 2.20718, 48.79759,
+ 2.1699, 48.8189,
+ NULL, NULL);
+
+// Add a callback to when the route has been calculated and loaded
+evas_object_smart_callback_add(map, "route,loaded", _route_loaded_cb, route);
+
+
+Once the route is calculated, we can create a route overlay object and change its color. In this example, we use the "route,loaded" callback.
+
+
+
+static void
+_route_loaded_cb(void *data, Evas_Object *obj, void *ev)
+{
+ Elm_Map_Route *route = data;
+
+ Elm_Map_Overlay *route_ovl = elm_map_overlay_route_add(obj, route);
+ elm_map_overlay_color_set(route_ovl, 0, 255, 0, 255);
+}
+
+
+==== Using Map Callbacks ====
+
+The map widget emits the following callbacks:
+
+ * ''"clicked"'' - This is called when a user has clicked the map without dragging around.
+ * ''"clicked,double"'' - This is called when a user has double-clicked the map.
+ * ''"press"'' - This is called when a user has pressed down on the map.
+ * ''"longpressed"'' - This is called when a user has pressed down on the map for a long time without dragging around.
+ * ''"scroll"'' - the content has been scrolled (moved).
+ * ''"scroll,drag,start"'' - dragging the contents around has started.
+ * ''"scroll,drag,stop"'' - dragging the contents around has stopped.
+ * ''"scroll,anim,start"'' - scrolling animation has started.
+ * ''"scroll,anim,stop"'' - scrolling animation has stopped.
+ * ''"zoom,start"'' - Zoom animation started.
+ * ''"zoom,stop"'' - Zoom animation stopped.
+ * ''"zoom,change"'' - Zoom changed when using an auto zoom mode.
+ * ''"tile,load"'' - A map tile image load begins.
+ * ''"tile,loaded"'' - A map tile image load ends.
+ * ''"tile,loaded,fail"'' - A map tile image load fails.
+ * ''"route,load"'' - Route request begins.
+ * ''"route,loaded"'' - Route request ends.
+ * ''"route,loaded,fail"'' - Route request fails.
+ * ''"name,load"'' - Name request begins.
+ * ''"name,loaded"'' - Name request ends.
+ * ''"name,loaded,fail"'' - Name request fails.
+ * ''"overlay,clicked"'' - A overlay is clicked.
+ * ''"loaded"'' - when a map is finally loaded. (since 1.7)
+ * ''"language,changed"'' - the program's language changed
+ * ''"focused"'' - When the map has received focus. (since 1.8)
+ * ''"unfocused"'' - When the map has lost focus. (since 1.8)
+
+\\
+^ Map Examples ^^^
+|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/map_example_01.html|Creation and Zoom]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/map_example_02.html|Overlay Usage]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/map_example_03.html|Route and Name Usage]]|
+
+----
+{{page>widgets_index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/notify.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/notify.txt
new file mode 100644
index 00000000..fa3a0f96
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/notify.txt
@@ -0,0 +1,91 @@
+~~Title: Notify Widget PG~~
+{{page>widgets_index}}
+----
+===== Notify Widgets =====
+{{ :widgets_notify_tree.png }}{{ :widgets_notify.png }}
+
+This widget displays a container in a particular region of the parent object.
+It can receive some content, and can be automatically hidden after a certain
+amount of time.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Notify|Adding a Notify]]
+ * [[#Configuring_Notify_Widget|Configuring Notify Widget]]
+ * [[#Using_Notify_Callbacks|Using Notify Callbacks]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Notify.html|Notify Widget API]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_notify.html|A Notify Example]]
+
+==== Adding a Notify ====
+
+This is how to create a notify object.
+
+
+Evas_Object *notify;
+notify = elm_notify_add(parent);
+
+
+==== Configuring Notify Widget ====
+
+We create a label and add it to the notify object.
+
+
+Evas_Object *content;
+
+// Create the label and set some text to it
+content = elm_label_add(parent);
+
+elm_object_text_set(content, "A label text");
+evas_object_show(content);
+
+// Add the label object to the notify widget
+elm_object_content_set(notify, content);
+
+
+In this example, we show the notify object on the bottom left corner of the
+parent object.
+
+
+elm_notify_align_set(notify, 1.0, 1.0);
+evas_object_show(notify);
+
+
+We can set a timeout interval, after which the notify widget is hidden. In
+this example, the timeout interval is five seconds.
+
+
+elm_notify_timeout_set(notify, 5.0);
+
+
+==== Using Notify Callbacks ====
+
+The notify widget emits the following signals:
+
+ * ''"timeout"'' - The timeout count ends and the notify is hidden
+ * ''"block,clicked"'' - The user clicks outside of the notify
+
+For both these signals event_info is NULL.
+
+Here we register a callback on the "timeout" signal.
+
+
+evas_object_smart_callback_add(notify, "timeout", _timeout_cb, data);
+
+
+// Callback function for the "timeout" signal
+// The timeout expires and the notify object is hidden
+static void
+_timeout_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("Notify is hidden\n");
+}
+
+
+\\
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_notify.html|A Notify Example]]__**//
+
+----
+{{page>widgets_index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/panel.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/panel.txt
new file mode 100644
index 00000000..6d32f1c3
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/panel.txt
@@ -0,0 +1,94 @@
+~~Title: Panel Widget PG~~
+{{page>widgets_index}}
+----
+===== Panel Widgets =====
+{{ :widgets_panel_tree.png }}{{ :widgets_panel.png }}
+
+The panel widget is an animated object that can contain subobjects. It can be
+expanded or contracted by clicking on the button on its edge.
+
+Panel inherits from layout widget, so the layout API can be used on this
+widget.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Panel|Adding a Panel]]
+ * [[#Using_the_Panel|Using the Panel]]
+ * [[#Add_a_Content|Add a Content]]
+ * [[#Using_Panel_Callbacks|Using Panel Callbacks]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Panel.html|Panel Widget API]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_panel.html|A Panel Example]]
+
+==== Adding a Panel ====
+
+This is how to add a panel and set its orientation to left.
+
+
+Evas_Object *panel = elm_panel_add(parent);
+elm_panel_orient_set(panel, ELM_PANEL_ORIENT_LEFT);
+
+
+==== Using the Panel ====
+
+The panel is manually hidden.
+
+
+elm_panel_hidden_set(panel, EINA_TRUE);
+
+
+It can be toggled if we do not know the hidden state of the widget.
+
+
+elm_panel_toggle(panel);
+
+
+It can be set scrollable.
+
+
+elm_panel_scrollable_set(panel, EINA_TRUE);
+
+
+==== Add a Content ====
+
+This is how to add a content to the panel, in our example the content is a
+label:
+
+
+content = elm_label_add(parent);
+elm_object_text_set(content,"content");
+evas_object_show(content);
+elm_object_content_set(panel, content);
+
+
+==== Using Panel Callbacks ====
+
+This widget emits the following signals, besides the ones sent from Layout:
+
+ * ''"scroll"'' : When the content has been scrolled (moved). (since 1.10) This signal is emitted only when the panel is scrollable. Elm_Panel_Scroll_Info will be passed by event_info argument.
+ * ''"focused"'' : When the panel has received focus. (since 1.8)
+ * ''"unfocused"'' : When the panel has lost focus. (since 1.8)
+
+We can register a callback on the ''"scroll"'' signal, when the user scrolls the
+panel. The event_info parameter is of the type ''Elm_Panel_Scroll_Info''.
+
+
+evas_object_smart_callback_add(pan, "scroll", scroll_cb, data);
+
+
+// Callback function for the "scroll" signal
+// This callback is called when the user scrolls the panel
+static void
+scroll_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Elm_Panel_Scroll_Info *scrollinfo = event_info;
+ printf("The panel was scrolled.\n");
+}
+
+
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_panel.html|A Panel Example]]__**//
+\\
+----
+{{page>widgets_index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/photo.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/photo.txt
new file mode 100644
index 00000000..cba42998
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/photo.txt
@@ -0,0 +1,63 @@
+~~Title: Photo Widget PG~~
+{{page>widgets_index}}
+----
+===== Photo Widgets =====
+{{ :widgets_photo_tree.png }}
+
+The photo widget is used to display a photo (such as a contact image). If no
+photo is set on it, it displays a person icon to show that it is a photo
+placeholder.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Photo|Adding a Photo]]
+ * [[#Using_Photo_Widget|Using Photo Widget]]
+ * [[#Using_Photo_Callbacks|Using Photo Callbacks]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Photo.html|Photo Widget API]]
+
+==== Adding a Photo ====
+
+This is how to create a photo object.
+
+
+Evas_Object *photo, *parephotoslider = elm_photo_add(parent);
+photo = elm_photo_add(parent);
+
+
+==== Using Photo Widget ====
+
+A file can be set to the photo widget. Here, ''PHOTO_FILENAME'' is a string
+corresponding to the photo file name on the system.
+
+
+elm_photo_file_set(photo, PHOTO_FILENAME);
+
+
+We can set the photo as editable, so it can be copied, cut or dragged in
+another region of the screen.
+
+
+elm_photo_editable_set(photo, EINA_TRUE);
+
+
+It can also be completely visible on the screen.
+
+
+elm_photo_fill_inside_set(photo, EINA_TRUE);
+
+
+==== Using Photo Callbacks ====
+
+The following callbacks are registered on the photo widget.
+
+ * ''"clicked"'' - The user has clicked the photo.
+ * ''"drag,start"'' - The user starts dragging the inner image out of the photo's frame.
+ * ''"drag,end"'' - The user drops the dragged image.
+
+event_info is always NULL.
+
+----
+{{page>widgets_index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/photocam.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/photocam.txt
new file mode 100644
index 00000000..ecd7071c
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/photocam.txt
@@ -0,0 +1,111 @@
+~~Title: Photocam Widget PG~~
+{{page>widgets_index}}
+----
+===== Photocam Widgets =====
+{{ :widgets_photocam_tree.png }}{{ :widgets_photocam.png }}
+
+The photocam widget displays high resolution photos taken from digital
+cameras. It provides a way to zoom in the photo, load it fast and fit it
+nicely. It is optimized for .jpeg images format and has a low memory
+footprint.
+
+This widget implements the scroller interface, so all the functions concerning
+the scroller can be used with the photocam widget.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Photocam|Adding a Photocam]]
+ * [[#Using_Photocam_Zoom|Using Photocam Zoom]]
+ * [[#Using_Photocam_Callbacks|Using Photocam Callbacks]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Photocam.html|Photocam Widget API]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_photocam.html|A Photocam Example]]
+
+==== Adding a Photocam ====
+
+This is how to create a photocam widget and set an image file on it.
+
+
+Evas_Object *photocam;
+photocam = elm_photocam_add(win);
+elm_photocam_file_set(photocam, "/tmp/photo.jpeg");
+
+
+==== Using Photocam Zoom ====
+
+We can choose between two automatic zoom modes and a manual zoom mode. Here we
+set the zoom mode to manual and ask for a double zoom.
+
+
+elm_photocam_zoom_mode_set(photocam, ELM_PHOTOCAM_ZOOM_MODE_MANUAL);
+elm_photocam_zoom_set(photocam, 2.0);
+
+
+The zoom mode can be set to ''ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT''. In this case, the
+photo fits exactly inside the scroll frame with no pixels outside this region.
+The zoom mode can also be set to ''ELM_PHOTOCAM_ZOOM_MODE_AUTO_FILL'' to fill all
+the pixels of the photocam widget.
+
+Multi-touch zooming is activated by enabling gestures.
+
+
+elm_photocam_gesture_enabled_set(photocam, EINA_TRUE);
+
+
+We can zoom in a specific region. In this example, we want to zoom in the
+region starting at the coordinates (200x200), with a width of 400px and a
+height of 300px.
+
+
+elm_photocam_image_region_bring_in(photocam, 200, 200, 400, 300);
+
+
+==== Using Photocam Callbacks ====
+
+The photocam widget emits the following signals:
+
+ * ''"clicked"'' - This is called when a user has clicked the photo without dragging around.
+ * ''"press"'' - This is called when a user has pressed down on the photo.
+ * ''"longpressed"'' - This is called when a user has pressed down on the photo for a long time without dragging around.
+ * ''"clicked,double"'' - This is called when a user has double-clicked the photo.
+ * ''"load"'' - Photo load begins.
+ * ''"loaded"'' - This is called when the image file load is complete for the first view (low resolution blurry version).
+ * ''"load,detail"'' - Photo detailed data load begins.
+ * ''"loaded,detail"'' - This is called when the image file load is complete for the detailed image data (full resolution needed).
+ * ''"zoom,start"'' - Zoom animation started.
+ * ''"zoom,stop"'' - Zoom animation stopped.
+ * ''"zoom,change"'' - Zoom changed when using an auto zoom mode.
+ * ''"scroll"'' - the content has been scrolled (moved)
+ * ''"scroll,anim,start"'' - scrolling animation has started
+ * ''"scroll,anim,stop"'' - scrolling animation has stopped
+ * ''"scroll,drag,start"'' - dragging the contents around has started
+ * ''"scroll,drag,stop"'' - dragging the contents around has stopped
+ * ''"focused"'' - When the photocam has received focus. (since 1.8)
+ * ''"unfocused"'' - When the photocam has lost focus. (since 1.8)
+
+For all these signals, event_info is NULL.
+
+This is how to register a callback on the "loaded" signal.
+
+
+void message_port_cb(int local_port_id, const char *remote_app_id, bundle *message)
+{
+ evas_object_smart_callback_add(photocam, "loaded", _loaded_cb, data);
+}
+
+// Callback function for the "loaded" signal
+// The photocam has loaded the photo file in a low resolution
+
+static void
+loaded_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("The photo has been loaded\n");
+}
+
+\\
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_photocam.html|A Photocam Example]]__**//
+\\
+----
+{{page>widgets_index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/plug.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/plug.txt
new file mode 100644
index 00000000..c362f1f5
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/plug.txt
@@ -0,0 +1,69 @@
+~~Title: Plug Widget PG~~
+{{page>widgets_index}}
+----
+===== Plug Widgets =====
+{{ :widgets_plug_tree.png }}
+
+The plug widget shows an Evas_Object created by an other process. It can be
+used anywhere the same way as any other elementary widget.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Plug|Adding a Plug]]
+ * [[#Using_the_Plug|Using the Plug]]
+ * [[#Using_Plug_Callbacks|Using Plug Callbacks]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Plug.html|Plug Widget API]]
+
+==== Adding a Plug ====
+
+This is how to create a plug.
+
+
+Evas_Object *plug;
+plug = elm_plug_add(parent);
+
+
+The socket image provides the service where we can connect the plug object
+with the ''elm_plug_connect()'' function. In this process we use the service
+name and number set by the socket we want to connect to.
+
+As an example, we connect to a service named "plug_test" on the number 0.
+
+
+elm_plug_connect(plug, "plug_test", 0, EINA_FALSE);
+
+
+The Evas_Object corresponding to the distant image is retrieved with the ''elm_plug_image_object_get()'' function.
+
+
+Evas_Object *plug_img = elm_plug_image_object_get(plug);
+
+
+
+// Create a remote window in the other process
+Elm_Win *remote_win = elm_win_add(NULL,
+ "Window Socket",
+ ELM_WIN_SOCKET_IMAGE);
+// Create a socket named "plug_test" and listen to it
+elm_win_socket_listen(remote_win, "plug_test", 0, EINA_FALSE);
+
+
+==== Using Plug Callbacks ===
+
+This widget emits the following signals:
+
+ * ''"clicked"'': the user clicked the image (press/release). The event parameter of the callback will be NULL.
+ * ''"image,deleted"'': the server side was deleted. The event parameter of the callback will be NULL.
+ * ''"image,resized"'': the server side was resized. The event parameter of the callback will be Evas_Coord_Size (two integers).
+
+----
+{{page>widgets_index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/popup.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/popup.txt
new file mode 100644
index 00000000..c3b5ed95
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/popup.txt
@@ -0,0 +1,137 @@
+~~Title: Popup Widget PG~~
+{{page>widgets_index}}
+----
+===== Popup Widgets =====
+{{ :widgets_popup_tree.png }}{{ :widgets_popup.png }}
+
+The popup widget shows a popup area that may contain
+
+ * a title area (optional)
+ * a content area
+ * an action area (optional)
+
+The optional title area may contain an icon and text, the action area may
+contain up to three buttons.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Popup|Adding a Popup]]
+ * [[#Setting_the_Popup_Areas|Setting the Popup Areas]]
+ * [[#Using_Popup_Callbacks|Using Popup Callbacks]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Popup.html|Popup Widget API]]
+ * [[/develop/legacy/tutorial/popup_tutorial|Popup Tutorial]]
+
+^ Popup Examples ^^^
+|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/popup_example_01_c.html|A First Example]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/popup_example_02_c.html|A Second Example]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/popup_example_01_c.html|A Third Example]]|
+
+==== Adding a Popup ====
+
+This is how to create a popup widget.
+
+
+Evas_Object *popup = elm_popup_add(parent);
+
+
+==== Setting the Popup Areas ====
+
+
+elm_object_style_set(popup, "toast");
+
+
+We configure the title area. We set the icon object using the part name
+"title,icon". We set the title text to "Test popup" using the partname
+"title,text".
+
+
+
+Evas_Object *icon;
+
+// Adding an icon to the title area
+elm_object_part_content_set(popup, "title,icon", icon);
+
+// Setting the title text
+elm_object_part_text_set(popup, "title,text", "Test popup");
+
+
+We set the content of the popup. It can be a simple text
+
+or an Evas object.
+
+
+elm_object_part_text_set(popup, "default", "Test popup");
+
+
+Evas_Object *content;
+
+elm_object_content_set(popup, content);
+
+
+We set the buttons of the action area by creating an "OK" button, a "Cancel"
+button and a "Help" button.
+
+
+Evas_Object *button1, *button2, *button3;
+
+// Create the three buttons
+
+button1 = elm_button_add(popup);
+elm_object_text_set(button1, "OK");
+
+button2 = elm_button_add(popup);
+elm_object_text_set(button2, "Cancel");
+
+button3 = elm_button_add(popup);
+elm_object_text_set(button3, "Help");
+
+// Set the buttons to the action area
+elm_object_part_content_set(popup, "button1", button1);
+elm_object_part_content_set(popup, "button2", button2);
+elm_object_part_content_set(popup, "button3", button3);
+
+
+==== Using Popup Callbacks ====
+
+This widget emits the following signals, besides the ones sent from Layout:
+
+ * ''"timeout"'' - whenever popup is closed as a result of timeout.
+ * ''"block,clicked"'' - whenever user taps on Blocked Event area.
+ * ''"focused"'' - When the popup has received focus. (since 1.8)
+ * ''"unfocused"'' - When the popup has lost focus. (since 1.8)
+ * ''"language,changed"'' - the program's language changed (since 1.8)
+ * ''"item,focused"'' - When the popup item has recieved focus. (since 1.10)
+ * ''"item,unfocused"'' - When the popup item has lost focus. (since 1.10)
+
+''elm_popup_timeout_set()'' is used to hide the popup after a certain time. In
+this example, we set the timeout to five seconds.
+
+
+elm_popup_timeout_set(popup, 5.0);
+
+
+When the timeout expires, the "timeout" signal is sent to the user.
+
+
+evas_object_smart_callback_add(popup, "timeout", _timeout_cb, data);
+
+
+
+static void
+_timeout_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("Timeout \n");
+}
+
+
+The visible region of the popup is surrounded by a translucent region called
+Blocked Event area. By clicking on this area, the signal "block,clicked" is
+sent to the application.
+
+\\
+^ Popup Examples ^^^
+|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/popup_example_01_c.html|A First Example]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/popup_example_02_c.html|A Second Example]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/popup_example_01_c.html|A Third Example]]|
+
+----
+{{page>widgets_index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/progressbar.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/progressbar.txt
new file mode 100644
index 00000000..9e101652
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/progressbar.txt
@@ -0,0 +1,135 @@
+~~Title: Progressbar Widget PG~~
+{{page>widgets_index}}
+----
+===== Progressbar Widgets =====
+{{ :widgets_progressbar_tree.png }}{{ :widgets_progressbar.png }}
+
+The progress bar is a widget for visually representing the progress status of
+a given job/task.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Progressbar|Adding a Progressbar]]
+ * [[#Using_Progressbar_Styles|Using Progressbar Styles]]
+ * [[#Using_the_Progressbar|Using the Progressbar]]
+ * [[#Configuring_the_Progressbar|Configuring the Progressbar]]
+ * [[#Using_Progressbar_Callbacks|Using Progressbar Callbacks]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Progressbar.html|Progressbar Widget API]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/progressbar_example.html|A Progressbar Example]]
+
+==== Adding a Progressbar ====
+
+This widget is used to display the progress status of a given job. It inherits
+from the layout widget, so all function concerning the layout widget is used
+on the progressbar widget.
+
+This is how to create a progressbar widget.
+
+
+Evas_Object *pb = elm_progressbar_add(win);
+
+
+==== Using Progressbar Styles ====
+
+This widget has the following styles:
+
+ * "default"
+ * "wheel" (simple style, no text, no progression, only "pulse" effect is available)
+
+==== Using the Progressbar ====
+
+By default, the progressbar does not show a label or an icon, and the unit
+label is set to "%.0f % %".
+
+This is how to set a label (in this example, it is named "Test label").
+
+
+elm_object_text_set(pb, "Test label");
+
+
+An icon is set with ''elm_object_part_content_set()'' using the partname "icon".
+
+
+elm_object_part_content_set(pb, "icon", icon_object);
+
+
+The unit label format string can be modified using a "printf" style format. We
+set it to be a float number with two decimals.
+
+
+elm_progressbar_unit_format_set(pb, "%1.2f%%");
+
+
+==== Configuring the Progressbar ====
+
+The progressbar pulse mode is activated to make the progressbar loop
+infinitely between the start and end position.
+
+
+elm_progressbar_pulse_set(pb, EINA_TRUE);
+elm_progressbar_pulse(pb, EINA_TRUE);
+
+
+It can be inverted. In that mode, the values are inverted so that the high
+values are on the left and the low values on the right.
+
+
+elm_progressbar_inverted_set(pb, EINA_TRUE);
+
+
+The progressbar emits the "changed" signal when the progress value changes.
+The value is changed with the ''elm_progressbar_value_set()'' function. Here
+the pb progress value is set to 20%.
+
+
+elm_progressbar_value_set(pb, 0.2);
+
+
+The current value can be read.
+
+
+double value = elm_progressbar_value_get(pb);
+
+
+We can set the orientation of the progressbar to vertical instead of the
+default horizontal orientation.
+
+
+elm_progressbar_horizontal_set(pb, EINA_FALSE);
+
+
+==== Using Progressbar Callbacks ====
+
+This widget emits the following signals, besides the ones sent from Layout:
+
+ * ''"changed"'' - when the value is changed (since 1.7)
+ * ''"focused"'' - When the progressbar has received focus. (since 1.8)
+ * ''"unfocused"'' - When the progressbar has lost focus. (since 1.8)
+ * ''"language,changed"'' - the program's language changed (since 1.9)
+
+The "changed" signal is the only signal specifically emitted by the
+progressbar widget.
+
+This is how to register a callback on this signal.
+
+
+evas_object_smart_callback_add(pb, "changed", changed_cb, data);
+
+
+// Callback function for the "changed" signal
+// This callback is called when the progressbar value changes
+static void
+changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("The value has changed\n");
+}
+
+
+\\
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/progressbar_example.html|A Progressbar Example]]__**//
+
+----
+{{page>widgets_index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/radio.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/radio.txt
new file mode 100644
index 00000000..4e3364fa
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/radio.txt
@@ -0,0 +1,119 @@
+~~Title: Radio Widget PG~~
+{{page>widgets_index}}
+----
+===== Radio Widgets =====
+{{ :widgets_radio_tree.png }}{{ :widgets_radio.png }}
+
+This widget displays one or more options, but the user can only select one of
+them. It is composed of an indicator (selected/unselected), an optional icon
+and an optional label. Usually grouped with two or more other radio objects,
+it can also be used alone.
+
+The radio widget inherits from the layout widget. All the layout functions can
+be used with radio objects.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Radio|Adding a Radio]]
+ * [[#Changing_Radio_Value|Changing Radio Value]]
+ * [[#Managing_Radio_Groups|Managing Radio Groups]]
+ * [[#Using_Radio_Callbacks|Using Radio Callbacks]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Radio.html|Radio Widget API]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_radio.html|A Radio Example]]
+
+==== Adding a Radio ====
+
+We create a radio widget and set a label to it.
+
+
+Evas_Object *radio;
+
+// Creating a radio
+radio = elm_radio_add(parent);
+
+// Set a label to it
+elm_object_text_set(radio, "Radio widget");
+
+
+We set an icon to the radio object.
+
+
+// Create a Home icon
+Evas_Object *icon;
+
+icon = elm_icon_add(parent);
+elm_icon_standard_set(icon, "home");
+
+// Set it to the radio widget
+elm_object_part_content_set(radio, "icon", icon);
+
+
+==== Changing Radio Value ====
+
+The user can select one of a set of values with the radio widget. Each radio
+object from a group of radio objects represents an integer value. Here we set
+the value one to the new radio object.
+
+
+elm_radio_state_value_set(radio, 1);
+
+
+==== Managing Radio Groups ====
+
+We create a group of radio objects with at least two radio widgets.
+
+
+// Create another radio object
+Evas_Object *radio2 = elm_radio_add(parent);
+elm_radio_state_value_set(radio2, 2);
+
+// Create a group composed of radio and radio2
+Evas_Object *group = radio;
+elm_radio_group_add(radio2, group);
+
+
+Now that we have a group composed of two radio objects, we can choose which
+one is selected. Here we select radio2.
+
+
+elm_radio_value_set(group, 2);
+
+
+We can use ''elm_radio_value_get()'' to see the currently selected radio of
+the group.
+
+==== Using Radio Callbacks ====
+
+This widget emits the following signals, besides the ones sent from Layout:
+
+ * ''"changed"'' - This is called when the radio object is selected. If you want to trace the state change of a radio group, you should add this callback to all the radio objects in that group.
+ * ''"focused"'' - When the radio has received focus. (since 1.8)
+ * ''"unfocused"'' - When the radio has lost focus. (since 1.8)
+ * ''"language,changed"'' - the program's language changed (since 1.9)
+
+When the state of a radio is modified in a group of radio objects, the
+"changed" signal is emitted.
+
+This is how to register a callback on this signal.
+
+
+evas_object_smart_callback_add(radio, "changed", _changed_cb, data);
+
+
+// Callback function for the "changed" signal
+// This callback is called when the radio value changes
+static void
+changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("The value has changed\n");
+}
+
+
+\\
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/tutorial_radio.html|A Radio Example]]__**//
+
+----
+{{page>widgets_index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/segmentcontrol.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/segmentcontrol.txt
new file mode 100644
index 00000000..76ef6796
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/segmentcontrol.txt
@@ -0,0 +1,94 @@
+~~Title: Segmentcontrol Widget PG~~
+{{page>widgets_index}}
+----
+===== Segment Control Widgets =====
+{{ :widgets_segmentcontrol_tree.png }}{{ :widgets_segmentcontrol.png }}
+
+This widget consists of several segment items. A segment item is similar to a
+discrete two state button. Any time, only one segment item can be selected. A
+segment item is composed of a label (text) and an icon.
+
+This widget inherits from the layout widget, so all the layout widgets API can
+be used on segmentcontrol objects.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Segmentcontrol|Adding a Segmentcontrol]]
+ * [[#Adding_Items|Adding Items]]
+ * [[#Using_the_Segmentcontrol_Callbacks|Using the Segmentcontrol Callbacks]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__SegmentControl.html|Segmentcontrol Widget API]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/segment_control_example.html|A Segment Control Example]]
+
+==== Adding a Segmentcontrol ====
+
+This is how to add a segmentcontrol widget.
+
+
+Evas_Object *segcontrol = elm_segment_control_add(parent);
+
+
+==== Adding Items ====
+
+We can add items to it. Here we add four items containing only text labels (no icons).
+
+
+Elm_Object_Item *it;
+
+elm_segment_control_item_add(segcontrol, NULL, "item1");
+elm_segment_control_item_add(segcontrol, NULL, "item2");
+elm_segment_control_item_add(segcontrol, NULL, "item3");
+it = elm_segment_control_item_add(segcontrol, NULL, "item4");
+
+
+We can insert an item at a specific position starting at 0
+
+
+elm_segment_control_item_insert_at(segcontrol, NULL, "item7", 2);
+
+
+or delete an item.
+
+
+elm_segment_control_item_del_at(segcontrol, 2);
+
+
+We can also set the selected state of an item manually
+
+
+elm_segment_control_item_selected_set(it, EINA_TRUE);
+
+
+or disable the whole segment control.
+
+
+elm_object_disabled_set(segcontrol, EINA_TRUE);
+
+
+==== Using the Segmentcontrol Callbacks ====
+
+This is how to register a callback on the "changed" signal. It is called when
+the user clicks on a segment item which is not previously selected. The
+event_info parameter is the segment item pointer.
+
+
+evas_object_smart_callback_add(segcontrol, "changed", _changed_cb, data);
+
+
+// Callback function for the "changed" signal
+// This callback is called when the segcontrol selected item changes
+static void
+_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Elm_Segment_Item *it = event_info;
+ printf("The selected segment item has changed\n");
+}
+
+
+\\
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/segment_control_example.html|A Segment Control Example]]__**//
+
+----
+{{page>widgets_index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/slider.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/slider.txt
new file mode 100644
index 00000000..a7ddda46
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/slider.txt
@@ -0,0 +1,124 @@
+~~Title: Slider Widget PG~~
+{{page>widgets_index}}
+----
+===== Slider Widgets =====
+{{ :widgets_slider_tree.png }}{{ :widgets_slider.png }}
+
+The slider widget is a draggable bar that is used to select a value within a
+certain range.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Slider|Adding a Slider]]
+ * [[#Configuring_the_Slider|Configuring the Slider]]
+ * [[#Using_Slider_Callbacks|Using Slider Callbacks]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Slider.html|Slider Widget API]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/slider_example.html|A Slider Example]]
+
+==== Adding a Slider ====
+
+This is how to create a slider object.
+
+
+Evas_Object *slider;
+slider = elm_slider_add(parent);
+
+
+==== Configuring the Slider ====
+
+Orientation is set with the ''elm_slider_horizontal_set()'' function, and it
+is inverted the same way as the progressbar widget. Here we set it vertical
+and inverted.
+
+
+elm_slider_horizontal_set(slider, EINA_FALSE);
+elm_slider_inverted_set(slider, EINA_TRUE);
+
+
+It can contain icons ("icon" and "end" partnames), a label, a unit label and
+an indicator label.
+
+
+Evas_Object *icon1, *icon2;
+
+// Set the icons
+elm_object_part_content_set(slider, "icon", icon1);
+elm_object_part_content_set(slider, "end", icon2);
+
+// Set the label
+elm_object_part_text_set(slider, "default", "slider label");
+
+// Set the unit format
+elm_slider_unit_format_set(slider, "%1.2f meters");
+
+
+Before using the slider, its minimum and maximum values are set with
+''elm_slider_min_max_set()''. The current value is set with
+(''elm_slider_value_set()''). Here we set the minimum value to 0, the maximum
+value to 100, and the current value to 50.
+
+
+elm_slider_min_max_set(slider, 0.0, 100.0);
+elm_slider_value_set(slider, 50.0);
+
+
+The span of the slider represents its length (horizontally or vertically). It
+is set with ''elm_slider_span_size_set()'' and is scaled by the object or
+applications scaling factor.
+
+We can retrieve the current value of the slider anytime.
+
+
+double value = elm_slider_value_get(slider);
+
+
+By default, the slider indicator becomes bigger when the user drags it. This
+can be disabled if we want the slider indicator to keep its default size. Here
+we set the state of the indicator enlargement and then invert the behavior.
+
+
+// Get the current state of the indicator
+Eina_Bool enlarge = elm_slider_indicator_show_get(slider);
+
+// Invert the behavior
+elm_slider_indicator_show_set(slider, !enlarge);
+
+
+==== Using Slider Callbacks ====
+
+This widget emits the following signals, besides the ones sent from Layout:
+
+ * ''"changed"'' - Whenever the slider value is changed by the user.
+ * ''"slider,drag,start"'' - dragging the slider indicator around has started.
+ * ''"slider,drag,stop"'' - dragging the slider indicator around has stopped.
+ * ''"delay,changed"'' - A short time after the value is changed by the user. This will be called only when the user stops dragging for a very short period or when they release their finger/mouse, so it avoids possibly expensive reactions to the value change.
+ * ''"focused"'' - When the slider has received focus. (since 1.8)
+ * ''"unfocused"'' - When the slider has lost focus. (since 1.8)
+ * ''"language,changed"'' - the program's language changed (since 1.9)
+
+For all these signals, event_info is NULL.
+
+This is how to register a callback on the "changed" signal.
+
+
+evas_object_smart_callback_add(slider, "changed", _changed_cb, data);
+
+
+
+// Callback function for the "changed" signal
+// This callback is called when the slider value changes
+static void
+_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("The slider has changed\n");
+}
+
+
+\\
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/slider_example.html|A Slider Example]]__**//
+
+----
+{{page>widgets_index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/spinner.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/spinner.txt
new file mode 100644
index 00000000..0d8af486
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/spinner.txt
@@ -0,0 +1,114 @@
+~~Title: Spinner Widget PG~~
+{{page>widgets_index}}
+----
+===== Spinner Widgets =====
+{{ :widgets_spinner_tree.png }}{{ :widgets_spinner.png }}
+
+The spinner widget increases or decreases a numeric value with the arrow
+buttons.
+
+This widget inherits from the layout widget, so all functions concerning the
+layout widget are used on the spinner widget.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Spinner|Adding a Spinner]]
+ * [[#Configuring_the_Spinner|Configuring the Spinner]]
+ * [[#Using_Spinner_Callbacks|Using Spinner Callbacks]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Spinner.html|Spinner Widget API]]
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/spinner_example.html|A Spinner Example]]
+
+==== Adding a Spinner ====
+
+This is how to create a spinner object.
+
+
+Evas_Object *spin;
+spin = elm_spinner_add(parent);
+
+
+This widgets allows a "vertical" style: up/down buttons at the right side
+and text left aligned.
+
+==== Configuring the Spinner ====
+
+The label format is set to a different value:
+
+
+elm_spinner_label_format_set(spin, "%1.2f meters");
+
+
+You can determine the result of clicking the arrow buttons. In this example, a
+click on an arrow increases or decreases with 2.0 units:
+
+
+elm_spinner_step_set(spin, 2.0);
+
+
+The wrapping mode is activated. In this mode, the spinner wraps when it reaches its minimum or maximum value.
+
+
+elm_spinner_wrap_set(spin, EINA_TRUE);
+
+
+We set the minimum and maximum values of the spinner.
+
+
+elm_spinner_min_max_set(spin, -25.0, 100.0);
+
+
+The spinner object can be set vertical, and the change interval when the user
+presses the arrows long can be modified so that it changes faster.
+
+
+elm_object_style_set(spin, "vertical");
+elm_spinner_interval_set(spin, 0.1);
+
+
+If the user has to select between text values instead of numerical values, it
+is possible to add our own text labels. Here spin2 object shows three numbers
+written in text characters.
+
+
+Evas_Object *spin2 = elm_spinner_add(parent);
+elm_spinner_min_max_set(spin2, 1, 3);
+elm_spinner_special_value_add(spin2, 1, "One");
+elm_spinner_special_value_add(spin2, 2, "Two");
+elm_spinner_special_value_add(spin2, 3, "Three");
+
+
+==== Using Spinner Callbacks ====
+
+This widget emits the following signals, besides the ones sent from Layout:
+
+ * ''"changed"'' - Whenever the spinner value is changed.
+ * ''"delay,changed"'' - A short time after the value is changed by the user. This will be called only when the user stops dragging for a very short period or when they release their finger/mouse, so it avoids possibly expensive reactions to the value change.
+ * ''"language,changed"'' - the program's language changed
+ * ''"focused"'' - When the spinner has received focus. (since 1.8)
+ * ''"unfocused"'' - When the spinner has lost focus. (since 1.8)
+ * ''"spinner,drag,start"'' - When dragging has started. (since 1.8)
+ * ''"spinner,drag,stop"'' - When dragging has stopped. (since 1.8)
+
+This is how to register a callback on the "delay,changed" signal.
+
+
+evas_object_smart_callback_add(spin, "delay,changed", _delay_changed_cb, data);
+
+
+// Callback function for the "delay,changed" signal
+// This callback is called a short time after the spinner value changes
+static void
+_delay_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ printf(The spinner value has changed\n");
+}
+
+
+\\
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/spinner_example.html|A Spinner Example]]__**//
+
+----
+{{page>widgets_index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/toolbar.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/toolbar.txt
new file mode 100644
index 00000000..25e6e7e4
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/toolbar.txt
@@ -0,0 +1,155 @@
+~~Title: Toolbar Widget PG~~
+{{page>widgets_index}}
+----
+===== Toolbar Widgets =====
+{{ :widgets_toolbar_tree.png }}{{ :widgets_toolbar.png }}
+
+This widget is a scrollable list of items and shows a menu when an item is
+selected. Only one item can be selected at a time.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Toolbar|Adding a Toolbar]]
+ * [[#Using_Toolbar_Styles|Using Toolbar Styles]]
+ * [[#Configuring_the_Toolbar|Configuring the Toolbar]]
+ * [[#Adding_Items_to_the_Toolbar|Adding Items to the Toolbar]]
+ * [[#Adding_Items_with_States|Adding Items with States]]
+ * [[#Using_Toolbar_Callbacks|Using Toolbar Callbacks]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Toolbar.html|Toolbar Widget API]]
+
+^ Toolbar Examples ^^^
+|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/toolbar_example_01.html|Simple Items]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/toolbar_example_02.html|Items with States]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/toolbar_example_03.html|Items with Menus]]|
+
+==== Adding a Toolbar ====
+
+Use the following function to create a toolbar.
+
+
+Evas_Object *toolbar;
+toolbar = elm_toolbar_add(parent);
+
+
+==== Using Toolbar Styles ====
+
+The toolbar has the following styles:
+
+ * "default"
+ * "transparent"
+
+Here, we set the style to "transparent".
+
+
+elm_object_style_set(toolbar, "transparent");
+
+
+==== Configuring the Toolbar ====
+
+The toolbar displays its items in one of the following options.
+
+ * ''ELM_TOOLBAR_SHRINK_NONE'': Toolbar sets a minimum size to its items so that all of them fit without scrolling.
+ * ''ELM_TOOLBAR_SHRINK_HIDE'': Toolbar does not scroll or show the items that do not fit in.
+ * ''ELM_TOOLBAR_SHRINK_SCROLL'': Toolbar scrolls to show the items that do not fit in.
+ * ''ELM_TOOLBAR_SHRINK_MENU'': Toolbar creates a button to popup hidden items.
+
+Here we set the Toolbar to ''ELM_TOOLBAR_SHRINK_NONE''.
+
+
+elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_NONE);
+
+
+By default, the toolbar displays items homogeneously. Items with long labels
+occupy a lot of space. To avoid that, we can disable the homogeneous mode.
+
+
+elm_toolbar_homogeneous_set(toolbar, EINA_FALSE);
+
+
+==== Adding Items to the Toolbar ====
+
+In the following code, we add two items and choose the associated icon, label,
+and function to call when the item is clicked.
+
+
+Elm_Object_Item *home_it, *help_it;
+home_it = elm_toolbar_item_append(toolbar, "home", "Home", _home_item_pressed_cb, NULL);
+help_it = elm_toolbar_item_append(toolbar, "help", "Help", _help_item_pressed_cb, NULL);
+
+
+static void
+_home_item_pressed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("Home item clicked\n");
+}
+
+
+static void
+_help_item_pressed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("Help item clicked \n");
+}
+
+
+An item may be disabled. This is how to disable the help item. The disabled
+item does not receive input and, if the theme supports it, is themed
+differently (usually greyed out) from its normal state.
+
+
+elm_object_item_disabled_set(help_it, EINA_TRUE);
+
+
+==== Adding Items with States ====
+
+Items have two or more states. Each state has its own icon, label, and
+function to call when an item is clicked. As an example, we create two states
+to the help item with the same icon but two different labels.
+
+
+elm_toolbar_item_state_add(help_it, "help", "Help state 1", _help_item_pressed_cb, NULL);
+elm_toolbar_item_state_add(help_it, "help", "Help state 2", _help_item_pressed_cb, NULL);
+
+
+We can cycle through the states of the help item by using the following code.
+
+
+elm_toolbar_item_state_set(help_it, elm_toolbar_item_state_next(help_it));
+
+
+==== Using Toolbar Callbacks ====
+
+Smart callbacks one can listen to:
+
+ * ''"clicked"'' - when the user clicks on a toolbar item and becomes selected.
+ * ''"longpressed"'' - when the toolbar is pressed for a certain amount of time.
+ * ''"language,changed"'' - when the program language changes.
+ * ''"focused"'' - When the toolbar has received focus. (since 1.8)
+ * ''"unfocused"'' - When the toolbar has lost focus. (since 1.8)
+ * ''"item,focused"'' - When the toolbar item has received focus. (since 1.10)
+ * ''"item,unfocused"'' - When the toolbar item has lost focus. (since 1.10)
+ * ''"selected"'' - when an item is selected. event_info is a selected item. (since 1.11)
+ * ''"unselected"'' - when an item is unselected. event_info is a unselected item. (since 1.11)
+
+This is how to register a callback on the "clicked" signal.
+
+
+evas_object_smart_callback_add(toolbar, "clicked", _clicked_cb, data);
+
+
+// Callback function for the "clicked" signal
+// This callback is called when a toolbar item is clicked
+static void
+_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Elm_Toolbar_Item * item = event_info;
+ printf("Item clicked\n");
+}
+
+
+\\
+^ Toolbar Examples ^^^
+|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/toolbar_example_01.html|Simple Items]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/toolbar_example_02.html|Items with States]]|[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/toolbar_example_03.html|Items with Menus]]|
+
+----
+{{page>widgets_index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets/tooltips.txt b/public_html/data/pages/develop/legacy/program_guide/widgets/tooltips.txt
new file mode 100644
index 00000000..25ace297
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets/tooltips.txt
@@ -0,0 +1,103 @@
+~~Title: Tooltips Widget PG~~
+{{page>widgets_index}}
+----
+===== Tooltips Widgets =====
+The tooltip widget is a smart object that shows a content in a frame when
+mouse hovers a parent object. The widget provides tips or information about
+the parent object.
+
+=== Table of Contents ===
+
+ * [[#Adding_a_Tooltips|Adding a Tooltips]]
+ * [[#Activating_the_Tooltip|Activating the Tooltip]]
+ * [[#Configuring_Tooltip|Configuring Tooltip]]
+
+=== Related Info ===
+
+ * [[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/group__Tooltips.html|Tooltips Widget API]]
+
+==== Adding a Tooltips ====
+
+The tooltip widget cannot be created with the ''elm_tooltip_add()'' function.
+This widget is already contained in a widget when it is created. We can only
+activate or disable it.
+
+==== Activating the Tooltip ====
+
+To activate the tooltip on a parent object, we can set a tooltip text to the
+parent object,
+
+
+elm_object_tooltip_text_set(parent, "The tooltip text");
+
+
+or set a content to the parent object.
+
+
+elm_object_tooltip_content_cb_set(parent,
+ tooltip_content_cb,
+ NULL,
+ tooltip_content_del_cb);
+
+
+Evas_Object*
+tooltip_content_cb(void*data, Evas_Object *obj, Evas_Object *tooltip)
+{
+ // Create the tooltip content
+}
+
+static void
+tooltip_content_del_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ // Destroy the tooltip content
+}
+
+
+When passing content to the tooltip, the ''tooltip_content_cb'' function is
+called each time the tooltip is showed. The role of this function is to create
+the content to set in the tooltip. It returns a pointer to an Evas_Object.
+
+When the tooltip disappears, the ''tooltip_content_del_cb'' function is
+called. This function is in charge of deleting the previously allocated
+Evas_Object.
+
+Once set, the tooltip can be manually hidden or shown.
+
+
+elm_object_tooltip_hide(parent);
+elm_object_tooltip_show(parent);
+
+
+The tooltip can be removed from the parent object when it is not needed.
+
+
+elm_object_tooltip_unset(parent);
+
+
+
+Evas_Object *window;
+// Creating a window
+window = elm_win_add(NULL, "main", ELM_WIN_BASIC);
+// Change window title
+elm_win_title_set(window, "Example Window");
+
+
+The first element of ''elm_win_add()'' is the parent window. For example, for a
+dialog you want to have the main window as the parent. Here, it is NULL
+meaning there is no parent. "main" is the name of the window used by the
+window manager for identifying the window uniquely amongst all the windows
+within this application (and all instances of the application). The type is a
+basic window (the final parameter).
+
+Create a new window with a title and a background. This API is a shortcut of
+the previous one. It also creates a standard background to the window with
+''elm_bg_add''. The window created is of the type ''ELM_WIN_BASIC''.
+
+
+Evas_Object *window;
+
+// Creating a standard window
+window = elm_win_util_standard_add("main", "Example Window");
+
+
+==== Closing a Window ====
+
+When the user closes the window outside of the program control, a
+"delete,request" signal is emitted to indicate that this event occurred. The
+developer can take any action, for example, destroy the window object.
+
+When the autodel parameter is set, the window is automatically destroyed after
+the signal is emitted. If autodel is ''EINA_FALSE'', the window is not destroyed
+and the program does so when required. The default is ''EINA_FALSE'', where the
+window is not destroyed automatically.
+
+The autodel is set using the following call:
+
+
+elm_win_autodel_set(window, EINA_TRUE);
+
+
+To close the window, use the ''evas_object_del'' API. The window is destroyed and
+the signal "delete,request" is sent.
+
+==== Using the Window Callbacks ====
+
+The window widget emits the following signals:
+
+ * ''"delete,request"'': the user requested to close the window. See ''elm_win_autodel_set()'' and elm_win_autohide_set().
+ * ''"focus,in"'': window got focus (deprecated. use "focused" instead.)
+ * ''"focus,out"'': window lost focus (deprecated. use "unfocused" instead.)
+ * ''"moved"'': window that holds the canvas was moved
+ * ''"withdrawn"'': window is still managed normally but removed from view
+ * ''"iconified"'': window is minimized (perhaps into an icon or taskbar)
+ * ''"normal"'': window is in a normal state (not withdrawn or iconified)
+ * ''"stick"'': window has become sticky (shows on all desktops)
+ * ''"unstick"'': window has stopped being sticky
+ * ''"fullscreen"'': window has become fullscreen
+ * ''"unfullscreen"'': window has stopped being fullscreen
+ * ''"maximized"'': window has been maximized
+ * ''"unmaximized"'': window has stopped being maximized
+ * ''"ioerr"'': there has been a low-level I/O error with the display system
+ * ''"indicator,prop,changed"'': an indicator's property has been changed
+ * ''"rotation,changed"'': window rotation has been changed
+ * ''"profile,changed"'': profile of the window has been changed
+ * ''"focused" '': When the win has received focus. (since 1.8)
+ * ''"unfocused" '': When the win has lost focus. (since 1.8)
+ * ''"theme,changed"'': The theme was changed. (since 1.13)
+
+With all these signals, event_info is NULL.
+
+This is an example to register a callback function called on the "fullscreen"
+signal.
+
+
+evas_object_smart_callback_add(window, "fullscreen", _fullscreen_cb, data);
+
+
+
+// Callback function for the "fullscreen" signal
+// This callback is called when the window becomes fullscreen
+static void
+_fullscreen_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("Window fullscreen\n");
+}
+
+
+\\
+//**__[[https://build.enlightenment.org/job/nightly_elm_gcc_x86_64/lastSuccessfulBuild/artifact/doc/html/win_example_01.html|A Win Example]]__**//
+
+----
+{{page>widgets_index}}
diff --git a/public_html/data/pages/develop/legacy/program_guide/widgets_pg.txt b/public_html/data/pages/develop/legacy/program_guide/widgets_pg.txt
new file mode 100644
index 00000000..234d4273
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/program_guide/widgets_pg.txt
@@ -0,0 +1,182 @@
+~~Title: Widgets Programming Guide~~
+{{page>index}}
+===== Widgets Programming Guide =====
+
+The Elementary library is a simple toolkit. It provides several widgets than
+can be used to compose the user interface of your application. Widgets allow
+you to build your application without having to reinvent basic objects, such
+as buttons, lists, or text entries. Widgets will often generate signals that
+can be caught in the application when the user interacts with the widgets.
+This guide teaches you the basics of Elementary, describes selected concepts
+of the Elementary configuration framework, and describes the most common
+widgets.
+
+=== Table of Contents ===
+ * [[/develop/legacy/program_guide/widgets/basics|Elementary Basics]]
+ * [[/develop/legacy/program_guide/widgets/config|Elementary Configuration]]
+{{page>[[develop:legacy:program_guide:widgets:widgets_menu]]}}
+
+==== Elementary Basics ====
+
+In this chapter, we explain how widgets are built in a hierarchical manner,
+how to build a minimal Elementary application, and what the differences are
+between the callbacks that can be registered for widgets.
+
+==== Elementary Configuration ====
+
+Elementary can be configured using profiles. This chapter details some
+configuration items that can be modified to tweak the use of Elementary.
+
+==== Widgets ====
+
+++++Background|
+The background widget can be used to set a solid background decoration to a
+window or a container object. It works like an image, but has some background
+specific properties, such as setting it to tiled, centered, scaled, or
+stretched.
+++++
+
+++++Button|
+The button widget is a simple push button. It is composed of a label icon and
+an icon object, and has an auto-repeat feature. Check The check widget
+toggles the value of a Boolean between true and false.
+++++
+
+++++Colorselector|
+The colorselector widget provides a color selection solution
+to the user. It has different modes available, each of them showing a
+different configuration of the color selection.
+++++
+
+++++Ctxpopup|
+The ctxpopup widget is a contextual popup that can show a list of items.
+++++
+
+++++Datetime|
+The datetime widget can display and input date and time values.
+++++
+
+++++Entry|
+The entry widget is a box to which the user can enter text.
+++++
+
+++++Flip|
+The flip widget can hold two Evas objects and let the user flip between
+these objects using a variety of predefined animations.
+++++
+
+++++GLView|
+The GLView widget can render OpenGL in an Elementary object, hiding
+EvasGL complexity.
+++++
+
+++++Icon|
+The icon widget inherits from the image widget. It is used to display
+images in an icon context.
+++++
+
+++++Image|
+The image widget can load and display an image from a file or from
+memory.
+++++
+
+++++Index|
+The index widget provides an index for fast access to another group of
+UI items.
+++++
+
+++++Label|
+The label widget displays text with simple HTML-like markup.
+List The list widget is a very simple list for managing a small number of
+items. If you need to manage a lot of items, use the genlist widget instead.
+++++
+
+++++Map|
+The map widget can display a geographic map. The default map data is
+provided by the OpenStreetMap project (http://www.openstreetmap.org/).
+++++
+
+++++Notify| The notify widget displays a container in a specific region of the
+parent object. It can receive some content, and it can be automatically hidden
+after a certain amount of time.
+++++
+
+++++Panel|
+The panel widget is an animated object that can contain child objects.
+It can be expanded or contracted by clicking on the button on its edge.
+++++
+
+++++Photo|
+The photo widget can be used to display a photo, such as a contact
+image. If no photo is set, the widget displays a person icon to show that it
+is a photo placeholder.
+++++
+
+++++Photocam|
+The photocam widget is designed to display high-resolution photos
+taken with a digital camera. It allows you to zoom photos, load photos fast,
+and fit photos. It is optimized for JPEG images and has a low memory
+footprint.
+++++
+
+++++Plug|
+The plug widget allows you to show an Evas object created by another
+process. It can be used anywhere like any other Elementary widget.
+++++
+
+++++Popup|
+The popup widget shows a pop-up area that can contain a title area, a
+content area, and an action area.
+++++
+
+++++Progressbar|
+The progressbar widget can be used to display the progress
+status of a given job.
+++++
+
+++++Radio|
+The radio widget can display 1 or more options, but the user can only
+select one of them. The widget is composed of an indicator
+(selected/unselected), an optional icon, and an optional label. Even though it
+is usually grouped with 2 or more other radio widgets, it can also be used
+alone.
+++++
+
+++++Segmentcontrol|
+The slider widget is a draggable bar that is used to select a
+value from a range of values.
+Slider The slider widget is a draggable bar that is used to select a value
+from a range of values.
+++++
+
+++++Spinner|
+The spinner widget enables the user to increase or decrease a
+numeric value by using arrow buttons.
+++++
+
+++++Toolbar|
+The toolbar widget is a scrollable list of items. It can also show a
+menu when an item is selected. Only one item can be selected at a time.
+++++
+
+++++Tooltip|
+The tooltip widget is a smart object used to show tips or
+information about a parent object when the mouse hovers over the parent
+object.
+++++
+
+++++Transit|
+The transit widget can apply several transition effects to an Evas
+object, such as translations and rotations. The use of the transit widget is
+documented in the Creating Animations and Effects guide.
+++++
+
+++++Win|
+The win widget is the root window widget that will be often used in an
+application. It allows you to create some content in it, and it is handled by
+the window manager.
+++++
+
+\\
+----
+{{page>index}}
diff --git a/public_html/data/pages/develop/legacy/samples/elm_min_size_control.txt b/public_html/data/pages/develop/legacy/samples/elm_min_size_control.txt
new file mode 100644
index 00000000..633a5fa8
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/samples/elm_min_size_control.txt
@@ -0,0 +1,89 @@
+~~Title: Controlling Minimum Size of Elementary Widgets~~
+~~CODE-c~~
+
+{{page>index}}
+
+==== Controlling Minimum Size ====
+
+Often people need to control the minimum size of an object, perhaps to make it larger than normal. Some widgets like scrollers have **VERY** small minimum sizes, so to make these expand to some acceptable size. You may be tempted to just call evas_object_size_hint_min_set() to set the minimum size of a widget, but this would be wrong. This same call is used internally by widgets as they calculate and update their own minimum sizes based on content and state. All this ends up doing is becoming a fight as to who last called this function.
+
+What you want is a SECOND control point that can expand a widget to be bigger (if its own native minimum size happens to be smaller). This will allow for scaling, resizing and finger size handling to work right by possibly expanding to be bigger than the extra control point if font sizes or other factors force sizing to increase. This second control point can be modified separately to the widget being controlled (in this example below, a button).
+
+The way to get a second control point is to use a table, place a rectangle into it as a control point and modify its minimum size (remember to account for scaling), and in the exact same cell, place the widget to be controlled.
+
+So add a table with:
+
+
+tab = elm_table_add(win);
+
+
+Then create a basic rectangle with:
+
+
+rec = evas_object_rectangle_add(evas_object_evas_get(win));
+
+
+And set some custom size hinting on the rectangle:
+
+
+evas_object_size_hint_min_set(rec, ELM_SCALE_SIZE(200), ELM_SCALE_SIZE(300));
+
+
+And now pack it into the table. Do not show it or do anything else. Keep it hidden. This is your extra control point to adjust sizing of the entire table and its contents. Do not forget that weight and align also affect how the rectangle controls sizing.
+
+
+elm_table_pack(tab, rec, 0, 0, 1, 1);
+
+
+Here is the full example with all hints set up correctly:
+
+
+#include
+
+static void
+on_click(void *data, Evas_Object *obj, void *event_info)
+{
+ evas_object_del(data);
+}
+
+EAPI_MAIN int
+elm_main(int argc, char **argv)
+{
+ Evas_Object *win, *tab, *rec, *btn;
+
+ elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
+
+ win = elm_win_util_standard_add("Main", "Min Size Control");
+ elm_win_autodel_set(win, EINA_TRUE);
+
+ tab = elm_table_add(win);
+ evas_object_size_hint_weight_set(tab, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(win, tab);
+ evas_object_show(tab);
+
+ rec = evas_object_rectangle_add(evas_object_evas_get(win));
+ evas_object_size_hint_weight_set(rec, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(rec, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_min_set(rec, ELM_SCALE_SIZE(200), ELM_SCALE_SIZE(300));
+ elm_table_pack(tab, rec, 0, 0, 1, 1);
+
+ btn = elm_button_add(win);
+ elm_object_text_set(btn, "Bigger Button");
+ evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_table_pack(tab, btn, 0, 0, 1, 1);
+ evas_object_smart_callback_add(btn, "clicked", on_click, win);
+ evas_object_show(btn);
+
+ evas_object_show(win);
+
+ elm_run();
+
+ return 0;
+}
+ELM_MAIN()
+
+
+----
+
+~~DISCUSSIONS~~
diff --git a/public_html/data/pages/develop/legacy/start.md.txt b/public_html/data/pages/develop/legacy/start.md.txt
new file mode 100644
index 00000000..3e3a3b01
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/start.md.txt
@@ -0,0 +1,15 @@
+# Developing with Stable EFL
+
+This section covers the documentation and guides that are part of our current stable API. Whilst most active development is focused on our BETA APIs the majority of our apps are still written using the stable (which will become legacy) APIs.
+
+## Tutorials
+
+There are a collection of tutorials for using the Stable API listed on the [EFL Tutorials](https://www.enlightenment.org/develop/legacy/tutorial/) page. These cover the most common tasks or workflows within EFL. You will find assistance working with animations, multimedia, user interfaces and 3D.
+
+## Programming Guides
+
+The underlying concepts and main modules all have programming guides as well. They are all referenced from the [Stable API Programming Guide](https://www.enlightenment.org/develop/legacy/program_guide/) home page.
+
+## Examples
+
+The examples for the stable API are included in our source distribution and can be browsed at our [git repository](https://git.enlightenment.org/core/efl.git/tree/src/examples/).
\ No newline at end of file
diff --git a/public_html/data/pages/develop/legacy/tutorial/basic/button.txt b/public_html/data/pages/develop/legacy/tutorial/basic/button.txt
new file mode 100644
index 00000000..af4fbf8b
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/basic/button.txt
@@ -0,0 +1,194 @@
+==== Button ====
+
+=== Button styles ===
+
+**Basic text button**
+
+As seen in [[develop/efl/start|Get started with EFL]] tutorial, a text-only
+button is created as follows:
+
+
+ //basic text button
+ Evas_Object *button_text;
+ button_text = elm_button_add(win);
+
+ elm_object_text_set(button_text,"Clik me");
+
+ //how a container object should resize a given child within its area
+ evas_object_size_hint_weight_set(button_text, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ //how to align an object
+ evas_object_size_hint_align_set(button_text, EVAS_HINT_FILL, 0.5);
+
+ //100x30 px button
+ evas_object_resize(button_text, 100, 30);
+ evas_object_show(button_text);
+
+
+**Basic icon button**
+
+Instead of a button having only some text, you can also opt to having an
+icon-only button.
+
+
+ //Basic icon button
+ Evas_Object *button_icon, *icon;
+ button_icon = elm_button_add(win);
+ icon = elm_icon_add(win);
+
+ //set the image file and the button as an icon
+ elm_image_file_set(icon, "icon.png", NULL);
+ elm_object_part_content_set(button_icon, "icon", icon);
+
+ evas_object_size_hint_weight_set(button_icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(button_icon, EVAS_HINT_FILL, 0.5);
+
+ //100x30 px button
+ evas_object_resize(button_icon, 100, 30);
+ evas_object_move(button_icon, 110, 0);
+ evas_object_show(button_icon);
+
+
+The function ''elm_object_part_content_set(button_icon, "icon",icon)'' sets
+the content on part on a given container widget. All widgets
+deriving from the Elementary Container Class may match. This sets new content
+to a given part. If any object was already set as a content object, it will be
+deleted.
+
+**Icon and text button**
+
+You can also have buttons holding both an icon and a label.
+
+
+ //Icon and text button
+ Evas_Object *button_icon_text, *icon2;
+ button_icon_text = elm_button_add(win);
+ icon2 = elm_icon_add(win);
+
+ elm_image_file_set(icon2, "icon.png", NULL);
+ elm_object_part_content_set(button_icon_text, "icon", icon2);
+ elm_object_text_set(button_icon_text, "Press me");
+ evas_object_size_hint_weight_set(button_icon_text, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(button_icon_text, EVAS_HINT_FILL, 0.5);
+
+ evas_object_resize(button_icon_text, 100, 30);
+ evas_object_move(button_icon_text, 220, 0);
+ evas_object_show(button_icon_text);
+
+
+**Disabled button**
+
+If you want to disable your button but still visible:
+
+
+elm_object_disabled_set(button, EINA_TRUE);
+
+
+== Callbacks ==
+
+Elementary buttons respond to user interactions thanks to several events.
+
+**Click event**
+
+The “click” event is the most basic and well-known one. The following code
+snippet will change the text of a button upon a click event: a press followed
+by an unpress.
+
+
+//Click Callback: print Clicked
+static void
+_button_click_cb(void *data, Evas_Object *button, void *event_info){
+ elm_object_text_set(button, "Clicked!");
+}
+
+evas_object_smart_callback_add(button_text, "clicked", button_click_cb, NULL);
+
+
+**Press/unpress events **
+
+The button can also respond to the press and unpress events instead of the
+whole click.
+
+
+//Press callback: print Pressed
+static void
+_button_press_cb(void * data, Evas_Object *button, void *event_info){
+ elm_object_text_set(button, "Pressed!");
+}
+
+//Unpress callback: print Unpressed
+static void
+_button_unpress_cb(void *data, Evas_Object *button, void *event_info){
+ elm_object_text_set(button, "Unpressed!");
+}
+
+evas_object_smart_callback_add(button_icon, "pressed", _button_press_cb, NULL);
+evas_object_smart_callback_add(button_icon, "unpressed", _button_unpress_cb, NULL);
+
+
+**Repeated events**
+
+The button can also receive several events in case it is being held by the
+user. Timings such as the initial timeout and the repeat interval can be set.
+In this example, the initial timeout is set to one second, and the repeat
+interval to half a second.
+
+
+static void
+_button_repeat_cb(void *data, Evas_Object *button, void *event_info){
+ static int count = 0;
+ char buffer[16];
+
+ snprintf(buffer, sizeof(buffer), "Repeat %d", count++);
+
+ //print the number of time callback was called
+ elm_object_text_set(button, buffer);
+}
+
+ //Get whether the autorepeat feature is enabled.
+ elm_button_autorepeat_set(button_icon_text, EINA_TRUE);
+ //Set the initial timeout before the autorepeat event is generated.
+ elm_button_autorepeat_initial_timeout_set(button_icon_text, 1.0);
+ //gap between two callbacks
+ elm_button_autorepeat_gap_timeout_set(button_icon_text, 0.5);
+ //"repeated": the user pressed the button without releasing it.
+ evas_object_smart_callback_add(button_icon_text, "repeated", _button_repeat_cb, NULL);
+
+
+**Focused/unfocused events**
+
+The event Focused is equivalent to click indeed callback is called when you
+are "focused" on the button. So, you are unfocused when you are not focused on
+the first button. For having two buttons, a box container will be needed.
+
+The button can also receive event from another button in case it is being
+focused when you click on it and unfocused when you press and unpress another
+one.
+
+
+static void
+_button_focused_cb(void * data, Evas_Object *button, void *event_info){
+ elm_object_text_set(button, "Focused");
+}
+
+static void
+_button_unfocused_cb(void * data, Evas_Object *button, void *event_info){
+ elm_object_text_set(button, "Unfocused");
+}
+ //Focused/unfocused event
+ Evas_Object *button;
+
+ button = elm_button_add(win);
+ elm_object_text_set(button, "button");
+ evas_object_resize(button, 100, 30);
+ evas_object_move(button, 0, 40);
+ evas_object_show(button);
+
+ evas_object_smart_callback_add(button, "focused", _button_focused_cb, NULL);
+ evas_object_smart_callback_add(button, "unfocused", _button_unfocused_cb, NULL);
+
+\\
+**The whole code:** {{code_c/tutorial/basic/button.c}}
+
+==== Next Part ====
+
+//**__[[/develop/legacy/tutorial/basic/label]]__**//
diff --git a/public_html/data/pages/develop/legacy/tutorial/basic/label.txt b/public_html/data/pages/develop/legacy/tutorial/basic/label.txt
new file mode 100644
index 00000000..d4c2360a
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/basic/label.txt
@@ -0,0 +1,75 @@
+==== Simple Text ====
+
+**Basic text**
+
+Creating a label object, a widget to display text, with simple html-like
+markup:
+
+
+ //text_label
+ Evas_Object *label_text;
+ label_text = elm_label_add(win);
+
+ elm_object_text_set(label_text,"My label");
+
+ evas_object_resize(label_text, 90, 30);
+ evas_object_show(label_text);
+
+
+**Sliding text**
+
+If your text is too long, you can have it set to slide. The duration of the
+slide is to be set: it is set to five seconds in the following example. You
+can also have several styles:
+
+ - default - No animation
+ - marker - Centers the text in the label and makes it bold by default
+ - slide_long - The entire text appears from the right of the screen and slides until it disappears in the left of the screen(reappearing on the right again).
+ - slide_short - The text appears in the left of the label and slides to the right to show the overflow. When all of the text has been shown the position is reset.
+ - slide_bounce - The text appears in the left of the label and slides to the right to show the overflow. When all of the text has been shown the animation reverses, moving the text to the left.
+
+
+ //sliding text
+ Evas_Object *label_slide;
+ label_slide = elm_label_add(win);
+
+ elm_object_text_set(label_slide, "Some long text for our label_slide, that is long but"
+ "not too long.");
+
+ elm_object_style_set(label_slide,"slide_bounce");
+ elm_label_slide_duration_set(label_slide, 3);
+ elm_label_slide_mode_set(label_slide, ELM_LABEL_SLIDE_MODE_ALWAYS);
+
+ elm_label_slide_go(label_slide);
+
+ evas_object_resize(label_slide, 200, 15);
+ evas_object_move(label_slide,0,40);
+ evas_object_show(label_slide);
+
+
+If needed, you can respond to end of a slide thanks to the slide,end event.
+
+**Marker text**
+
+A marker is a text that is centered and bold by default. As the default color
+is white, we will also set a color, blue in this example.
+
+
+elm_object_style_set(label, "marker");
+evas_object_color_set(label, 0, 0, 255, 255);
+
+
+**Styling the text**
+
+You can apply basic styles to the text. If, for instance, you would like to
+have a bold text, you can do as follows.
+
+
+elm_object_text_set(label, "This text is bold.");
+
+
+**//The whole code://** {{/tutorial/basic/label.c}}
+
+==== Next Part ====
+
+//**__[[/develop/legacy/tutorial/basic/list| Simple List Tutorial]]__**//
diff --git a/public_html/data/pages/develop/legacy/tutorial/basic/list.txt b/public_html/data/pages/develop/legacy/tutorial/basic/list.txt
new file mode 100644
index 00000000..e884003d
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/basic/list.txt
@@ -0,0 +1,124 @@
+=== Simple List ===
+
+//**__Basic list__**//
+
+A list is a scrollable container whose children can be selected.
+
+
+Evas_Object *list, *icon, *button;
+list = elm_list_add(win);
+//size giving scrollbar
+evas_object_resize(list, 320, 70);
+
+//first item: text
+Elm_Object_Item *item_text = elm_list_item_append(list, "Text item", NULL, NULL, NULL, NULL);
+
+//second item: icon
+icon = elm_icon_add(list);
+elm_icon_standard_set(icon, "chat");
+Elm_Object_Item *item_icon = elm_list_item_append(list, "Icon item", icon, NULL, NULL, NULL);
+
+//third item: button
+button = elm_button_add(list);
+elm_object_text_set(button, "Button");
+Elm_Object_Item *item_button = elm_list_item_append(list, "Button item", NULL, button, NULL, NULL);
+
+elm_list_go(list);
+evas_object_show(list);
+
+
+Any Evas Object can be added as an icon, either at the beginning (third
+parameter) or the end (fourth parameter).
+
+//**__List mode__**//
+
+There are several modes for the list item dimensions:
+
+ * //**ELM_LIST_COMPRESS**// The list won't set any of its size hints to inform how a possible container should resize it. Then, if it's not created as a "resize object", it might end with zeroed dimensions. The list will respect the container's geometry and, if any of its items won't fit into its transverse axis, one won't be able to scroll it in that direction.
+ * //**ELM_LIST_SCROLL**// Default value. This is the same as ELM_LIST_COMPRESS, with the exception that if any of its items won't fit into its transverse axis, one will be able to scroll it in that direction.
+ * //**ELM_LIST_LIMIT**// Sets a minimum size hint on the list object, so that containers may respect it (and resize itself to fit the child properly). More specifically, a minimum size hint will be set for its transverse axis, so that the largest item in that direction fits well. This is naturally bound by the list object's maximum size hints, set externally.
+ * //**ELM_LIST_EXPAND**// Besides setting a minimum size on the transverse axis, just like on ELM_LIST_LIMIT, the list will set a minimum size on the longitudinal axis, trying to reserve space to all its children to be visible at a time. This is naturally bound by the list object's maximum size hints, set externally.
+ * //**ELM_LIST_LAST**// Indicates error if returned by elm_list_mode_get()
+
+
+elm_list_mode_set(list, ELM_LIST_COMPRESS);
+
+
+//**__Scroller policy__**//
+
+Several effects can be shown on a list.
+
+For instance, the scroller can set to bounce at the end on either direction.
+
+
+elm_scroller_bounce_set(list, EINA_TRUE, EINA_TRUE);
+
+
+The second argument is for the horizontal axis, the third one for the vertical
+axis.
+
+You can also control whether to display scrollbars.
+
+
+elm_scroller_policy_set(list, ELM_SCROLLER_POLICY_AUTO,ELM_SCOLLER_POLICY_ON);
+
+
+As for the bounce preference, the second argument is for the horizontal axis,
+the third one for the vertical axis:
+
+ * //**ELM_SCROLLER_POLICY_OFF**// will always hide the scrollbar
+ * //**ELM_SCROLLER_POLICY_ON**// will always show the scrollbar
+ * //**ELM_SCROLLER_POLICY_AUTO**// means that the scrollbar will be only shown when needed, and hidden otherwise.
+
+//**__Events__**//
+
+A list can respond to several events:
+
+ * //**activated**// - The user has double-clicked or pressed (enter|return|spacebar) on an item. The event_info parameter is the item that was activated.
+ * //**clicked,double**// - The user has double-clicked an item. The event_info parameter is the item that was double-clicked.
+ * //**clicked,right**// - The user has right-clicked an item. The event_info parameter is the item that was right-clicked. (since 1.13)
+ * //**selected**// - when the user selected an item
+ * //**unselected**// - when the user unselected an item
+ * //**longpressed**// - an item in the list is long-pressed
+ * //**edge,top**// - the list is scrolled until the top edge
+ * //**edge,bottom**// - the list is scrolled until the bottom edge
+ * //**edge,left**// - the list is scrolled until the left edge
+ * //**edge,right**// - the list is scrolled until the right edge
+ * //**highlighted**// - an item in the list is highlighted. This is called when the user presses an item or keyboard selection is done so the item is physically highlighted. The event_info parameter is the item that was highlighted.
+ * //**unhighlighted**// - an item in the list is unhighlighted. This is called when the user releases an item or keyboard selection is moved so the item is physically unhighlighted. The event_info parameter is the item that was unhighlighted.
+ * //**language,changed**// - the program's language changed
+ * //**focused**// - When the list has received focus. (since 1.8)
+ * //**unfocused**// - When the list has lost focus. (since 1.8)
+ * //**item,focused**// - When the list item has received focus. (since 1.10)
+ * //**item,unfocused**// - When the list item has lost focus. (since 1.10)
+
+//**__Selected event__**//
+
+The selected event is received when the user selected an item, below the
+callback add an new item only if it is the button item which is selected.
+
+
+ static void
+_prepend_itembutton_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Elm_Object_Item *list_it;
+ Evas_Object *li = obj;
+
+ Elm_Object_Item *selected=elm_list_selected_item_get(li);
+ if(selected == (Elm_Object_Item*)data)
+ {
+ static int counter=0;
+ char label[32];
+ snprintf(label, sizeof(label), "Item %i", counter++);
+
+ list_it = elm_list_item_prepend(li, label, NULL, NULL, NULL, NULL);
+ elm_list_go(li);
+ if (!list_it)
+ printf("Error adding item\n");
+ }
+}
+
+evas_object_smart_callback_add(list, "selected", _prepend_itembutton_cb, item_button);
+
+
+**//The whole code://** {{code_c/tutorial/basic/list.c}}
diff --git a/public_html/data/pages/develop/legacy/tutorial/basic_tutorial.txt b/public_html/data/pages/develop/legacy/tutorial/basic_tutorial.txt
new file mode 100644
index 00000000..cad5a2e8
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/basic_tutorial.txt
@@ -0,0 +1,71 @@
+~~Title: Basic Tutorial~~
+==== Basic Tutorial ====
+
+These basic tutorials describe the basics of widget interactions.
+
+== Prerequisite ==
+
+ * Do a helloworld program: [[develop/efl/start|Get started with EFL]].
+ * Work with this example.
+
+
+#include
+
+EAPI_MAIN int
+elm_main(int argc, char **argv)
+{
+ Evas_Object *win;
+
+ elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
+
+ win = elm_win_util_standard_add("Main", "Hello, World!");
+ elm_win_autodel_set(win, EINA_TRUE);
+ //win 400x400
+ evas_object_resize(win, 400, 400);
+
+ /*basic tutorial code*/
+
+ evas_object_show(win);
+
+ elm_run();
+ return 0;
+}
+ELM_MAIN()
+
+
+==== Basic Button ====
+**__[[/develop/legacy/tutorial/basic/button|Basic Button Tutorial]]:__**
+//{{code_c/tutorial/basic/button.c}}//[[/develop/legacy/tutorial/basic/button|{{ :basic_button.png?direct|button}}]]
+\\
+\\
+\\
+\\
+\\
+\\
+\\
+\\
+\\
+\\
+\\
+\\
+\\
+\\
+\\
+\\
+------
+==== Basic Label ====
+**__[[/develop/legacy/tutorial/basic/label|Simple Text Tutorial]]:__**//
+ {{code_c/tutorial/basic/label.c}}//[[/develop/legacy/tutorial/basic/label|{{ :basic_label.png?direct|label}}]]
+\\
+\\
+\\
+\\
+\\
+\\
+\\
+\\
+------
+==== Basic List ====
+**__[[/develop/legacy/tutorial/basic/list|Simple List Tutorial]]:__**//
+ {{code_c/tutorial/basic/list.c}}//[[/develop/legacy/tutorial/basic/list|{{ :basic_list.png?direct|list}}]]
+
diff --git a/public_html/data/pages/develop/legacy/tutorial/csharp_tutorial.txt b/public_html/data/pages/develop/legacy/tutorial/csharp_tutorial.txt
new file mode 100644
index 00000000..90007326
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/csharp_tutorial.txt
@@ -0,0 +1 @@
+This page is redirected to [[:develop:setup:csharp:start.md]].
\ No newline at end of file
diff --git a/public_html/data/pages/develop/legacy/tutorial/effects/ecore_animator/3d_rotation.txt b/public_html/data/pages/develop/legacy/tutorial/effects/ecore_animator/3d_rotation.txt
new file mode 100644
index 00000000..be7c4a32
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/effects/ecore_animator/3d_rotation.txt
@@ -0,0 +1,75 @@
+~~Title: 3D Rotation Effect - Ecore Animator~~
+//**__previous page__: **//[[/develop/legacy/tutorial/effects/ecore_animator/zoom|Creating a zoom effect]]
+==== Creating a 3D Rotation Effect ====
+
+The last animation is a 3D rotation. For this one, we are going to rotate the
+Evas object on all three axes (X, Y, Z).
+
+{{ :ecore_animator_3D.gif }}
+
+First, create the button and its callback function:
+
+
+// Button 3 : 3D Rotation Effect
+bt3 = elm_button_add(win);
+elm_object_text_set(bt3, "3D");
+evas_object_size_hint_weight_set(bt3, EVAS_HINT_FILL, EVAS_HINT_FILL);
+evas_object_move(bt3, 170, 0);
+evas_object_resize(bt3, 90, 70);
+evas_object_smart_callback_add(bt3, "clicked", _btn_3d_cb, target);
+evas_object_show(bt3);
+
+
+static void _btn_3d_cb(void *data, Evas_Object *btn, void *ev)
+{
+ Evas_Object *target = data;
+ ecore_animator_timeline_add(1, _do_3d, target);
+}
+
+
+Next, we create the ''_do_3d()'' animation callback function, which is very
+similar to the rotate and zoom callback functions. To create the animation, we
+use the ''evas_map_util_3d_rotate()'' function, which allows you to rotate any
+Evas object on all three axes.
+
+
+static Eina_Bool
+_do_3d(void *data, double pos)
+{
+ Evas_Object *obj = data;
+ Evas_Map *m;
+ int x, y, w, h;
+
+ evas_object_geometry_get(obj, &x, &y, &w, &h);
+ m = evas_map_new(4);
+ evas_map_util_points_populate_from_object(m, obj);
+ evas_map_util_3d_rotate(m, pos * 360, pos * 360, pos * 360, x + (w / 3), y + 60, 0);
+ evas_object_map_set(obj, m);
+ evas_object_map_enable_set(obj, EINA_TRUE);
+ evas_map_free(m);
+
+ return EINA_TRUE;
+}
+
+
+The ''evas_map_util_3d_rotate()'' function takes the following arguments:
+
+ * The map to change
+ * The angle (0-360°) to rotate around the X axis
+ * The angle (0-360°) to rotate around the Y axis
+ * The angle (0-360°) to rotate around the Z axis
+ * The X coordinate of the rotation center
+ * The Y coordinate of the rotation center
+ * The Z coordinate of the rotation center
+
+Here, we rotate 360 degrees around each axis. The horizontal (X) rotation
+center is the X position of the target plus its width divided by 2. The
+vertical (Y) rotation center is the Y position of the target plus 60. The Z
+rotation center is 0.
+
+As with the rotation and zoom animations, we multiply the angles by the
+timeline position to gently rotate the target on each call to the ''_do_3d()''
+callback function along the timeline.
+
+\\
+//**__next page__: **//[[/develop/legacy/tutorial/effects/ecore_animator/drop_bounce|Creating drop and bounce effects]]
diff --git a/public_html/data/pages/develop/legacy/tutorial/effects/ecore_animator/drop_bounce.txt b/public_html/data/pages/develop/legacy/tutorial/effects/ecore_animator/drop_bounce.txt
new file mode 100644
index 00000000..93e0ba06
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/effects/ecore_animator/drop_bounce.txt
@@ -0,0 +1,62 @@
+~~Title: Drop and Bounce Effects - Ecore Animator~~
+//**__previous page__: **//[[/develop/legacy/tutorial/effects/ecore_animator/zoom|Creating a zoom effect]]
+==== Creating Drop and Bounce Effects ====
+
+To finish, we add drop and bounce effects to our buttons at application start.
+
+{{ :ecore_animator_start.gif }}
+
+To do this, we create one timeline per button after creating the buttons in
+''elm_main()'':
+
+
+//drop and bounce effects
+ecore_animator_timeline_add(2, _do_drop, bt1);
+ecore_animator_timeline_add(2.3, _do_drop, bt2);
+ecore_animator_timeline_add(2.5, _do_drop, bt3);
+
+
+We call the same ''_do_drop()'' animation callback function for each timeline.
+In this callback, instead of using an Evas Map, we simply change the position
+of the target using the ''evas_object_move()'' function:
+
+
+static Eina_Bool
+_do_drop(void *data, double pos)
+{
+ Evas_Object *obj = data;
+ int x, y, w, h;
+ double frame = pos;
+ frame = ecore_animator_pos_map(pos, ECORE_POS_MAP_BOUNCE, 2, 4);
+
+ evas_object_geometry_get(obj, &x, &y, &w, &h);
+ evas_object_move(obj, x, 600 * frame);
+
+ return EINA_TRUE;
+}
+
+
+To get the bounce effect, we use the ''ecore_animator_pos_map()'' function,
+which maps an input position from 0.0 to 1.0 along the timeline to a position
+on a different curve. The curve can be of different types, such as ''LINEAR'',
+''SINUSOIDAL'', and ''BOUNCE''. This function takes the following arguments:
+
+ * The input position to map
+ * The mapping to use (''LINEAR'', ''SINUSOIDAL'', and so on)
+ * v1, which is the first parameter used by the mapping
+ * v2, which is the second parameter used by the mapping
+
+The ''ECORE_POS_MAP_BOUNCE'' map we use starts at 0.0, then drops like a ball
+bouncing to the ground at 1.0, bouncing v2 times with a decay factor of v1.
+Here, we bounce 4 times with a decay factor of 2:
+
+
+frame = ecore_animator_pos_map(pos, ECORE_POS_MAP_BOUNCE, 2, 4);
+
+This frame is used in the move function to create the animation. The value
+increases on each ''_do_drop()'' call along the timeline, which produces a
+nice drop of the buttons from their initial position to 600 pixels on the
+vertical axis.
+
+\\
+//**__The whole code__: **//{{code_c/tutorial/effects/ecore_animator.c}}
diff --git a/public_html/data/pages/develop/legacy/tutorial/effects/ecore_animator/rotation.txt b/public_html/data/pages/develop/legacy/tutorial/effects/ecore_animator/rotation.txt
new file mode 100644
index 00000000..5f4799c4
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/effects/ecore_animator/rotation.txt
@@ -0,0 +1,125 @@
+~~Title: Rotation Effect - Ecore Animator~~
+//**__previous page__: **//[[/develop/legacy/tutorial/effects/ecore_animator/setting_up|Setting up the application]]
+==== Creating a Rotation Effect ====
+
+{{ :ecore_animator_rotate.gif }}
+
+After the animation target is created, the first button and associated
+rotation can be created:
+
+
+// Button 1 : Rotation effect
+bt1 = elm_button_add(win);
+elm_object_text_set(bt1, "Rotate");
+evas_object_size_hint_weight_set(bt1, EVAS_HINT_FILL, EVAS_HINT_FILL);
+evas_object_move(bt1, 25, 0);
+evas_object_resize(bt1, 90, 70);
+evas_object_smart_callback_add(bt1, "clicked", _btn_rotate_cb, target);
+evas_object_show(bt1);
+
+
+The button is used for triggering the rotation effect. The button is placed
+and resized, and associated with the ''_btn_rotate_cb()'' callback function.
+This callback function calls the animation on the animation target.
+
+
+static void
+_btn_rotate_cb(void *data, Evas_Object *btn, void *ev)
+{
+ Evas_Object *target = data;
+ ecore_animator_timeline_add(1, _do_rotate, target);
+}
+
+
+In this callback function, an Ecore animator timeline is created using the
+''ecore_animator_timeline_add()'' function. This function adds an animator that
+runs for a limited time the ''_do_rotate()'' animation callback function
+for 1 second on the ''target'' Evas object.
+
+Next, we write the animation callback function that actually runs the
+animation. This callback is an ''Ecore_Timeline_Cb'' function, meaning it returns
+an ''Eina_Bool'' value and takes as arguments some ''data'' and the current position
+along the animation timeline (''pos'').
+
+To create the rotation animation, an Evas Map is used. The map handles the
+necessary map points and allows you to manipulate the target Evas object on
+the X, Y, and Z axes.
+
+
+static Eina_Bool
+_do_rotate(void *data, double pos)
+{
+ // Get the animation target
+ Evas_Object *obj = data;
+ // Declaration of an `Evas_Map`
+ Evas_Map *m;
+ // Variables to store the target size and position
+ int x, y, w, h;
+
+ // Getting the size and position of the target
+ evas_object_geometry_get(obj, &x, &y, &w, &h);
+ // Creation of an `Evas_Map` of 4 points
+ m = evas_map_new(4);
+ // Populate source and destination map points to match exactly object.
+ evas_map_util_points_populate_from_object(m, obj);
+ // Create a rotation of 360° with x+(w/2) "x" center and y +(h/2) "y" center.
+ evas_map_util_rotate(m, 360.0 * pos, x + (w / 2), y + (h / 2));
+ // Setting the object to "animate" in the `Evas_Map`
+ evas_object_map_set(obj, m);
+ // Starting the Animation
+ evas_object_map_enable_set(obj, EINA_TRUE);
+ // Free used memory
+ evas_map_free(m);
+
+ return EINA_TRUE;
+}
+
+
+In the animation callback function, we first declare the ''Evas Map''. To
+implement the rotation, an X and Y center needs to be set, so we create 4
+integer variables to store the size and position of the target. This
+information is provided by the ''evas_object_geometry_get()'' function, which
+returns the X and Y coordinates and the weight and height of the target Evas
+object. Now we have all the required data to build the animation.
+
+An Evas Map is consisted of four points, and these points are populated with
+the animation target:
+
+
+// Creation of an `Evas_Map` of 4 points
+m = evas_map_new(4);
+// Populate source and destination map points to match exactly object.
+evas_map_util_points_populate_from_object(m, obj);
+
+
+Now the ''evas_map_util_rotate()'' function defines the rotation:
+
+
+// Create a rotation of 360° with x+(w/2) "x" center and y +(h/2) "y" center.
+evas_map_util_rotate(m, 360.0 * pos, x + (w / 2), y + (h / 2));
+
+
+The animation callback function will be called at several points along the
+timeline, which is why the rotation angle (360°) is multiplied by the timeline
+position (pos) to get the actual animation angle. If we do not do this, we
+will never see the animation take place. Then the target objet is joined to
+the map and we start the animation.
+
+
+// Setting the object to "animate" in the `Evas_Map`
+evas_object_map_set(obj, m);
+// Starting the Animation
+evas_object_map_enable_set(obj, EINA_TRUE);
+
+
+Each call to the animation callback function will rotate the object (360 *
+timeline position) degrees.
+
+Finally, the memory allocated to the Evas Map is freed up:
+
+// Free used memory
+evas_map_free(m);
+
+
+\\
+//**__next page__: **//[[/develop/legacy/tutorial/effects/ecore_animator/zoom|Creating a zoom effect]]
diff --git a/public_html/data/pages/develop/legacy/tutorial/effects/ecore_animator/setting_up.txt b/public_html/data/pages/develop/legacy/tutorial/effects/ecore_animator/setting_up.txt
new file mode 100644
index 00000000..885c6759
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/effects/ecore_animator/setting_up.txt
@@ -0,0 +1,81 @@
+~~Title: Setting Up - Ecore Animator~~
+==== Setting up the application ====
+
+In this part of the tutorial, we create a simple application that manipulates
+and animates an Evas object. We use a "Basic UI Application" as the basis for
+the application.
+
+First, we set up the widgets we are going to use in the application:
+
+
+EAPI_MAIN int
+elm_main(int argc, char **argv)
+{
+ //Main window
+ Evas_Object *win;
+ //Application Title
+ Evas_Object *label;
+
+ //buttons
+ Evas_Object *bt1, *bt2, *bt3;
+ //Animation target
+ Evas_Object *target;
+
+ elm_run();
+ elm_shutdown();
+ return EXIT_SUCCESS;
+}
+ELM_MAIN()
+
+
+Then the actual widgets are created, starting with the main window and
+application title:
+
+
+//Main window
+win = elm_win_util_standard_add("Ecore Animator", "Ecore Animator Tutorial");
+elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
+elm_win_autodel_set(win, EINA_TRUE);
+
+if (elm_win_wm_rotation_supported_get(win))
+ {
+ int rots[4] = { 0, 90, 180, 270 };
+ elm_win_wm_rotation_available_rotations_set(win, (const int *)(&rots), 4);
+ }
+
+// Application title
+label = elm_label_add(win);
+elm_object_text_set(label, "Ecore Animator Tutorial");
+evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+elm_win_resize_object_add(win, label);
+evas_object_show(label);
+
+
+Next, we create the animation target, which is an Evas object of type
+Elm_Image.
+
+
+// Animation target
+// Setting the image path
+char buf[PATH_MAX];
+snprintf(buf, sizeof(buf), "icon.png");
+// Adding the image
+target = elm_image_add(win);
+// Setting the image path
+if (!elm_image_file_set(target, buf, NULL))
+ printf("error: could not load image \"%s\"\n", buf);
+evas_object_size_hint_weight_set(target, EVAS_HINT_FILL, EVAS_HINT_FILL);
+//Moving the image
+evas_object_move(target, 130, 100);
+//Resizing the image
+evas_object_resize(target, 200, 100);
+//Showing the image
+evas_object_show(target);
+
+
+The image path is set by calling the ''elm_image_file_set()'' function. This
+function takes as arguments the ''target'' Evas object and the path of the
+image file, built with the ''snprintf()'' function and stored in a buffer.
+
+\\
+//**__next page__: **//[[/develop/legacy/tutorial/effects/ecore_animator/rotation|Creating a rotation effect]]
diff --git a/public_html/data/pages/develop/legacy/tutorial/effects/ecore_animator/zoom.txt b/public_html/data/pages/develop/legacy/tutorial/effects/ecore_animator/zoom.txt
new file mode 100644
index 00000000..041a8e9d
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/effects/ecore_animator/zoom.txt
@@ -0,0 +1,72 @@
+~~Title: Zoom Effect - Ecore Animator~~
+//**__previous page__: **//[[/develop/legacy/tutorial/effects/ecore_animator/rotation|Creating a rotation effect]]
+==== Creating a Zoom Effect ====
+
+The next animation is a zoom, for which an Evas Map is also used.
+
+{{ :ecore_animator_zoom.gif }}
+
+First, the button is created in ''elm_main()'':
+
+
+// Button 2 : Zoom Effect
+bt2 = elm_button_add(win);
+elm_object_text_set(bt2, "Zoom");
+evas_object_size_hint_weight_set(bt2, EVAS_HINT_FILL, EVAS_HINT_FILL);
+evas_object_move(bt2, 315, 0);
+evas_object_resize(bt2, 90, 70);
+evas_object_smart_callback_add(bt2, "clicked", _btn_zoom_cb, target);
+evas_object_show(bt2);
+
+
+Then, the button callback function is created with a new timeline:
+
+
+static void _btn_zoom_cb(void *data, Evas_Object *btn, void *ev)
+{
+ Evas_Object *target = data;
+ ecore_animator_timeline_add(1, _do_zoom, target);
+}
+
+
+Next, we write the ''_do_zoom()'' animation callback function, which is almost
+identical to the ''_do_rotate()'' callback function, except that we use the
+''evas_map_util_zoom()'' function to create the animation:
+
+
+static Eina_Bool
+_do_zoom(void *data, double pos)
+{
+ Evas_Object *obj = data;
+ Evas_Map *m;
+ int x, y, w, h;
+
+ evas_object_geometry_get(obj, &x, &y, &w, &h);
+ m = evas_map_new(4);
+ evas_map_util_points_populate_from_object(m, obj);
+ evas_map_util_zoom(m, 2 * pos, 2 * pos, x , y);
+ evas_object_map_set(obj, m);
+ evas_object_map_enable_set(obj, EINA_TRUE);
+ evas_map_free(m);
+
+ return EINA_TRUE;
+}
+
+The ''evas_map_util_zoom()'' function takes the following arguments:
+
+ * The map to change
+ * The horizontal zoom factor
+ * The vertical zoom factor
+ * The horizontal position (X coordinate) of the zooming center
+ * The vertical position (Y coordinate) of the zooming center
+
+Here, a horizontal and vertical zoom factor of 2 is used, and the X and Y
+coordinates of the target as the horizontal and vertical center coordinates.
+
+The ''_do_zoom()'' callback function is called at several points along the
+animation timeline, which is why we multiply the horizontal and vertical zoom
+factor values by the timeline position. Each call will zoom more than the
+previous one, thereby creating the animation effect.
+
+\\
+//**__next page__: **//[[/develop/legacy/tutorial/effects/ecore_animator/3d_rotation|Creating a 3D rotation effect]]
diff --git a/public_html/data/pages/develop/legacy/tutorial/effects/edje_animation/on_click.txt b/public_html/data/pages/develop/legacy/tutorial/effects/edje_animation/on_click.txt
new file mode 100644
index 00000000..ac60b4f3
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/effects/edje_animation/on_click.txt
@@ -0,0 +1,312 @@
+~~Title: On Click - Edje Animation~~
+//**__previous page__: **//[[/develop/legacy/tutorial/effects/edje_animation/start_up|Animating on Application Start-up]]
+==== Animating Object on Click ====
+
+All the previous animations are automatic and do not have any relation with
+the user's actions.
+
+=== Title go back ===
+
+Next animate a part by clicking on another one. Make the
+title restore its default aspect when clicking on the small image.
+
+{{ :edje_animation_reset.gif }}
+
+The parts and the states are already defined. The animation goes back to the
+default state, there is no need to add any parts or states: only add a program
+which makes the transition when clicking on logo part.
+
+
+// Make the title go back to normal
+program
+{
+ name: "animation,normaltitle";
+ source: "image";
+ signal: "mouse,clicked,*";
+ action: STATE_SET "default" 1.0;
+ target: "txt_title";
+ transition: LINEAR 0.5;
+}
+
+
+This program starts when the application receives the signal
+''mouse,clicked,*'' (any button of the mouse is clicked) from the part called
+image, (''source''). It performs the ''STATE_SET'' action and sets the default
+state on the target ''txt_file'' part with a ''LINEAR'' transition.
+
+When clicking any mouse button on the small logo, the title goes back to its
+original state.
+
+=== Rotating Parts ===
+
+Next add two more buttons to the application and create programs to animate a
+target.
+
+It is possible to create a button with Edje from scratch, but to save time,
+the ''SWALLOW'' part is used in this example to store Elementary widgets.
+
+First create the ''SWALLOW'' parts, and then the ''Elementary'' widgets in the
+''.c'' file.
+
+
+// Container for the rotate button
+part
+{
+ type: SWALLOW;
+ name: "btn/rotate";
+ description
+ {
+ state: "default" 0.0;
+ rel1.relative: 0.30 0.9;
+ rel2.relative: 0.50 0.99;
+ }
+}
+
+
+This part is called ''btn/rotate'', it only has a ''SWALLOW'' type and a
+default state with its position being on the bottom left of the screen.
+
+
+// Container for the grow button
+part
+{
+ type: SWALLOW;
+ name: "btn/grow";
+ description
+ {
+ state: "default" 0.0;
+ rel1.relative: 1.02 0;
+ rel1.to: "btn/rotate";
+ rel2.relative: 2.02 1;
+ rel2.to: "btn/rotate";
+ }
+}
+
+
+This second ''SWALLOW'' part is very similar to the first one. It is placed
+relatively to ''btn/rotate'', in order to remain next to it.
+
+Next create the actual widgets. This is done in the ''.c'' file and is very
+similar to what is done for the buttons in the first chapter.
+
+This code is added in ''elm_main()''.
+
+
+// Creation button in the app window
+button = elm_button_add(win);
+elm_object_text_set(button, "Rotate");
+// Add the button to the edje layout container called "btn/rotate"
+elm_object_part_content_set(layout, "btn/rotate", button);
+evas_object_show(button);
+
+// Creation a up button in the app window
+btn_up = elm_button_add(win);
+// Add the button to the edje layout container called "btn/grow"
+elm_object_text_set(btn_up, "Grow");
+elm_object_part_content_set(layout, "btn/grow", btn_up);
+evas_object_show(btn_up);
+
+
+In the default Basic EDC UI Application, the Edje layout is loaded by default.
+Create two Elementary buttons and add them to the ''SWALLOW'' containers,
+without having to setup sizes or positions as this is done in the ''SWALLOW''
+container.
+
+Note that the part name is very important because it is used to be merged the
+Elementary widget and the ''SWALLOW'' part.
+
+When the buttons placed and set, create the animation target. It is done in
+the EDC file.
+
+Add the animation target part.
+
+The part initialization and the default ''state'':
+
+
+// The animation target
+part
+{
+ name: "atarget";
+ type: IMAGE;
+
+ // Default state
+ description
+ {
+ state: "default" 0.0;
+ image { normal: "image2.png"; }
+ color: 255 0 0 255; /* red */
+ rel1 { relative: 0.3 0.3; }
+ rel2 { relative: 0.7 0.7; }
+ }
+}
+
+
+This ''part'' is an image displaying a big logo, centered on the top of the
+screen.
+
+Create a state to change the color and add the ''map'' statement.
+
+
+// The rotate state
+description
+{
+ state: "rotate" 0.0;
+ inherit: "default" 0.0;
+
+ map
+ {
+ //Enable Map on the part
+ on: 1;
+ //Enable smooth rendering
+ smooth: 1;
+ //Enable perspective
+ perspective_on: 1;
+
+ //Apply rotations on the part
+ rotation.x: 0;
+ rotation.y: 0;
+ rotation.z: 0;
+ }
+ color: 0 255 0 255; /* green */
+}
+
+
+This part changes the color to green and defines the ''map''. This statement
+makes rotations possible on an Edje ''part''. Rotations are done around the x,
+y or z axes. In this example, the map is enabled and a 0° rotation is applied
+around each axis.
+
+Add a state with a rotation around the z axis of 360°.
+
+
+description
+{
+ state: "rotate" 1.0;
+ inherit: "rotate" 0.0;
+ map.rotation.z: 360;
+}
+
+
+This ''state'' inherits from the default state parameters and add a rotation
+around the z axis.
+
+Finally add a state to the other button animation grow. Change the size of the
+animation target and add an offset.
+
+
+
+// The grow state
+description {
+ state: "grow" 0.0;
+ inherit: "default" 0.0;
+ color: 0 0 255 255; /* blue */
+ rel1
+ {
+ relative: 0.2 0.2;
+ offset: 0.3 0.3;
+ }
+ rel2
+ {
+ relative: 0.7 0.4;
+ offset: 0.3 0.3;
+ }
+}
+
+
+The last step is to create the programs to make all these states animate.
+
+{{ :edje_animation_rotate.gif }}
+
+To make the rotation animation smoother, create and chain several ''programs''
+with different durations.
+
+First create the main one: it goes from the default state to the rotate 0.0
+state in 0.2 seconds.
+
+Note that the states are all named the same way (rotate) but not with the same
+version. This version allows you to have more than one state with the same
+name, in fact the actual name of the state is the name plus the version.
+
+
+// Change the color of target to green
+program
+{
+ name: "rotate,target";
+ source: "btn/rotate";
+ signal: "mouse,clicked,*";
+ action: STATE_SET "rotate" 0.0;
+ target: "atarget";
+ transition: SIN 0.2;
+ after: "rotate,target,2";
+}
+
+
+The program starts when the ''btn/rotate'' part is clicked with any mouse
+button. When the animation ends, it calls the next one called
+''rotate,target,2''.
+
+
+// Rotate 360°
+program
+{
+ name: "rotate,target,2";
+ action: STATE_SET "rotate" 1.0;
+ target: "atarget";
+ transition: SIN 0.7;
+ after: "rotate,end";
+}
+
+
+This program sets the part state to ''rotate 1.0'' in 0.7 seconds, and when done
+calls the next one ''rotate,end''.
+
+
+// Go back to the normal.
+program
+{
+ name: "rotate,end";
+ action: STATE_SET "rotate" 0.0;
+ target: "atarget";
+ transition: LINEAR 0.2;
+}
+
+
+''rotate,end'' is the last program of the rotation effect: it sets the state
+to ''rotate 0.0'' very fast.
+
+The last program of this example is the grow effect, it switches from one
+state to another.
+
+{{ :edje_animation_grow.gif }}
+
+
+// Grow the target and go back to normal state
+program
+{
+ name: "grow,target";
+ source: "btn/grow";
+ signal: "mouse,clicked,*";
+ action: STATE_SET "grow" 1.0;
+ after: "go,default";
+ target: "atarget";
+ transition: SINUSOIDAL 1.0;
+}
+
+
+It starts when the ''btn/grow'' part is clicked, it goes from the current
+state to ''grow 1.0'' in one second. It then calls the go,default program. In
+this program, both size and color change during the transition.
+
+The ''go,default'' program sets the status back default for the animation
+target.
+
+
+// Go back to normal (default) state
+program
+{
+ name: "go,default";
+ action: STATE_SET "default" 1.0;
+ target: "atarget";
+ transition: SIN 1.0;
+}
+
diff --git a/public_html/data/pages/develop/legacy/tutorial/effects/edje_animation/start_up.txt b/public_html/data/pages/develop/legacy/tutorial/effects/edje_animation/start_up.txt
new file mode 100644
index 00000000..2cfa00f4
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/effects/edje_animation/start_up.txt
@@ -0,0 +1,187 @@
+~~Title: Start Up - Edje Animation~~
+==== Animating on Application Start-up ====
+
+The goal of this tutorial is to create an animation target and buttons to
+start animations, all of this is in an EDC (Edje Data Collection) file.
+
+{{ :edje_animation_start.gif }}
+
+First create an application using Basic EDC UI Application:
+
+
+#include
+
+EAPI_MAIN int
+elm_main(int argc, char **argv)
+{
+ Evas_Object *win, *layout;
+ win = elm_win_util_standard_add("Edje Animation", "Edje Animation Tutorial");
+ elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
+ elm_win_autodel_set(win, EINA_TRUE);
+
+ layout = elm_layout_add(win);
+
+ elm_layout_file_set(layout, "edje_animation.edj", "my_layout");
+
+ evas_object_resize(layout, 300, 300);
+ evas_object_show(layout);
+ evas_object_resize(win, 400, 400);
+ evas_object_show(win);
+ elm_run();
+ elm_shutdown();
+ return 0;
+}
+ELM_MAIN()
+
+
+Animations can be run at application startup. By default the Basic EDC UI
+Application model produces an empty window with a title.
+
+In this example an image is added to the window and the behavior of the window title is
+changed.
+
+Add the image to the Edje images collection.
+
+images
+{
+ image: "image1.png" COMP;
+ image: "image2.png" COMP;
+}
+
+
+Then add an Edje part using the small image: this part has two states. This is
+the first important notion for animations. The ''STATE'' describes the
+appearance of a part: size, position, color, etc.
+
+In this example, the part has two states, default and down-state:
+
+
+part
+{
+ name: "image1";
+ type: IMAGE;
+ description
+ {
+ state: "default" 0.0;
+ max: 63 63;
+ min: 63 63;
+ image { normal: "image1.png"; }
+ rel1.relative: 0.2 0.0;
+ rel2.relative: 0.0 0.0;
+ }
+
+ description
+ {
+ state: "down-state" 1.0;
+ inherit: "default" 0.0;
+ rel1.relative: 0.2 0.92;
+ rel2.relative: 0.05 1.0;
+ }
+}
+
+
+The logo part has the IMAGE type. The default state contains in the first
+description of the part sets:
+
+ * the maximum and minimum size using the min and max statements
+ * the image to use in this part
+ * the default position.
+
+The second state, ''"down-state"'', inherits all of the default's attributes, and
+only changes the position to put the image at the bottom of the application
+window.
+
+These two states are the start and end states of the animation. To actually
+create the animation, add a program to the Edge ''programs'' collection.
+
+
+// Icon drop animation
+program
+{
+ name: "animation,state1";
+ source: "";
+ signal: "load";
+ action: STATE_SET "down-state" 1.0;
+ target: "logo";
+ transition: BOUNCE 2.5 0.0 5.0;
+}
+
+
+This program is named ''animation,state1'' and is started when the application
+receives the ''load'' signal immediately on startup. It runs the ''STATE_SET''
+action so it changes the object state from ''"default"'' to ''"down-state"''. The target
+of the program is the image ''part''.
+
+In order to switch from one state to another, it uses a ''transition'' of the
+''BOUNCE'' type with three parameters, the first one is saying how much time
+the transition will last, the second one is the factor of curviness and the
+last one is saying how many times and object will bounce.
+
+This produces an falling and bouncing effect.
+
+Also add an animation for the window title to make it move from the right to
+the left with a bounce effect while growing the font size.
+
+Create a new state on the part called "txt_title" inside which both the font
+size and position are changed.
+
+
+part
+{
+ name: "txt_title";
+ type: TEXT;
+ mouse_events: 0;
+
+ // The default State
+ description
+ {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.5 0.0; }
+ rel2 { relative: 1.0 0.5; }
+ text
+ {
+ font: "Sans";
+ size: 22;
+ text: "edje animation";
+ }
+ color: 0 0 0 255;
+ }
+
+ // The "Bigger" state
+ description
+ {
+ state: "Bigger" 0.0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 0.2; }
+ text
+ {
+ size: 26;
+ text: "animation terminated";
+ }
+ color: 0 0 0 255;
+ }
+}
+
+
+Create a program to animate this part on startup, just like the small image.
+
+
+// Make the title bigger
+program
+{
+ name: "animation,bigtitle";
+ source: "";
+ signal: "load";
+ action: STATE_SET "Bigger" 1.0;
+ target: "txt_title";
+ transition: LINEAR 5.0;
+}
+
+This program goes from the default state to the bigger state in five seconds
+with a ''LINEAR'' effect, automatically running on the application startup.
+
+\\
+//**__next page__: **//[[/develop/legacy/tutorial/effects/edje_animation/on_click|Animating Object on Click]]
+
diff --git a/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/blend.txt b/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/blend.txt
new file mode 100644
index 00000000..296037a6
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/blend.txt
@@ -0,0 +1,53 @@
+~~Title: Elementary Animations - Creating a Blend Transition~~
+//**__previous page__: **//[[/develop/legacy/tutorial/effects/elementary_animations/flip|Creating a Flip Effect]]
+=== Elementary Animations ===
+==== Creating a Blend Transition ====
+
+The blend effect also works the same way as the flip, but without the axes or
+direction information.
+
+{{ :elementary_animations_blend.gif }}
+
+Use the back button here as well. To create the blend
+effect button:
+
+
+// The blend button
+Evas_Object *btn_blend = elm_button_add(win);
+elm_object_text_set(btn_blend, "Blend");
+evas_object_size_hint_weight_set(btn_blend, EVAS_HINT_FILL, EVAS_HINT_FILL);
+evas_object_show(btn_blend);
+evas_object_smart_callback_add(btn_blend, "clicked", _btn_blend_cb, &anim);
+elm_box_pack_end(center_vbox, btn_blend);
+
+
+The blend transition callback is:
+
+static void _btn_blend_cb(void *data, Evas_Object *btn, void *ev)
+{
+ Animations *anim = (Animations *)data;
+
+ // Setting the button text
+ elm_object_text_set(anim->button, "Blend");
+ _blend_effect(anim->button, anim->buttonbck);
+}
+
+
+Create and start the blend animation. This animation is created by adding it
+to and ''Elm_Transit'' with ''elm_transit_effect_blend_add''. Add two objects,
+as for the flip.
+
+static void _blend_effect(Evas_Object *obj, Evas_Object *obj2)
+{
+ Elm_Transit *trans;
+
+ trans = elm_transit_add();
+ elm_transit_object_add(trans, obj);
+ elm_transit_object_add(trans, obj2);
+ elm_transit_effect_blend_add(trans);
+ elm_transit_duration_set(trans, 3.0);
+ elm_transit_go(trans);
+}
+
+\\
+//**__next page__: **// [[/develop/legacy/tutorial/effects/elementary_animations/fade|Creating a Fade Effect]]
diff --git a/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/fade.txt b/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/fade.txt
new file mode 100644
index 00000000..723f94c0
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/fade.txt
@@ -0,0 +1,53 @@
+~~Title: Elementary Animations - Creating a Fade Effect~~
+//**__previous page__: **//[[/develop/legacy/tutorial/effects/elementary_animations/blend|Creating a Blend Transition]]
+=== Elementary Animations ===
+==== Creating a Fade Effect ====
+
+The fade effect works exactly the same way as the blend effect.
+
+{{ :elementary_animations_fade.gif }}
+
+First create the button:
+
+
+ // The fade button
+ Evas_Object *btn_fade = elm_button_add(win);
+ elm_object_text_set(btn_fade, "Fade");
+ evas_object_size_hint_weight_set(btn_fade, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(btn_fade);
+ evas_object_smart_callback_add(btn_fade, "clicked", _btn_fade_cb, &anim);
+ elm_box_pack_end(right_vbox, btn_fade);
+
+
+Then add the button's callback:
+
+
+static void _btn_fade_cb(void *data, Evas_Object *btn, void *ev)
+{
+ Animations *anim = (Animations *)data;
+
+
+ // Setting the button text
+ elm_object_text_set(anim->button, "Fade");
+ _fade_effect(anim->button, anim->buttonbck);
+}
+
+
+The animation function calls ''elm_transit_effect_fade_add'' instead of
+''elm_transit_effect_blend_add''.
+
+
+static void _fade_effect(Evas_Object *obj, Evas_Object *obj2)
+{
+ Elm_Transit *trans;
+
+ trans = elm_transit_add();
+ elm_transit_object_add(trans, obj);
+ elm_transit_object_add(trans, obj2);
+ elm_transit_effect_fade_add(trans);
+ elm_transit_duration_set(trans, 3.0);
+ elm_transit_go(trans);
+}
+
+\\
+//**__next page__: **//[[/develop/legacy/tutorial/effects/elementary_animations/flipy|Creating a Flip on y Axis]]
diff --git a/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/flip.txt b/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/flip.txt
new file mode 100644
index 00000000..f19804f1
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/flip.txt
@@ -0,0 +1,61 @@
+~~Title: Elementary Animations - Creating a Zoom Effect~~
+//**__previous page__: **//[[/develop/legacy/tutorial/effects/elementary_animations/zoom|Creating a Zoom Effect]]
+=== Elementary Animations ===
+==== Creating a Flip Effect ====
+
+This effect is applied to a pair of objects, in the order they are added, to
+the ''Elm_Transit'' transition. In this example, add the animation target
+button and the button called ''buttonbck'' which represents the back of the target
+button.
+
+{{ :elementary_animations_flip.gif }}
+
+Create the action button for the flip effect:
+
+
+// The flip button
+Evas_Object *btn_flip = elm_button_add(win);
+elm_object_text_set(btn_flip, "Flip x");
+evas_object_size_hint_weight_set(btn_flip, EVAS_HINT_FILL, EVAS_HINT_FILL);
+evas_object_show(btn_flip);
+evas_object_smart_callback_add(btn_flip, "clicked", _btn_flip_cb, &anim);
+elm_box_pack_end(left_vbox, btn_flip);
+
+
+The corresponding callback to create and start the animation with the two
+objects (target button and back button) to animate is like follows.
+
+
+static void
+_btn_flip_cb(void *data, Evas_Object *btn, void *ev)
+{
+ Animations *anim = (Animations *)data;
+
+ // Setting the button text
+ elm_object_text_set(anim->button, "Flip");
+ _flip_effect(anim->button, anim->buttonbck);
+}
+
+
+Create the function which runs the animation. This flip animation is created
+using ''elm_transit_effect_flip_add''. The second parameter is the axis of the
+flip: in this example it is the X axis, so the button flips down to top to
+show the back button. The last parameter is the flip direction: ''EINA_TRUE''
+means clockwise.
+
+
+_flip_effect(Evas_Object *obj, Evas_Object *obj2)
+{
+ Elm_Transit *trans;
+
+ trans = elm_transit_add();
+ elm_transit_object_add(trans, obj);
+ elm_transit_object_add(trans, obj2);
+ elm_transit_effect_flip_add(trans, ELM_TRANSIT_EFFECT_FLIP_AXIS_X, EINA_TRUE);
+
+ elm_transit_duration_set(trans, 3.0);
+ elm_transit_go(trans);
+}
+
+\\
+//**__next page__: **//[[/develop/legacy/tutorial/effects/elementary_animations/blend|Creating a Blend Transition]]
diff --git a/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/flipy.txt b/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/flipy.txt
new file mode 100644
index 00000000..e4532920
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/flipy.txt
@@ -0,0 +1,52 @@
+~~Title: Elementary Animations - Creating a Flip on y Axis~~
+//**__previous page__: **//[[/develop/legacy/tutorial/effects/elementary_animations/fade|Creating a Fade Effect]]
+=== Elementary Animations ===
+==== Creating a Flip on y Axis ====
+
+This is same as the flip transition, but on y axis.
+
+{{ :elementary_animations_flipy.gif }}
+
+To create a flip on y axis:
+
+
+// The flip y button
+Evas_Object *btn_flip_y = elm_button_add(win);
+elm_object_text_set(btn_flip_y, "Flip y");
+evas_object_size_hint_weight_set(btn_flip_y, EVAS_HINT_FILL, EVAS_HINT_FILL);
+evas_object_show(btn_flip_y);
+evas_object_smart_callback_add(btn_flip_y, "clicked", _btn_flip_y_cb, &anim);
+elm_box_pack_end(left_vbox, btn_flip_y);
+
+
+The flip on y button callback looks like:
+
+static void
+_btn_flip_y_cb(void *data, Evas_Object *btn, void *ev)
+{
+ Animations *anim = (Animations *)data;
+
+
+ // Setting the button text
+ elm_object_text_set(anim->button, "Flip 2");
+ _flip_y_effect(anim->button, anim->buttonbck);
+}
+
+
+The animation function:
+
+static void
+_flip_y_effect(Evas_Object *obj, Evas_Object *obj2)
+{
+ Elm_Transit *trans;
+
+ trans = elm_transit_add();
+ elm_transit_object_add(trans, obj);
+ elm_transit_object_add(trans, obj2);
+ elm_transit_effect_flip_add(trans, ELM_TRANSIT_EFFECT_FLIP_AXIS_Y, EINA_TRUE);
+ elm_transit_duration_set(trans, 3.0);
+ elm_transit_go(trans);
+}
+
+\\
+//**__next page__: **//[[/develop/legacy/tutorial/effects/elementary_animations/wipe|Creating a Wipe Effect]]
diff --git a/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/rotation.txt b/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/rotation.txt
new file mode 100644
index 00000000..973abe6c
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/rotation.txt
@@ -0,0 +1,62 @@
+~~Title: Elementary Animations - Creating a Rotation Effect~~
+//**__previous page__: **//[[/develop/legacy/tutorial/effects/elementary_animations/setting_up|Setting Up the Application]]
+=== Elementary Animations ===
+==== Creating a Rotation Effect ====
+
+This effect rotates the animation target button with an angle of 360°. A
+pointer to this angle is stored in the application data as ''anim->rt_angle''.
+
+{{ :elementary_animations_rotate.gif }}
+
+Create the button and add it to the center column.
+
+
+// The rotation button
+Evas_Object *btn_rotate = elm_button_add(win);
+elm_object_text_set(btn_rotate, "Rotate");
+evas_object_size_hint_weight_set(btn_rotate, EVAS_HINT_FILL, EVAS_HINT_FILL);
+evas_object_show(btn_rotate);
+evas_object_smart_callback_add(btn_rotate, "clicked", _btn_rotate_cb, &anim);
+elm_box_pack_end(center_vbox, btn_rotate);
+
+
+In the rotate button callback, call the effect function with the target button
+as first parameter and the rotation angle as the second one.
+
+
+static void
+_btn_rotate_cb(void *data, Evas_Object *btn, void *ev)
+{
+ Animations *anim = (Animations *)data;
+
+ // Setting the button text
+ elm_object_text_set(anim->button, "Rotate");
+ _rotation_effect(anim->button, *(anim->rt_angle));
+}
+
+
+The animation function rotates the animation target by adding a rotation
+effect with ''elm_transit_effect_rotation_add''. This function takes three
+parameters:
+
+ * ''Elm_Transit''
+ * the rotation position at which the effect begins
+ * the rotation position at which the effect ends
+
+Rotation starts at 0° to finish at 360°. The animation lasts two seconds.
+
+
+static void
+_rotation_effect(Evas_Object *obj, float angle)
+{
+ Elm_Transit *trans = elm_transit_add();
+ elm_transit_object_add(trans, obj);
+
+ // rotates the object from its original angle to given degrees to the right
+ elm_transit_effect_rotation_add(trans, 0.0, angle);
+ elm_transit_duration_set(trans, 2.0);
+ elm_transit_go(trans);
+}
+
+\\
+//**__next page__: **//[[/develop/legacy/tutorial/effects/elementary_animations/zoom|Creating a Zoom Effect]]
diff --git a/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/setting_up.txt b/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/setting_up.txt
new file mode 100644
index 00000000..0b8533b2
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/setting_up.txt
@@ -0,0 +1,255 @@
+~~Title: Elementary Animations - Setting Up the Application~~
+=== Elementary Animations ===
+==== Setting Up the Application ====
+
+ In this example, one single object is animated with different type of
+animations.
+
+Create the structure of our animation represented by a struct named
+''Animations''.
+
+
+typedef struct _Animations{
+ Evas_Object *button;
+ Evas_Object *buttonbck;
+ float *rt_angle;
+ float *zto;
+ float *zfrom;
+} Animations;
+
+
+Then create a basic application with the widgets we need:
+
+EAPI_MAIN int
+elm_main(int argc, char **argv)
+{
+ Evas_Object *win, *label, *hbox, *left_vbox, *center_vbox, *right_vbox;
+ Evas_Object *button, *buttonbck;
+ float rt_angle, zto, zfrom;
+
+ win = elm_win_util_standard_add("Elementary Animations", "Elementary Animations Tutorial");
+ elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
+ elm_win_autodel_set(win, EINA_TRUE);
+ if (elm_win_wm_rotation_supported_get(win))
+ {
+ int rots[4] = { 0, 90, 180, 270 };
+ elm_win_wm_rotation_available_rotations_set(win, (const int *)(&rots), 4);
+ }
+
+ //here will come the animation code
+
+ evas_object_resize(win, 400, 400);
+ evas_object_show(win);
+ elm_run();
+ elm_shutdown();
+ return 0;
+}
+ELM_MAIN()
+
+
+
+Here the main widgets of the application:
+
+ * ''win'': the main window
+ * ''label'': the title label
+ * ''button'': a button object, the target of the animations
+ * ''buttonbck'': a button representing the back of the target button
+ * ''left_vbox'': a vertical box to place the first buttons column
+ * ''center_vbox'': a vertical box to store the second buttons column
+ * ''right_vbox'': a vertical box to store the last buttons column
+ * ''hbox'': a horizontal box to store the vertical boxes
+ * ''rt_angle'', ''zto'', ''zfrom'': these variables are used to store values for animations
+
+Place the widgets on the application's canvas, first create widgets on the
+main window:
+
+Set up the needed values like the rotation angle, the original zoom value
+(''zfrom''), and the destination zoom value (''zto'').
+
+
+//set the values for animations
+rt_angle = 360.0;
+zfrom = 1.0;
+zto = 2.0;
+
+
+Add a label title to the main window, then create the animation target button
+and the back button.
+
+
+/* Label*/
+label = elm_label_add(win);
+elm_object_text_set(label, "Effects Tutorial");
+evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+evas_object_move(label, 100, 0);
+evas_object_resize(label, 200, 50);
+evas_object_show(label);
+
+/* Creation a button in the app window*/
+button = elm_button_add(win);
+evas_object_move(button, 100, 100); // Moving the button to x=50 y=100
+evas_object_resize(button, 200, 50); // Resizing the button 100x50
+evas_object_show(button); // Showing the button
+/* Creation a back button in the app window*/
+buttonbck = elm_button_add(win);
+elm_object_text_set(buttonbck, "Button back");
+evas_object_move(buttonbck, 100, 100);
+evas_object_resize(buttonbck, 200, 50);
+
+/*set the structure of pointeurs*/
+Animations anim = { button, buttonbck, &rt_angle, &zto, &zfrom };
+
+
+Now you can create boxes to add a set of buttons to them that starts
+animations on the target.
+
+Create the structure of the box of buttons with three columns (vertical boxes)
+and one horizontal for the main container.
+
+
+// Creation of the main container box
+hbox = elm_box_add(win);
+elm_box_horizontal_set(hbox, EINA_TRUE);
+elm_box_homogeneous_set(hbox, EINA_TRUE);
+evas_object_move(hbox, 130, 200);
+evas_object_show(hbox);
+
+// Creation of the first column
+left_vbox = elm_box_add(hbox);
+elm_box_horizontal_set(left_vbox, EINA_FALSE);
+elm_box_homogeneous_set(left_vbox, EINA_TRUE);
+evas_object_show(left_vbox);
+elm_box_pack_start(hbox, left_vbox);
+
+// Creation of the second column
+center_vbox = elm_box_add(hbox);
+elm_box_horizontal_set(center_vbox, EINA_FALSE);
+elm_box_homogeneous_set(center_vbox, EINA_TRUE);
+evas_object_show(center_vbox);
+elm_box_pack_end(hbox, center_vbox);
+
+// Creation of the last column
+right_vbox = elm_box_add(hbox);
+elm_box_horizontal_set(right_vbox, EINA_FALSE);
+elm_box_homogeneous_set(right_vbox, EINA_TRUE);
+evas_object_show(right_vbox);
+elm_box_pack_end(hbox, right_vbox);
+
+
+Then create the first action button for the resize effect.
+
+
+// The resize button
+Evas_Object *btn_resize = elm_button_add(win);
+elm_object_text_set(btn_resize, "Resize"); // Setting the button text
+evas_object_size_hint_weight_set(btn_resize, EVAS_HINT_FILL, EVAS_HINT_FILL); // Setting the hint weight policy
+evas_object_show(btn_resize); // Showing the button
+evas_object_smart_callback_add(btn_resize, "clicked", _btn_resize_cb, &anim); // Setting the "clicked" callback
+elm_box_pack_end(left_vbox, btn_resize); // Adding the button to the first column
+
+
+''evas_object_smart_callback_add'' defines the callback function that is to be
+called when the button is clicked. In this example, set a ''_btn_resize_cb''
+function and pass the application data ''anim'' to this callback function.
+
+The callback by itself only sets a new text for the animation target button,
+and calls a function which will actually animate the button.
+
+
+static void
+_btn_resize_cb(void *data, Evas_Object *btn, void *ev)
+{
+ Animations *anim = (Animations *)data;
+
+ // Starting the rotation effect 360 degrees
+ //evas_object_resize(button, 100, 50);
+ elm_object_text_set(anim->button, "Resize");
+ _resize_effect(anim->button);
+}
+
+
+This function is an ''evas_object_smart_callback'' and thus needs to have its
+specific prototype: it does not return anything and receives three parameters:
+
+ * ''data'': data to be passed
+ * ''btn'': the object the callback is being called about
+ * ''ev'': the actual event, seldom used
+
+In this case, use ''data'' to pass the application data to the callback. However,
+the parameter's type is ''void *'' and not ''Animation *''. Initialize a variable of
+the correct type with the pointer.
+
+
+Animation * anim = (Animation *)data;
+
+
+Then use the application data in the callback function. At this point create
+the animation directly in the callback function, but it is more
+straightforward to encapsulate the animation process into a dedicated
+function. ''_resize_effect'' implements the animation code:
+
+
+static void
+_resize_effect(Evas_Object *obj)
+{
+ // Elementary Transition declaration and creation
+ Elm_Transit *trans = elm_transit_add();
+
+ // Adding the transition target object
+ elm_transit_object_add(trans, obj);
+
+ // Setting the resize effect
+ elm_transit_effect_resizing_add(trans, 100, 50, 300, 150);
+
+ // Setting the transition duration
+ elm_transit_duration_set(trans, 3.0);
+
+ // Starting the transition
+ elm_transit_go(trans);
+}
+
+
+Create an ''Elm_Transit *'' object representing the transition.
+
+
+Elm_Transit *trans = elm_transit_add();
+
+
+Then add the target object to the transition
+
+
+elm_transit_object_add(trans, obj);
+
+
+Add a resizing transition to the object with the origin and destination width
+and height in pixels.
+
+
+elm_transit_effect_resizing_add(trans, 100, 50, 300, 150);
+
+
+100 and 50 are respectively the object's width and height when the effect
+begins, whereas 300 and 150 are respectively the object's width and height
+when the effect ends: the object grows from 100×50 to 300×150.
+
+After that set the transition duration with ''elm_transit_duration_set''.
+
+
+elm_transit_duration_set(trans, 3.0);
+
+
+The animation lasts three seconds. The duration parameter is a double.
+
+Now start the animation by calling ''elm_transit_go'' with the ''Elm_Transit'' object.
+
+
+elm_transit_go(trans);
+
+
+When the resize button is clicked, the animation target button grows.
+
+All the action buttons are created exactly the same way as the resize button,
+with a callback and an animation function.
+
+\\
+//**__next page__: **//[[/develop/legacy/tutorial/effects/elementary_animations/rotation|Creating a Rotation Effect]]
diff --git a/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/transit.txt b/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/transit.txt
new file mode 100644
index 00000000..3ca708c2
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/transit.txt
@@ -0,0 +1,362 @@
+~~Title: Elementary Animations - Transit~~
+//**__previous page__: **//[[/develop/legacy/tutorial/effects/elementary_animations/wipe|Creating a Wipe Effect]]
+=== Elementary Animations ===
+==== Transit: Implementing Elementary Transit Effects ====
+
+This tutorial demonstrates how you can implement a variety of EFL animation effects using
+the Transit API available in the Elementary library.
+
+=== Initializing the Application Layout ===
+
+The application uses widgets, such as elm_naviframe for
+view management, layout classes, such as elm_list for the composition of the
+screen.
+
+The transit is designed to apply various animated transition effects to the
+Evas_Object. The following transition effects are supported in EFL and
+Elementary applications.
+
+ * Blend
+ * Color
+ * Fade
+ * Flip
+ * Rotation
+ * Transition
+ * Wipe
+ * Zoom
+
+The application layout is created by adding two naviframes in order to switch
+from one to another in transitions. Two lists are respectively added to the
+two naviframes.
+
+
+EAPI_MAIN int
+elm_main(int argc, char **argv)
+{
+ Evas_Object *navi, *navi2, *list, *list2;
+
+ win = elm_win_util_standard_add("Elementary Animations", "Elementary Animations Tutorial");
+ elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
+ elm_win_autodel_set(win, EINA_TRUE);
+ if (elm_win_wm_rotation_supported_get(win))
+ {
+ int rots[4] = { 0, 90, 180, 270 };
+ elm_win_wm_rotation_available_rotations_set(win, (const int *)(&rots), 4);
+ }
+
+ Elm_Object_Item *nf_it, *nf_it2;
+
+ /* add two naviframes and two lists to switch
+ * from one to another in some transitions */
+ navi2 = elm_naviframe_add(win);
+ navi = elm_naviframe_add(win);
+ list = elm_list_add(navi);
+ list2 = elm_list_add(navi2);
+ elm_list_mode_set(list, ELM_LIST_COMPRESS);
+ elm_list_mode_set(list2, ELM_LIST_COMPRESS);
+
+ /* store naviframe pointeurs to pass them
+ * in data pointeur parameter */
+ Navi navis = {navi, navi2};
+ Navi navis2 = {navi2, navi};
+
+ /* first list items */
+ elm_list_item_append(list, "Blend", NULL, NULL, blend_cb, &navis);
+ elm_list_item_append(list, "Color", NULL, NULL, color_cb, &navis);
+ elm_list_item_append(list, "Fade", NULL, NULL, fade_cb, &navis);
+ elm_list_item_append(list, "Flip", NULL, NULL, flip_cb, &navis);
+ elm_list_item_append(list, "Rotation", NULL, NULL, rotation_cb, &navis);
+ elm_list_item_append(list, "ResizableFlip", NULL, NULL, resizable_flip_cb, &navis);
+ elm_list_item_append(list, "Translation", NULL, NULL, translation_cb, &navis);
+ elm_list_item_append(list, "Wipe", NULL, NULL, wipe_cb, &navis);
+ elm_list_item_append(list, "Zoom", NULL, NULL, zoom_cb, &navis);
+ elm_list_item_append(list, "Custom", NULL, NULL, custom_cb, &navis);
+ elm_list_go(list);
+
+ /* second list items*/
+ elm_list_item_append(list2, "Blend2", NULL, NULL, blend_cb, &navis2);
+ elm_list_item_append(list2, "Color2", NULL, NULL, color_cb, &navis2);
+ elm_list_item_append(list2, "Fade2", NULL, NULL, fade_cb, &navis2);
+ elm_list_item_append(list2, "Flip2", NULL, NULL, flip_cb, &navis2);
+ elm_list_item_append(list2, "Rotation2", NULL, NULL, rotation_cb, &navis2);
+ elm_list_item_append(list2, "ResizableFlip2", NULL, NULL, resizable_flip_cb, &navis2);
+ elm_list_item_append(list2, "Translation2", NULL, NULL, translation_cb, &navis2);
+ elm_list_item_append(list2, "Wipe2", NULL, NULL, wipe_cb, &navis2);
+ elm_list_item_append(list2, "Zoom2", NULL, NULL, zoom_cb, &navis2);
+ elm_list_item_append(list2, "Custom2", NULL, NULL, custom_cb, &navis2);
+ elm_list_go(list2);
+
+ nf_it = elm_naviframe_item_push(navi, "Transit", NULL, NULL, list, NULL);
+ nf_it2 = elm_naviframe_item_push(navi2, "Transit2", NULL, NULL, list2, NULL);
+
+ evas_object_show(navi);
+ evas_object_show(navi2);
+ evas_object_show(list);
+ evas_object_show(list2);
+ evas_object_resize(navi2, 400, 400);
+ evas_object_resize(navi, 400, 400);
+ evas_object_resize(win, 400, 400);
+ evas_object_show(win);
+ elm_run();
+ elm_shutdown();
+ return 0;
+}
+ELM_MAIN()
+
+
+The Navi structure is used to store the naviframe pointeurs in order to pass
+them in data pointeur as a parameter in callback functions.
+
+
+/* store naviframe pointeurs */
+typedef struct _Navi
+{
+ Evas_Object *navi;
+ Evas_Object *navi2;
+} Navi;
+
+
+Next the transition effects will be described, there are two kind of transit
+effects, one when the effect applies on one object, the other one when the
+effect is a transition between two objects.
+
+=== Implementing the Rotation Effect ===
+
+{{ :transit_rotate.gif }}
+
+To implement the rotation effect:
+ - Use the ''elm_transit'' object with the ''elm_transit_add()'' function to add the transit effect.
+ - Set the target object with ''elm_transit_object_add()'' function.
+ - Set the effect rotation indication the rotation amount with ''elm_transit_effect_rotation_add()'' function.
+ - Set the transit duration with ''elm_transit_duration_set()''
+ - To start the transit animation, use the ''elm_transit_go()'' function.
+
+
+static void
+rotation_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Navi *navis = data;
+ Evas_Object *navi=navis->navi;
+ Elm_Transit *transit = elm_transit_add();
+
+ // 360 degree rotation effect in the clock-wise direction
+ elm_transit_object_add(transit, navi);
+ elm_transit_effect_rotation_add(transit, 0, 360);
+ elm_transit_duration_set(transit, 1);
+ elm_transit_go(transit);
+}
+
+
+For the transition with one effect, it will be very similar to this one so it
+will be not detailed excepted particular callbacks as the next one for the
+zoom effect.
+
+=== Implementing the Zoom Effect ===
+
+{{ :transit_zoom.gif }}
+
+For the zoom effect, two transitions are set, one for zooming in the other one
+for zooming out.
+
+The ''elm_transit_chain_transit_add()'' function allows to chain the
+transitions:
+
+
+static void
+zoom_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Navi *navis = data;
+ Evas_Object *navi=navis->navi;
+ // Zoom out to scale 0.6
+ Elm_Transit *transit = elm_transit_add();
+ elm_transit_smooth_set(transit, EINA_FALSE);
+ elm_transit_object_add(transit, navi);
+ elm_transit_effect_zoom_add(transit, 1.0, 0.4);
+ elm_transit_duration_set(transit, 0.5);
+
+ // Zoom in to the original size
+ Elm_Transit *transit2 = elm_transit_add();
+ elm_transit_smooth_set(transit2, EINA_FALSE);
+ elm_transit_object_add(transit2, navi);
+ elm_transit_effect_zoom_add(transit2, 0.4, 1.0);
+ elm_transit_duration_set(transit2, 0.5);
+
+ elm_transit_chain_transit_add(transit, transit2);
+ elm_transit_go(transit);
+}
+
+
+=== Implementing the Wipe Effect ===
+
+{{ :transit_wipe.gif }}
+
+Similarly to the rotation effect but with the ''elm_transit_effect_wipe_add()''
+function by indicating the wipe type and the wiping direction.
+
+
+static void
+wipe_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Navi *navis = data;
+ Evas_Object *navi=navis->navi;
+ Elm_Transit *transit = elm_transit_add();
+
+ elm_transit_object_add(transit, navi);
+ elm_transit_effect_wipe_add(transit, ELM_TRANSIT_EFFECT_WIPE_TYPE_HIDE, ELM_TRANSIT_EFFECT_WIPE_DIR_RIGHT);
+ elm_transit_duration_set(transit, 3.0);
+ elm_transit_go(transit);
+}
+
+
+=== Implementing the Translation Effect ===
+
+{{ :transit_translation.gif }}
+
+Similarly to the rotation effect but with the ''elm_transit_effect_translation_add()''
+function by indicating the position when effect begins and end.
+
+
+static void
+translation_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Navi *navis = data;
+ Evas_Object *navi=navis->navi;
+ Elm_Transit *transit = elm_transit_add();
+
+ elm_transit_object_add(transit, navi);
+ elm_transit_effect_translation_add(transit, 0, 0, 50, 100);
+ elm_transit_duration_set(transit, 3.0);
+ elm_transit_go(transit);
+}
+
+
+=== Implementing the Color Effect ===
+
+{{ :transit_color.gif }}
+
+Similarly to the rotation effect but with the ''elm_transit_effect_color_add()''
+function by indicating the RGBA color when effect begins and end.
+
+
+static void
+color_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Navi *navis = data;
+ Evas_Object *navi=navis->navi;
+ Elm_Transit *transit = elm_transit_add();
+
+ elm_transit_object_add(transit, navi);
+ elm_transit_effect_color_add(transit,0,0,0,0,255,255,0,255);
+ elm_transit_duration_set(transit, 3.0);
+ elm_transit_go(transit);
+}
+
+
+=== Implementing the Blend Effect ===
+
+{{ :blend.gif }}
+
+This time, the blend effect is a transition between the two naviframes. So,
+the two naviframes are added to the ''Elm_transit''. Moreover, the
+''elm_transit_objects_final_state_keep_set()'' function allows to set the
+state of the final state of the transition (it could be used for the precedent
+effects too):
+
+
+static void
+blend_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Navi *navis = data;
+ Evas_Object *navi=navis->navi;
+ Evas_Object *navi2=navis->navi2;
+ Elm_Transit *transit = elm_transit_add();
+
+ elm_transit_object_add(transit, navi);
+ elm_transit_object_add(transit, navi2);
+ elm_transit_effect_blend_add(transit);
+ elm_transit_duration_set(transit, 3.0);
+ elm_transit_objects_final_state_keep_set(transit, EINA_TRUE);
+ elm_transit_go(transit);
+
+}
+
+
+
+=== Implementing the Fade Effect ===
+
+{{ :transit_fade.gif }}
+
+Similarly to the blend effect but with the ''elm_transit_effect_fade_add()'':
+
+
+static void
+fade_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Navi *navis = data;
+ Evas_Object *navi=navis->navi;
+ Evas_Object *navi2=navis->navi2;
+ Elm_Transit *transit = elm_transit_add();
+
+ elm_transit_object_add(transit, navi);
+ elm_transit_object_add(transit, navi2);
+ elm_transit_effect_fade_add(transit);
+ elm_transit_duration_set(transit, 3.0);
+ elm_transit_objects_final_state_keep_set(transit, EINA_TRUE);
+ elm_transit_go(transit);
+
+}
+
+
+=== Implementing the Flip Effect ===
+
+{{ :transit_flip.gif }}
+
+Similarly to the blend effect but with the ''elm_transit_effect_flip_add()''
+by indicating the flipping axis and the flipping direction (''EINA_TRUE'' is
+clock-wise):
+
+
+static void
+flip_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Navi *navis = data;
+ Evas_Object *navi=navis->navi;
+ Evas_Object *navi2=navis->navi2;
+ Elm_Transit *transit = elm_transit_add();
+
+ elm_transit_object_add(transit, navi);
+ elm_transit_object_add(transit, navi2);
+ elm_transit_effect_flip_add(transit, ELM_TRANSIT_EFFECT_FLIP_AXIS_X, EINA_TRUE);
+ elm_transit_duration_set(transit, 3.0);
+ elm_transit_objects_final_state_keep_set(transit, EINA_TRUE);
+ elm_transit_go(transit);
+}
+
+
+=== Implementing the Resizable Flip Effect ===
+
+{{ :transit_resizeflip.gif }}
+
+Similarly to the blend effect but with the ''elm_transit_effect_flip_add()''
+by indicating the flipping axis and the flipping direction (''EINA_TRUE'' is
+clock-wise):
+
+
+static void
+resizable_flip_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Navi *navis = data;
+ Evas_Object *navi=navis->navi;
+ Evas_Object *navi2=navis->navi2;
+ Elm_Transit *transit = elm_transit_add();
+
+ elm_transit_object_add(transit, navi);
+ elm_transit_object_add(transit, navi2);
+ elm_transit_effect_resizable_flip_add(transit, ELM_TRANSIT_EFFECT_FLIP_AXIS_Y, EINA_TRUE);
+ elm_transit_duration_set(transit, 3.0);
+ elm_transit_objects_final_state_keep_set(transit, EINA_TRUE);
+ elm_transit_go(transit);
+}
+
+\\
+//**__The whole code__: **//{{code_c/tutorial/effects/transit.c}}
diff --git a/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/wipe.txt b/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/wipe.txt
new file mode 100644
index 00000000..c45d4ec8
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/wipe.txt
@@ -0,0 +1,61 @@
+~~Title: Elementary Animations - Creating a Wipe Effect~~
+//**__previous page__: **//[[/develop/legacy/tutorial/effects/elementary_animations/flipy|Creating a Flip on y Axis]]
+=== Elementary Animations ===
+==== Creating a Wipe Effect ====
+
+The wipe transition is applied on an Evas object considering the wipe type and
+the direction. Use ''ELM_TRANSIT_EFFECT_WIPE_TYPE_HIDE'' to hide the button,
+and ''ELM_TRANSIT_EFFECT_WIPE_DIR_RIGHT'' to do it from left to right.
+
+{{ :elementary_animations_wipe.gif }}
+
+The wipe animation button is as follows:
+
+
+// The wipe button
+Evas_Object *btn_wipe = elm_button_add(win);
+elm_object_text_set(btn_wipe, "Wipe");
+evas_object_size_hint_weight_set(btn_wipe, EVAS_HINT_FILL, EVAS_HINT_FILL);
+evas_object_show(btn_wipe);
+evas_object_smart_callback_add(btn_wipe, "clicked", _btn_wipe_cb, &anim);
+elm_box_pack_end(right_vbox, btn_wipe);
+
+
+The wipe button callback looks like:
+
+
+static void
+_btn_wipe_cb(void *data, Evas_Object *btn, void *ev)
+{
+ Animations *anim = (Animations *)data;
+
+ // Starting the rotation effect 360 degrees
+ //evas_object_resize(anim->button, 100, 50);
+ // Setting the button text
+ elm_object_text_set(anim->button, "Wipe");
+ _wipe_effect(anim->button);
+}
+
+
+The animation function calls ''elm_transit_effect_wipe_add'' with
+''ELM_TRANSIT_EFFECT_WIPE_TYPE_HIDE'' as the second parameter to hide the button
+and ''ELM_TRANSIT_EFFECT_WIPE_DIR_RIGHT'' as last parameter to set the direction
+(left to right).
+
+
+static void
+_wipe_effect(Evas_Object *obj)
+{
+ Elm_Transit *trans;
+
+ trans = elm_transit_add();
+ elm_transit_object_add(trans, obj);
+ elm_transit_effect_wipe_add(trans, ELM_TRANSIT_EFFECT_WIPE_TYPE_HIDE, ELM_TRANSIT_EFFECT_WIPE_DIR_RIGHT);
+ elm_transit_duration_set(trans, 3.0);
+ elm_transit_go(trans);
+}
+
+\\
+//**__The whole code__: **//{{code_c/tutorial/effects/elementary_animations.c}}
+\\
+//**__next page__: **//[[/develop/legacy/tutorial/effects/elementary_animations/transit|Implementing Elementary Transit Effects]]
diff --git a/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/zoom.txt b/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/zoom.txt
new file mode 100644
index 00000000..ceb16c81
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/effects/elementary_animations/zoom.txt
@@ -0,0 +1,54 @@
+~~Title: Elementary Animations - Creating a Zoom Effect~~
+//**__previous page__: **//[[/develop/legacy/tutorial/effects/elementary_animations/rotation|Creating a Rotation Effect]]
+=== Elementary Animations ===
+==== Creating a Zoom Effect ====
+
+The zoom effect zooms on the animation target to make it twice bigger. Store
+the source rate and the destination rate in the application data using
+''anim->zfrom'' and ''anim->zto''.
+
+{{ :elementary_animations_zoom.gif }}
+
+Create the button and add it to the center column.
+
+
+// The zoom button
+Evas_Object *btn_zoom = elm_button_add(win);
+elm_object_text_set(btn_zoom, "Zoom");
+evas_object_size_hint_weight_set(btn_zoom, EVAS_HINT_FILL, EVAS_HINT_FILL);
+evas_object_show(btn_zoom);
+evas_object_smart_callback_add(btn_zoom, "clicked", _btn_zoom_cb, &anim);
+elm_box_pack_end(right_vbox, btn_zoom);
+
+
+Then add a callback function in order to perform the animation.
+
+static void _btn_zoom_cb(void *data, Evas_Object *btn, void *ev)
+{
+ Animations *anim = (Animations *)data;
+
+ // Starting the rotation effect 360 degrees
+ //evas_object_resize(anim->button, 100, 50);
+ elm_object_text_set(anim->button, "Zoom");
+ _zoom_effect(anim->button, *(anim->zfrom), *(anim->zto));
+}
+
+
+To create the zoom effect, use ''elm_transit_effect_zoom_add'' with the start
+rate and the destination rate stored in application data (''anim->zfrom'' and
+''anim->zto'')
+
+
+static void
+_zoom_effect(Evas_Object *obj, float from, float to)
+{
+ Elm_Transit *trans = elm_transit_add();
+ elm_transit_object_add(trans, obj);
+
+ elm_transit_effect_zoom_add(trans, from, to);
+ elm_transit_duration_set(trans, 2.0);
+ elm_transit_go(trans);
+}
+
+\\
+//**__next page__: **//[[/develop/legacy/tutorial/effects/elementary_animations/flip|Creating a Flip Effect]]
diff --git a/public_html/data/pages/develop/legacy/tutorial/effects_tutorial.txt b/public_html/data/pages/develop/legacy/tutorial/effects_tutorial.txt
new file mode 100644
index 00000000..45bce8f3
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/effects_tutorial.txt
@@ -0,0 +1,68 @@
+~~Title: Animation and Effect Types~~
+==== Animation and Effect Types: Using Various Effect and Effect Types ====
+
+The animation and effect tutorials demonstrate how to create and implement a
+variety of animation effects with EFL and Elementary.
+
+----
+==== Ecore Animator: Creating Ecore Animations ====
+
+This tutorial demonstrates how you can use Ecore animators to simplify the
+creation of animations. Using Ecore animators, you can manually create your
+own animations by changing and manipulating Evas object attributes. Ecore
+animators work like timers, running callback functions over a given duration
+(an animation timeline).
+
+=== Table of Contents ===
+
+ * [[/develop/legacy/tutorial/effects/ecore_animator/setting_up|Setting up the application]]
+ * [[/develop/legacy/tutorial/effects/ecore_animator/rotation|Creating a rotation effect]]
+ * [[/develop/legacy/tutorial/effects/ecore_animator/zoom|Creating a zoom effect]]
+ * [[/develop/legacy/tutorial/effects/ecore_animator/3d_rotation|Creating a 3D rotation effect]]
+ * [[/develop/legacy/tutorial/effects/ecore_animator/drop_bounce|Creating drop and bounce effects]]
+
+Ecore Animator Example : {{ :ecore_animator.gif }}
+\\
+//**__The Whole Code__: **//{{code_c/tutorial/effects/ecore_animator.c}}
+
+----
+==== Edje Animation: Using the Edje Library to Create Animations ====
+
+One of the greatest strengths of EFL and Edje is the ability to create
+animations. This tutorial demonstrates how to use the Edje library to create
+your own animations.
+
+=== Table of Contents ===
+
+ * [[/develop/legacy/tutorial/effects/edje_animation/start_up|Animating on Application Start-up]]
+ * [[/develop/legacy/tutorial/effects/edje_animation/on_click|Animating Object on Click]]
+
+{{ :edje_animation_rotate.gif }}
+\\
+//**__The Whole Code__:
+**//{{code_c/tutorial/effects/edje_animation.c}} {{code_c/tutorial/effects/edje_animation.edc}}
+
+
+----
+==== Elementary Animations: Applying Transition Effects to an Evas Object ====
+
+This tutorial demonstrates how you can use Elm Transit to create animated
+transitions effects, such as rotation, wiping, zooming, resizing, and fading,
+to an ''Evas_Object''.
+
+=== Table of Contents ===
+
+ * [[/develop/legacy/tutorial/effects/elementary_animations/setting_up|Setting Up the Application]]
+ * [[/develop/legacy/tutorial/effects/elementary_animations/rotation|Creating a Rotation Effect]]
+ * [[/develop/legacy/tutorial/effects/elementary_animations/zoom|Creating a Zoom Effect]]
+ * [[/develop/legacy/tutorial/effects/elementary_animations/flip|Creating a Flip Effect]]
+ * [[/develop/legacy/tutorial/effects/elementary_animations/blend|Creating a Blend Transition]]
+ * [[/develop/legacy/tutorial/effects/elementary_animations/fade|Creating a Fade Effect]]
+ * [[/develop/legacy/tutorial/effects/elementary_animations/flipy|Creating a Flip on y Axis]]
+ * [[/develop/legacy/tutorial/effects/elementary_animations/wipe|Creating a Wipe Effect]]
+ * [[/develop/legacy/tutorial/effects/elementary_animations/transit|Implementing Elementary Transit Effects]]
+
+
+Elementary Animations example: {{ :transit_rotate.gif }}
+\\
+//**__The Whole Codes__: **//{{code_c/tutorial/effects/elementary_animations.c}} {{code_c/tutorial/effects/transit.c}}
diff --git a/public_html/data/pages/develop/legacy/tutorial/form_tutorial.txt b/public_html/data/pages/develop/legacy/tutorial/form_tutorial.txt
new file mode 100644
index 00000000..0d4756b5
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/form_tutorial.txt
@@ -0,0 +1,361 @@
+~~Title: Form Tutorial~~
+==== Form Tutorial ====
+
+This tutorial explains how to create a basic application for displaying a list
+of contacts, and a form for displaying and editing contact information when an
+item is selected on the contact list.
+
+=== Table of Contents ===
+
+ * [[#Creating_the_Basic_Application|Creating the Basic Application]]
+ * [[#Creating_the_Naviframe|Creating the Naviframe]]
+
+Form example :
+
+{{ :form.png?direct |list}}
+
+//**__The whole Code__ : **//{{/code_c/tutorial/form/form.c}}
+
+=== Creating the Basic Application ===
+
+To create an Elementary application with a single window, use the following
+code.
+
+
+#include
+
+EAPI_MAIN int
+elm_main(int argc, char **argv)
+{
+ Evas_Object *win;
+
+ win = elm_win_util_standard_add("Form", "Form Tutorial");
+ elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
+ elm_win_autodel_set(win, EINA_TRUE);
+ //win 400x400 px
+ evas_object_resize(win, 400, 400);
+
+ //Form code here
+
+ evas_object_show(win);
+ elm_run();
+ return 0;
+}
+ELM_MAIN()
+
+
+=== Creating the Naviframe ===
+
+Use a naviframe in this application to switch between different views. The
+first view that is displayed is the list of contacts. When an user selects an
+item on this list, contact information is displayed in a form. Both the
+view list and the form are opened in a naviframe, which handles the animations
+between the views for you. It also manages creating a back button in the top
+bar and launching the back animation when you select it, deletes the form
+view, and shows the list of contacts again.
+
+//**__Naviframe__**//
+
+The naviframe is the main layout of the window, so it takes all the space
+available. To configure this, use the ''elm_win_resize_object_add'' function. The
+first parameter is the main window, the second is the naviframe object. The
+naviframe is to be resized along with the window. The object (the naviframe)
+fills its parent (the main window) by calling the
+''evas_object_resize_hint_weight_set'' function on the naviframe object. The
+naviframe object expands in both x and y directions. In the end, evas shows
+the naviframe object on the screen.
+
+
+//Create the naviframe
+nav = elm_naviframe_add(win);
+evas_object_size_hint_weight_set(nav, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+elm_win_resize_object_add(win, nav);
+evas_object_show(nav);
+
+
+//**__Contact List__**//
+
+Handle the contact list with the ''_create_contact_list'' function. This function
+takes the parent object as the parameter (in this case the naviframe) and
+returns the genlist. To create the genlist, use the following code.
+
+
+static Evas_Object *
+_create_contact_list(Evas_Object *parent)
+{
+ Evas_Object *list;
+ int i;
+ //Create a new genlist
+ list = elm_genlist_add(parent);
+ evas_object_show(list);
+ // Create a new item class for the genlist
+ itc = elm_genlist_item_class_new();
+ itc->item_style = "default";
+ // Set the callback which will be used when the genlist text will be created
+ itc->func.text_get = _genlist_text_get;
+ // Set the callback wich will be used when the content of the item will be created
+ itc->func.content_get = _genlist_content_get;
+ itc->func.state_get = NULL;
+ itc->func.del = NULL;
+ //here will go the genlist item for each item in the contacts array
+
+ return list;
+}
+
+
+itc is a static variable containing the item class. The item class contains
+all functions that are called back when an item is created. In this case,
+create the callbacks _genlist_text_get (for labels) and _genlist_content_get
+(for icons). These functions are called when labels and icons of the genlist
+item are created. For more information go to the
+[[/develop/legacy/tutorial/genlist_tutorial|genlist tutorial]] or the
+[[/program_guide/containers/genlist|genlist guide]].
+
+The list of contacts and their descriptions are contained in an array of
+Contacts and an array of form items.
+
+
+typedef struct _Contact Contact;
+struct _Contact
+{
+ const char *name;
+ const char *mobile;
+ const char *address;
+ const char *email;
+ const char *icon;
+};
+
+static Contact contacts[] =
+{
+ {"Alexander Holmes", "+1234567896", "", "alexander_holmes@tizen.org", "c1.svg"},
+ {"Lara Alvaréz", "+9876543216", "", "lara_alvares@tizen.org", "c2.svg" },
+ {"Aksel Møller", "+1679432846", "", "aksel_moller@tizen.org", "c3.svg" },
+ {"Anir Amghar", "+1679432846", "", "anir_amghar@tizen.org", "c4.svg" },
+ {"Noémie Cordier", "+1679432846", "", "noemie_cordier@tizen.org", "c5.svg" },
+ {"Henry Thompson", "+1679432846", "", "henry_thompson@tizen.org", "c6.svg" },
+ {"Mai Phan", "+1679432846", "", "mai_phan@tizen.org", "c7.svg" },
+};
+
+static const char *form_items[] =
+{
+ "name :", "mobile :", "address :", "email :"
+};
+
+
+So create a genlist item for each item of the array with the following code.
+
+
+// Create a genlist item for each item in the contacts array
+for (i = 0; i < EINA_C_ARRAY_LENGTH(contacts); i++)
+ {
+ // Append the item, add a callback when the item is selected, and use the
+ // current contact item as data pointer for the callbacks.
+ elm_genlist_item_append(list, itc,
+ &contacts[i], // Item data
+ NULL, // Parent item for trees, NULL if none
+ ELM_GENLIST_ITEM_NONE, // Item type; this is the common one
+ _contact_selected_cb, // Callback on selection of the item
+ &contacts[i]); // Data for that callback function
+ }
+
+Attach the ''_contact_selected_cb'' callback function to the genlist item.
+When an item is selected in the list, the ''_contact_selected_cb'' is called
+with the data pointer passed as an argument. Here, it is a pointer on the
+contact. Pass the contacts in the array to all the Item Class callbacks.
+
+Push the list at the top of the naviframe with the following code.
+
+
+// Create the list of contacts
+Evas_Object *list = _create_contact_list(win);
+
+// Push the list on top of the naviframe
+elm_naviframe_item_push(nav, NULL, NULL, NULL, list, NULL);
+
+
+The Item class functions are called, the ''_genlist_text_get'' first.
+This function show the index of the contact in the array and return a
+freshly allocated string with the name of the contact.
+
+
+static char *
+_genlist_text_get(void *data, Evas_Object *obj EINA_UNUSED, const char *part)
+{
+ Contact *contact = data;
+
+ //Return a new allocated string for the contact name
+ return strdup(contact->name);
+}
+
+
+When the user selects an item in the list, a callback registers on the select
+signal and calls the corresponding function, in this case,
+''_contact_selected_cb()''. The user retrieves the index pointer of the array passed in
+the data and creates the form on contact information based on this index
+pointer.
+
+The ''_genlist_content_get'' function is called several times depending on the
+style of the created item. In this case, with the default style for the
+genlist item, there are two different swallow parts. A swallow part is a
+container in the [[/program_guide/edje_pg|edje file]] of the genlist item, which may
+contain an evas object. The following figure shows the layout of different
+parts in the theme.
+
+{{ :form_genlist_item.png?direct |list}}
+
+There are two ''elm.swallow'' parts. When the callback function which creates
+icons is called, the part name is passed via the ''part'' variable. Compare
+this variable to ''elm.swallow.icon'' for the first object and to
+''elm.swallow.end'' for the icon at the end.
+
+//**__Icon__**//
+
+Create the icon when the callback is recognized. In this example, we use an
+''elm_icon'' object.
+
+
+static Evas_Object *
+_genlist_content_get(void *data, Evas_Object *obj, const char *part)
+{
+ Contact *contact = data;
+
+ //Test which part is being created
+ if (!strcmp(part, "elm.swallow.icon"))
+ {
+ char filename[PATH_MAX];
+
+ // Create a new icon
+ Evas_Object *ic = elm_icon_add(obj);
+ // Set the filename of the file which is to be loaded
+ snprintf(filename, sizeof(filename), "%s%s", ICON_PATH, contact->icon);
+ elm_image_file_set(ic, filename, NULL);
+ // Keep the ratio squared
+ evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+
+ // Return the icon
+ return ic;
+ }
+ return NULL;
+}
+
+
+Note that in case of ''elm.swallow.end'': the return is NULL and no icon is added.
+
+The user may question the complexity of creating a genlist, and the benefits
+of callbacks for the creation of items. In a genlist with thousands of
+elements, graphical items are not created. Only the ones currently displayed
+on the screen are created with the callbacks in the Genlist Item Class.
+Otherwise, objects are created by calling the respective callback function
+when the user scrolls the list.
+
+
+Evas_Object *vbox;
+vbox = elm_box_add(parent);
+elm_box_align_set(vbox, 0, 0);
+evas_object_show(vbox);
+
+
+''elm_box_align_set'' keeps the box element aligned to the top left corner.
+
+To add an icon, use the ''_genlist_content_get'' function to create the icon
+in the genlist item. For a bigger icon, set the minimum size of the icon
+object to 96x96 px.
+
+The most important function in this case is ''elm_box_pack_end''. It adds the
+icon object at the end of the vbox. As the icon is the first object added, it
+is displayed on top of the box.
+
+
+Evas_Object *ic;
+ic = elm_icon_add(vbox);
+char filename[PATH_MAX];
+snprintf(filename, sizeof(filename), "%s%s", ICON_PATH, contact->icon);
+elm_image_file_set(ic, filename, NULL);
+evas_object_size_hint_min_set(ic, 96, 96);
+evas_object_show(ic);
+elm_box_pack_end(vbox, ic);
+
+
+In the following example, add the information on the contact: the name, the
+mobile phone number, the postal address and the e-mail address. For each
+information item, create a label and an edit line. The label contains the kind
+of the information, and the edit box, the information itself. To set the
+widgets in a horizontal layout, use a horizontal box.
+
+
+Evas_Object *hbox;
+hbox = elm_box_add(vbox);
+elm_box_horizontal_set(hbox, EINA_TRUE);
+elm_box_padding_set(hbox, 32, 32);
+evas_object_size_hint_weight_set(hbox, EVAS_HINT_EXPAND, 0);
+evas_object_size_hint_align_set(hbox, EVAS_HINT_FILL, 0);
+evas_object_show(hbox);
+
+
+Change the orientation of the box with ''elm_box_horizontal_set''. To get space
+between the elements of the vbox, set the padding to 32px. To set the item of
+the box not to expand vertically, use ''evas_object_size_hint_weight_set''.
+
+Create the label object, which is an ''elm_label''. Set its text, and do not align
+or expand it.
+
+
+
+Evas_Object *label;
+label = elm_label_add(hbox);
+elm_object_text_set(label, form_items[i]);
+evas_object_size_hint_weight_set(label, 0, 0);
+evas_object_size_hint_align_set(label, 0, 0);
+evas_object_show(label);
+
+
+Create the edit line, which is an ''elm_entry''. Set its text.
+
+
+Evas_Object *edit;
+const char *str;
+
+edit = elm_entry_add(hbox);
+
+//select the good entry
+if(!strcmp(form_items[i], "name :")) str = contact->name;
+else if(!strcmp(form_items[i], "mobile :")) str = contact->mobile;
+else if(!strcmp(form_items[i], "address :")) str = contact->address;
+else if(!strcmp(form_items[i], "email :")) str = contact->email;
+else str = NULL;
+
+elm_object_text_set(edit, str);
+evas_object_size_hint_weight_set(edit, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+evas_object_size_hint_align_set(edit, EVAS_HINT_FILL, EVAS_HINT_FILL);
+evas_object_show(edit);
+
+
+Add the label and the edit inside the horizontal box and add the horizontal
+box to the vertical box.
+
+
+elm_box_pack_end(hbox, label);
+elm_box_pack_end(hbox, edit);
+
+elm_box_pack_end(vbox, hbox);
+
+\\
+//**__The whole Code__ : **//{{/code_c/tutorial/form/form.c}}
diff --git a/public_html/data/pages/develop/legacy/tutorial/genlist/modifications.txt b/public_html/data/pages/develop/legacy/tutorial/genlist/modifications.txt
new file mode 100644
index 00000000..2d354f9a
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/genlist/modifications.txt
@@ -0,0 +1,254 @@
+~~Title: Genlist Modifications~~
+==== Genlist Modifications ====
+
+== Choosing Another Item Style to Add or Remove Parts ==
+
+As mentioned above, the number of parts to fill depends on the item style that
+is chosen when adding a new item. This is simply a matter of setting the right
+value when filling the ''Elm_Genlist_Item_Class'' struct:
+
+
+itc->item_style = "default";
+
+
+The Genlist Widget lists all available item styles:
+ * default
+ * default_style - The text part is a textblock
+ * double_label
+ * icon_top_text_bottom
+ * group_index
+ * one_icon - Only 1 icon at left
+ * end_icon - Only 1 icon at end/right
+ * no_icon - No icon at end/right
+ * full - Only 1 icon, elm.swallow.content, which consumes whole area of genlist item
+
+
+Further customization is achieved by modifying the theme as explained in the
+[[/develop/legacy/program_guide/edje_pg|Edje guide]].
+
+In case the customization is only visual, it is good practice to keep the same
+item style names for new themes. This makes it possible to change theme and
+keep the code the same while also retaining the same overall item placement.
+
+==== Using Item Modes ====
+
+So far the genlist examples have all featured bare lists while the genlist
+widget is able to display trees or even a "group" mode where scrolling keeps
+the item at the top of the widget until another group comes and replaces it.
+
+==Group Mode==
+
+The group mode makes it possible to keep an element visible as long as one of
+its children is visible. This is most useful for "title" items.
+
+Mark some elements as ''ELM_GENLIST_ITEM_GROUP'' and use the returned
+''Elm_Object_Item'' to establish the parent-children relationship when adding the
+children items.
+
+Since there are two kind of items, create two item classes. Give them
+different styles and callback functions. The callback functions are visible in
+the example, they have no functionalities:
+
+
+Elm_Genlist_Item_Class *_itc_child = elm_genlist_item_class_new();
+_itc->item_style = "default_style";
+_itc->func.text_get = _genlist_text_get_size;
+_itc->func.content_get = _genlist_content_get_bg;
+_itc->func.state_get = NULL;
+_itc->func.del = NULL;
+
+Elm_Genlist_Item_Class *_itc_parent = elm_genlist_item_class_new();
+_itc2->item_style = "default_style";
+_itc2->func.text_get = _genlist_text_get_nosize;
+_itc2->func.content_get = _genlist_content_get_icon;
+_itc2->func.state_get = NULL;
+_itc2->func.del = NULL;
+
+
+Then add a group header and follow it with 10 children. This is repeated 10
+times.
+
+The parent has type ''ELM_GENLIST_ITEM_GROUP'' while the children have type
+''ELM_GENLIST_ITEM_NONE''.
+
+The other important point is that the value returned by
+''elm_genlist_item_append()'' is stored in it and then sent to the
+''elm_genlist_item_append()'' call that adds the children. This creates the
+parent-children relationship.
+
+
+for (i = 0; i < 1000; i++)
+ {
+ it = elm_genlist_item_append(list, _itc_parent,
+ (void *)(uintptr_t) (10 * i),
+ NULL,
+ ELM_GENLIST_ITEM_GROUP,
+ NULL,
+ NULL
+ );
+ for (j = 0; j < 10; j++)
+ {
+ elm_genlist_item_append(list, _itc_child,
+ (void *)(uintptr_t) (10 * i + j),
+ it, //parent item
+ ELM_GENLIST_ITEM_NONE,
+ NULL,
+ NULL
+ );
+ }
+ }
+
+
+==Tree Mode==
+
+Like group mode, tree mode uses the parenting relationship with other items.
+Unlike group mode, the child elements are created on-demand when their parent
+is expanded and deleted when it is contracted. This is done by using smart
+callbacks: ''expand,request'', ''expanded'', ''contract,request'', and
+''contracted''. Like any smart callback, they are registered through
+''evas_object_smat_callback_add'' on the genlist object:
+
+
+
+ evas_object_smart_callback_add(list, "expand,request",
+ _tree_item_expand_request, _itc_parent);
+ evas_object_smart_callback_add(list, "expanded", _tree_item_expanded,
+ _itc_child);
+
+ evas_object_smart_callback_add(list, "contract,request",
+ _tree_item_contract_request, _itc_child);
+ evas_object_smart_callback_add(list, "contracted", _tree_item_contracted,
+ NULL);
+
+
+The callbacks ''expand,request'' and ''contract,request'' do only one thing:
+decide whether the element is expanded or contracted. This is done by using
+''elm_genlist_item_expanded_set()'' function; if it changes the expansion
+status of the item, the next callback is called (either ''expanded'' or
+''contracted'' , depending on whether it was an ''expand,request'' or
+''contract,request'' event). A minimal implementation of these callbacks is
+therefore:
+
+
+static void
+_tree_item_expand_request(void *data, Evas_Object *o, void *event_info)
+{
+ Elm_Object_Item *it = (Elm_Object_Item*) event_info;
+
+ elm_genlist_item_item_class_update(it, data);
+
+ elm_genlist_item_expanded_set(it, EINA_TRUE);
+}
+
+
+
+static void
+_tree_item_contract_request(void *data, Evas_Object *o, void *event_info)
+{
+ Elm_Object_Item *it = (Elm_Object_Item*) event_info;
+
+ elm_genlist_item_item_class_update(it, data);
+
+ elm_genlist_item_expanded_set(it, EINA_FALSE);
+}
+
+
+As said above, once the genlist item status is set to ''expanded'', the
+expanded event is triggered and it is the duty of a callback for that event to
+populate the list with the item's children. This relies on the ''parent''
+parameter of functions like ''elm_genlist_item_append()'', like for the group
+mode.
+
+The function below is a callback implementation for the ''expanded'' event. It
+adds items that are built similarly to previous items, the only change is the
+parent parameter which is not NULL. Conveniently, the
+parent''Elm_Object_Item'' and ''Elm_Genlist_Item_Class'' pointers that are passed to the
+''elm_genlist_item_append()'' function are given in the ''event_info'' and
+''data'' callback and need to be cast.
+
+
+static void
+_tree_item_expanded(void *data, Evas_Object *o, void *event_info)
+{
+ Elm_Object_Item *it_parent = (Elm_Object_Item*) event_info;
+ int i_parent = (int)(uintptr_t)elm_object_item_data_get(it_parent);
+ Elm_Object_Item *list = o;
+ Elm_Genlist_Item_Class *itc = data;
+
+ int i;
+ for (i = 0; i < 10; i++)
+ {
+ elm_genlist_item_append(list, itc,
+ (void *)(uintptr_t) (i + i_parent),
+ it_parent,
+ ELM_GENLIST_ITEM_NONE,
+ NULL,
+ NULL
+ );
+ }
+}
+
+
+The following code has the callback function for the ''contracted'' event. It
+imply calls ''elm_genlist_item_subitems_clear()'' to clear all children (including
+their own children if they have any) of the given item. Again, the item that
+is being contracted is available through the ''event_info'' parameter to the
+callback.
+
+
+static void
+_tree_item_contracted(void *data, Evas_Object *o, void *event_info)
+{
+ Elm_Object_Item *it_parent = (Elm_Object_Item*) event_info;
+
+ elm_genlist_item_subitems_clear(it_parent);
+}
+
+
+==Mixing Group and Tree Modes==
+
+A common UI design is to mix group and tree modes. It allows for a tree
+behavior while also keeping the group header item. The EFLs do not do any
+magic here and the way to get such a behavior is to create an item of type
+group, an item of type tree which parent is the group item. Then add the
+callbacks to populate the children of the tree item in the regular way.
+
+=== Using Other APIs ===
+
+==Homogeneous Item Size==
+
+Because of the scroller, the actual height and/or width of the genlist must be
+computed. This means summing the sizes of all the items, the sizes must be
+computed. This obviously has a cost and slows down adding items to the
+genlist.
+
+The ''elm_genlist_homogeneous_set()'' function alleviates this issue by
+assuming all the items are the same size as the first one of the list. It
+speeds up large insertions. However, it may lead to serious graphical issues
+if the items are not actually the same size. Use with care.
+
+==Changing the Item Class of an Item After Its Creation==
+
+Changing the item class of a widget is an easy way to change the appearance
+upon selection or others actions of the user. This is done by calling
+''elm_genlist_item_class_update()'' :
+
+
+static void
+_tree_item_expand_request(void *data, Evas_Object *o, void *event_info)
+{
+ Elm_Object_Item *it = (Elm_Object_Item*) event_info;
+
+ elm_genlist_item_item_class_update(it, data);
+
+ elm_genlist_item_expanded_set(it, EINA_TRUE);
+}
+
+
+==The whole code==
+
+ {{/code_c/tutorial/genlist/modifications_genlist.c}}
diff --git a/public_html/data/pages/develop/legacy/tutorial/genlist/set-up.txt b/public_html/data/pages/develop/legacy/tutorial/genlist/set-up.txt
new file mode 100644
index 00000000..c52d4d6f
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/genlist/set-up.txt
@@ -0,0 +1,234 @@
+~~Title: Genlist Set-up~~
+==== Genlist Set-up ====
+
+=== Creating a Genlist ===
+
+Call ''elm_genlist_add()'' to create a genlist. Then, new entries can be added.
+In this example, the basic windows is created first, then a genlist is added
+to it, and then 100 elements with text and a colored block on each side of
+it.
+
+
+Evas_Object *list = elm_genlist_add(win);
+
+
+=== Adding New Entries ===
+
+Before adding new entries, it is necessary to build a basic item class.
+
+==Building a Basic Item Class==
+
+When adding an item, genlist_item_{append, prepend, insert} function needs
+item class of the item. Given callback parameters are used at retrieving
+{text, content} of added item. Set as NULL if it's not used. If there's no
+available memory, return can be NULL.
+
+The code for the minimal genlist item class is below:
+
+
+Elm_Genlist_Item_Class *_itc = elm_genlist_item_class_new();
+_itc->item_style = "default";
+_itc->func.text_get = NULL;
+_itc->func.content_get = NULL;
+_itc->func.state_get = NULL;
+_itc->func.del = NULL;
+
+
+It creates a simple item class, sets the ''item_style'' to "default" and
+every other field to NULL. However, this leaves out the ''text_get'' and
+''content_get'' fields which are used to add text and an icon to the list
+entry. This is explained in another section.
+
+==Adding the Element==
+
+Once the genlist item class object is created, a new element is added to the
+list by calling ''elm_genlist_item_append()''.
+
+
+elm_genlist_item_append(list,
+ _itc,
+ NULL, // Item data
+ NULL, // Parent item for trees, NULL if none
+ ELM_GENLIST_ITEM_NONE, // Item type; this is the common one
+ NULL, // Callback on selection of the item
+ NULL // Data for that callback function
+);
+
+
+With most parameters as NULL and ''_itc'' having most of its members NULL,
+too, the elements of that list are blank and will not trigger anything when
+selected.
+
+==Text in the List Elements==
+
+Use ''text_get'' field to add text in the items in the
+''Elm_Genlist_Item_Class'' structure.
+
+
+_itc->func.text_get = text_get;
+
+
+These callbacks must have a prototype matching to the following:
+
+
+char * text_get(void *data, Evas_Object *obj, const char *part);
+
+
+This callback returns a C string that is displayed in the part named after the
+''part'' parameter. This callback is called for each user-settable text part
+according to the current theme.
+
+If you are not familiar with the concept of parts in the EFLs, read
+[[/develop/legacy/program_guide/edje/basic_concepts##Writing_Simple_EDC_File|the Write a Simple EDC File]] section.
+
+
+static char *
+_genlist_text_get(void *data, Evas_Object *obj, const char *part)
+{
+ // Check this is text for the part we're expecting
+ if (strcmp(part, "elm.text") == 0)
+ {
+ return strdup("Some text");
+ }
+ else return NULL;
+}
+
+
+
+static char *
+_genlist_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part)
+{
+ if (strcmp(part, "elm.text") == 0)
+ {
+ char *buf = malloc(16);
+ snprintf(buf, 16, "Entry %d.", (int)(uintptr_t)data);
+
+ return buf;
+ }
+ else return NULL;
+}
+
+
+==Evas_Object in the List Elements==
+
+Icons are added in a similar fashion: there is a callback named
+''content_get'' which returns a pointer to an ''Evas_Object'' and is called
+for each part which contents can be set.
+
+
+_itc->func.content_get = content_get;
+
+
+The prototype of the callback must match this one:
+
+
+Evas_Object * content_get(void *data, Evas_Object *obj, const char *part);
+
+
+The only difference with the ''text_get'' callback is that it returns an
+''Evas_Object*'' rather than a ''char *''.
+
+This leads to a fairly simple dummy implementation with colored rectangles in
+the parts that are to be set:
+
+
+static Evas_Object *
+_genlist_content_get(void *data, Evas_Object *obj, const char *part)
+{
+ int i = (int) (uintptr_t) data;
+
+ //the left part
+ if (strcmp(part, "elm.swallow.icon") == 0)
+ {
+ Evas_Object *bg = elm_bg_add(obj);
+ elm_bg_color_set(bg, 255 * cos(i / (double) 10), 0, i % 255);
+
+ return bg;
+ }
+ //the right part
+ else if (strcmp(part, "elm.swallow.end") == 0)
+ {
+ Evas_Object *bg = elm_bg_add(obj);
+ elm_bg_color_set(bg, 0, 255 * sin(i / (double) 10), i % 255);
+
+ return bg;
+ }
+ else return NULL;
+}
+
+
+For the default theme, this displays a red rectangle on the left of each list
+item and a green one on their right.
+
+==Event on Gentlist Items==
+
+Genlist items triggers a callback when clicked. This callback is chosen when
+adding the new item (for example, when calling ''elm_genlist_item_append()''):
+
+
+Elm_Genlist_Item_Class *_itc2 = elm_genlist_item_class_new();
+_itc2->item_style = "group_index";
+_itc2->func.text_get = _genlist_text_get;
+_itc2->func.content_get = _genlist_content_get;
+_itc2->func.state_get = NULL;
+_itc2->func.del = NULL;
+
+elm_genlist_item_append(list,
+ itc,
+ NULL, // item data
+ NULL, // parent item for trees, NULL if none
+ ELM_GENLIST_ITEM_NONE, // item type, other values are used for trees
+ _genlist_selected_cb, // callback on selection of the item
+ _itc2 // data for that callback function
+);
+
+
+This callback adheres to the following prototype:
+
+
+void _contact_selected_cb(void *data, Evas_Object *obj, void *event_info)
+
+
+The implementation below changes the item style of items when they are
+selected:
+
+
+static void
+_genlist_selected_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Elm_Object_Item *it = (Elm_Object_Item*) event_info;
+ Elm_Genlist_Item_Class *itc2 = (Elm_Genlist_Item_Class *)data;
+te
+
+ //change to group index style
+ elm_genlist_item_item_class_update(it, itc2);
+}
+
+\\
+
+
+The whole code: {{/code_c/tutorial/genlist/set-up_genlist.c}}
+
+==== Next Part ====
+
+[[/develop/legacy/tutorial/genlist/modifications|Modifications]]
diff --git a/public_html/data/pages/develop/legacy/tutorial/genlist_tutorial.txt b/public_html/data/pages/develop/legacy/tutorial/genlist_tutorial.txt
new file mode 100644
index 00000000..35b7460a
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/genlist_tutorial.txt
@@ -0,0 +1,43 @@
+~~Title: Genlist Tutorial~~
+==== Genlist Tutorial ====
+
+This tutorial deals with Elementary genlist, a list widget for large sets of
+elements. Its API to populate entries reflects that as it uses callbacks.
+
+Also keep in mind that the same widget handles both flat lists and trees and
+this is obviously seen in the API.
+
+=== Initialize the Application ===
+
+The code below shows a typical Elementary application that creates a window
+entitled "Genlist Basic Tutorial". The genlist goes inside.
+
+
+#include
+
+EAPI_MAIN int
+elm_main(int argc, char **argv)
+{
+ Evas_Object *win;
+
+ win = elm_win_util_standard_add("Genlist", "Genlist Basic Tutorial");
+ elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
+ elm_win_autodel_set(win, EINA_TRUE);
+ //win 400x400 px
+ evas_object_resize(win, 400, 400);
+
+ //GENLIST here
+
+ evas_object_show(win);
+ elm_run();
+ return 0;
+}
+ELM_MAIN()
+
+
+Genlist example :{{ :genlist.png?direct |list}}
+
+=== Table of contents ===
+
+ * [[/develop/legacy/tutorial/genlist/set-up|Set-up]] : {{/code_c/tutorial/genlist/set-up_genlist.c}}
+ * [[/develop/legacy/tutorial/genlist/modifications|Modifications]] : {{/code_c/tutorial/genlist/modifications_genlist.c}}
diff --git a/public_html/data/pages/develop/legacy/tutorial/gl2d/animating_cube.txt b/public_html/data/pages/develop/legacy/tutorial/gl2d/animating_cube.txt
new file mode 100644
index 00000000..7e50c1aa
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/gl2d/animating_cube.txt
@@ -0,0 +1,132 @@
+~~Title: Creating the Cube - GL 2D Tutorial~~
+//**__previous page__: **//[[/develop/legacy/tutorial/gl2d/rendering_cube|Rendering the Cube]].
+==== Animating the Cube ====
+
+''Ecore_Animator'' is used to create an animation.
+
+
+// just need to notify that glview has changed so it can render
+static Eina_Bool
+_anim(void *data)
+{
+ elm_glview_changed_set(data);
+ return EINA_TRUE;
+}
+
+
+Next define the global variables which are used as parameters of the rendering
+process. Add parameters to the application data object that are used to
+control the scaling and the rotation of the cube. To make the cube rotate on
+one axis, take z, and allow the user to interact with the mouse to make the
+cube rotate on the two other axes x and y. In order to figure out whether the
+user is holding the mouse down, add a Boolean variable to have this
+information. Operations such as shader initialization or program compilation
+are not required at each tick of the animation loop. For better performance,
+isolate such task from the repetitive rendering loop. For such purpose, add a
+Boolean variable which tells whether the initialization is already done.
+
+
+struct _GLData
+{
+ GLfloat xangle;
+ GLfloat yangle;
+ GLfloat zangle;
+ Eina_Bool mouse_down : 1;
+ Eina_Bool initialized : 1;
+} GLData;
+
+
+Here are the modifications that must be done to the rendering loop for
+animation.
+
+First, lighten the recurrent rendering process by adding an initialization
+step:
+
+
+if (!gld->initialized)
+ {
+ if (!init_shaders(gld))
+ {
+ printf("Error Initializing Shaders\n");
+ return;
+ }
+
+ //generate the buffers for the vertex positions and colors
+ gl->glGenBuffers(1, &gld->vertexID);
+ gl->glBindBuffer(GL_ARRAY_BUFFER, gld->vertexID);
+ gl->glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
+
+ gl->glGenBuffers(1, &gld->colorID);
+ gl->glBindBuffer(GL_ARRAY_BUFFER, gld->colorID);
+ gl->glBufferData(GL_ARRAY_BUFFER, sizeof(colors), colors, GL_STATIC_DRAW);
+
+ gld->initialized = EINA_TRUE;
+ }
+
+
+Before drawing the vertices, the rotation angle for the model-view matrix must
+be incremented for every tick.
+
+
+customLoadIdentity(gld->model);
+customRotate(gld->model, gld->xangle, gld->yangle, gld->zangle++);
+customMutlMatrix(gld->mvp, gld->view, gld->model);
+
+
+This makes the cube rotate automatically. The next thing is to use the mouse
+to drag the cube around. To do so, add callbacks for mouse events. The first
+callback defines whether the user is holding the mouse down while moving the
+cursor around:
+
+This makes the cube rotate automatically. The next thing is to use the mouse
+to drag the cube around. To do so, add callbacks for mouse events. The first
+callback defines whether the user is holding the mouse down while moving the
+cursor around:
+
+
+static void
+_mouse_down_cb(void *data, Evas *e , Evas_Object *obj , void *event_info)
+{
+ GLData *gld = data;
+ gld->mouse_down = EINA_TRUE;
+}
+
+static void
+_mouse_up_cb(void *data, Evas *e , Evas_Object *obj , void *event_info)
+{
+ GLData *gld = data;
+ gld->mouse_down = EINA_FALSE;
+}
+
+
+When the mouse is down, calculate the new rotation angle with the mouse
+movement along the x and y axis:
+
+
+static void
+_mouse_move_cb(void *data, Evas *e , Evas_Object *obj , void *event_info)
+{
+ Evas_Event_Mouse_Move *ev;
+ ev = (Evas_Event_Mouse_Move *)event_info;
+ GLData *gld = data;
+ float dx = 0, dy = 0;
+
+ if(gld->mouse_down)
+ {
+ dx = ev->cur.canvas.x - ev->prev.canvas.x;
+ dy = ev->cur.canvas.y - ev->prev.canvas.y;
+ gld->xangle += dy;
+ gld->yangle += dx;
+ }
+}
+
+
+Define the mouse events callbacks when creating the image canvas:
+
+
+evas_object_event_callback_add(gl, EVAS_CALLBACK_MOUSE_DOWN, _mouse_down_cb, gld);
+evas_object_event_callback_add(gl, EVAS_CALLBACK_MOUSE_UP, _mouse_up_cb, gld);
+evas_object_event_callback_add(gl, EVAS_CALLBACK_MOUSE_MOVE, _mouse_move_cb, gld);
+
+\\
+//**__next page__: **//[[/develop/legacy/tutorial/gl2d/widget_interaction|Implementing Widget Interaction]]
diff --git a/public_html/data/pages/develop/legacy/tutorial/gl2d/basic_application.txt b/public_html/data/pages/develop/legacy/tutorial/gl2d/basic_application.txt
new file mode 100644
index 00000000..20119113
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/gl2d/basic_application.txt
@@ -0,0 +1,87 @@
+~~Title: Basic Application - GL 2D Tutorial~~
+==== Creating the Basic Application ====
+
+This tutorial demonstrates how to create a multicolored 3D rotating cube using
+OpenGL ES 2.0 API provided by GLView library. Several concepts are explained,
+such as the cube geometry, the initialization phase of the model, the
+adjustment of this very model frame by frame, and the way to design the OpenGL
+ES rendering loop.
+
+First create a basic application as explained in the Basic application
+tutorial. This provides a basic UI application skeleton which already makes
+available the window object that contains the GLView canvas. Here an example
+below :
+
+
+#include
+#include
+#include
+
+EAPI_MAIN int
+elm_main(int argc, char **argv)
+{
+ Evas_Object *win, *box, *gl;
+ Ecore_Animator *ani;
+ elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
+ win = elm_win_util_standard_add("glview simple", "GLView Simple");
+ elm_win_autodel_set(win, EINA_TRUE);
+
+ evas_object_resize(win, 320, 480);
+ evas_object_show(win);
+ // run the mainloop and process events and callbacks
+ elm_run();
+ elm_shutdown();
+ return 0;
+}
+ELM_MAIN()
+
+
+=== OpenGL ES Canvas ===
+
+To develop a GL application, you have to call
+''elm_config_accel_preference_set()'' before creating a window which makes an
+application to use GPU.
+
+
+elm_config_accel_preference_set("opengl");
+
+
+To call GL functions, you can get the Evas_GL instance from
+''elm_glview_gl_api_get'' function, then you can call the OpenGL ES function
+with the instance.
+
+
+gl = elm_glview_add(win);
+Evas_GL_API *glapi = elm_glview_gl_api_get(gl);
+evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
+evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+
+The next thing to do is to set the GLView mode.
+elm_glview_mode_set(Evas_Object *obj, Elm_GLView_Mode mode) supports alpha,
+depth, stencil, MSAA, and client_side_rotation.
+
+
+// mode is simply for supporting alpha, depth buffering, and stencil
+// buffering.
+elm_glview_mode_set(gl, ELM_GLVIEW_ALPHA | ELM_GLVIEW_DEPTH);
+
+
+To set up callbacks:
+
+ // initialize callback function gets registered here
+ elm_glview_init_func_set(gl, _init_gl);
+ // delete callback function gets registered here
+ elm_glview_del_func_set(gl, _del_gl);
+ elm_glview_resize_func_set(gl, _resize_gl);
+ elm_glview_render_func_set(gl, _draw_gl);
+ ani = ecore_animator_add(_anim, gl);
+
+\\
+| Callback for initialisation | ''_init_gl'' | The initialization callback is called when the GLView is first created, after a valid OpenGL ES context and surface have been created. This is called from the main loop, just as the 3 other callbacks. |
+| Callback for resizing | ''_resize_gl'' | The resize callback is called whenever the GLView widget is resized and depends on policy set. A common action to take here is to reset the viewport. \\ ''elm_glview_resize_policy_set(gl, ELM_GLVIEW_RESIZE_POLICY_RECREATE)'' \\ resize policy tells glview what to do with the surface when it resizes. ELM_GLVIEW_RESIZE_POLICY_RECREATE will tell it to destroy the current surface and recreate it to the new size |
+| Callback for drawing | ''_draw_gl'' | The drawing callback is called whenever a new frame has to be drawn. The exact moment when this function is called depends on the policy set when calling. \\ ''elm_glview_render_policy_set(gl, ELM_GLVIEW_RENDER_POLICY_ON_DEMAND)'' \\ Another policy is ELM_GLVIEW_POLICY_ALWAYS, which requests render always even when it is not visible. So on demand policy is probably what you are looking for. The application can now draw anything using GL primitives when this callback is triggered. All draw operations are restricted to the surface of the GLView object previously created. Here it covers the whole window. |
+| Callback for deleting | ''_del_gl'' | The delete callback is triggered when the GLView is being destroyed, from the main loop, and no other callback can be called on the same object afterwards. |
+| Add an animator | ''_anim_gl'' | The application above is technically working but the scene does not get updated unless the object is marked as such. Games might want to use an animator to have a regular update of the scene. \\ Any other event can be used to refresh the view, for example user input if the view needs to be updated. |
+
+//**__next page__: **//[[/develop/legacy/tutorial/gl2d/creating_cube|Creating the Cube]]
diff --git a/public_html/data/pages/develop/legacy/tutorial/gl2d/creating_cube.txt b/public_html/data/pages/develop/legacy/tutorial/gl2d/creating_cube.txt
new file mode 100644
index 00000000..b9625ac2
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/gl2d/creating_cube.txt
@@ -0,0 +1,128 @@
+~~Title: Creating the Cube - GL 2D Tutorial~~
+//**__previous page__: **//[[/develop/legacy/tutorial/gl2d/basic_application|Creating the
+Basic Application]].
+
+==== Creating the Cube ====
+
+Creating and coloring the cube can be separated into two distinct tasks:
+define the vertices and then add the colors to the faces.
+
+{{ :cube.png }}
+
+Declare an array that stores the vertices of the cube in order to make it
+look as the drawing above.
+
+
+static const float vertices[] =
+{
+ // Front
+ -0.5f, 0.5f, 0.5f,
+ -0.5f, -0.5f, 0.5f,
+ 0.5f, 0.5f, 0.5f,
+ 0.5f, 0.5f, 0.5f,
+ -0.5f, -0.5f, 0.5f,
+ 0.5f, -0.5f, 0.5f,
+ // Right
+ 0.5f, 0.5f, 0.5f,
+ 0.5f, -0.5f, 0.5f,
+ 0.5f, 0.5f, -0.5f,
+ 0.5f, 0.5f, -0.5f,
+ 0.5f, -0.5f, 0.5f,
+ 0.5f, -0.5f, -0.5f,
+ // Back
+ 0.5f, 0.5f, -0.5f,
+ 0.5f, -0.5f, -0.5f,
+ -0.5f, 0.5f, -0.5f,
+ -0.5f, 0.5f, -0.5f,
+ 0.5f, -0.5f, -0.5f,
+ -0.5f, -0.5f, -0.5f,
+ // Left
+ -0.5f, 0.5f, -0.5f,
+ -0.5f, -0.5f, -0.5f,
+ -0.5f, 0.5f, 0.5f,
+ -0.5f, 0.5f, 0.5f,
+ -0.5f, -0.5f, -0.5f,
+ -0.5f, -0.5f, 0.5f,
+ // Top
+ -0.5f, 0.5f, -0.5f,
+ -0.5f, 0.5f, 0.5f,
+ 0.5f, 0.5f, -0.5f,
+ 0.5f, 0.5f, -0.5f,
+ -0.5f, 0.5f, 0.5f,
+ 0.5f, 0.5f, 0.5f,
+ // Bottom
+ -0.5f, -0.5f, 0.5f,
+ -0.5f, -0.5f, -0.5f,
+ 0.5f, -0.5f, 0.5f,
+ 0.5f, -0.5f, 0.5f,
+ -0.5f, -0.5f, -0.5f,
+ 0.5f, -0.5f, -0.5f
+};
+
+
+{{ :cube_matrix.png }}
+
+Each triangle is defined with three point coordinates, three vertices for each
+triangle, two triangles per face and six faces, so there are 36 vertices is
+total.
+
+The next step is to specify a color for each face of the cube. Each color is
+represented in the RGBA format for the corresponding vertex, where each
+component is ranged from 0 to 1 where 1 is the maximum value. For example, in
+32-byte color space, the RGB color of (16, 147, 237) is translated as (0.0625,
+0.57421875, 0.92578125). The A of RGBA stands for the alpha channel, which
+represents the transparency of the color. All colors defined in this tutorial
+are opaque to make it simpler, so each alpha value is set to 1.0. In this
+example, different variants of blue are used for the faces of the cube.
+
+Specify the colors of the cube into an array dedicated to this vertex:
+
+
+static const float colors[] =
+{
+ // Front
+ 0.0625f, 0.57421875f, 0.92578125f, 1.0f,
+ 0.0625f, 0.57421875f, 0.92578125f, 1.0f,
+ 0.0625f, 0.57421875f, 0.92578125f, 1.0f,
+ 0.0625f, 0.57421875f, 0.92578125f, 1.0f,
+ 0.0625f, 0.57421875f, 0.92578125f, 1.0f,
+ 0.0625f, 0.57421875f, 0.92578125f, 1.0f,
+ // Right
+ 0.29296875f, 0.66796875f, 0.92578125f, 1.0f,
+ 0.29296875f, 0.66796875f, 0.92578125f, 1.0f,
+ 0.29296875f, 0.66796875f, 0.92578125f, 1.0f,
+ 0.29296875f, 0.66796875f, 0.92578125f, 1.0f,
+ 0.29296875f, 0.66796875f, 0.92578125f, 1.0f,
+ 0.29296875f, 0.66796875f, 0.92578125f, 1.0f,
+ // Back
+ 0.52734375f, 0.76171875f, 0.92578125f, 1.0f,
+ 0.52734375f, 0.76171875f, 0.92578125f, 1.0f,
+ 0.52734375f, 0.76171875f, 0.92578125f, 1.0f,
+ 0.52734375f, 0.76171875f, 0.92578125f, 1.0f,
+ 0.52734375f, 0.76171875f, 0.92578125f, 1.0f,
+ 0.52734375f, 0.76171875f, 0.92578125f, 1.0f,
+ // Left
+ 0.0625f, 0.57421875f, 0.92578125f, 1.0f,
+ 0.0625f, 0.57421875f, 0.92578125f, 1.0f,
+ 0.0625f, 0.57421875f, 0.92578125f, 1.0f,
+ 0.0625f, 0.57421875f, 0.92578125f, 1.0f,
+ 0.0625f, 0.57421875f, 0.92578125f, 1.0f,
+ 0.0625f, 0.57421875f, 0.92578125f, 1.0f,
+ // Top
+ 0.29296875f, 0.66796875f, 0.92578125f, 1.0f,
+ 0.29296875f, 0.66796875f, 0.92578125f, 1.0f,
+ 0.29296875f, 0.66796875f, 0.92578125f, 1.0f,
+ 0.29296875f, 0.66796875f, 0.92578125f, 1.0f,
+ 0.29296875f, 0.66796875f, 0.92578125f, 1.0f,
+ 0.29296875f, 0.66796875f, 0.92578125f, 1.0f,
+ // Bottom
+ 0.52734375f, 0.76171875f, 0.92578125f, 1.0f,
+ 0.52734375f, 0.76171875f, 0.92578125f, 1.0f,
+ 0.52734375f, 0.76171875f, 0.92578125f, 1.0f,
+ 0.52734375f, 0.76171875f, 0.92578125f, 1.0f,
+ 0.52734375f, 0.76171875f, 0.92578125f, 1.0f,
+ 0.52734375f, 0.76171875f, 0.92578125f, 1.0f
+};
+
+
+//**__next page__: **//[[/develop/legacy/tutorial/gl2d/drawing_cube|Drawing the Cube with GLView]]
diff --git a/public_html/data/pages/develop/legacy/tutorial/gl2d/drawing_cube.txt b/public_html/data/pages/develop/legacy/tutorial/gl2d/drawing_cube.txt
new file mode 100644
index 00000000..a8adbcf1
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/gl2d/drawing_cube.txt
@@ -0,0 +1,415 @@
+~~Title: Drawing the Cube - GL 2D Tutorial~~
+//**__previous page__: **//[[/develop/legacy/tutorial/gl2d/creating_cube|Creating the Cube]]
+==== Drawing the Cube with GLView ====
+
+=== Mathematical Functions for Matrices ===
+
+After the model is initialized, create functionality to manipulate the scene.
+OpenGL ES 2.0 provided by GLView requires more preliminary work that the
+previous version of the library, but gives more power and flexibility,
+although our example does not take much benefit.
+
+First, declare additional global variables for specific OpenGL ES 2.0 tasks: a
+program object, an identifier for the vertices buffer and
+another for the colors. Add also three variables to ensure the
+connection with the shader language:
+
+ * ''mvpLoc'' is an identifier for model-view-projection matrix.
+ * ''positionLoc'' is an identifier for the vertex position.
+ * ''colorLoc'' is an identifier for the vertex color.
+
+Declare all these variables in the ''GLData'' object:
+
+
+struct _GLData
+{
+ GLuint program;
+ GLuint vtx_shader;
+ GLuint fgmt_shader;
+ GLuint vbo;
+ GLuint vertexID;
+ GLuint colorID;
+ GLuint mvpLoc;
+ GLuint positionLoc;
+ GLuint colorLoc;
+}
+
+
+Since OpenGL ES 2.0, some functions for matrix transformations have been
+removed. Define three matrix functions to use: projection matrix, model-view
+matrix, and a combination of these allows you to perform any transformations
+on the initial vertices matrix.
+
+== Matrix Multiplication Function (glMultMatrix) ==
+
+First, define a function that is able to return the inner product of two
+matrices. This function reproduces the behavior of ''glMultMatrix()''
+available in OpenGL ES 1.1. This function is very useful since almost every
+matrix transformation can be translated as multiplications of matrices.
+
+The function takes three arguments, one is for the result and the other 2
+matrices are operands:
+
+
+static void
+customMutlMatrix(float matrix[16], const float matrix0[16], const float matrix1[16])
+{
+ int i, row, column;
+ float temp[16];
+ for (column = 0; column < 4; column++)
+ {
+ for (row = 0; row < 4; row++)
+ {
+ temp[column * 4 + row] = 0.0f;
+ for (i = 0; i < 4; i++)
+ temp[column * 4 + row] += matrix0[i * 4 + row] * matrix1[column * 4 + i];
+ }
+ }
+ for (i = 0; i < 16; i++)
+ matrix[i) = temp[i];
+}
+
+
+== Matrix Identity Function (glLoadIdentity) ==
+
+Implement a function equivalent to ''glLoadIdentity()'' that replaces the current
+matrix with the identity matrix:
+
+
+const float unit_matrix[] =
+{
+ 1.0f, 0.0f, 0.0f, 0.0f,
+ 0.0f, 1.0f, 0.0f, 0.0f,
+ 0.0f, 0.0f, 1.0f, 0.0f,
+ 0.0f, 0.0f, 0.0f, 1.0f
+};
+
+static void
+customLoadIdentity(float matrix[16])
+{
+ for (int i = 0; i < 16; i++)
+ matrix[i] = unit_matrix[i];
+}
+
+
+== Matrix Projection Function (glFrustum) ==
+
+Since ''glFrustum'' has been depreciated, implement a function that produces
+perspective projection matrices that are used to transform from eye coordinate
+space to clip coordinate space. This matrix projects a portion of the space
+(the "fustum") to your screen. Many caveats apply (normalized device
+coordinates, perspective divide, etc), but that is the idea:
+
+
+static int
+customFrustum(float result[16], const float left, const float right, const float bottom, const float top, const float near, const float far)
+{
+ if ((right - left) == 0.0f || (top - bottom) == 0.0f || (far - near) == 0.0f) return 0;
+
+ result[0] = 2.0f / (right - left);
+ result[1] = 0.0f;
+ result[2] = 0.0f;
+ result[3] = 0.0f;
+
+ result[4] = 0.0f;
+ result[5] = 2.0f / (top - bottom);
+ result[6] = 0.0f;
+ result[7] = 0.0f;
+
+ result[8] = 0.0f;
+ result[9] = 0.0f;
+ result[10] = -2.0f / (far - near);
+ result[11] = 0.0f;
+
+ result[12] = -(right + left) / (right - left);
+ result[13] = -(top + bottom) / (top - bottom);
+ result[14] = -(far + near) / (far - near);
+ result[15] = 1.0f;
+
+ return 1;
+}
+
+
+== Matrix Scaling Function (glScale) ==
+
+Depreciated ''glScale()'' function represents a non-uniform scaling along the x,
+y, and z axes. The three parameters indicate the desired scale factor along
+each of the three axes:
+
+
+const float scale_matrix[] =
+{
+ x, 0.0f, 0.0f, 0.0f,
+ 0.0f, y, 0.0f, 0.0f,
+ 0.0f, 0.0f, z, 0.0f,
+ 0.0f, 0.0f, 0.0f, 1.0f
+}
+
+
+Here is the implementation of the matrix scaling function:
+
+
+static void
+customScale(float matrix[16], const float sx, const float sy, const float sz)
+{
+ matrix[0] *= sx;
+ matrix[1] *= sx;
+ matrix[2] *= sx;
+ matrix[3] *= sx;
+
+ matrix[4] *= sy;
+ matrix[5] *= sy;
+ matrix[6] *= sy;
+ matrix[7] *= sy;
+
+ matrix[8] *= sz;
+ matrix[9] *= sz;
+ matrix[10] *= sz;
+ matrix[11] *= sz;
+}
+
+
+== Matrix Rotation Function (glRotate) ==
+
+Define a function to represent a rotation by the vector (x y z). The current
+matrix is multiplied by a rotation matrix:
+
+
+static void
+customRotate(float matrix[16], const float anglex, const float angley, const float anglez)
+{
+ const float pi = 3.141592f;
+ float temp[16];
+ float rz = 2.0f * pi * anglez / 360.0f;
+ float rx = 2.0f * pi * anglex / 360.0f;
+ float ry = 2.0f * pi * angley / 360.0f;
+ float sy = sinf(ry);
+ float cy = cosf(ry);
+ float sx = sinf(rx);
+ float cx = cosf(rx);
+ float sz = sinf(rz);
+ float cz = cosf(rz);
+
+ customLoadIdentity(temp);
+
+ temp[0] = cy * cz - sx * sy * sz;
+ temp[1] = cz * sx * sy + cy * sz;
+ temp[2] = -cx * sy;
+
+ temp[4] = -cx * sz;
+ temp[5] = cx * cz;
+ temp[6] = sx;
+
+ temp[8] = cz * sy + cy * sx * sz;
+ temp[9] = -cy * cz * sx + sy * sz;
+ temp[10] = cx * cy;
+
+ customMutlMatrix(matrix, matrix, temp);
+}
+
+
+=== Create the Shader ===
+
+Define the source for the shader using a ''GLbyte'' array. First comes out vertex
+shader, which is used to a medium precision for float values. Then build a
+uniform matrix with dimensions 4x4 intended to hold the model-view-projection
+matrix. Also create two vector attributes which have 4 components for the
+vertex position and the color. This varying variable v_color can be accessed
+from the fragment shader. In the main function of the shader, initialize the
+position of the current vertex, gl_Position, with the product of the vertex
+position and the model-view-projection matrix, in order to normalize the
+position for the target screen. The pixel color is calculated by the varying
+variable from the vertex shader.
+
+In the fragment shader, declare a varying variable, then set the color of the
+pixel with this interpolated color.
+
+
+GLbyte vertex_shader[] =
+ "#ifdef GL_ES\n"
+ "precision mediump float;\n"
+ "#endif\n"
+ "attribute vec4 a_position;\n"
+ "attribute vec4 a_color;\n"
+ "uniform mat4 u_mvp_mat;\n"
+ "varying vec4 v_color;\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = u_mvp_mat*a_position;\n"
+ " v_color = a_color;\n"
+ "}";
+GLbyte fragment_shader[] =
+ "#ifdef GL_ES\n"
+ "precision mediump float;\n"
+ "#endif\n"
+ "varying vec4 v_color;\n"
+ "void main()\n"
+ "{\n"
+ " gl_FragColor = v_color;\n"
+ "}";
+
+
+Create the shaders, attach the source code that is just defined and compile
+the program object:
+
+
+static int
+init_shaders(GLData *gld)
+{
+ Evas_GL_API *gl = gld->glapi;
+
+ GLbyte vertex_shader[] =
+ "#ifdef GL_ES\n"
+ "precision mediump float;\n"
+ "#endif\n"
+ "attribute vec4 a_position;\n"
+ "attribute vec4 a_color;\n"
+ "uniform mat4 u_mvp_mat;\n"
+ "varying vec4 v_color;\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = u_mvp_mat*a_position;\n"
+ " v_color = a_color;\n"
+ "}";
+ GLbyte fragment_shader[] =
+ "#ifdef GL_ES\n"
+ "precision mediump float;\n"
+ "#endif\n"
+ "varying vec4 v_color;\n"
+ "void main()\n"
+ "{\n"
+ " gl_FragColor = v_color;\n"
+ "}";
+
+ GLint compiled;
+ const char *p;
+
+ /*vertex_shader*/
+ p = vertex_shader;
+ gld->vtx_shader = gl->glCreateShader(GL_VERTEX_SHADER);
+ gl->glShaderSource(gld->vtx_shader, 1, &p, NULL); //get vertex_shader source
+ gl->glCompileShader(gld->vtx_shader); //compile
+ //get compile status
+ gl->glGetShaderiv(gld->vtx_shader, GL_COMPILE_STATUS, &compiled);
+ //if NULL: error
+ if (!compiled)
+ {
+ GLint info_len = 0;
+ gl->glGetShaderiv(gld->vtx_shader, GL_INFO_LOG_LENGTH, &info_len);
+ if (info_len > 1)
+ {
+ char* info_log = malloc(sizeof(char) * info_len);
+ gl->glGetShaderInfoLog(gld->vtx_shader, info_len, NULL, info_log);
+ printf("Error compiling shader:\n%s\n======\n%s\n======\n", info_log, p);
+ free(info_log);
+ }
+ gl->glDeleteShader(gld->vtx_shader);
+ }
+
+ /*fragment_shader*/
+ p = fragment_shader;
+ gld->fgmt_shader = gl->glCreateShader(GL_FRAGMENT_SHADER);
+ gl->glShaderSource(gld->fgmt_shader, 1, &p, NULL);
+ gl->glCompileShader(gld->fgmt_shader);
+ //get compile status
+ gl->glGetShaderiv(gld->fgmt_shader, GL_COMPILE_STATUS, &compiled);
+ //if NULL: error
+ if (!compiled)
+ {
+ GLint info_len = 0;
+ gl->glGetShaderiv(gld->fgmt_shader, GL_INFO_LOG_LENGTH, &info_len);
+ if (info_len > 1)
+ {
+ char* info_log = malloc(sizeof(char) * info_len);
+ gl->glGetShaderInfoLog(gld->fgmt_shader, info_len, NULL, info_log);
+ printf("Error compiling shader:\n%s\n======\n%s\n======\n", info_log, p);
+ free(info_log);
+ }
+ gl->glDeleteShader(gld->fgmt_shader);
+ }
+
+
+Once the shaders are ready, instantiate the program object and link the
+shaders. If the linking succeeds, you can destroy the shaders afterwards
+(using ''glDeleteShader''). Since they are inside the program object, so it is
+pointless to keep them in memory.
+
+
+ gld->program = gl->glCreateProgram();
+
+ GLint linked;
+ // Load the vertex/fragment shaders
+ gl->glAttachShader(gld->program, gld->vtx_shader);
+ gl->glAttachShader(gld->program, gld->fgmt_shader);
+
+ gl->glDeleteShader(gld->vtx_shader);
+ gl->glDeleteShader(gld->fgmt_shader);
+
+ gl->glBindAttribLocation(gld->program, 0, "a_position");
+ gl->glLinkProgram(gld->program);
+ gl->glGetProgramiv(gld->program, GL_LINK_STATUS, &linked);
+ if (!linked)
+ {
+ GLint info_len = 0;
+ gl->glGetProgramiv(gld->program, GL_INFO_LOG_LENGTH, &info_len);
+ if (info_len > 1)
+ {
+ char* info_log = malloc(sizeof(char) * info_len);
+ gl->glGetProgramInfoLog(gld->program, info_len, NULL, info_log);
+ printf("Error linking program:\n%s\n", info_log);
+ free(info_log);
+ }
+ gl->glDeleteProgram(gld->program);
+ return 0;
+ }
+
+
+For shader process, create identifiers for the attribute variables used in the
+shader program. First create an identifier for the model-view-projection
+matrix, another one for the current vertex position, and a last one for the
+vertex color.
+
+
+ gld->mvpLoc = gl->glGetUniformLocation(gld->program, "u_mvp_mat");
+ gld->positionLoc = gl->glGetAttribLocation(gld->program, "a_position");
+ gld->colorLoc = gl->glGetAttribLocation(gld->program, "a_color");
+
+
+Finally, generate the buffers for the vertex positions and colors.
+
+
+ gl->glGenBuffers(1, &gld->vertexID);
+ gl->glBindBuffer(GL_ARRAY_BUFFER, gld->vertexID);
+ gl->glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
+
+ gl->glGenBuffers(1, &gld->colorID);
+ gl->glBindBuffer(GL_ARRAY_BUFFER, gld->colorID);
+ gl->glBufferData(GL_ARRAY_BUFFER, sizeof(colors), colors, GL_STATIC_DRAW);
+
+ gld->initialized = EINA_TRUE;
+
+
+Allocate memory for the matrix and load a unit matrix into it. Then define the
+value that is used in order to build the perspective projection matrix. The
+''customFrustum()'' function is used for it. Multiply this resulting matrix
+with a resizing matrix, so the model is correctly adjusted to the screen.
+
+
+float aspect;
+
+elm_glview_size_get(obj, &w, &h);
+customLoadIdentity(gld->view);
+
+if (w > h)
+ {
+ aspect = (float) w / h;
+ customFrustum(gld->view, -1.0 * aspect, 1.0 * aspect, -1.0, 1.0, -1.0, 1.0);
+ }
+else
+ {
+ aspect = (float) h / w;
+ customFrustum(gld->view, -1.0, 1.0, -1.0 * aspect, 1.0 * aspect, -1.0, 1.0);
+ }
+
+\\
+//**__next page__: **//[[/develop/legacy/tutorial/gl2d/rendering_cube|Rendering the Cube]]
diff --git a/public_html/data/pages/develop/legacy/tutorial/gl2d/effects.txt b/public_html/data/pages/develop/legacy/tutorial/gl2d/effects.txt
new file mode 100644
index 00000000..ce086a03
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/gl2d/effects.txt
@@ -0,0 +1,53 @@
+~~Title: Implementing Effects - GL 2D Tutorial~~
+//**__previous page__: **//[[/develop/legacy/tutorial/gl2d/widget_interaction|Implementing Widget Interaction]]
+==== Implementing Effects ====
+
+Create a button that resets the scene by putting the background color to black
+and makes the cube bounce back to its original scale. Add the button to the
+GUI:
+
+
+Evas_Object *btn_reset;
+btn_reset = elm_button_add(inner_box);
+elm_object_text_set(btn_reset, "Reset");
+evas_object_smart_callback_add(btn_reset, "clicked", btn_reset_cb, gld);
+evas_object_size_hint_align_set(btn_reset, EVAS_HINT_FILL, 0);
+elm_box_pack_end(inner_box, btn_reset);
+evas_object_show(btn_reset);
+
+
+Declare a callback that resets the variables that have influence on the
+drawing of the cube. In addition, animate the sliders when they get back to
+their original position using ''Ecore_Animator''.
+
+
+static Eina_Bool
+animate_reset_cb(void *data, double pos)
+{
+ GLData *gld = data;
+ double frame = pos;
+ float x, y, z;
+
+ frame = ecore_animator_pos_map(pos, ECORE_POS_MAP_BOUNCE, 1.8, 7);
+ x = gld->slx_value * (1 - frame) + 0.75 * frame;
+ y = gld->sly_value * (1 - frame) + 0.75 * frame;
+ z = gld->slz_value * (1 - frame) + 0.75 * frame;
+
+ elm_slider_value_set(gld->slx, x);
+ elm_slider_value_set(gld->sly, y);
+ elm_slider_value_set(gld->slz, z);
+
+ return EINA_TRUE;
+}
+
+static void btn_reset_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ GLData *gld = data;
+ gld->slx_value = elm_slider_value_get(gld->slx);
+ gld->sly_value = elm_slider_value_get(gld->sly);
+ gld->slz_value = elm_slider_value_get(gld->slz);
+ ecore_animator_timeline_add(1, animate_reset_cb, gld);
+}
+
+\\
+//**__The whole code__: **//{{ code_c/tutorial/gl2d/gl_2d.c }}
diff --git a/public_html/data/pages/develop/legacy/tutorial/gl2d/rendering_cube.txt b/public_html/data/pages/develop/legacy/tutorial/gl2d/rendering_cube.txt
new file mode 100644
index 00000000..0633f2f8
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/gl2d/rendering_cube.txt
@@ -0,0 +1,55 @@
+~~Title: Rendering the Cube - GL 2D Tutorial~~
+//**__previous page__: **//[[/develop/legacy/tutorial/gl2d/drawing_cube|Drawing the Cube with GLView]]
+==== Rendering the Cube ====
+
+The viewport is set at 0,0 corresponding to the bottom left edge of the
+window, and the height and width of the GL surface. Clear the depth and the
+color buffers to the values that were selected during initialization. Then
+call the ''glUseProgram()'' function in order to trigger the shader program.
+
+In ''draw_gl'' callback :
+
+
+gl->glViewport(0, 0, w, h);
+gl->glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+gl->glUseProgram(gld->program);
+
+
+Also bind the position and color identifiers to the buffers defined above.
+
+
+gl->glEnableVertexAttribArray(gld->positionLoc);
+gl->glBindBuffer(GL_ARRAY_BUFFER, gld->vertexID);
+gl->glVertexAttribPointer(gld->positionLoc, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), 0);
+
+gl->glEnableVertexAttribArray(gld->colorLoc);
+gl->glBindBuffer(GL_ARRAY_BUFFER, gld->colorID);
+gl->glVertexAttribPointer(gld->colorLoc, 4, GL_FLOAT, GL_FALSE, 4 * sizeof(float), 0);
+
+
+After this, initialize and calculate the transformation matrix of the
+model-view matrix by calling the ''customRotate()'' function. This makes the cube
+view rotate a little for a better perspective. Once the model-view matrix is
+ready to display, multiply the projection matrix with the model-view matrix.
+
+
+customLoadIdentity(gld->model);
+customRotate(gld->model, gld->xangle, gld->yangle, gld->zangle);
+customMutlMatrix(gld->mvp, gld->view, gld->model);
+
+
+Then load the model-view-projection matrix into the shader and call
+''glDrawArrays()'' to draw the model.
+
+
+gl->glUniformMatrix4fv(gld->mvpLoc, 1, GL_FALSE, gld->mvp);
+gl->glDrawArrays(GL_TRIANGLES, 0, 36);
+gl->glFlush();
+
+
+You now are the proud owner of a nice cube!
+
+{{ :gl_cube.png?500 }}
+\\
+//**__next page__: **//[[/develop/legacy/tutorial/gl2d/animating_cube|Animating the Cube]]
diff --git a/public_html/data/pages/develop/legacy/tutorial/gl2d/widget_interaction.txt b/public_html/data/pages/develop/legacy/tutorial/gl2d/widget_interaction.txt
new file mode 100644
index 00000000..62b794c3
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/gl2d/widget_interaction.txt
@@ -0,0 +1,74 @@
+~~Title: Widget Interaction - GL 2D Tutorial~~
+//**__previous page__: **//[[/develop/legacy/tutorial/gl2d/animating_cube|Animating the Cube]]
+==== Implementing Widget Interaction ====
+
+Consider using widget to control some aspects of the rendering. For example,
+use some sliders to control the shape of the cube. Declare 3 sliders to play
+with the scaling coordinates of the cube.
+
+struct _GLData
+{
+ Evas_Object *slx;
+ Evas_Object *sly;
+ Evas_Object *slz;
+}
+
+When rendering the GUI, build and show the sliders. Those accept values in a
+range from 0.0 to 1.5 and control the scaling of each axis of the cube.
+
+
+// Slider for X-axis scale
+gld->slx = elm_slider_add(inner_box);
+evas_object_size_hint_align_set(gld->slx, EVAS_HINT_FILL, 0);
+elm_slider_horizontal_set(gld->slx, EINA_TRUE);
+elm_slider_unit_format_set(gld->slx, "%1.2f units");
+elm_slider_indicator_format_set(gld->slx, "%1.2f units");
+elm_slider_indicator_show_set(gld->slx, EINA_TRUE);
+elm_slider_min_max_set(gld->slx, 0, 1.5);
+elm_slider_value_set(gld->slx, 0.75);
+evas_object_color_set(gld->slx, 0.0, 0.0, 120, 255);
+elm_box_pack_end(inner_box, gld->slx);
+evas_object_show(gld->slx);
+
+// Slider for Y-axis scale
+gld->sly = elm_slider_add(inner_box);
+evas_object_size_hint_align_set(gld->sly, EVAS_HINT_FILL, 0);
+elm_slider_horizontal_set(gld->sly, EINA_TRUE);
+elm_slider_unit_format_set(gld->sly, "%1.2f units");
+elm_slider_indicator_format_set(gld->sly, "%1.2f units");
+elm_slider_indicator_show_set(gld->sly, EINA_TRUE);
+elm_slider_min_max_set(gld->sly, 0, 1.5);
+elm_slider_value_set(gld->sly, 0.75);
+evas_object_color_set(gld->sly, 0.0, 0.0, 120, 255);
+elm_box_pack_end(inner_box, gld->sly);
+evas_object_show(gld->sly);
+
+// Slider for Z-axis scale
+gld->slz = elm_slider_add(inner_box);
+evas_object_size_hint_align_set(gld->slz, EVAS_HINT_FILL, 0);
+elm_slider_horizontal_set(gld->slz, EINA_TRUE);
+elm_slider_unit_format_set(gld->slz, "%1.2f units");
+elm_slider_indicator_format_set(gld->slz, "%1.2f units");
+elm_slider_indicator_show_set(gld->slz, EINA_TRUE);
+elm_slider_min_max_set(gld->slz, 0, 1.5);
+elm_slider_value_set(gld->slz, 0.75);
+evas_object_color_set(gld->slz, 0.0, 0.0, 120, 255);
+elm_box_pack_end(inner_box, gld->slz);
+evas_object_show(gld->slz);
+
+
+Then use the actual the values of sliders and pass them to the scaling function in
+the rendering loop, ''_draw_gl'':
+
+
+double scalex = elm_slider_value_get(gld->slx);
+double scaley = elm_slider_value_get(gld->sly);
+double scalez = elm_slider_value_get(gld->slz);
+
+customLoadIdentity(gld->model);
+customRotate(gld->model, gld->xangle, gld->yangle, gld->zangle++);
+customScale(gld->model, scalex, scaley, scalez);
+customMutlMatrix(gld->mvp, gld->view, gld->model);
+
+\\
+//**__next page__: **//[[/develop/legacy/tutorial/gl2d/effects|Implementing Effects]]
diff --git a/public_html/data/pages/develop/legacy/tutorial/gl_2d_tutorial.txt b/public_html/data/pages/develop/legacy/tutorial/gl_2d_tutorial.txt
new file mode 100644
index 00000000..91cb6ca7
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/gl_2d_tutorial.txt
@@ -0,0 +1,19 @@
+~~Title: GL 2D Tutorial~~
+==== GL 2D Tutorial ====
+
+This tutorial demonstrates how you can handle OpenGL ES graphics with the
+GLView widget and EvasGL.
+
+=== Table of Contents ===
+
+ * [[/develop/legacy/tutorial/gl2d/basic_application|Creating the Basic Application]]
+ * [[/develop/legacy/tutorial/gl2d/creating_cube|Creating the Cube]]
+ * [[/develop/legacy/tutorial/gl2d/drawing_cube|Drawing the Cube with GLView]]
+ * [[/develop/legacy/tutorial/gl2d/rendering_cube|Rendering the Cube]]
+ * [[/develop/legacy/tutorial/gl2d/animating_cube|Animating the Cube]]
+ * [[/develop/legacy/tutorial/gl2d/widget_interaction|Implementing Widget Interaction]]
+ * [[/develop/legacy/tutorial/gl2d/effects|Implementing Effects]]
+
+Gl 2D example: {{ :gl_cube_example.png?600 }}
+
+//**__The whole code__: **//{{ code_c/tutorial/gl2d/gl_2d.c }}
diff --git a/public_html/data/pages/develop/legacy/tutorial/javascript_tutorial.txt b/public_html/data/pages/develop/legacy/tutorial/javascript_tutorial.txt
new file mode 100644
index 00000000..bc45cb4a
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/javascript_tutorial.txt
@@ -0,0 +1,379 @@
+~~Title: Javascript Tutorial~~
+==== Javascript Tutorial ====
+
+This Javascript tutorial describes the basic steps to compile and run a Javascript example using EFL with Node.Js
+
+
+./configure --with-js=nodejs #in efl source path
+
+
+After that, you can compile normally with:
+
+
+make
+make install
+
+
+=== Node.Js ===
+
+EFL will install its nodejs modules - named ''efl.node'' - under the ''
+export NODE_PATH=/usr/local/lib:$NODE_PATH #if necessary replace with your prefix path
+
+
+To check if the path is correctly set, use ''require'' inside nodejs to import the module:
+
+
+~$ node
+> efl = require("efl")
+
+
+====Button Example====
+
+
+efl = require('efl');
+
+
+Create a new Window with //auto hide// (the window is automatically hidden when the close button is clicked):
+
+win = new efl.Efl.Ui.Win.Standard(null);
+win.setText("Hello, World!"); // Sets the title
+win.setAutohide(true);
+
+
+Create a new Button (passing the newly created window as parent) and set new label text to button:
+
+btn = new efl.Elm.Button(win);
+btn.setText(null, "Good-Bye, World!");
+
+
+Set button basic size and positions:
+
+btn.setSize(120, 30);
+btn.setPosition(60, 15);
+btn.setHintWeight(1.0, 1.0);
+btn.setHintAlign(1.0, 1.0);
+
+
+The method ''on'' is used to register callback on events. In this case we need to catch the ''clicked'' event, so we register a function (second argument) to print a log message when the button ''btn'' is clicked:
+
+btn.on('clicked', function () { console.log('clicked'); } );
+
+
+To finish, it is necessary to show all elements, using the ''setVisible(true)'' method:
+
+btn.setVisible(true);
+win.setSize(240, 60);
+win.setVisible(true);
+
+
+Once finished this setup, the ''efl.node'' module automatically integrates with the nodejs main loop without requiring you to call it explicitly.
+
+====Twitter Example====
+
+
+npm install request
+npm install twitter
+
+
+efl = require('efl');
+
+// Standard node modules
+util = require('util');
+fs = require('fs');
+path = require('path');
+
+// 3rd pardy modules, requiring install with npm
+request = require('request'); //need "npm install request"
+twitter = require('twitter'); //need "npm install twitter"
+
+// Twitter access keys
+var twit = new twitter({
+ consumer_key: 'ZbSM93w5Sp2cyZ2SG0XuCvoHV',
+ consumer_secret: 'g8N7EEQLpdKPnAsS9hWuQV29FYjBkhH62jhZzXyYymDw87DKye',
+ access_token_key: '222611263-pPhKKjYh59uuNLP0b86sP7aAtLhdecjVQaEsCDCv',
+ access_token_secret: 'l7ccNKXTVv6cymfSD1gQH61tmfixkdna2QmOjPtpVxSHD'
+});
+
+user_acount = 'EnlightenmentKo' // our target twitter account to be shown
+
+
+Create a new Window (as in the previous example):
+
+win = new efl.Efl.Ui.Win.Standard(null);
+win.setText("Twitter App");
+win.setAutohide(true);
+
+
+Create and show two //boxes// widget containers, one to be the top level box and another to work like a list, with the individual tweets.
+
+
+box = new efl.Efl.Ui.Box(win);
+box.setHintWeight(1.0, 1.0);
+win.setContent(box);
+box.setVisible(true);
+
+tweet_box = new efl.Efl.Ui.Box(win);
+tweet_box.setHintWeight(1.0, 1.0);
+tweet_box.setHintAlign(-1.0, -1.0);
+tweet_box.setPackPadding(0.0, 30.0, true); // Give some space between the tweets
+box.packEnd(tweet_box);
+
+
+The default box orientation is horizontal. In order to resemble the original timeline appearance, we need to make it horizontal. This is made in two steps, first we "cast" the box to an ''Efl.Orientation'' object and then we actually set the orientation.
+
+
+tweet_box_orient = tweet_box.cast("Efl.Orientation");
+tweet_box_orient.setOrientation(efl.Efl.Orient.VERTICAL);
+
+
+Now we are ready to ask the twitter module to get the timeline of the target user. The 'get' function will be passed a callback that will be called when the data is ready. Inside it, we will start building the tweet list.
+
+Also, we create an array to store the icon widgets to be filled when the icon finish downloading.
+
+
+icon_array = new Array(); // To store the icons
+twit.get('statuses/user_timeline', {screen_name: user_acount, count:10},
+ function(error, tweets, response) {
+ if (error)
+ return;
+
+ // Begin building the tweets
+
+
+For each tweet, we make a new ''Elm.Layout'' and set various components, or, in efl jargon, "parts", using the ''set*'' family of methods.
+
+First, we set a base theme using ''setFile''. The layout will load the given file and setup the internal layout structure, etc. This will allow us to refer the individual tweet's parts by name on the following methods.
+
+The edj file used was compiled from a source edc file. For more information, see the next section.
+
+
+ // continuing the previous callback
+ for(i=0; i < tweets.length; i++){
+
+ // extract the data we got from the twitter api
+ var user_name = tweets[i].user.name;
+ var screen_name = tweets[i].user.screen_name;
+ var text = tweets[i].text;
+
+ var layout = new efl.Elm.Layout(win);
+ // Use __dirname to get the file from the same folder of this .js
+ var filename = path.join(__dirname, "twitter_example_01.edj");
+ layout.setFile(filename, "tweet"); // Load the 'tweet' group from theme file
+
+
+Once we have the theme loaded, we can use ''setText'' to set a new text to the related Edje parts in the theme, referring them on each call by using the name of the part as the first argument.
+
+
+ // Continuing the previous for loop
+ layout.setText("user_name", screen_name);
+ layout.setText("screen_name", " - @"+screen_name);
+
+
+To have a formatted text, we use an ''Elm.Entry'' to show the main tweet text and add this widget into the theme using the ''setContent'' layout method. This allows us to inject full widgets into the layout, besides the basic stuff. Like ''setText'', ''setContent'' also receives the name of the target part as the first argument.
+
+
+ // continuing the previous for loop
+ var entry = new efl.Elm.Entry(win);
+ entry.setText("elm.text", text);
+ entry.setEditable(false);
+
+ // We have to cast to the proper type, like in the previous box orientation
+ // case
+ part = layout.part("tweet_text").cast("Efl.Container");
+ part.setContent(entry);
+
+ // Some sizing details for better looking
+ layout.setHintMin(127, 96);
+ layout.setHintWeight(1.0, 1.0);
+ layout.setHintAlign(-1.0, -1.0);
+
+
+Now, for the icon, we use an ''efl.Efl.Ui.Image''. It'll be set to display the downloaded icon. Like the entry above, it will be placed in a swallow part of the theme.
+
+
+ // continuing the for loop
+ var icon = new efl.Efl.Ui.Image(win);
+ icon.fillInside = true;
+ icon_array.push(icon);
+ user_icon = layout.part("user_icon").cast("Efl.Container");
+ user_icon.setContent(icon);
+
+ // Pack the tweet into the box.
+ item = tweet_box.packEnd(layout);
+ layout.setVisible(true);
+ } // Finished the for loop
+
+
+To show the tweet image, we need to download it. We can accomplish this creating a new file stream with ''fs.createWriteStream'' and download the image to this file stream using the ''request'' module. Once the download is finished, we iterate through the list of icons widgets and tell them to display the downloaded file. We also tell the tweet box and the window to show themselves.
+
+
+
+ if (tweets.length > 0) {
+ var icon_filename = '/tmp/twitter_pic.jpg';
+ var file = fs.createWriteStream(icon_filename);
+ file.on('finish', function() {
+ console.log("finished loading the icon file.");
+ for (i=0; i < icon_array.length; i++) {
+ icon_array[i].setFile(icon_filename, null);
+ }
+ });
+
+ request(tweets[0].user.profile_image_url).pipe(file);
+ }
+
+ tweet_box.setVisible(true);
+
+});
+win.setSize(380, 400);
+win.setVisible(true);
+
+
+You will find these and more examples in directory ''src/examples'' in the efl source code.
+
+All you need to run is:
+
+node
+
+
+=== Twitter edje theme ===
+
+Theming the tweet in edj allows you to separate presentation details from the code. In a nutshell, you create themes in edje by creating "parts" inside groups, the basic elements of an edje theme. For example, you can create text parts to hold text and rectangles. For traditional widgets, you can create "swallow" parts that the application can use to show buttons, text entry, etc. For more information, check the EDJE tutorial FIXME here.
+
+For now, first create an edc - the EDJE source format - file with the following contents:
+
+
+collections {
+ group {
+ name: "tweet";
+ parts
+ {
+ part {
+ name: "user_icon";
+ type: SWALLOW;
+ description {
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 2 2;
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ offset: 50 50 ;
+ }
+ }
+ }
+ part {
+ name: "user_name";
+ type: TEXT;
+ effect: SOFT_SHADOW;
+ description {
+ color: 0 190 255 255;
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "user_icon";
+ offset: 7 4;
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ to_x: "user_icon";
+ offset: 120 30;
+ }
+ text {
+ text: "User Name";
+ size: 12;
+ font: "sans:style=Bold";
+ min: 1 1;
+ ellipsis: -1;
+ align: 0.0 0.0;
+ }
+ }
+ }
+ part {
+ name: "screen_name";
+ type: TEXT;
+ description {
+ rel1 {
+ relative: 1.0 0.0;
+ to: "user_name";
+ offset: 15 4;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ to: "user_name";
+ offset: 75 10;
+ }
+ text {
+ text: "scname";
+ size: 10;
+ font: "sans";
+ min: 1 1;
+ ellipsis: -1;
+ align: 0.0 0.0;
+ }
+ }
+ }
+ part {
+ name: "tweet_text";
+ type: SWALLOW;
+ description {
+ rel1 {
+ relative: 0.0 1.0;
+ to: "user_name";
+ offset: 0 0;
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to: "user_name";
+ offset: 250 80;
+ }
+ }
+ }
+ }
+ }
+}
+
+
+Then compile it to the .edj format that your app will load:
+
+
+~$ edje_cc your_edc_file.edc # Will generate your_edc_file.edj
+
diff --git a/public_html/data/pages/develop/legacy/tutorial/menu/basic_ui.txt b/public_html/data/pages/develop/legacy/tutorial/menu/basic_ui.txt
new file mode 100644
index 00000000..0b853138
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/menu/basic_ui.txt
@@ -0,0 +1,296 @@
+~~Title: Basic UI Menu~~
+//**__previous__: **//[[/develop/legacy/tutorial/menu/theme|Defining the Application Theme]]
+==== Creating the Basic UI ====
+
+The view container ''view/main'' is structured like this:
+
+{{ :view_main.png?direct |View main}}
+
+The naviframe contains and manages the boxes. For more information, see the
+[[/develop/legacy/program_guide/containers_pg|Container programming guide]]. This widget handle views. In
+this example each view is contained in a box and the box is contained in the
+naviframe.
+
+Create the naviframe in the ''elm_main'' function and allocate the memory to
+handle the views and menus of the application.
+
+
+// Memory allocation
+Menu *me = calloc(1, sizeof(Menu));
+me->main_view = calloc(1, sizeof(Mainview)); // Allocating memory for the main view
+me->cal_view = calloc(1, sizeof(Calview)); // Allocating memory for the calendar view
+me->date_view = calloc(1, sizeof(Dateview)); // allocating memory for the date view
+me->settings_view = calloc(1, sizeof(Setview); //Allocating memory for the settings view
+me->sdmenu_up = EINA_FALSE;
+
+
+Use ''_free_menu_cb'' callback function to free the memory:
+
+
+evas_object_smart_callback_add(win, "delete,request", _free_menu_cb, me);
+
+
+
+static void
+_free_menu_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Menu *me = (Menu *)data;
+
+ free(me->menu);
+ free(me->sidemenu);
+ free(me->main_view);
+ free(me->cal_view);
+ free(me->settings_view);
+ free(me);
+ evas_object_del(obj);
+ elm_exit();
+}
+
+
+Create the naviframe:
+
+Create the main menu after most of the containers are created. First create a
+new ''_build_main_menu'' function, it takes an ''Menu'' and the ''win'' as a parameter. This
+function is called by ''elm_main''.
+
+
+
+static void
+_build_main_menu(Menu *me, Evas_Object *win)
+{
+ //Memory allocation for the main menu function.
+ Tbarmenu *menu = calloc(1, sizeof(Tbarmenu));
+ //Putting the "main" menu in the application data.
+ me->menu = menu;
+
+ // Creation of the "Menu" toolbar
+ menu->tb = elm_toolbar_add(win);
+
+ // Setting the "Menu" Toolbar properties
+ elm_toolbar_shrink_mode_set(menu->tb, ELM_TOOLBAR_SHRINK_NONE);
+ elm_toolbar_transverse_expanded_set(menu->tb, EINA_TRUE);
+ elm_toolbar_homogeneous_set(menu->tb, EINA_FALSE);
+
+ // Adding menu items to the "Menu" toolbar
+ elm_toolbar_item_append(menu->tb, ICON_DIR"home.svg", "Home", _menu_item_selected_cb, me);
+ elm_toolbar_item_append(menu->tb, ICON_DIR"calendar.svg", "Calendar", _menu_item_selected_cb, me);
+ elm_toolbar_item_append(menu->tb, ICON_DIR"clock.svg", "Date", _menu_item_selected_cb, me);
+ elm_toolbar_item_append(menu->tb, ICON_DIR"settings.svg", "Settings", _menu_item_selected_cb, me);
+
+ // Showing the widget
+ evas_object_show(menu->tb);
+
+ // Adding the widget to the "menu/main" SWALLOW container defined in the .edc theme file.
+ //elm_object_part_content_set(me->layout, "menu/main", menu->tb);
+ elm_layout_content_set(me->layout, "menu/main", menu->tb);
+
+ // Set the default view
+ elm_toolbar_item_selected_set(elm_toolbar_first_item_get(menu->tb), EINA_TRUE);
+}
+
+
+Create a toolbar with ''elm_toolbar_add''. This toolbar is a child of the main
+window so set ''win'' as parameter.
+
+Setup the behavior of the toolbar, the display mode is set by using
+''elm_toolbar_shrink_mode_set''. The toolbar does not scroll under
+''#ELM_TOOLBAR_SHRINK_NONE'' mode, but it enforces a minimum size, so that all
+the items fit inside it. It does not scroll or show the items that do not fit
+under ''#ELM_TOOLBAR_SHRINK_HIDE'' mode. Finally, it scrolls under
+''#ELM_TOOLBAR_SHRINK_SCROLL'' mode, and it creates a button to aggregate
+items which did not fit with the ''#ELM_TOOLBAR_SHRINK_MENU'' mode.
+
+In this example, there is only a limited number of menu elements and thus
+''ELM_TOOLBAR_SHRINK_NONE'' is used.
+
+Expand the transverse length of the item according the transverse length of
+the toolbar, giving ''EINA_TRUE'' as second parameter of
+''elm_toolbar_transverse_expanded_set''.
+
+Make the menu items have the same size by setting ''EINA_TRUE'' to
+''elm_toolbar_homogeneous_set''. This activates the homogeneous mode of the
+toolbar.
+
+Add menu items to the toolbar using ''elm_toolbar_item_append''. This function
+takes 4 parameters:
+ * the target toolbar
+ * the icon path for the menu item
+ * the item label
+ * the function to camm when the item is clicked
+ * the data to assciate with the item for related callbacks
+
+For the icons, add some images in a directory and define a macro to contain
+the path to the directory.
+
+
+#define ICON_DIR ""
+
+
+The item label is very important, it is used in the item callback function.
+
+In this example, only one callback is created to manage all the items but
+there can be several callback functions. Pass the application data to the
+callback.
+
+This callback is an ''Evas_Smart_Cb'', it must have this prototype:
+
+
+_mycallback(void *data, Evas_Object *obj, void *event_info)
+
+
+In this example, the aim of the callback is to create the view which the user
+has requested. It is named ''_menu_item_selected_cb'', and in this function we
+recover the calling object text to call the correct view creation function.
+
+
+static void
+_menu_item_selected_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Elm_Object_Item *it = (Elm_Object_Item*) event_info;
+ Menu * me = (Menu *)data;
+ Evas_Object *view;
+
+ // Get the menu item text
+ const char *str = elm_object_item_text_get(it);
+
+ // Comparing with the possible view names
+ if (!strcmp(str, "Calendar"))
+ {
+ // Build the "Calendar View"
+ _build_calendar_view(me);
+ // Set the view from the application data
+ view = me->cal_view->box;
+ }
+ else if (!strcmp(str, "Date"))
+ {
+ // Build the "Date View"
+ _build_date_view(data);
+ // Set the view from the application data
+ view = me->date_view->box;
+ }
+ else if (!strcmp(str, "Home"))
+ {
+ // Build the "Home or main View"
+ _build_main_view(me);
+ // Set the view from the application data
+ view = me->main_view->box;
+ }
+ else if (!strcmp(str, "Settings"))
+ {
+ // Build the "Settings" view
+ _build_settings_view(data);
+ // Set the view from the application data
+ view = data->settings_view->box;
+ }
+ else if (!strcmp(str, "Clock"))
+ {
+ // Build the "Date View"
+ _build_date_view(me);
+ // Set the view from the application data
+ view = me->date_view->box;
+ }
+ // Show the view in the naviframe
+ elm_object_content_set(me->nf, view);
+}
+
+
+The menu has views, Calendar, Date, Settings, and Home (main view). The view
+names are stored in the menu item label, to get the label compare the returned
+string with the view names. When the name matches, the view is built by
+calling the correct function. Store the view in the application data and set
+up a new content to the naviframe before exit.
+
+This way when the user clicks a menu item, the view changes. The naviframe
+widget destroys its content on each call of ''elm_object_content_set''. That is
+why the content must be built again on each item click.
+
+Create the functions which create the views.
+
+
+static void
+_build_main_view(Menu *me)
+{
+ Mainview *view = me->main_view;
+ char buf[PATH_MAX];
+
+ //Main box
+ view->box = elm_box_add(me->nf);
+ elm_box_horizontal_set(view->box, EINA_FALSE);
+ elm_box_homogeneous_set(view->box, EINA_TRUE);
+
+ view->img = elm_image_add(view->box);
+ evas_object_size_hint_weight_set(view->img, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_align_set(view->img, 0.5, 0.5);
+ evas_object_size_hint_min_set(view->img, 25, 25);
+ snprintf(buf, sizeof(buf), "%s/%s", ICON_DIR, "icon.png");
+ if (!elm_image_file_set(view->img, buf, NULL))
+ elm_object_text_set(view->lb_day, "Problem loading image");
+ elm_box_pack_start(view->box, view->img);
+ evas_object_show(view->img);
+
+ view->lb_day = elm_label_add(view->box);
+ elm_object_text_set(view->lb_day, "Main view");
+ evas_object_size_hint_weight_set(view->lb_day, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_box_pack_end(view->box, view->lb_day);
+ evas_object_show(view->lb_day);
+
+ elm_layout_content_set(me->layout, MAINVIEW, view->box);
+}
+
+static void
+_build_calendar_view(Menu *me)
+{
+ Calview *view = me->cal_view;
+
+ //Main box image = elm_image_add(win);
+
+ view->box = elm_box_add(me->nf);
+ elm_box_horizontal_set(view->box, EINA_FALSE);
+ elm_box_homogeneous_set(view->box, EINA_TRUE);
+
+ view->calendar = elm_calendar_add(me->nf);
+ evas_object_size_hint_weight_set(view->calendar, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_align_set(view->calendar, 0.5, 0.5);
+ elm_box_pack_end(view->box, view->calendar);
+ evas_object_show(view->calendar);
+
+ view->lb_cal = elm_label_add(view->box);
+ elm_object_text_set(view->lb_cal, "The calendar view");
+ evas_object_size_hint_weight_set(view->lb_cal, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_box_pack_end(view->box, view->lb_cal);
+ evas_object_show(view->lb_cal);
+
+ elm_layout_content_set(me->layout, MAINVIEW, view->box);
+} // End of_build_calendar_view
+
+static void
+_build_date_view(Menu *me)
+{
+ Dateview *view = me->date_view;
+
+ //Main box image = elm_image_add(win);
+
+ view->box = elm_box_add(me->nf);
+ elm_box_horizontal_set(view->box, EINA_FALSE);
+ elm_box_homogeneous_set(view->box, EINA_TRUE);
+
+ view->datetime = elm_datetime_add(me->nf);
+ //evas_object_size_hint_weight_set(view->datetime, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(view->datetime, EVAS_HINT_FILL, 0.5);
+ elm_box_pack_end(view->box, view->datetime);
+ evas_object_show(view->datetime);
+
+ view->lb_date = elm_label_add(view->box);
+ elm_object_text_set(view->lb_date, "The calendar view");
+ evas_object_size_hint_weight_set(view->lb_date, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_box_pack_end(view->box, view->lb_date);
+ evas_object_show(view->lb_date);
+
+ elm_layout_content_set(me->layout, MAINVIEW, view->box);
+} // End of_build_calendar_view
+
+
+
+Each function creates a view and stores it in the application data.
+\\
+//**__next__: **//[[/develop/legacy/tutorial/menu/hidden_menu|Creating the Hidden Menu]]
diff --git a/public_html/data/pages/develop/legacy/tutorial/menu/hidden_menu.txt b/public_html/data/pages/develop/legacy/tutorial/menu/hidden_menu.txt
new file mode 100644
index 00000000..2dec2226
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/menu/hidden_menu.txt
@@ -0,0 +1,94 @@
+~~Title: Hidden Menu Tutorial~~
+//**__previous__: **//[[/develop/legacy/tutorial/menu/basic_ui|Creating the Basic UI]]
+==== Creating a Hidden Menu ====
+
+Add a new function called ''_build_side_menu'' to create the side Menu toolbar and
+add some items to it. This function takes the application data as parameter
+and stores the built menu in the sidemenu attribute of the structure.
+
+
+static void _build_side_menu(Menu *me, Evas_Object *win)
+{
+ Tbarmenu *sidemenu = calloc(1, sizeof(Tbarmenu));
+ me->sidemenu = sidemenu;
+
+ sidemenu->tb = elm_toolbar_add(win);
+
+ elm_toolbar_shrink_mode_set(sidemenu->tb, ELM_TOOLBAR_SHRINK_EXPAND);
+ elm_toolbar_transverse_expanded_set(sidemenu->tb, EINA_TRUE);
+
+ elm_toolbar_item_append(sidemenu->tb, ICON_DIR"/home.svg", "Home", _menu_item_selected_cb, me);
+ elm_toolbar_item_append(sidemenu->tb, ICON_DIR"/account.svg", "Account", NULL, NULL);
+ elm_toolbar_item_append(sidemenu->tb, ICON_DIR"/contact.svg", "Friends", NULL, NULL);
+ elm_toolbar_item_append(sidemenu->tb, ICON_DIR"/clock.svg", "Clock", _menu_item_selected_cb, me);
+ elm_toolbar_homogeneous_set(sidemenu->tb, EINA_FALSE);
+ evas_object_show(sidemenu->tb);
+ elm_object_part_content_set(me->layout, "menu/side", sidemenu->tb);
+ elm_toolbar_horizontal_set(sidemenu->tb, EINA_FALSE);
+ elm_toolbar_item_selected_set(elm_toolbar_first_item_get(sidemenu->tb), EINA_TRUE);
+}
+
+
+The side menu is created but hidden by default, to make it appear the user must
+click Home button.
+
+By default the Basic EDC UI application creates a function ''keydown_cb'' to
+handle the key down events. In ''elm_main'' an ''ecore_event_handler_add''
+function is called with the ''ECORE_EVENT_KEY_DOWN'' macro and with
+''keydown_cb'' as callback. In this callback, the ''KEY_END'' event puts the
+window on the lower state.
+
+
+keydown_cb(void *data , int type , void *event)
+{
+ Evas_Object *win = data;
+ Ecore_Event_Key *ev = event;
+ if (!strcmp(ev->keyname, KEY_END))
+ {
+ /* Let window go to hide state. */
+ elm_win_lower(win);
+ }
+
+ return ECORE_CALLBACK_DONE;
+}
+
+
+The key name of menu button is ''XF86Send''. Add the menu button key press
+handling to the ''keydown_cb''. The menu is shown on the first press and
+hidden it on the second press. Use ''Eina_Bool sdmenu_up'' on the application
+data to store the menu status during the application execution. If
+''me->sdmenu_up'' is ''EINA_TRUE'' the menu is visible.
+
+A program ''animation,menu_side'' is defined in the ''.edc'' theme file. This
+program is run when the signal ''show,sidemenu'' is received with the source
+''MenuButton''. Also the program who hides the side menu is defined and is
+called ''animation,menu_side,hide'' which start on signal ''hide,sidemenu''.
+
+Test side menu status by sending the signals using ''elm_object_signal_emit''
+
+
+static Eina_Bool
+keydown_cb(void *data , int type , void *event)
+{
+ Menu *me = data;
+ Ecore_Event_Key *ev = event;
+ if (!strcmp(ev->keyname, "XF86Send"))
+ {
+ if (me->sdmenu_up == EINA_TRUE)
+ {
+ // If the menu is visible send a "hide,sidemenu" signal
+ elm_object_signal_emit(me->layout, "hide,sidemenu", "MenuButton");
+ // Store the new menu status (hidden).
+ me->sdmenu_up = EINA_FALSE;
+ }
+ else
+ {
+ // If the menu is not visible send a "show,sidemenu" signal
+ elm_object_signal_emit(me->layout, "show,sidemenu", "MenuButton");
+ // Store the new menu status (hidden).
+ me->sdmenu_up = EINA_TRUE;
+ }
+ }
+ return ECORE_CALLBACK_DONE;
+}
+
diff --git a/public_html/data/pages/develop/legacy/tutorial/menu/structure.txt b/public_html/data/pages/develop/legacy/tutorial/menu/structure.txt
new file mode 100644
index 00000000..ee336e8f
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/menu/structure.txt
@@ -0,0 +1,74 @@
+~~Title: Application "Structure" Menu Tutorial~~
+==== Defining the Application "Structure" ====
+
+Define the structure of the menu application:
+
+
+typedef struct _Menu
+{
+ Evas_Object* layout; // The "edje" layout
+ Evas_Object *nf; // The Naviframe to handle the views
+ Tbarmenu *menu; // The main menu
+ Tbarmenu *sidemenu; // The side menu
+ Mainview *main_view; // The main view
+ Calview *cal_view; // The calendar view
+ Dateview *date_view; // The date and time view
+ Setview *settings_view; //The settings view
+
+ Eina_Bool sdmenu_up; // A bool variable to keep the side menu status
+} Menu;
+
+
+This structure contains some specific variables for the views and the menus.
+
+Define the main view by using the structure ''mainview'', it is composed of a
+''box'' (the main container), an image img, and a label ''lb_main''.
+
+
+typedef struct _Mainview
+{
+ Evas_Object *box; //The main container of the view
+ Evas_Object *img; //An image
+ Evas_Object *lb_day; //A label
+} Mainview;
+
+
+The date view is very similar, it contains a ''box'', a ''datetime'' widget
+and a label ''lb_date''.
+
+
+typedef struct _Dateview
+{
+ Evas_Object *box; //The main container of the view
+ Evas_Object *datetime; //A datetime widget
+ Evas_Object *lb_date; //A label
+} Dateview;
+
+
+The last view is the calendar, it contains a ''box'', a ''calendar'' and a
+label ''lb_cal''.
+
+
+typedef struct _Calview
+{
+ Evas_Object *box; //The main container of the view
+ Evas_Object *calendar; //A calendar widget
+ Evas_Object *lb_cal; //A label widget
+} Calview;
+
+
+The last members of the application structure are the 2 menus. The main menu
+is fixed and visible, and the side menu is hidden on application starts. These
+menus are represented by the ''Tbarmenu'' structure.
+
+
+typedef struct _Tbarmenu
+{
+ Evas_Object *tb; //The toolbar
+ Elm_Object_Item *submenu; //The submenu item
+} Tbarmenu;
+
+\\
+//**__The whole code__ : **// {{/code_c/tutorial/menu/structure_menu.h}}
+\\
+//**__next__: **//[[/develop/legacy/tutorial/menu/theme|Defining the Application Theme]]
diff --git a/public_html/data/pages/develop/legacy/tutorial/menu/theme.txt b/public_html/data/pages/develop/legacy/tutorial/menu/theme.txt
new file mode 100644
index 00000000..1e60492e
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/menu/theme.txt
@@ -0,0 +1,171 @@
+~~Title: Application Theme Menu Tutorial~~
+//**__previous__: **//[[/develop/legacy/tutorial/menu/structure|Defining the Application "Structure"]]
+==== Defining the Application Theme ====
+
+After the structure is defined, define the UI. In this tutorial, Basic EDC UI
+Application is used.
+
+This application structure is based on this skeleton:
+
+
+{{ :menu_skeleton.png?direct&193 |Menu skeleton }}
+
+The window and the layout are set by the Basic EDC UI Application skeleton.
+Setup the containers for widgets and views.
+
+Create the ''menu/main'' ''SWALLOW'' part in the ''.edc'' file.
+
+
+part
+{
+ name: "menu/main";
+ type: SWALLOW;
+ description
+ {
+ state: "default" 0.0;
+ rel1.relative: 1.0 0.0;
+ rel2.relative: 1.0 1.0;
+ }
+ description
+ {
+ state: "up" 0.0;
+ rel1.relative: 0.0 0.01;
+ rel2.relative: 1.0 0.19;
+
+ }
+} //End menu/main
+
+
+This part has two descriptions, one for the real position named ''up'' and
+another out of the screen as the default position. Create these states to
+animate the menu on application start. The animation is run by
+''animation,menu_main''.
+
+
+program
+{
+ name: "animation,menu_main";
+ source: "";
+ signal: "load";
+ action: STATE_SET "up" 1.0;
+ target: "menu/main";
+ transition: LINEAR 0.5;
+} // END animation,menu_main
+
+
+For more information about animations, see the
+[[tutorial/effects_tutorial|Effects Tutorial]].
+
+Create another container for the views. This container is also a "SWALLOW"
+part.
+
+
+part
+{
+ name: "view/main";
+ type: SWALLOW;
+ description
+ {
+ state: "default" 0.0;
+ rel1.relative: 1.0 1.0;
+ rel2.relative: 1.0 1.0;
+ }
+ description
+ {
+ state: "up" 0.0;
+ rel1.relative: 0.0 1.01;
+ rel1.to: "menu/main";
+ rel2.relative: 1.0 1.0;
+ color: 0 255 0 255;
+ }
+} // END view/main
+
+
+This part has also two descriptions for animation purpose, like the main_menu
+part.
+
+The program:
+
+program
+{
+ name: "animation,view_main";
+ source: "";
+ signal: "load";
+ action: STATE_SET "up" 1.0;
+ target: "view/main";
+ transition: LINEAR 0.2;
+} //END animation,view_main²
+
+
+The last container is the side menu called ''menu/side''.
+
+
+part
+{
+ name: "menu/side";
+ type: SWALLOW;
+ description
+ {
+ state: "default" 0.0;
+ rel1.relative: -0.3 0.0;
+ rel2.relative: -0.3 1.0;
+ color: 255 0 0 255;
+ }
+ description
+ {
+ state: "up" 0.0;
+ rel1.relative: 0.0 0.2;
+ rel2.relative: 0.10 1.0;
+ color: 255 0 0 255;
+ }
+} //END menu/side
+
+
+By default, this container is hidden. Clicking menu button makes it appear.
+The second description places the container on the left of the screen. Here is
+the program to run animation:
+
+
+program
+{
+ name: "animation,menu_side";
+ source: "MenuButton";
+ signal: "show,sidemenu";
+ action: STATE_SET "up" 1.0;
+ target: "menu/side";
+ transition: LINEAR 0.2;
+} //END animation,menu_side
+
+
+This program runs when it receives an event called ''show,sidemenu'' from
+''MenuButton'' source.
+
+Create a program that does the opposite and starts when it receives a signal
+called ''hide,menu_side'' from ''MenuButton'' source.
+
+
+program
+{
+ name: "animation,menu_side,hide";
+ source: "MenuButton";
+ signal: "hide,sidemenu";
+ action: STATE_SET "default" 1.0;
+ target: "menu/side";
+ transition: LINEAR 0.2;
+} //END animation,menu_side,hide
+
+program
+{
+ name: "animation,menu_side";
+ source: "MenuButton";
+ signal: "show,sidemenu";
+ action: STATE_SET "up" 1.0;
+ target: "menu/side";
+ transition: LINEAR 0.2;
+} //END animation,menu_side
+
+
+\\
+//**__The whole code__ : **// {{/code_c/tutorial/menu/menu.edc}}
+\\
+//**__next__: **//[[/develop/legacy/tutorial/menu/basic_ui|Creating the Basic UI]]
diff --git a/public_html/data/pages/develop/legacy/tutorial/menu_tutorial.txt b/public_html/data/pages/develop/legacy/tutorial/menu_tutorial.txt
new file mode 100644
index 00000000..f6fd8285
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/menu_tutorial.txt
@@ -0,0 +1,20 @@
+~~Title: Menu Tutorial~~
+==== Menu Tutorial ====
+
+This tutorial shows how to add menus to the application. The example code
+creates an application with 3 views, these views are showed by an interaction
+with a menu bar, placed on the top of the application. The application has
+also a hidden menu that appears only when the menu button is pressed.
+
+=== Table of contents ===
+
+ * [[/develop/legacy/tutorial/menu/structure|Defining the Application "Structure"]]
+ * [[/develop/legacy/tutorial/menu/theme|Defining the Application Theme]]
+ * [[/develop/legacy/tutorial/menu/basic_ui|Creating the Basic UI]]
+ * [[/develop/legacy/tutorial/menu/hidden_menu|Creating the Hidden Menu]]
+
+Menu example :
+
+{{ :menu.png?direct }}
+\\
+//**__The whole code__: **//{{/code_c/tutorial/menu/structure.h}} {{/code_c/tutorial/menu/menu.edc}} {{/code_c/tutorial/menu/menu.c}}
diff --git a/public_html/data/pages/develop/legacy/tutorial/multimedia_tutorial.txt b/public_html/data/pages/develop/legacy/tutorial/multimedia_tutorial.txt
new file mode 100644
index 00000000..9be66cef
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/multimedia_tutorial.txt
@@ -0,0 +1,254 @@
+~~Title: Multimedia Tutorial~~
+==== Multimedia Tutorial ====
+
+In this tutorial, we will see how to play a multimedia file (video) in an
+application.
+
+=== Table of Contents ===
+
+ * [[#Basic_video_widgets|Basic video widgets]]
+ * [[#Getting_more_information|Getting more information]]
+ * [[#Playing_Status|Playing Status]]
+ * [[#Get_the_file_name_and_location|Get the file name and location]]
+ * [[#Get_time_position_and_duration|Get time position and duration]]
+ * [[#Get_the_video_dimensions|Get the video dimensions]]
+
+Multimedia example: {{ :multimedia.png }}
+//**__The whole code__: **//{{:code_c/tutorial/multimedia/multimedia.c}}
+
+\\
+The EFL have a special library for multimedia file playing purposes: Emotion.
+That library has some wrappers in Elementary to let you easily write
+applications: these are ''Elm_Video'' and ''Elm_Player''.
+
+ * Elm_Video provides a simple video object.
+ * Elm_Player provides an interface to show a bar with basic actions (like rewind, fast forward, pause, etc.) to interract with a playing video.
+
+-----------
+
+=== Basic video widgets ===
+
+
+Evas_Object *video;
+video = elm_video_add(win);
+evas_object_size_hint_weight_set(video, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+elm_video_file_set(video, FILE);
+elm_video_play(video);
+evas_object_show(video);
+
+
+Create a new ''Elm_Video'' object. This object is the main widget for a video.
+The actual video file is then set (which is here the ''FILE'' macro).
+''Elm_Video'' can take either a path to a file or any kind of URL. Finally,
+the video starts playing
+
+
+Evas_Object *player;
+player = elm_player_add(win);
+evas_object_size_hint_weight_set(player, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+elm_object_content_set(player, video);
+evas_object_smart_callback_add(player, "info,clicked", _player_info_cb, video);
+evas_object_show(player);
+
+
+Now create an ''Elm_Player'' object. This object wraps around an ''Elm_Video''
+to have it automatically resized, to show a user interface with basic buttons,
+a progress bar and other stuff. A callback is added for the
+''info,clicked'' event, which is launched when the user clicks on the
+information button in the player interface. This callback will be detailed
+further.
+
+The player interface is eventually set as a naviframe item.
+
+
+Elm_Object_Item *it = elm_naviframe_item_push(nav, "Video", NULL, NULL, player, NULL);
+elm_naviframe_item_title_enabled_set(it, EINA_FALSE, EINA_FALSE);
+
+
+=== Getting more information ===
+
+The purpose is to display some information about the video the user wants to. For
+instance, the video file name, its location, duration, and
+image size will be displayed. This list is of course not exhaustive and much
+more information could be added.
+
+Some are not directly available in ''Elm_Video'' nor in
+''Elm_Player''. But the underlaying Emotion object is available with the
+''elm_video_emotion_get(video)'' function.
+
+== Playing Status ==
+
+Set the label to display the playing status in ''_player_info_cb''.
+
+
+label = elm_label_add(table);
+evas_object_show(label);
+_player_info_status_update(label, emotion, NULL);
+elm_table_pack(table, label, 0, 0, 2, 1);
+evas_object_smart_callback_add(emotion, "playback_finished", _player_info_status_update, label);
+
+
+That function is also registered as a callback upon ''playback_finished'' so
+that the status is updated upon playback completion.
+
+Get the playing status with ''_player_info_status_update'' callback:
+The ''emotion_object_play_get'' return true if the video is playing, if not
+the video is in paused or ended.
+
+
+static void
+_player_info_status_update(void *data, Evas_Object *obj, void *event_info)
+{
+ Evas_Object *emotion = obj, *label = data;
+ char buf[256];
+
+ //switch on main item
+ if (!info)
+ {
+ evas_object_smart_callback_del(obj, "playback_finished", _player_info_status_update);
+ return;
+ }
+
+ //update
+ double position = emotion_object_position_get(emotion);
+ double duration = emotion_object_play_length_get(emotion);
+ if (emotion_object_play_get(emotion))
+ elm_object_text_set(label, "Playing");
+ else if (position < duration)
+ elm_object_text_set(label, "Paused");
+ else
+ elm_object_text_set(label, "Ended");
+}
+
+
+== Get the file name and location ==
+
+Get the file name and location with ''emotion_object_file_get'' and
+''ecore_file_file_get'' functions.
+
+
+label = elm_label_add(table);
+elm_object_text_set(label, "File:");
+evas_object_show(label);
+elm_table_pack(table, label, 0, 1, 1, 1);
+
+const char *file = emotion_object_file_get(emotion);
+label = elm_label_add(table);
+elm_object_text_set(label, ecore_file_file_get(file));
+evas_object_show(label);
+elm_table_pack(table, label, 1, 1, 1, 1);
+
+label = elm_label_add(table);
+elm_object_text_set(label, "Location:");
+evas_object_show(label);
+elm_table_pack(table, label, 0, 2, 1, 1);
+
+label = elm_label_add(table);
+elm_object_text_set(label, ecore_file_dir_get(file));
+evas_object_show(label);
+elm_table_pack(table, label, 1, 2, 1, 1);
+
+
+== Get time position and duration ==
+
+Get video time position and duration using ''elm_video_play_position_get'' and
+''elm_video_play_length_get'' functions. These functions returns double time
+values in seconds.
+
+
+label = elm_label_add(table);
+elm_object_text_set(label, "Time:");
+evas_object_show(label);
+elm_table_pack(table, label, 0, 3, 1, 1);
+
+label = elm_label_add(table);
+double position = elm_video_play_position_get(video);
+double duration = elm_video_play_length_get(video);
+int p_sec = (int) position % 60;
+int p_min = position / 60;
+int p_hour = position / 3600;
+int d_sec = (int) duration % 60;
+int d_min = duration / 60;
+int d_hour = duration / 3600;
+snprintf(buf, sizeof(buf), "%d:%02d:%02d / %d:%02d:%02d", p_hour, p_min, p_sec, d_hour, d_min, d_sec);
+elm_object_text_set(label, buf);
+evas_object_show(label);
+elm_table_pack(table, label, 1, 3, 1, 1);
+evas_object_smart_callback_add(emotion, "position_update", _player_info_time_update, label);
+evas_object_smart_callback_add(emotion, "length_change", _player_info_time_update, label);
+
+
+Here, a callback on both position_update and length_change events are added so
+that timings are always up-to-date.
+
+
+static void
+_player_info_time_update(void *data, Evas_Object *obj, void *event_info)
+{
+ Evas_Object *emotion = obj, *label = data;
+ char buf[256];
+
+ //switch on main item
+ if (!info)
+ {
+ evas_object_smart_callback_del(emotion, "position_update", _player_info_time_update);
+ evas_object_smart_callback_del(emotion, "length_change", _player_info_time_update);
+ return;
+ }
+
+ //update
+ double position = emotion_object_position_get(emotion);
+ double duration = emotion_object_play_length_get(emotion);
+ int p_sec = (int) position % 60;
+ int p_min = position / 60;
+ int p_hour = position / 3600;
+ int d_sec = (int) duration % 60;
+ int d_min = duration / 60;
+ int d_hour = duration / 3600;
+ snprintf(buf, sizeof(buf), "%d:%02d:%02d / %d:%02d:%02d", p_hour, p_min, p_sec, d_hour, d_min, d_sec);
+ elm_object_text_set(label, buf);
+}
+
+
+In this callback, the emotion functions ''emotion_object_position_get'' and
+''emotion_object_play_length_get'' are used instead of ''elm_video_play_position_get'' and
+''elm_video_play_length_get''. They have the exact same semantics, but are shown
+here so that you know that some data exposed through Emotion may also be
+available thanks to ''Elm_Video'': ''_player_info_status_update'' could also
+have been called directly after the widget creation as for
+''_player_info_time_update''.
+
+== Get the video dimensions ==
+
+Finally get the video dimensions using ''emotion_object_size_get'' by giving
+width and height pointers as parameters:
+
+
+label = elm_label_add(table);
+elm_object_text_set(label, "Size:");
+evas_object_show(label);
+elm_table_pack(table, label, 0, 4, 1, 1);
+label = elm_label_add(table);
+int w, h;
+emotion_object_size_get(emotion, &w, &h);
+snprintf(buf, sizeof(buf), "%d × %d", w, h);
+elm_object_text_set(label, buf);
+evas_object_show(label);
+elm_table_pack(table, label, 1, 4, 1, 1);
+
+
+All of this is shown in a separate naviframe item.
+
+
+Elm_Object_Item *it = elm_naviframe_item_push(nav, "Information", NULL, NULL, table, NULL);
+elm_naviframe_item_pop_cb_set(it, _player_info_del_cb, NULL);
+
+
+The ''_player_info_del_cb'' function is here registered in order to be called
+when the naviframe item is popped. This callback sets the global boolean
+''info'' to ''EINA_FALSE'', and so allows other delete callbacks to be
+called.
+
+{{ :multimedia_info.png }}
+\\
+//**__The whole code__: **//{{:code_c/tutorial/multimedia/multimedia.c}}
diff --git a/public_html/data/pages/develop/legacy/tutorial/naviframe_tutorial.txt b/public_html/data/pages/develop/legacy/tutorial/naviframe_tutorial.txt
new file mode 100644
index 00000000..194e9125
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/naviframe_tutorial.txt
@@ -0,0 +1,247 @@
+~~Title: Naviframe Tutorial~~
+==== Naviframe Tutorial ====
+
+Naviframes are containers useful for implementing interfaces with several
+screens having a previous/next relationship.
+
+{{ :naviframe.png?direct1100x439 |list}}
+
+**__//The whole code://__** {{/code_c/tutorial/naviframe/naviframe.c}}
+
+=== Creating Naviframes ===
+
+Naviframes are containers useful for implementing interfaces with several
+screens having a previous/next relationship.
+
+This tutorial shows a UI with three naviframes. Each naviframe is made of 20
+screens, each made up of a label
+, a title with the same text, and previous and next buttons, which are
+used to navigate between the screens.
+
+The naviframe is "one-way": elements are added, and when the user clicks on
+the "previous" button, they are removed; there is no "next" button by default.
+To add it, we define a structure that holds the naviframe object along with a
+stack of the elements that the user has popped by using the "previous" button.
+
+Note that it is possible to create the elements on-the-fly each time the
+"next" button is pressed. Both approaches are valid.
+
+
+// NOTE: A zipper is a datastructure for an ordered set of elements and a
+// cursor in this set, meaning there are elements before the cursor (which are
+// stored inside the naviframe) and after (which are stored in the "popped"
+// list.
+struct naviframe_zipper
+{
+ Evas_Object *naviframe;
+ Eina_List *popped;
+};
+
+
+To add several naviframes, create a function that factors their creation and
+initializes the ''naviframe_zipper'' structure defined above.
+
+
+static struct naviframe_zipper *
+_naviframe_add(Evas_Object *parent)
+{
+ struct naviframe_zipper *z = malloc(sizeof(struct naviframe_zipper));
+ z->naviframe = elm_naviframe_add(parent);
+ z->popped = NULL;
+
+ evas_object_size_hint_weight_set(z->naviframe, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(z->naviframe, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(z->naviframe);
+ // By default, objects are destroyed when they are popped from the naviframe
+ // To save and re-use them, enable "preserve_on_pop"
+ elm_naviframe_content_preserve_on_pop_set(z->naviframe, EINA_TRUE);
+
+ return z;
+}
+
+
+Create buttons that are at the top of the naviframe and allow the user to go
+back and forth between the screens. The naviframe widget builds a button for
+"previous" by default, but allows the programmers to provide their own
+buttons. It has a specific slot for the "next" button.
+
+
+// Save the element that is popped from the naviframe
+// callback of the prev button
+static void
+_naviframe_prev(void *data, Evas_Object *o __UNUSED__, void *event_info __UNUSED__)
+{
+ struct naviframe_zipper *z = data;
+ //if more than one item push in naviframe
+ if (elm_naviframe_bottom_item_get(z->naviframe) != elm_naviframe_top_item_get(z->naviframe))
+ {
+ z->popped = eina_list_prepend(z->popped, elm_naviframe_item_pop(z->naviframe));
+ }
+}
+
+// Set the first element after the current one available and push it to the
+// naviframe
+//callback of the next button
+static void
+_naviframe_next(void *data, Evas_Object *o __UNUSED__, void *event_info __UNUSED__)
+{
+ struct naviframe_zipper *z = data;
+ Evas_Object *label, *prev, *next;
+ const char *text;
+ Elm_Object_Item *it;
+
+ label = eina_list_data_get(z->popped);
+ z->popped = eina_list_remove_list(z->popped, z->popped);
+ if (label != NULL)
+ {
+ // The widget is saved inside the naviframe but nothing more; we need
+ // to create new buttons and set the title text again (copy the one
+ // from the label that is saved).
+ text = elm_object_text_get(label);
+ // The _button function creates a button which is either "Previous" (-1) or
+ // "Next" (1)
+ prev = _button(z, -1);
+ next = _button(z, 1);
+ it = elm_naviframe_item_push(z->naviframe, text, prev, next, label, NULL);
+ }
+}
+
+
+When a naviframe and the pages that go inside it are built, populate it.
+
+Remember that three naviframes are created, each populated in a different way.
+The common bits have been factored out as a function and the specific parts
+are executed through a callback. The generic function is shown below.
+
+
+// Generic naviframe-populate function:
+// Its third (and last) parameter is a callback for customization, i.e. pushes
+// the new items to a specific position; it returns a "context" value that is
+// used between its calls and enables behaviors such as "push after the
+// previously-pushed item"
+static struct naviframe_zipper*
+_naviframe_populate_gen(Evas_Object *parent, const char *id,
+ void * (*populate_cb) (Evas_Object *nav, const char *title, Evas_Object
+ *prev, Evas_Object *next, Evas_Object *label, Elm_Object_Item *context)
+ )
+{
+ struct naviframe_zipper *z;
+ Evas_Object *label, *prev, *next;
+ Elm_Object_Item *context = NULL;
+ char buf[256];
+ int i;
+
+ z = _naviframe_add(parent);
+
+ for (i = 0; i < 20; i++)
+ {
+ label = elm_label_add(z->naviframe);
+ snprintf(buf, sizeof(buf), "%s [%d]", id, i);
+ elm_object_text_set(label, buf);
+ evas_object_show(label);
+ evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ // The _button function creates a button which is either "Previous" (-1) or
+ // "Next" (1)
+ prev = _button(z, -1);
+ next = _button(z, 1);
+ // Use the populate_cb callback to provide the customization of the way the
+ // elements are added inside the naviframe
+ context = populate_cb(z->naviframe, buf, prev, next, label, context);
+ }
+ return z;
+}
+
+
+The prototype of the callbacks is fairly large, but that is because of the
+syntax for callbacks in C.
+
+
+// Push items one after the other
+static Elm_Object_Item *
+_populate_cb__push(Evas_Object *nav, const char *title,
+ Evas_Object *prev, Evas_Object *next, Evas_Object *label,
+ Elm_Object_Item *context)
+{
+ return elm_naviframe_item_push(nav, title, prev, next, label, NULL);
+}
+
+// Push items one after the other but use insert_after for it
+static Elm_Object_Item *
+_populate_cb__push_then_insert_after(Evas_Object *nav, const char *title,
+ Evas_Object *prev, Evas_Object *next, Evas_Object *label,
+ Elm_Object_Item *context)
+{
+ if (context == NULL)
+ {
+ return elm_naviframe_item_push(nav, title, prev, next, label, NULL);
+ }
+ else
+ {
+ return elm_naviframe_item_insert_after(nav, context, title, prev, next, label, NULL);
+ }
+}
+
+// Push one item and repeatedly insert new items before the last inserted
+// item
+static Elm_Object_Item *
+_populate_cb__push_then_insert_before(Evas_Object *nav, const char *title,
+ Evas_Object *prev, Evas_Object *next, Evas_Object *label,
+ Elm_Object_Item *context)
+{
+ if (context == NULL)
+ {
+ return elm_naviframe_item_push(nav, title, prev, next, label, NULL);
+ }
+ else
+ {
+ return elm_naviframe_item_insert_before(nav, context, title, prev, next, label, NULL);
+ }
+}
+
+
+Create a window with a vertical box, which holds the three naviframes from the
+''elm_main()''.
+
+
+
+EAPI_MAIN int
+elm_main(int argc, char **argv)
+{
+ Evas_Object *win;
+
+ win = elm_win_util_standard_add("Naviframe", "Naviframe Tutorial");
+ elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
+ elm_win_autodel_set(win, EINA_TRUE);
+
+ Evas_Object *box;
+ struct naviframe_zipper **z = malloc(3*sizeof(struct naviframe_zipper *));
+
+ box = elm_box_add(win);
+ elm_box_horizontal_set(box, EINA_FALSE);
+ elm_box_homogeneous_set(box, EINA_TRUE);
+ evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(box);
+ elm_win_resize_object_add(win, box);
+
+ z[0] = _naviframe_populate_gen(win, "Before", (void*)_populate_cb__push_then_insert_before);
+ elm_box_pack_end(box, (*z)->naviframe);
+
+ z[1] = _naviframe_populate_gen(win, "After", (void*)_populate_cb__push_then_insert_after);
+ elm_box_pack_end(box, (*(z+1))->naviframe);
+
+ z[2] = _naviframe_populate_gen(win, "Push", (void *)_populate_cb__push);
+ elm_box_pack_end(box, (*(z+2))->naviframe);
+
+ evas_object_smart_callback_add(win, "delete,request", _delete_cb, z);
+ //win 400x400 px
+ evas_object_resize(win, 400, 400);
+ evas_object_show(win);
+ elm_run();
+ return 0;
+}
+ELM_MAIN()
+
+\\
+//**__The whole code__ : **//{{/code_c/tutorial/naviframe/naviframe.c}}
diff --git a/public_html/data/pages/develop/legacy/tutorial/panes_tutorial.txt b/public_html/data/pages/develop/legacy/tutorial/panes_tutorial.txt
new file mode 100644
index 00000000..13c5e8d8
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/panes_tutorial.txt
@@ -0,0 +1,248 @@
+~~Title: Panes Tutorial~~
+==== Panes Tutorial ====
+
+This tutorial explains how to use Panes in the application.
+
+=== Table of Contents ===
+
+ * [[#Initializing_the_Application|Initializing the Application]]
+ * [[#Creating_a_Panes_Widget|Creating a Panes Widget]]
+ * [[#Configure_the_Panes|Configure the Panes]]
+ * [[#Handling_Signals|Handling Signals]]
+
+
+A panes example : {{ :panes.png?direct |list}}
+
+**__//The whole code://__**
+{{/code_c/tutorial/panes/panes.c}}
+--------
+
+=== Initializing the Application ===
+
+The code below shows a typical elementary application that creates a window
+entitled "Panes Tutorial". The panes goes inside.
+
+
+#include
+
+EAPI_MAIN int
+elm_main(int argc, char **argv)
+{
+ Evas_Object *win;
+
+ win = elm_win_util_standard_add("Panes", "Panes Tutorial");
+ elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
+ elm_win_autodel_set(win, EINA_TRUE);
+ //win 400x400 px
+ evas_object_resize(win, 400, 400);
+
+ //panes code here
+
+ evas_object_show(win);
+ elm_run();
+ return 0;
+}
+ELM_MAIN()
+
+
+=== Creating a Panes Widget ===
+
+The elm_panes widget adds a draggable bar between two contents. When dragged,
+this bar resizes the contents. To create a new Panes into an Elementary
+object, use the ''elm_panes_add()'' function:
+
+
+// Add an elm_panes
+Evas_Object *panes;
+panes = elm_panes_add(win);
+evas_object_size_hint_weight_set(panes, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+elm_win_resize_object_add(win, panes);
+evas_object_show(panes);
+
+
+=== Configure the Panes ===
+
+By default, the orientation of the Panes is vertical. To modify the
+orientation, use the ''elm_panes_horizontal_set()'' function.
+
+
+Evas_Object *panes_h;
+// Add a horizontal elm_panes
+panes_h = elm_panes_add(win);
+elm_panes_horizontal_set(panes_h, EINA_TRUE);
+
+
+The code above creates another Panes object and sets the horizontal
+orientation. To add content in a panes, use the
+''elm_object_part_content_set()'' function. Here we add the horizontal Panes
+''panes_h'' to the "left" part of the first Panes ''panes'' created.
+
+
+elm_object_part_content_set(panes, "left", panes_h);
+
+
+This is how to set a button object to the "right" side of our vertical Panes
+widget.
+
+
+// Create a button object
+bt = elm_button_add(win);
+elm_object_text_set(bt, "Right");
+evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
+evas_object_show(bt);
+
+// and set it to the "right" part of the vertical Panes
+elm_object_part_content_set(panes, "right", bt);
+
+
+The content of the horizontal Panes is set with two button objects (up and
+down). When populating a vertically displayed Panes, the left content is
+placed at the top, and the right content is placed at the bottom.
+
+
+// Create a "Up" button
+bt = elm_button_add(win);
+elm_object_text_set(bt, "Up");
+evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
+evas_object_show(bt);
+elm_object_part_content_set(panes_h, "left", bt);
+
+// Create a "Down" button
+bt = elm_button_add(win);
+elm_object_text_set(bt, "Down");
+evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
+evas_object_show(bt);
+elm_object_part_content_set(panes_h, "right", bt);
+
+
+The elm_panes can be dragged with the mouse but the proportion can also be set
+with the ''elm_panes_content_left_size_set()'' and
+''elm_panes_content_right_size_set()'' functions. As an example, this is how to
+set the left size of both panes to 80%.
+
+
+// Set the proportion of the panes to 80%
+elm_panes_content_left_size_set(panes, 0.8);
+elm_panes_content_left_size_set(panes_h, 0.8);
+
+
+The Panes proportions can also be fixed so that the user is not able to drag
+them. To do this, use the ''elm_panes_fixed_set()'' function.
+
+
+// Fix the Panes proportion
+elm_panes_fixed_set(panes_h, EINA_TRUE);
+
+
+==== Handling Signals ====
+
+The Panes widgets emit four different signals, depending on the users'
+interaction with the draggable bar.
+
+ * "press" - The pane is pressed.
+ * "unpressed" - The pane is released after being pressed.
+ * "clicked" - The pane is clicked.
+ * "clicked,double" - The pane is double clicked.
+
+A callback function is added for each of them.
+
+**__//"click" Signal//__**
+
+The callback function for the clicked signal prints "Clicked" to standard
+output.
+
+
+// click callback
+static void
+_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("Clicked\n");
+}
+
+
+This is how to register this callback function to the vertical panes.
+
+ evas_object_smart_callback_add(panes, "clicked", _clicked_cb, panes);
+
+
+**__//"press" Signal//__**
+
+The callback function for the clicked signal prints "Clicked" to standard
+output.
+
+
+// press callback
+static void
+_press_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("Pressed\n");
+}
+
+
+The callback function for the "press" signal prints "Pressed" to the standard
+output.
+
+
+evas_object_smart_callback_add(panes, "press", _press_cb, panes);
+
+
+**__//"unpress" Signal//__**
+
+For the "unpress" signal, the proportion size of the left content of the Panes
+widget is printed to the standard output. To do this, use the
+''elm_panes_content_left_size_get()'' function.
+
+
+static void
+_unpress_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("Unpressed, size : %f\n", elm_panes_content_left_size_get(obj));
+}
+
+
+This is how to register this callback function to the vertical panes.
+
+evas_object_smart_callback_add(panes, "unpress", _unpress_cb, panes);
+
+
+**__//"clicked,double" Signal//__**
+
+Hide the left part of the Panes widget on the "clicked,double" signal and set
+the left proportion to 0.0. To restore the left part proportion with a double
+click on the hidden part of the Panes widget, use the
+''elm_panes_content_left_size_get()'' and
+''elm_panes_content_left_size_set()'' functions, and a variable to store the
+value of the current proportion.
+
+
+// double clicked callback
+static void
+_clicked_double_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ static double size = 0.0;
+ double tmp_size = 0.0;
+ tmp_size = elm_panes_content_left_size_get(obj);
+ if (tmp_size > 0)
+ {
+ elm_panes_content_left_size_set(obj, 0.0);
+ printf("Double clicked, hidden.\n");
+ }
+ else
+ {
+ elm_panes_content_left_size_set(obj, size);
+ printf("Double clicked, restoring size.\n");
+ }
+ size = tmp_size;
+}
+
+
+This is how to register this callback function to the Panes.
+
+
+evas_object_smart_callback_add(panes, "clicked,double", _clicked_double_cb, panes);
+
+\\
+**__//The whole code://__** {{/code_c/tutorial/panes/panes.c}}
diff --git a/public_html/data/pages/develop/legacy/tutorial/popup_tutorial.txt b/public_html/data/pages/develop/legacy/tutorial/popup_tutorial.txt
new file mode 100644
index 00000000..2446cede
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/popup_tutorial.txt
@@ -0,0 +1,92 @@
+~~Title: Popup Tutorial~~
+==== Popup Tutorial ====
+
+This tutorial explains how to use Popup in the application.
+
+=== Table of Contents ===
+
+ * [[#Initializing_the_Application|Initializing the Application]]
+ * [[#Creating_a_Popup_Widget|Creating a Popup Widget]]
+
+A popup example : {{ :popup.png?direct |list}}
+
+**__//The whole code://__**
+
+{{/code_c/tutorial/popup/popup.c}}
+--------
+
+=== Initializing the Application ===
+
+The code below shows a typical elementary application that creates a window
+entitled "Popup Tutorial" and a button which opens up popup on click.
+
+#include
+
+static void
+_btn_click_cb(void *data, Evas_Object *obj EINA_UNUSED,
+ void *event_info EINA_UNUSED)
+{
+ //popup code here
+}
+
+EAPI_MAIN int
+elm_main(int argc, char **argv)
+{
+ Evas_Object *win, *btn;
+
+ win = elm_win_util_standard_add("Popup", "Popup Tutorial");
+ elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
+ elm_win_autodel_set(win, EINA_TRUE);
+ //win 400x400 px
+ evas_object_resize(win, 400, 400);
+
+ btn = elm_button_add(win);
+ elm_object_text_set(btn, "popup");
+ evas_object_resize(btn, 100, 50);
+ evas_object_move(btn, 150, 150);
+ evas_object_show(btn);
+ evas_object_smart_callback_add(btn, "clicked", _btn_click_cb, win);
+
+ evas_object_show(win);
+ elm_run();
+ return 0;
+}
+ELM_MAIN()
+
+
+=== Creating a Popup Widget ===
+This widget is an enhancement of Notify. In addition to content area, there are two optional sections, namely title area and action area.
+
+
+static void
+_popup_close_cb(void *data, Evas_Object *obj EINA_UNUSED,
+ void *event_info EINA_UNUSED)
+{
+ Evas_Object *popup = data;
+ //delete popup
+ evas_object_del(popup);
+}
+
+static void
+_btn_click_cb(void *data, Evas_Object *obj EINA_UNUSED,
+ void *event_info EINA_UNUSED)
+{
+ Evas_Object *popup;
+ Evas_Object *btn;
+
+ // Add an elm popup
+ popup = elm_popup_add(data);
+ elm_object_text_set(popup, "This Popup has content area and "
+ "action area set, action area has one button Close");
+
+ // popup buttons
+ btn = elm_button_add(popup);
+ elm_object_text_set(btn, "Close");
+ elm_object_part_content_set(popup, "button1", btn);
+ evas_object_smart_callback_add(btn, "clicked", _popup_close_cb, popup);
+
+ // popup show should be called after adding all the contents and the buttons
+ // of popup to set the focus into popup's contents correctly.
+ evas_object_show(popup);
+}
+
\ No newline at end of file
diff --git a/public_html/data/pages/develop/legacy/tutorial/preference/code.txt b/public_html/data/pages/develop/legacy/tutorial/preference/code.txt
new file mode 100644
index 00000000..aca994ae
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/preference/code.txt
@@ -0,0 +1,121 @@
+~~Title: Code Preferences~~
+//**__previous page__: **//[[/develop/legacy/tutorial/preference/description|Preferences Description]]
+==== Code Preferences ====
+
+Now that the preferences is fully described, add them to our application.
+
+
+Evas_Object *prefs;
+prefs = elm_prefs_add(win);
+evas_object_size_hint_weight_set(prefs, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+elm_object_content_set(conform, prefs);
+evas_object_show(prefs);
+elm_prefs_autosave_set(prefs, EINA_FALSE);
+elm_prefs_file_set(prefs, "preference.epb", NULL);
+
+
+{{ :preference_base.png }}
+
+An ''Elm_Prefs'' object is here created, which is the one that will display the
+preferences. The automatic saving is then set to false, and the file holding
+the compiled preferences is defined.
+
+
+Elm_Prefs_Data *prefs_data;
+prefs_data = elm_prefs_data_new("preference.cfg", NULL, EET_FILE_MODE_READ_WRITE);
+elm_prefs_data_set(prefs, prefs_data);
+
+
+Here, an ''Elm_Prefs_Data'' object is created. It will hold the user-defined
+values. The file in which those values will be stored in and read from at
+start is set in ''prefs_data''. Finally, it is associated with the preferences
+created before.
+
+As you remember, three buttons for three actions were added in preferences: one
+saves the form, one resets it, and a last one does an other action.
+Elementary will generate some events in the lifetime
+of the preferences. For instance, we may want to get notified when the
+preferences are saved or when the action button is clicked.
+
+
+evas_object_smart_callback_add(prefs, "page,saved", _save_cb, NULL);
+evas_object_smart_callback_add(prefs, "action", _action_cb, NULL);
+elm_prefs_data_event_callback_add(prefs_data, ELM_PREFS_DATA_EVENT_ITEM_CHANGED, _changed_cb, prefs);
+
+
+Those will call the specified callbacks. A specification for a function to be
+called for each and every value change is also added.
+
+
+static void
+_save_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Evas_Object *prefs;
+ Evas_Object *label;
+ prefs = obj;
+ label = (Evas_Object *) elm_prefs_item_object_get(prefs, "main:label");
+ elm_object_text_set(label, "Preferences have been saved.");
+}
+
+
+The callback for the save action will simply change the label text.
+
+{{ :preference_save.png }}
+
+However, the one for the action is a bit more complex. It will get the value
+from the ''universe'' item, and will set it as the label of the ''action'' button.
+Note how ''main:buttons:'' has to be prefixed as if it were in the buttons page,
+itself is in the "main" page.
+
+
+static void
+_action_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Evas_Object *prefs;
+ Elm_Prefs_Data *prefs_data;
+ Elm_Prefs_Item_Type type;
+ Eina_Value value;
+ int value_int = -1;
+ Evas_Object *button;
+ char buf[64];
+ prefs = obj;
+ prefs_data = elm_prefs_data_get(prefs);
+ if (elm_prefs_data_value_get(prefs_data, "main:universe", &type, &value))
+ {
+ eina_value_get(&value, &value_int);
+ snprintf(buf, sizeof(buf), "Value: %d", value_int);
+ button = (Evas_Object *) elm_prefs_item_object_get(prefs, "main:buttons:action");
+ elm_object_text_set(button, buf);
+ }
+}
+
+
+{{ :preference_action.png }}
+
+This last function will receive an event for all preferences change. In this
+example, only the ones pertaining to the "another" item are treated: its value
+is read and set to the label.
+
+
+static void
+_changed_cb(void *data, Elm_Prefs_Data_Event_Type type, Elm_Prefs_Data *prefs_data, void *event_info)
+{
+ Evas_Object *prefs;
+ Elm_Prefs_Data_Event_Changed *event;
+ int value_int;
+ Evas_Object *label;
+ char buf[64];
+ prefs = data;
+ event = event_info;
+ if (strcmp(event->key, "main:another")) return;
+ eina_value_get(event->value, &value_int);
+ snprintf(buf, sizeof(buf), "Spinner: %d", value_int);
+ label = (Evas_Object *) elm_prefs_item_object_get(prefs, "main:label");
+ elm_object_text_set(label, buf);
+}
+
+
+{{ :preference_another.png }}
+
+//**__The whole code__: **//{{ /code_c/tutorial/preference/preference.c }}{{
+/code_c/tutorial/preference/preference.epc }}
diff --git a/public_html/data/pages/develop/legacy/tutorial/preference/description.txt b/public_html/data/pages/develop/legacy/tutorial/preference/description.txt
new file mode 100644
index 00000000..6131bc8f
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/preference/description.txt
@@ -0,0 +1,195 @@
+~~Title: Description Preferences~~
+==== Description Preferences ====
+
+A .edc. file contains a collection with one or several page, holding items.
+
+A page is a group of preferences. It has a name, a version number, a title and
+subtitle, and has a graphical representation (widget).
+
+
+ page {
+ name: "main";
+ version: 1;
+ title: "Main preferences";
+ subtitle: "Some preferences";
+ widget: "elm/vertical_box";
+
+
+In this example, there is a page called “main”, with a version code of 1,
+holding the preferences in a vertical box.
+
+Then, a preference that holds an integer is added.
+
+
+ item {
+ name: "universe";
+ type: INT;
+ label: "Ultimate Answer of Life, the Universe and Everything";
+ editable: 1;
+ int {
+ min: 0;
+ max: 100;
+ default: 42;
+ }
+ }
+
+
+Here, an editable integer contains a value between 0 and 100, with a
+default value of 42. A label is attached to it.
+
+{{ :preference_int.png }}
+
+The type of graphical interface presented to the user can be specified:
+
+
+ item {
+ name: "another";
+ type: INT;
+ label: "Spinner";
+ widget: "elm/spinner";
+ int {
+ min: -50;
+ max: 200;
+ }
+ }
+
+
+{{ preference_int-spinner.png }}
+
+If wanted, float values can be added too.
+
+
+ item {
+ name: "floating";
+ type: FLOAT;
+ editable: 1;
+ label: "floating value";
+ float {
+ default: 0.6;
+ min: 0;
+ max: 1;
+ }
+ }
+
+
+{{ :preference_float.png }}
+
+Boolean preferences can be represented as checkboxes.
+
+
+ item {
+ name: "boolean";
+ type: BOOL;
+ label: "Check here";
+ bool {
+ default: true;
+ }
+ }
+
+
+{{ :preference_bool.png }}
+
+Adding graphical-only items such as separators or label works the same way.
+
+
+ item {
+ name: "sep";
+ type: SEPARATOR;
+ }
+ item {
+ name: "label";
+ type: LABEL;
+ label: "Some other preferences…";
+ }
+
+
+{{ :preference_display.png }}
+
+It is possible to add a text entry. In the following example, we will have a
+placeholder text, and a default value. The deny section is filled with a
+regular expression that specifies what the user entered text should not match,
+otherwise refusing the entry.
+
+
+ item {
+ name: "text";
+ type: TEXT;
+ editable: 1;
+ text {
+ placeholder: "Enter some text here.";
+ default: "default";
+ deny: "^[0-9]*$";
+ }
+ }
+
+
+{{ :preference_text.png }}
+
+For adding a date section, a minimum and maximum date can be set.
+
+
+ item {
+ name: "date";
+ type: DATE;
+ label: "First EFL Developer Day";
+ date {
+ default: 2012 11 05;
+ min: 1980 11 1;
+ max: 2200 12 2;
+ }
+ }
+
+
+Let's say that display buttons are wanted to be displayed such as one to save, another
+one to reset the form back, and the last one to do some action. They are
+wanted to be shown in a horizontal box. A new page needs to be created to hold
+those items.
+
+
+ page {
+ name: "buttons";
+ version: 1;
+ title: "Actions";
+ widget: "elm/horizontal_box";
+ items {
+ item {
+ name: "save";
+ type: SAVE;
+ label: "Save";
+ }
+ item {
+ name: "reset";
+ type: RESET;
+ label: "Reset";
+ }
+ item {
+ name: "action";
+ type: ACTION;
+ label: "Action!";
+ }
+ }
+ }
+
+
+{{ :preference_buttons.png }}
+
+This page needs to be added to the main one.
+
+
+ item {
+ name: "buttons";
+ type: PAGE;
+ source: "buttons";
+ }
+
+
+Our preference collection is now complete, we now have to compile it using
+elm_prefs_cc preference.epc, which will generate a compiled preference.epb file.
+Our preference collenction is now complete, to compile it use ''elm_prefs_cc
+preference.epc'' which will generate a compiled preference.epb file.
+\\
+
+//**__The whole code__: **//{{ code_c/tutorial/preference/preference.epc }}
+\\
+
+//**__next page__: **//[[/develop/legacy/tutorial/preference/code|Preferences Code]]
diff --git a/public_html/data/pages/develop/legacy/tutorial/preference_tutorial.txt b/public_html/data/pages/develop/legacy/tutorial/preference_tutorial.txt
new file mode 100644
index 00000000..2bf41538
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/preference_tutorial.txt
@@ -0,0 +1,18 @@
+~~Title: Preference Tutorial~~
+==== Preference Tutorial ====
+
+In this tutorial, we will see how to add preferences to an application.
+
+Elementary provides a subset to define preferences, Elm_Prefs. Those are
+defined in special .epc files who look a lot like .edc files. They are
+compiled to a binary form using elm_prefs_cc.
+
+=== Table of Contents ===
+
+ * [[/develop/legacy/tutorial/preference/description|Preferences Description]]
+ * [[/develop/legacy/tutorial/preference/code|Preferences Code]]
+
+Preference example: {{ :preference_base.png }}
+
+//**__The whole code__: **//{{ code_c/tutorial/preference/preference.epc }} {{
+code_c/tutorial/preference/preference.c}}
diff --git a/public_html/data/pages/develop/legacy/tutorial/start.txt b/public_html/data/pages/develop/legacy/tutorial/start.txt
new file mode 100644
index 00000000..1ef06ec2
--- /dev/null
+++ b/public_html/data/pages/develop/legacy/tutorial/start.txt
@@ -0,0 +1,35 @@
+~~Title: EFL Tutorials~~
+
+==== EFL Tutorials ====
+
+Here is a selection of tutorials that will help you become familiar with some details of the EFL modules and APIs. You can approach them in any order, make sure you are familiar with the [[develop/efl/start]] guide first.
+
+=== Tutorials ===
+
+ * [[develop/legacy/tutorial/basic_tutorial|Basic Tutorial]]
+ * [[develop/legacy/tutorial/genlist_tutorial|Genlist Tutorial]]
+ * [[develop/legacy/tutorial/panes_tutorial|Panes Tutorial]]
+ * [[develop/legacy/tutorial/form_tutorial|Form Tutorial]]
+ * [[develop/legacy/tutorial/menu_tutorial|Menu Tutorial]]
+ * [[develop/legacy/tutorial/naviframe_tutorial|Naviframe Tutorial]]
+ * [[develop/legacy/tutorial/popup_tutorial|Popup Tutorial]]
+ * [[develop/legacy/tutorial/gl_2d_tutorial|GL 2D Tutorial]]
+ * [[develop/legacy/tutorial/preference_tutorial|Preference Tutorial]]
+ * [[develop/legacy/tutorial/effects_tutorial|Effects Tutorial]]
+ * [[develop/legacy/tutorial/multimedia_tutorial|Multimedia Tutorial]]
+ * [[develop/legacy/tutorial/javascript_tutorial|JavaScript Tutorial]]
+
+=== Elementary ===
+
+Elementary is about displaying its widgets in a nice layout, for this purpose it provides a number of containers.
+ * [[https://www.enlightenment.org/develop/legacy/api/c/start#containerslist.html|Containers list]]
+ * [[https://www.enlightenment.org/_legacy_embed/widgetslist.html|Widgets list]]
+
+See too :
+ * [[https://www.enlightenment.org/develop/legacy/api/c/start#infralist.html|Infrastruture list]]
+
+Once efl installed, you can see widgets in action by running elementary_test program, and corresponding code examples in [[https://git.enlightenment.org/core/efl.git/tree/src/bin/elementary]]
+
+=== Samples ===
+
+ * [[develop/legacy/samples/elm_min_size_control|Controlling Minimum Size of Widgets]]
\ No newline at end of file
diff --git a/public_html/data/pages/develop/navigation.txt b/public_html/data/pages/develop/navigation.txt
new file mode 100644
index 00000000..d4719a0e
--- /dev/null
+++ b/public_html/data/pages/develop/navigation.txt
@@ -0,0 +1,57 @@
+ * [[/develop/start.md] | Developing with EFL]]
+ * [[/develop/unified-and-legacy.md | Using Legacy and Unified together]]
+ * [[/develop/debug/start.md | Debugging EFL Apps]]
+ * [[/develop/debug/debug-symbols.md | Recompiling with Debug Symbols]]
+ * [[/develop/debug/log-levels.md | Log Levels]]
+ * [[/develop/debug/c/start.md | Debugging EFL C Apps]]
+ * [[/develop/debug/c/gdb.md | With GDB]]
+ * [[/develop/debug/c/valgrind.md | With Valgrind]]
+ * [[/develop/debug/c/clouseau.md | With Clouseau]]
+ * [[/develop/debug/c/remote-debug.md | Remotely]]
+ * [[/develop/setup/start.md | Setting Up EFL]]
+ * [[/develop/setup/c/start.md | C Dev Environment]]
+ * [[/develop/setup/csharp/start.md | C# Dev Environment]]
+ * [[/develop/legacy/tutorial/ | Tutorials: Legacy API]]
+ * [[/develop/tutorials/c/start.md | Tutorials: Unified C API]]
+ * [[/develop/tutorials/c/hello-world.md | Hello World]]
+ * [[/develop/tutorials/c/hello-world-gui.md | Hello World GUI]]
+ * [[/develop/tutorials/c/eo-intro.md | EO Objects]]
+ * [[/develop/tutorials/c/eo-refcount.md | EO Reference Counting]]
+ * [[/develop/tutorials/c/eo-classes.md | EO Classes]]
+ * [[/develop/tutorials/c/eo-inherit.md | EO Inheritance]]
+ * [[/develop/tutorials/c/eo-multiinherit.md | EO Multiple Inheritance]]
+ * [[/develop/tutorials/c/lifecycle.md | Lifecycle Management]]
+ * [[/develop/tutorials/csharp/start.md | Tutorials: Unified C# API]]
+ * [[/develop/tutorials/csharp/hello-world-cs.md | Hello World C#]]
+ * [[/develop/tutorials/csharp/hello-world-gui-cs.md | Graphical Hello World C#]]
+ * [[/develop/tutorials/csharp/texteditor-cs.md | Simple Text Editor C#]]
+ * [[/develop/legacy/program_guide/start | Programming Guides: Legacy API]]
+ * [[/develop/guides/c/start.md | Programming Guides: Unified C API]]
+ * [[/develop/guides/c/eina/start.md | Eina]]
+ * [[/develop/guides/c/eina/iterator-functions.md]]
+ * [[/develop/guides/c/eina/strings.md]]
+ * [[/develop/guides/c/eina/arrays.md]]
+ * [[/develop/guides/c/eina/hash-tables.md]]
+ * [[/develop/guides/c/eina/lists.md]]
+ * [[/develop/guides/c/eina/generic-value.md]]
+ * [[/develop/guides/c/eina/futures.md]]
+ * [[/develop/guides/c/eina/tools/ | Tools]]
+ * [[/develop/guides/c/eina/tools/logging.md]]
+ * [[/develop/guides/c/eina/tools/eina-string-tool.md]]
+ * [[/develop/guides/c/eina/tools/eina-mempool.md]]
+ * [[/develop/guides/c/eina/tools/eina-safety-checks.md]]
+ * [[/develop/guides/c/core/main-loop.md | Main Loop]]
+ * [[/develop/guides/c/core/io.md | I/O]]
+ * [[/develop/guides/c/core/events.md | Events]]
+ * [[/develop/guides/c/ui/sizing.md | UI Sizing]]
+ * [[/develop/guides/c/ui/focus.md | UI Focus]]
+ * [[/develop/guides/c/porting-guide.md | Legacy Porting Guide]]
+ * [[/develop/guides/csharp/start.md | Programming Guides: Unified C# API]]
+ * [[/develop/guides/csharp/core/main-loop.md | Main Loop]]
+ * [[/develop/guides/csharp/core/events.md | Events]]
+ * [[/develop/guides/csharp/eina/generic-value.md | Eina Values]]
+ * [[/develop/guides/csharp/ui/sizing.md | UI Sizing]]
+ * [[/develop/guides/csharp/ui/focus.md | UI Focus]]
+ * [[/develop/legacy/api/c/ | Reference Guide: Legacy API ]]
+ * [[/develop/api/ | Reference Guide: Unified C API]]
+ * [[https://enlightenment.github.io/www-content/gh-pages/api/csharp/api | Reference Guide: Unified C# API 🌐]]
diff --git a/public_html/data/pages/develop/remote_debugging.txt b/public_html/data/pages/develop/remote_debugging.txt
new file mode 100644
index 00000000..3adc2bb9
--- /dev/null
+++ b/public_html/data/pages/develop/remote_debugging.txt
@@ -0,0 +1,233 @@
+~~Title: Remote debugging~~
+==== Remote Debugging ====
+
+This tutorial aims at providing approaches to remote debugging.
+
+ - [[|ssh]]
+ - [[|Gdb server]]
+ - [[|clouseau]]
+
+=== SSH ===
+
+Remote debugging through ssh was not detailed but approached in
+[[/contrib/enlightenment-debug.md|Enlightenment Debugging]] section. In
+this section, it is more convenient to use ssh for debugging enlightenment
+because X is not available.
+
+The version of SSH that you will want to use on Linux is called OpenSSH.
+To really make ssh useful, you need a shell account on a remote machine.
+
+The first thing we'll do is simply connect to a remote machine. This is
+accomplished by running 'ssh hostname' on your local machine. The hostname
+that you supply as an argument is the hostname of the remote machine that you
+want to connect to. By default ssh will assume that you want to authenticate
+as the same user you use on your local machine. To override this and use a
+different user, simply use ''remoteusername@remotehostname'' or
+''remoteusername@remoteipadress'' as the argument.
+
+On your host machine:
+
+ssh $remote_user_name@$remote_ip_address
+#or
+ssh $remote_user_name@$remote_hostname
+
+
+The first time around it will ask you if you wish to add the remote host to a
+list of known_hosts, go ahead and say yes.
+
+
+The authenticity of host '10.5.18.65 (10.5.18.65)' can't be established.
+ECDSA key fingerprint is f0:72:8c:9d:aa:54:e4:5a:39:50:b5:b9:fd:35:71:71.
+Are you sure you want to continue connecting (yes/no)? yes
+Warning: Permanently added '10.5.18.65' (ECDSA) to the list of known hosts.
+
+
+It is important to pay attention to this question however because this is one
+of SSH's major features. Host validation. To put it simply, ssh will check to
+make sure that you are connecting to the host that you think you are
+connecting to. That way if someone tries to trick you into logging into their
+machine instead so that they can sniff your SSH session, you will have some
+warning.
+
+Finally, your user password should be asked and you can execute your command
+as you were on the distant machine:
+[[/contrib/enlightenment-debug.md#Debugging_Enlightenment_using_GDB|
+Debugging Enlightenment using GDB]].
+
+You can also use ssh-keygen to generate RSA and DSA keys. Public key
+authentication for SSH sessions are far superior to any password
+authentication and provide much higher security. ssh-keygen is the basic way
+for generating keys for such kind of authentication.
+
+=== Gdbserver ===
+
+''gdbserver'' is a control program for Unix-like systems, which allows you to
+connect your program with a remote ''gdb'' via ''target remote'' but without linking
+in the usual debugging stub.
+
+''gdbserver'' is not a complete replacement for the debugging stubs, because
+it requires essentially the same operating-system facilities that ''gdb''
+itself does. In fact, a system that can run ''gdbserver'' to connect to a
+remote ''gdb'' could also run ''gdb'' locally! ''gdbserver'' is sometimes
+useful nevertheless, because it is a much smaller program than ''gdb'' itself.
+It is also easier to port than all of ''gdb'', so you may be able to get
+started more quickly on a new system by using ''gdbserver''. Finally, if you
+develop code for real-time systems, you may find that the tradeoffs involved
+in real-time operation make it more convenient to do as much development work
+as possible on another system, for example by cross-compiling. You can use
+''gdbserver'' to make a similar choice for debugging.
+
+''gdb'' and ''gdbserver'' communicate via either a serial line or a TCP
+connection, using the standard gdb remote serial protocol.
+
+
+#server
+gdbserver localhost:2000 hello
+
+
+$ Process hello created; pid = 2763
+$ Listening on port 2000
+
+
+Now ''gdbserver'' is waiting for a connexion on the port 2000.
+
+
+#client
+gdb hello
+
+
+...
+$ Type "apropos word" to search for commands related to "word"...
+$ Reading symbols from test...(no debugging symbols found)...done.
+
+
+Use ''target remote''e to connect to the target system by indicating server ip
+and port.
+
+
+#client
+(gdb) target remote 10.5.18.65:2000
+
+
+$ Remote debugging using 10.5.18.65:2000
+$ Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols from
+$ /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done.
+$ done.
+$ Loaded symbols for /lib64/ld-linux-x86-64.so.2
+$ 0x00007ffff7ddb2d0 in _start () from /lib64/ld-linux-x86-64.so.2
+
+
+At that point, you can add breakpoints or others, then if we continue our
+program, the output of the program will be printed in the target machine.
+
+
+#client
+(gdb) continue
+
+
+Now, the application is launched on server: if as i do you use the
+[[apps_efl_debugging#Segfault in callback function]]
+example: click on the seg button will provoke a segfault.
+
+See after clicking, the traces on the client side:
+
+
+$ Program received signal SIGSEGV, Segmentation fault.
+$ 0x0000000000400b71 in ?? ()
+
+
+You can now use ''gdb'' as it is explained in [[apps_efl_debugging#Segfault in
+callback function]], for example print the backtrace:
+
+
+(gdb) bt
+
+
+$ 0 0x0000000000400b71 in ?? ()
+$ 1 0x000000000073a9a0 in ?? ()
+$ 2 0x00007ffff74e4f6c in _eo_evas_smart_cb (data=, eo_obj=, desc=, event_info=) at lib/evas/canvas/evas_object_smart.c:65
+$ 3 0x00007ffff561a8b7 in _eo_base_event_callback_call (obj_id=0x80000007e0000040, pd=0x73a3f0, desc=0x85d4c0, event_info=0x0) at lib/eo/eo_base_class.c:712
+$ 4 0x00007ffff5619648 in eo_event_callback_call (desc=desc@entry=0x85d4c0, event_info=event_info@entry=0x0) at lib/eo/eo_base.eo.c:94
+$ 5 0x00007ffff74e6f6e in evas_object_smart_callback_call (eo_obj=eo_obj@entry=0x80000007e0000040, event=event@entry=0x7ffff7af501f "clicked", event_info=event_info@entry=0x0) at lib/evas/canvas/evas_object_smart.c:784
+$ 6 0x00007ffff7995baf in _activate (obj=0x80000007e0000040) at elm_button.c:69
+$ 7 0x00007ffff7995be5 in _on_clicked_signal (data=, obj=, emission=, source=) at elm_button.c:191
+$ 8 0x00007ffff58b0507 in edje_match_callback_exec_check_finals (prop=, ed=0xaaaaaaaaaaaaaaab, source=0x7245b0 "elm", sig=0x73af9c "elm,action,click", source_states=, signal_states=, matches=0x73b0c0, ssp=0x7594e0) at lib/edje/edje_match.c:556
+$ 9 edje_match_callback_exec (ssp=ssp@entry=0x7594e0, matches=0x73b0c0, sig=sig@entry=0x73af9c "elm,action,click", source=source@entry=0x7245b0 "elm", ed=ed@entry=0x73a9a0, prop=prop@entry=0 '\000') at lib/edje/edje_match.c:711
+$ 10 0x00007ffff58b6a3d in _edje_emit_cb (prop=0 '\000', data=0x0, src=0x7245b0 "elm", sig=0x73af9c "elm,action,click", ed=0x73a9a0) at lib/edje/edje_program.c:1423
+$ 11 _edje_emit_handle (ed=0x73a9a0, sig=0x73af9c "elm,action,click", src=0x7245b0 "elm", sdata=0x0, prop=0 '\000') at lib/edje/edje_program.c:1376
+$ 12 0x00007ffff58b13a1 in _edje_message_process (em=0x667830) at lib/edje/edje_message_queue.c:684
+$ 13 0x00007ffff58b18b3 in _edje_message_queue_process () at lib/edje/edje_message_queue.c:787
+$ 14 0x00007ffff58b1a14 in _edje_job (data=) at lib/edje/edje_message_queue.c:154
+$ 15 0x00007ffff7235a32 in _ecore_job_event_handler (data=, type=, ev=) at lib/ecore/ecore_job.c:121
+$ 16 0x00007ffff7230463 in _ecore_call_handler_cb (event=, type=, data=, func=) at lib/ecore/ecore_private.h:386
+$ 17 _ecore_event_call () at lib/ecore/ecore_events.c:565
+$ 18 0x00007ffff7237e05 in _ecore_main_loop_iterate_internal (once_only=once_only@entry=0) at lib/ecore/ecore_main.c:1927
+$ 19 0x00007ffff7237f14 in ecore_main_loop_begin () at lib/ecore/ecore_main.c:983
+$ 20 0x00007ffff7a47e59 in elm_run () at elm_main.c:1097
+
+
+=== Clouseau ===
+
+An UI inspection tool for the EFL. This tool lets you inspect UI elements and
+get a lot of their properties, e.g position, size and weight. Get more
+information there: [[apps_efl_debugging#Clouseau]]
+
+Clouseau consists of a client (clouseau_client) and launcher
+(clouseau_server). This design means we can: Run the application we are
+debugging on one device and the clouseau_client itself on another. ''It is very
+similar to gdbserver''.
+
+Usage of the split client/server approach (different machines/environments/setups):
+
+== Server side ==
+
+Get the ip of your server machine, for example do:
+
+
+ip a
+#or
+ifconfig
+
+
+Then start, the server side with the ''clouseau_start'' script launching the
+application:
+
+
+clouseau_start elementary_test
+#or
+clouseau_start ./your_application
+
+
+== Client side ==
+
+Simply do:
+
+
+clouseau_client $ip_server
+
+
+or use the client interface as below:
+
+{{ :clouseau_remote.png?1200 }}
+
+And now, clouseau is usable as in [[apps_efl_debugging#Clouseau]].
diff --git a/public_html/data/pages/develop/setup/c/start.md.txt b/public_html/data/pages/develop/setup/c/start.md.txt
new file mode 100644
index 00000000..3e1bb79d
--- /dev/null
+++ b/public_html/data/pages/develop/setup/c/start.md.txt
@@ -0,0 +1,26 @@
+---
+~~Title: Setting Up a C Development Environment~~
+---
+
+# Setting Up a C Development Environment #
+
+[Installing the Enlightenment Foundation Libraries](https://www.enlightenment.org/docs/distros/start) for C development is a simple task on common platforms.
+
+The following documentation adds to that by describing how to install and run the right tools and prepare for building apps using EFL.
+## Compiling EFL Applications ###
+
+With EFL installed, you can start compiling the applications you write using Enlightenment technologies:
+
+```bash
+gcc -o your_app your_app.c `pkg-config --cflags --libs eina efl elementary`
+```
+
+Where ``your_app`` is the name of the app you want to build and ``your_app.c`` contains the source code of your application.
+
+If the compilation is successful, this will create an executable application called *your_app* in the directory. You can run this app like any other program.
+
+## Troubleshooting ##
+
+If you get errors when you compile the examples in this guide, you may be using an out of date version of EFL. Update your libraries installing from [EFL's git repository](#Installing_from_Git).
+
+If you are having problems compiling and installing EFL, you can come and seek advice on [any of our IRC channels](https://www.enlightenment.org/contact) or [post a ticket to our Phabricator](https://phab.enlightenment.org).
\ No newline at end of file
diff --git a/public_html/data/pages/develop/setup/csharp/start.md.txt b/public_html/data/pages/develop/setup/csharp/start.md.txt
new file mode 100644
index 00000000..b5dc42c6
--- /dev/null
+++ b/public_html/data/pages/develop/setup/csharp/start.md.txt
@@ -0,0 +1,104 @@
+---
+~~Title: Setting Up a C# Development Environment~~
+---
+
+# Setting Up a C# Development Environment #
+
+This page shows how to compile and install the Enlightenment Foundation Libraries (EFL) with C# bindings support, and explains how to build and run applications using them.
+
+| | WARNING | |
+| --- | ------- | --- |
+| ![NOTE](/_media/note-important.png) | **Some C# classes are currently in BETA state**
+#include
+
+// This is my very first program
+int
+main(int argc, char **argv)
+{
+ printf("Hello world!\n"); /* Print some stuff */
+ return 0;
+}
+
+
+You would compile this on a command-line as follows:
+
+ cc hello.c -o hello
+
+Run the application with:
+
+ ./hello
+
+You should then see this output:
+
+ Hello world!
+
+So what has happened here? Let's first look at the code itself. The first line:
+
+
+#include
+
+
+This tells the compiler to literally include the **stdio.h** file into your application. The compiler will find this file in the standard locations to look for include files and literally "paste" it there where the include line is. This file provides some "standard I/O" features, such as ''printf()''.
+
+The next thing is something every application will have - a ''main()'' function. This function must exist only once in the application because this is the function that is run //AS// the application. When this function exits, the application does.
+
+
+int
+main(int argc, char **argv)
+{
+}
+
+
+The ''main()'' function always returns an ''integer'' value, and is given 2 parameters on start. Those are an integer ''argc'' and then an array of strings. In C an array is generally just a pointer to the first element. A String is generally a pointer to a series of bytes (chars) which ends in a byte value of 0 to indicate the end of the string. We'll come back to this later, but as we don't use these, just ignore this for now.
+
+The next thing that happens is for the code to call a function ''printf()'' with a string "Hello world!\n". Why the "\n" at the end? This is an "escape". A way of indicating a special character. In this case this is the //newline// character. Strings in C can contain some special characters like this, and "\" is used to begin the escaped string.
+
+
+printf("Hello world!\n");
+
+
+Now finally we return from the main function with the value 0. The ''main()'' function of an application is special. It always returns an integer that indicates the "success" of the application. This is used by the shell executing the process to determine success. A return of ''0'' indicates the process ran successfully. Any other return value is an indicator of failure.
+
+
+return 0;
+
+
+You will notice a few things. First lines starting with ''#'' are commands, but don't have a '';''. This is normal because these lines are processed by the pre-processor. All code in C goes through the C pre-processor and this basically generates more code for the compiler to actually deal with. Other lines that are not starting a function, ending it or defining control end every statement in C with a '';'' character. If you don't do this, the statement continues until a '';'' is found, even if it goes across multiple lines.
+
+Note that we can do comments for human-eyes-only that the compiler ignores by having the first 2 letters if any line be ''%%//%%'' excluding whitespace (spaces, tabs etc.). Everything until the end of the line on such lines will be ignored by the compiler. For comments stretching over multiple lines or only for a small section of a line, you can start such a comment with ''%%/*%%'' and that comment will continue for as long as needed (across multiple lines) until a matching ''%%*/%%'' is found.
+
+If we look at how the application is compiled, We execute the C compiler, give it 1 or more source files to compile and the with ''-o'' tell it what output file to produce (the executable)
+
+ cc hello.c -o hello
+
+Often ''cc'' will be replaced with things like ''gcc'' or maybe ''clang'' or whatever compiler you prefer. A compiler will run the source through the pre-processor and then convert your source code into a binary form that your CPU and Os can actually understand and run.
+
+Now let's take a detour back to the machine that is running your very first C application.
+
+==== The machine ====
+
+Reality is that you are dealing with a machine. A real modern piece of hardware. Not abstract. It's real. Most machines are fairly similar these days, of course with their variations on personality, size etc.
+
+All machines have at least a single processor to execute a series of instructions. If you write an application (a common case) this is the model you will see right in front of you. An application begins by executing a list of instructions at the CPU level.
+
+The C compiler takes the C code source files you write and converts them into "machine code" (which is really just a series of numbers that end up stored in memory, and these numbers have meanings like "0" is "do nothing", "1" is "add the next 2 numbers together and store the result" etc.). Somewhere these numbers are placed in memory by the operating system when the executable is loaded, and the CPU is instructed to begin executing them. What these numbers mean is dependent on your CPU type.
+
+An example:
+
+^Memory location ^Value in hexadecimal ^Instruction meaning ^
+|0 |e1510000 |cmp r1, r0 |
+|4 |e280001a |add r0, r0, #26 |
+
+
+CPUs will do arithmetic, logic operations, change what it is they execute, and read from or write to memory to deal with data. In the end, everything to a CPU is effectively a number, somewhere to store it to or load it from and some operation you do to it.
+
+To computers, numbers are a string of "bits". A bit can be on or off. Just like you may be used to numbers, with each digit having 10 values (0 through to 9), A computer sees numbers more simply. It is 0, or it is 1. Just like you can have a bigger number by adding a digit (1 digit can encode 10 values, 2 digits can encode 100 values, 3 can encode 1000 values etc.), So too with the binary (0 or 1) numbering system computers use. Every binary digit you add doubles the number of values you can deal with. For convenience we often use [[http://en.wikipedia.org/wiki/Hexadecimal|hexadecimal]] as a way of writing numbers because it aligns nicely with the bits used in binary. [[http://en.wikipedia.org/wiki/Hexadecimal|Hexadecimal]] uses 16 values per digit, with 0 through to 9, then a through to f being digits.
+
+^Binary ^Hexadecimal ^Decimal ^
+|101 |5 |5 |
+|00101101 |2d |45 |
+|1111001101010001 |f351 |62289 |
+
+Numbers to a computer normally come in sizes that indicate how many bits they use. The sizes that really matter are:
+
+^Common term ^C type ^Number of bits ^Max unsigned ^
+|Byte |char |8 |255 |
+|Word |short |16 |65535 |
+|Integer |int |32 |~4 billion |
+|Long Integer |long |32 / 64 |~4 billion / ~18 qunitillion |
+|Long Long Integer |long long |64 |~18 qunitillion |
+|Float |float |32 |3.402823466 e+38 |
+|Double Float |double |64 |1.7976931348623158 e+308 |
+|Pointer |* **X** |32 / 64 |~4 billion / ~18 qunitillion |
+
+The sizes here are the **COMMON SIZES** found across real life architectures today. //(This does gloss over some corner cases such as on x86 systems, doubles can be 80 bits whilst they are inside a register, etc.)//
+
+Pointers are also just integers. Either 32 or 64 bits. They refer to a location in memory as a multiple of bytes. Floats and doubles can encode numbers with "a decimal place". Like 3.14159. Thus both floats and doubles consist of a mantissa and exponent. The mantissa determines the digits of the number and the exponent determines where the decimal place should go.
+
+When we want signed numbers, we center our ranges AROUND 0. So bytes (chars) can go from -128 to 127, shorts from -32768 to 32767, and so on. By default all of the types are signed (except pointers) UNLESS you put an "unsigned" in front of them. You can also place "signed" in front to explicitly say you want the type to be signed. //A catch - on ARM systems chars often are unsigned by default//. Also be aware that it is common on 64 bit systems to have long integers be 64 bit, and on 32 bit they switch to being 32 bits. Windows is the exception here and long integers will remain 32 bit (we are skipping windows 16 bit coding here).
+
+Pointers follow the instruction set mode. For 32 bit architectures pointers are 32 bits in size, and are 64 bits in size on 64 bit architectures. Standard ARM systems are 32 bit, except for very new 64 bit ARM systems. On x86, 64 bit has been around for a while, and so you will commonly see both. This is the same for PowerPC and MIPS as well.
+
+Memory to a machine is just a big "spreadsheet" of numbers. Imagine it as a spreadsheet with only 1 column and a lot of rows. Every cell can store 8 bits (a byte). If you "merge" rows (2, 4, 8) you can store more values as above. But when you merge rows, the next row number doesn't change. You also could still address the "parts" of the merged cell as bytes or smaller units. In the end pointers are nothing more than a number saying "go to memory row 2943298 and get me the integer (4 bytes) located there" (if it was a pointer to an integer). The pointer itself just stores the PLACE in memory where you find the data. The data itself is what you get when you de-reference a pointer.
+
+This level of indirection can nest. You can have a pointer to pointers, so de-reference a pointer to pointers to get the place in memory where the actual data is then de-reference that again to get the data itself. Follow the chain of pointers if you want values. Since pointers are numbers, you can do math on them like any other. You can advance through memory just by adding 1, 2, 4 or 8 to your pointer to point to the "next thing along" for example, which is how arrays work.
+
+In general machines like to store these numbers in memory at a place that is aligned to their size. That means that bytes (chars) can be stored anywhere as the smallest unit when addressing memory is a byte (in general). Shorts want to be aligned to 16 bits - that means 2 bytes (chars), so you should (ideally) never find a short at an ODD byte in memory. Integers want to be stored on 4 byte boundaries, Long integers may align to either 4 or 8 bytes depending, and long long integers on 8 byte boundaries. Floats would align to 4 bytes, doubles to 8 bytes, and pointers to either 4 or 8 bytes depending on size. Some architectures such as x86, don't care if you align things, and will "fix things up for you" transparently. But others (most actually) care and will refuse to access data if it is nor aligned correctly.
+
+So keep this in mind as a general rule - your data must be aligned. The C compiler will do most of this for you, until you start doing "fun" things with pointers.
+
+Note that in addition to memory, CPUs will have "temporary local registers" that are directly inside the CPU. They do not have addresses. The compiler will use them as temporary scratch space to store data from memory so the CPU can work on it. Different CPU types have different numbers and naming of such registers. ARM CPUs tend to have more registers than x86 for example.
+
+==== Variables ====
+
+C provides you with a handy "abstraction" to store data in memory. These are normally variables. When you first see some C code, you likely see some variables and these are stored on the stack. This is a special place in memory for such temporary variables and data. It grows and shrinks as needed and has a specific order to store data.
+
+Other data is likely on the "heap" and you will explicitly ask it to be there. The heap is basically a "big mess of data" where you likely have more permanent data or the larger bits of data. C provides some basic methods to ask for this storage, where the stack allocation space is generally implicit when you call a function.
+
+Variables will live within this memory, and normally the C compiler will deal with alignment (especially the stack). You simply say "I want a variable called "bob", that is of the type "integer". The type of a variable tells the compiler how much memory it should use. The name is how to refer to it in your code.
+
+
+int bob;
+
+
+You can even tell the compiler to make sure it has an initial value. If you don't, its value may be random garbage that was there before in memory.
+
+
+int bob = 42;
+
+
+Once you have declared a variable, you can now use it. You can group values together in repeating sequences using //arrays// or in mixed groups called //structs// that contain a sequence of variables structured as indicated. Order is important and is maintained in memory. You can at times take advantage of this ordering for doing things like "inheritance". Arrays also have strict ordering in memory, so you can later on use pointers and simple arithmetic to walk up and down an array to access data, which is very handy on many occasions. Keep in mind that arrays (like memory) all begin at 0, so the first item is item 0, thus the last item is always size - 1.
+
+
+int bobs[100];
+double things[200];
+
+
+
+struct mydata
+{
+ int count;
+ double items[100];
+};
+
+struct mydata bob;
+
+
+Structs (structured data) are very important and allow C to become rather complex and powerful when it comes to data storage, and don't forget you can embed structs inside structs, have arrays of structs, structs with arrays and use pointers to indirect from one struct to another, arrays of pointers to structs and so on.
+
+==== Functions ====
+
+A function is a basic unit of execution. Conceptually a function hides an implementation of how to do something and exposes this as a higher level command. "Go make me a sandwich, using butter, cheese and ham" could be seen as calling the "make me a sandwich" function, with the input parameters (or arguments) being butter, cheese and ham, and the function returns a sandwich (for example). In C we might express this as follows:
+
+
+struct sandwich
+{
+ struct bread_slice top;
+ struct bread_slice bottom;
+ enum filling *fillings;
+ int num_fillings;
+};
+
+enum filling
+{
+ FILLING_HAM,
+ FILLING_CHEESE,
+ FILLING_BUTTER
+};
+
+struct sandwich *
+make_sandwich(enum filling *fillings, int num_fillings)
+{
+ struct sandwich *sandwich;
+ int i;
+
+ sandwich = malloc(sizeof(struct sandwich));
+ if (!sandwich) return NULL;
+ get_bread_top(&(sandwich->top));
+ get_bread_bottom(&(sandwich->bottom));
+ sandwich->fillings = malloc(sizeof(enum filling) * num_fillings);
+ if (!sandwich->fillings)
+ {
+ free(sandwich);
+ return NULL;
+ }
+ for (i = 0; i < num_fillings; i++)
+ sandwich->fillings[i] = fillings[i];
+ sandwich->num_fillings = num_fillings;
+ return sandwich;
+}
+
+
+I may call the function as follows:
+
+
+struct sandwich *sandwich;
+struct filling my_fillings[3] = {FILLING_HAM, FILLING_CHEESE, FILLING_BUTTER};
+
+sandwich = make_sandwich(my_fillings, 3);
+
+
+You will notice we used little markers such at * to indicate the variable is a //POINTER// to that type of variable. The sandwich structure is located over at "byte 1837616 in memory" for example (and the next N bytes will be the data for the sandwich). This also is used for return types of functions. This level of indirection (to return something that points to the the real thing) is very common, because it is very efficient (returning only 4 or 8 bytes of data) and keeping the original data exactly where it is without needing any copies. It means we can modify the same object from many locations by passing around a pointer //TO// that object.
+
+We also use the //&// operator to get the pointer //TO// that element in memory. This is a great way of passing in "please do something to THIS THING HERE that i have". In the above case, we call an imaginary function that we haven't specified above to "get a bread slice" and place it into the top and bottom elements of the sandwich.
+
+So back to functions, They exist mostly to hide complexity. Many simple things you will see are actually rather complex, and are many detailed steps to get it right. Functions encapsulate this and hide it at a higher level. They are basically ways of summarizing "this bit of code here" with a defined set of input parameters (0 or more) and a return value (or no return) when the function is done. When a function is called, execution waits for it to finish before resuming in the current scope.
+
+In C (and on a machine) everything lives in memory somewhere, and so functions can even have pointers. This is a very useful mechanism to say "call this thing here, when this other things happens". What "this thing here" is can be modified at runtime to point to any function you like. These are often referred to as Callbacks. See below for more details on these.
+
+==== Types ====
+
+C provides a host of basic types. The common ones are:
+
+^Type ^Description ^
+|char |A single byte almost always signed except on ARM where it likely is unsigned by default (use signed char explicitly to get signed on ARM) |
+|unsigned char |A single byte that has no sign |
+|short |2 bytes together as a short word, signed |
+|unsigned short |2 bytes together as a short word, unsigned |
+|int |4 bytes together as a word, signed |
+|unsigned int |4 bytes together as a word, unsigned |
+|long |4 or 8 bytes (32 or 64 bit) together as a word, signed |
+|unsigned long |4 or 8 bytes (32 or 64 bit) together as a word, unsigned |
+|long long |8 bytes together as a word, signed |
+|unsigned long long |8 bytes together as a word, unsigned |
+|float |4 bytes together as a floating point value, signed |
+|double |8 bytes together as a floating point value, signed |
+|struct x |A custom defined set of N bytes, broken up into sub-types as per the struct definition of "x" |
+|enum y |A type that can have one of N values (an enumerated type), where those word-like values also have numerical values (size is almost always 4 bytes like an int) |
+|void |An undefined type, used often to mean no type (no return or no parameters) or if used with pointers, a pointer to "anything" |
+|* z |A pointer to type "z". Have ''%%** z%%'' to mean "a pointer to a pointer to something of type z", or ''%%*** z%%'' etc. |
+
+You can create new types yourself with a typedef. For example:
+
+
+typedef double Coordinate;
+
+
+This would create a new type of ''Coordinate'' which really is a double. You can typedef to typedefs too.
+
+
+typedef double Coordinate;
+typedef Coordinate Graphics_Coordinate;
+
+
+You can use this with structs and enums as well to make new types that represent this custom defined type you have created, like:
+
+
+struct sandwich
+{
+ struct bread_slice top;
+ struct bread_slice bottom;
+ enum filling *fillings;
+ int num_fillings;
+};
+
+enum filling
+{
+ FILLING_HAM,
+ FILLING_CHEESE,
+ FILLING_BUTTER
+};
+
+typedef struct sandwich Sandwich;
+typedef enum filling Filling;
+
+
+You can now replace all ''struct sandwich'' instances with ''Sandwich''. Take note that since C only parses a file once from beginning to end, you need to typedef something before you use it, otherwise the compiler will not know about that type yet when it sees it in code. Keep this in mind - ordering does matter.
+
+==== Arithmetic ====
+
+C supports all the usual mathematics you might want, as well as binary logic operations and boolean logic. You can add (''+''), subtract (''-''), multiply (''*''), divide (''/''), modulo (''%''), do bit-wise logic operations with XOR (''^''), AND (''&''), OR (''|''), NOT (''~''), or do boolean logic with operators such as AND (''&&''), OR (''||''), NOT (''!''). It is highly advised to group operations in braces like () to be clear on the order of operation you wanted. So ''%%x = a * b - c / d%%'' is unclear as to what you intended. It is wise to explicitly group like ''%%x = a * ((b - c) / d)%%''. The same goes for the bit-wise operations as well.
+
+Note that this arithmetic starts falling apart if you try to add two structs (it doesn't work), as these are not normal integers or floating point values. You can add two pointers of the same type, but do not use ''void *'' for pointer arithmetic as it is unclear what the unit is. Normally a pointer has a unit size of its type size. Also bit-wise arithmetic isn't very useful on floating point values etc.
+
+You also have shortcuts like ''%%i = i + 1%%'' can be ''%%i++%%''. Or ''%%i = i - 1%%'' can be ''%%i--%%'' or to be specific ''%%i = i + 10%%'' can be ''%%i += 10%%'' and same with ''%%i -= 10%%'' being ''%%i = i - 10%%''.
+
+==== Logic ====
+
+In addition to bit-wise logic, there is boolean logic. In C if a variable is 0, it is false, and otherwise it is true. You can thus use simple ints, chars etc. as booleans. You would indicate boolean logic vs bit logic with ''&&'' for logical AND, and ''||'' for logical OR. For example:
+
+
+// if (a is less than 10 AND b is < 100) OR z is true then...
+if (((a < 10) && (b < 100)) || (z)) printf("Success\n");
+
+
+In addition to ''&&'' and ''||'' there is ''!'' which means //NOT// or //INVERSE//. You can combine these with comparisons like ''=='' meaning "is equal to numerically" (the 2 values either side have the same number when boiled down to a series of bits/bytes), ''!='' meaning "is not equal to" (the inverse of ''==''), ''<'' meaning "is less than", ''>'' meaning "is greater than", ''<='' meaning "is less than or equal to" and ''>='' meaning "is greater than or equal to".
+
+Like with arithmetic, it is highly advisable to group your logic into clear order of evaluation with braces. Relying on order of operation can lead to bugs when you happen to not quite remember an order properly, and then someone trying to fix your code later being confused as to exactly what you meant to do. So be clear and use braces liberally. They cost you nothing in performance at runtime, just add clarity in code when it is written.
+
+==== Loops ====
+
+Like most languages you will have seen, C can loop with ''for'' loops as well as ''while'' loops and ''do while'' loops. You can even use flow control such as goto to create loops, though this is generally not recommended except in very rare circumstances. The most common use of goto for such flow control would be error handling in a single section at the end of a function or code segment to avoid duplicate error case handling in multiple places. You can control the flow within a loop using ''continue'' and ''break''. The ''continue'' statement will skip the rest of the current outer most for or while loop and go to the end of it to re-evaluate looping conditions. the ''break'' statement breaks out of the current while or for loop and returns to the parent scope.
+
+
+int i;
+
+for (i = 0; i < 100; i++)
+ {
+ printf("Loop number %i\n", i);
+ if (rand() < 100) break;
+ }
+
+while (i > 0)
+ {
+ printf("While loop changing i to %i\n", i);
+ if (rand() < 100) break;
+ }
+
+do
+ {
+ i--;
+ if (rand() < 100) continue;
+ printf("do .. while only prints some of the iterations as this may be skipped. i = %i\n". i);
+ }
+while (i > 0);
+
+
+The ''for'' loop always has 3 statements separated by a '';'' char. The first is the starting statement. This is executed when the loop first starts. In this case we set i to be 0. The second statement is run at the start of every loop to determine if it should continue or not. If this statement is true, then the loop continues. The last statement is something to do at the end of every loop iteration before returning to the start of the loop. Here it is to increment the value of i by one.
+
+The ''while'' loop simple checks the statement in the braces following the while is true at the start of each loop, and if it is, executes the statements in the following scope, until the end, then repeats this statement in the first braces, until it is false.
+
+The ''do while'' loop is just like ''while'' But the test statement is executed at the end of each loop, not at the start, so you are guaranteed that the inner scope code of the loop will execute at least once before a test.
+
+==== Pre-processor and Macros ====
+
+You already had your first encounter with the C pre-processor with the ''#include'' line in the first "Hello world" example above. The pre-processor is "executed" during compilation before the code is actually parsed by the C compiler proper. The job of the pre-processor in general is to "generate" more code. This mechanism is used to save a lot of repetitive typing, copy & pasting, conditional compilation (compile section of code A instead of code B based on compile-time information), as well as wholesale importing of other pieces of code that can define types, structs, function prototypes and more. This will not cover all possible features of the pre-processor, but the most common and useful. Here are some of the basic use cases.
+
+== System include headers ==
+
+#include
+
+
+These headers define functions, types and even other pre-processor macros for use in your code. These headers are generally provided by system libraries (such as libc or EFL etc.) and you generally would place such include lines at the top of your C source files to indicate you are "including" the content of that file. Remember that this file is also passed through the pre-processor and thus can recurse, including more files than can include more files and so on. All the content of these files is effectively "pasted" into your code at the point of the include. These lines all start with a ''#'' character on the first character of the line.
+
+== Local headers ==
+
+#include "myheader.h"
+
+
+Once your projects get a bit larger, you will divide your application or library up into many .c and .h files. The headers (.h files) will define things from other parts of your source code base. you likely will use a Makefile or some similar mechanism to compile your project file by file and then link it together. You will compile the .c files, and include .h files along the way. The ''"'' quotes as opposed to the ''<>'' is that this here searches in the same directory as the source file that includes it, but the latter will search in a search path of directories (normally ''/usr/include'' and this can be extended with extra command line options to the compiler such as ''-I/usr/local/include'' to add this directory to the search path for includes).
+
+== Defined values ==
+
+#define NUM_ITEMS 100
+
+int x = NUM_ITEMS;
+
+
+It is useful to avoid "magic numbers" in your code to define them in a central place (at the top of your .c files or in a shared common .h file) and give them a name. If you need to change them later, you change them in one place only. This also helps document the purpose of this magic value as it gives it a descriptive name, improving maintainability. Note that you can also "undefine" a value with an ''#undef NUM_ITEMS'' for example. This will remove the definition from that point on in your source file, unless re-defined again. This can be useful if you want a special define for just a section of code, but then want to release that definition to allow it to be re-used later on.
+
+
+#define MY_TITLE "Hello world"
+
+printf("This is: %n", MY_TITLE);
+
+
+You can define anything. It literally is a "string replacement" system, so it will replace the defined toke with what you define it as. This works with numbers, strings, functions and whole sections of text. You can even define a definition with other definitions inside of it:
+
+
+#define NUM_ITEMS 100
+#define MY_STRING "Hello", NUM_ITEMS
+
+printf("This string: %s has %i items\n", MY_STRING);
+
+
+== More complex macros ==
+
+#define SIMPLE_FUNC(x, y) complex_func(100, 200, x, "hello", 4.8, y)
+
+int x = rand();
+SIMPLE_FUNC("Boo", 10 * x);
+
+
+You can define macros that take parameters. They will produce the code that you specify exactly as given, replacing instances of the tokens given as parameters as they are passed into the macro. This is extremely useful in being able to simplify and make code more concise. The tokens passed in don't have to even have to be simple single values. They can be entire expressions going on and on, even entire snippets of code. Such macros are very powerful, and a common convention in C is to make defined macros or values "all upper-case" to indicate that it is actually a macro, as opposed to a function.
+
+== Conditional compilation ==
+
+int
+myfunc(void)
+{
+#ifdef _WIN32
+ // windows specific code here
+#else
+ // generic code here
+#endif
+}
+
+
+Another very common use of the pre-processor is to compile only some pieces of code in specific circumstances. A common use-case is for portability (but you can also use this along with #includes, macros etc. to use the pre-processor as a code-generation tool to save a lot of re-typing of almost the same bits of code). On one platform you may have to have some pieces of code work in a specific way that differs from other platforms. This commonly happens with Windows vs Linux vs BSD etc. so you may end up with segments of code such as above, with platform-specific segments of code (individual lines, or maybe even whole large sections of files of 100s or 1000s of lines of code, or perhaps in header files with sometimes specific include files being included only on certain platforms).
+
+You can use this also to compile your code with features enabled or not. You can define pre-processor values on the command line with ''-D'' with most compilers, such as ''-DMY_FEATURE=1'' for example which is the same as putting in the code ''#define MY_FEATURE 1''. You can then have your code be something like:
+
+
+int
+myfunc(void)
+{
+#ifdef MY_FEATURE
+ int i = 0;
+
+ while (i < 0) i = rand();
+ return i;
+#else
+ // feature not implemented, so return -1
+ return -1;
+#endif
+}
+
+
+So only compile the active code in when enabled in the compilation process.
+
+----
+
+==== Memory ====
+
+Reality is that languages like C are really a slightly more convenient and portable interface to the actual machine you have. That means the CPU, its instructions and processing as well as memory that the CPU will access one way or another. Let's visualize just some of this. Imagine memory as simply a series of boxes than can contain a number that has a value from 0 to 255 (if unsigned). To do signed values we just interpret values differently. We can have from -128 to 127 as values. When you hit the maximum value, things wrap around to the minimum. For signed and unsigned the first 128 values are the same in memory. This also is true for shorts, ints, longs and long longs, except it is the lower positive half of the range. To make life easier for computers, we will use [[http://en.wikipedia.org/wiki/Hexadecimal|hexadecimal]] to represent the numbers as raw data (no sign is implied here).
+
+^Byte ^Value ^
+|0 |01 |
+|1 |2e |
+|2 |fe |
+|3 |00 |
+|4 |1a |
+|5 |43 |
+|6 |aa |
+|... |... |
+
+And so on. All memory is a massive set of these bytes, one after the other. On modern systems you don't have hundreds or even thousands of these boxes, but you have millions or even billions of them. You can group them together to store more than just a small value. This is what shorts, ints, longs and long longs do (as well as floats and doubles). They simply tell the CPU to take a set of 2, 4 or 8 bytes together to be a larger value.
+
+Let us see how a struct might map onto memory in this way. This struct:
+
+
+struct mydata
+{
+ int number1;
+ char string1[15];
+ int number2;
+ double floating_point1;
+ char char1;
+ float floating_point2;
+ short short1;
+ int number3;
+ double floating_array[3];
+};
+
+
+If we were to fill this structure with the following code:
+
+
+struct mydata d;
+
+d.number1 = 1234567;
+strcpy(d.string1, "Hello world!");
+d.number2 = 1;
+d.floating_point1 = 2.0;
+d.char1 = 1;
+d.floating_point2 = 999.999;
+d.short1 = 30000;
+d.number3 = -1;
+d.floating_array[0] = 1.0;
+d.floating_array[1] = 2.0;
+d.floating_array[2] = 3.0;
+
+
+In memory from start to end it looks like:
+
+{{ memory.svg?nolink |Memory layout }}
+
+Note that members will add padding to align members to their natural alignment. This is necessary for correctness and speed reasons across all architectures. Everything is really just a series of bytes in memory. Memory is filled with 1000s or even millions of these bits of data, either one after the other, or spread out. You can jump from one to the other by just using a pointer. Pointers are simply byte numbers from the start of memory (which is 0). The data lives somewhere in memory, and a pointer just says what address it lives at. All data will consume some number of bytes at that address, and may inside contain more pointers pointing to other bits of memory too.
+
+Generally you allocate memory with functions such as ''malloc()'', ''calloc()'', or ''realloc()''. Some libraries you use may do allocations for you. Be sure to read the manuals on them as well as these above. You would free memory you no longer need with ''free()''. All these functions just take a pointer value that .. points at the memory to free, reallocate, or they return a pointer to this place in memory where your new memory block has been arranged. There are some special functions like ''alloca()'' that you don't need to free, and instead allocate on the stack instead of the heap.
+
+==== Stack and heap ===
+
+The memory of your process, other than memory used to store the code/instructions loaded from disk, is primarily made up of 2 elements. The [[http://en.wikipedia.org/wiki/Call_stack|stack]] and the [[http://en.wikipedia.org/wiki/Memory_management|heap]]. Your memory space will generally look something as follows, often with the stack high up in memory (at high addresses) and pieces of code from the process and libraries mapped in from disk, as well as heap space being allocated there too. Mappings not explicitly set up are inaccessible, and any access to them causes a crash (often via a SEGFAULT).
+
+{{ memheapstack.svg?nolink |Complete memory space diagram }}
+
+The stack is managed for you mostly by the compiler and runtime. As the application runs, every time a function is called, a new blob of memory is "pushed" at the "top" of the stack (conceptually stacks grow.. thus the top is where the newest item(s) are on the stack, but often the stack grows down in memory, so to push you subtract values from the top of the stack and to pop, you add again). This memory contains the parameters passed to each function, and will contain return values from the function as well as a return address to go back to (to read instructions from by the CPU) when this function returns. It is a very simple structure, and yet incredibly useful. Note that stack often has limited sizes (sometimes in the order of dozens of KB, maybe only a few MB, but commonly stacks are like 8MB in size). So don't abuse the stack too much. A function like ''alloca()'' can allocate extra memory on the stack (it pushes a segment of N bytes onto the stack that is cleaned up when the function in which it is allocated returns). This is handy if you need some temporary scratch space that is not too big and a fixed size is not known at compile time.
+
+The heap is where more permanent memory is stored. Data here remains until explicitly freed. Most objects and larger data will live here. Getting memory in the heap is more costly in terms of time taken to allocate it or free it (but once allocated, access cost is the same). The limit on memory in the heap is generally "all available memory on the system", given caveats of fragmentation of memory, and possible process allocation limits imposed by the OS.
+
+==== Libraries ====
+
+A shared library is simple a large bit of code you can "load" when your application (or library) is loaded, where the code in it is shared with other users on the system. It mostly is provided by another group of developers, and thus may change its internals without your application or library needing to be re-compiled. If there is a bug in the library it may be fixed later on by an update to the library. Everyone who installs the update gets the fix (next time the process is executed). The same applies for new features. Libraries have no special powers. They have the exact same abilities that the code in your application would have. The literally are just externally applied code extensions of your process or library. They can't gain more powers, nor can they hide security-related data "in the library" as all this data is visible to your app.
+
+If you want to do something privileged, or hide data, it needs to cross a process boundary. Normally you'll speak some form of IPC to a privileged "root" process for example. Of course all of this "we share everything" with libraries also means that code in your application could corrupt/mess/destroy data the library is maintaining, as well as vice-versa. There is no protection between a library, another library and your process. This lack of protection means performance is very good and you really pay no major price putting code in a shared library, but you get no protection.
+
+The benefit of a shared library is to avoid needing a re-compile to get improvements, save writing all the code the library shares with you, and to share the memory the code in the shared library would consume. As it is a //SHARED// library, the code from that library is loaded only once on the system. It may add to the virtual size of the process, but this space is shared across every process using that library, so the cost is paid just once.
+
+Generally a library exposes an API (a set of functions to call). It will provide header files you #include in your application (or library). You would link to the library and thus, at runtime, the "runtime linker" (ld.so often), will glue in the function symbols in your code to the library you link to. This also is done for global variables exposed by the library as well. This is all done at the start of process startup before the main() function is called. There is a cost to this, but it is generally worth paying for the benefits. Your code will then be able to call the functions from the library (or access its data) as if the library were part of your own code.
+
+You generally would compile your code to link to a library as follows, assuming the source for your application is ''hello.c'', the binary you wish to output is ''hello'' and the library you want to link to is ''eina'' (often the file on disk will be ''libeina.so'' for the development environment).
+
+ cc hello.c -o hello -leina
+
+This assumes the library is in a standard directory the compiler always looks in. This would be ''/lib'' and ''/usr/lib''. If the library is not there, you need to tell the compiler of a new location to look at with the ''-L'' option such as the following if the eina library you wish to link to is located in ''/usr/local/lib'':
+
+ cc hello.c -o hello -leina -L/usr/local/lib
+
+Of course that is just the linking. The include files may also require an option to tell the compiler to look somewhere other than ''/usr/include''. That option is the ''-I'' option as follows if the include files needed are in ''/usr/local/include/eina-1'':
+
+ cc hello.c -o hello -leina -L/usr/local/lib -I/usr/local/include/eina-1
+
+This of course is rather painful, and that is why a modern system called [[http://en.wikipedia.org/wiki/Pkg-config|Pkg-config]] was created, and it is far easier to use. The above would become a simpler:
+
+ cc hello.c -o hello `pkg-config --cflags --libs eina`
+
+In this case ''pkg-config'' will provide the compiler flags needed to link to eina. If you want to use multiple libraries, just list them as follows:
+
+ cc hello.c -o hello `pkg-config --cflags --libs eina ecore embryo`
+
+Pkg-config relies on setting your ''PKG_CONFIG_PATH'' environment variable to indicate where to look for the ''.pc'' files that contain the include and linking information. You may want to do a one-time setup of this environment variable in your shell setup like:
+
+ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig
+
+Add as many directories as you like with a '':'' character between them. They will be searched in order from the first to last, until a matching ''.pc'' file is found.
+
+==== API calls ====
+
+A library (or in fact any part of a program can too) exports API calls. These are mostly actual function calls, with the prototypes (telling the compiler the function name, what it returns and what it accepts as parameters) in the header files. The headers may also provide macros to use and perhaps also global variables. When an application runs, it's the functions and variables that matter. These are exposed as "symbols".
+
+Symbols are listed as strings in a symbol table. This could be thought of as an array of strings, with locations where that function (or variable) is stored in the library. At runtime, libraries are linked and these symbols are looked up, with pointers to these functions being "fixed up" by the runtime linker. If a symbol is missing in a library that something else needs, you will get a runtime linking error (and generally execution stops here before even main() is called).
+
+If the types that a function returns or accepts changes, then there is an ABI (Application Binary Interface) break. Libraries should never do this without also jumping up a major version e.g. from 1.x to 2.0, or 2.x to 3.0 etc. This major version change indicates that there is a break in ABI (or API). On Linux you will see the version of the library in its filename:
+
+ libeina.so.1.4.99
+
+For example. When compiling, the compiler looks for a file called ''libeina.so'' in the link search path (usually ''/lib'' and ''/usr/lib'', unless you also add directories with ''-L'' such as ''-L/usr/local/lib''). If this file (''libeina.so'') is a symbolic link (symlink), this is dereferenced. Generally this is the symlink setup used for shared libraries:
+
+^File ^ ^Link ^
+|//libeina.so// | => |//libeina.so.1// |
+|//libeina.so.1// | => |//libeina.so.1.4// |
+|//libeina.so.1.4// | => |//lineina.so.1.4.99// |
+|**libiena.so.1.4.99** | | |
+
+After this dereferencing, the compiler will embed into the binary being compiled the need to link to ''libiena.so.1''. If this doesn't exist anywhere in the runtime search path (which is different to the compile time one - this is normally ''/lib'' and ''/usr/lib'' and ''/etc/ld.so.conf'' can extend this list, as well as the ''LD_LIBRARY_PATH'' environment variable can set the search path at runtime something like ''/usr/local/lib:/usr/lib:/lib'' which would mean to look in ''/usr/local/lib'' first, then ''/usr/lib'' then ''/lib'' for the shared library.
+
+It is also possible to manually load a shared object file (thus the ''.so'' extension) manually using calls such as ''dlopen()'' and ''dlsym()''. This will led you load a shared object file and manually look for specific symbols in the file and get a pointer per symbol. This is often a way API/ABI calls are found from modules.
+
+The difference between ABI and API is that API covers the interface in general both at compile AND at runtime, but ABI is specifically post-compilation at runtime. If ABI stays the same, but API changes, then existing binaries will keep working fine. If you wish to adapt to the new API you will need to recompile and possibly change some of your code to adapt to these changes.
+
+==== System calls ====
+
+System calls are special API calls. They are almost all buried inside libc. Function calls here inside libc issue a special interrupt to switch into kernel mode and passing in parameters. Once switched into kernel mode, no application code is executing anymore. All code is from the kernel, and its job is to implement the functionality of the system call. This code runs in "kernel space" and basically has full privileges to do anything it likes. Kernels though will enforce access and security policies, so unless there is a bug in the kernel, your process should be limited to what it can do based on these rules. Once the kernel has finished doing what is necessary for the system call, it will return back to userspace and continue execution where the system call was.
+
+System calls are rather expensive. They can cost hundreds if not thousands of CPU cycles. Also once they return, your code will not run at full speed for a while, because Kernels will flush and empty caches, so the L1, L2 (and maybe L3) caches all need to warm up again. Avoid system calls if you can because they are far more expensive than a simple function call within an app or between an app and a library. Also be aware that context switches between 2 processes or a page fault (swapping out memory to disk when low on physical RAM, as well as paging in data from disk such as code or other memory-mapped files) has the same switching overhead in addition to the actual work that needs to be done.
+
+A good [[http://man7.org/linux/man-pages/man2/syscalls.2.html|list of system calls can be found here]], but a common list of important ones is:
+
+ * open()
+ * close()
+ * read()
+ * write()
+ * lseek()
+ * stat()
+ * mmap()
+ * munmap()
+ * madvise()
+ * mprotect()
+ * fcntl()
+ * ioctl()
+ * connect()
+ * accept()
+ * bind()
+ * access()
+ * select()
+ * getpid()
+ * getuid()
+ * gettimeofday()
+ * clock_gettime/()
+ * time()
+ * mkdir()
+
+----
+
+==== Endianess ====
+
+Memory is really a sequence of bytes from the view of a CPU, but when you access data types like ''short''s or ''int''s etc. that consume multiple bytes, the order that they are read from in memory and assigned to slots from the LSB (Least Significant Byte) to the MSB (Most Significant byte). There are 2 commonly referred to ways of accessing these bytes in multi-byte types, called **Big Endian** and **Little Endian**. [[http://en.wikipedia.org/wiki/Endianness|Endianess]] these days is mostly the little variety. X86 and x86_64 are both little endian. ARM generally is shipped as little endian, but is capable of being big endian too. PowerPC, SPARC, Alpha and MIPS are generally big endian, but may feature the ability to switch depending on version. Generally if it is possible to switch, this is decided at boot and remains fixed. So generally endianess these days is:
+
+^Architecture ^Endianess ^
+|x86 |Little |
+|x86_64 |Little |
+|ARM |Little |
+|PowerPC |Big |
+|MIPS |Big |
+|SPARC |Big |
+|Alpha |Big |
+
+That means that the majority of people will find themselves programming for a little endian environment. This does not mean you can assume it everywhere. Many file formats store data in a big endian fashion, as do many network protocols, so when you deal with memory and have to save and load it or transmit it across a network, you need to be very careful about endianess and have to convert as necessary. Also be aware that alignment also matters.
+
+In memory, in order from lowest memory address to highest, endianess looks as follows for an 4 byte ''int'' type:
+
+^Decimal ^Hex ^Big endian ^Little endian ^
+|1393589900 |''53107e8c'' |''53''''10''''7e''''8c'' |''8c''''7e''''10''''53'' |
+
+==== Function pointers ====
+
+Pointers are the stuff of life when it comes to C and machines. They tell you where everything lives. Where your data is and where the next bit of data after this one is and so on. Following this setup, functions also live somewhere in memory. They actually have pointers. These are function pointers. This is an amazingly powerful feature of C that most don't being to discover until much later. It allows you to do things like say "When this operation has finished, call //THIS// function here". And that function is just a piece of data. A pointer. A function pointer. You can simply pass it around just like any other data. You can store it in structures, in local variables and pass it in as a parameter to another function.
+
+The downside of function pointers is the added mental load to handle the indirection, as well as the horrible syntax. So for a function with a prototype of:
+
+
+int *myfunc (struct t *tim, int num, char *str);
+
+
+You would declare the function pointer as:
+
+
+int *(*myfunc) (struct t *tim, int num, char *str)
+
+
+So you pass this function pointer in as parameter ''funcptr'' in the following function:
+
+
+void dothis(int num, int *(*funcptr) (struct t *tim, int num, char *str));
+
+
+Or in a structure:
+
+
+struct t
+{
+ int num;
+ int *(*funcptr) (struct t *tim, int num, char *str);
+};
+
+
+You may find it easier to typedef these function pointer types so they are simpler to write later such as:
+
+
+typedef int *(*MyCallbacktype) (struct t *tim, int num, char *str);
+
+void dothis(int num, MyCallbacktype funcptr);
+
+
+You can use any compatible (returns the same types and accepts the same parameters) function names as actual function pointers such as:
+
+
+typedef int *(*MyCallbacktype) (struct t *tim, int num, char *str);
+
+void dothis(int num, MyCallbacktype funcptr);
+
+int *task_a(struct t *tim, int num, char *str)
+{
+ // ... content task a here
+}
+
+int *task_b(struct t *tim, int num, char *str)
+{
+ // ... content of task b here
+}
+
+if (rand() < 100) dothis(99, task_b);
+else dothis(100, task_a);
+
+
+Function pointers are extremely important and useful and form the backbone of EFL in the form of the following Callbacks.
+
+==== Callbacks ====
+
+Callbacks are simply a formal way of naming a function pointer to be //called back// at another point. This is used commonly among software like GUI toolkits for useful behavior handling, such as when someone "clicks" a button, or when a window resizes, or a slider changes value etc. It literally is saying "When X happens, call function Y". For example:
+
+
+static void
+win_del(void *data, Evas_Object *obj, void *event_info)
+{
+ elm_exit();
+}
+
+// ...
+
+Evas_Object *win;
+
+win = elm_win_add(NULL, "tst", ELM_WIN_BASIC);
+evas_object_smart_callback_add(win, "delete,request", win_del, NULL);
+
+
+In this example, the code creates a new window and then adds a callback to the object to be called on the ''"delete,request"'' event. The function to call whenever this happens is the ''win_del'' function. This function simple calls another function that triggers an exit. Callbacks will keep being be called whenever such an event happens until they are deleted and/or unregistered.
+
+In most cases such callbacks for a GUI toolkit will be called from the main loop function. This main loop will process events and eventually when an event does end up being one that asks to delete a window, then the logic code in the toolkit that figures this out will end up calling all callbacks registered for this event.
+
+Callbacks are a very simple, yet very powerful concept. It is important to understand them and be comfortable with them once you write less trivial C code.
+
+==== Threads ====
+
+A more advanced concept in programming is threading. This is where multiple pieces of code (functions and children of functions) can execute in the same process at the same time. All threads can read and write to all memory within that process. This is extremely dangerous, so avoid threading until you have fairly well mastered C without threads.
+
+If you must use threads, even if you are experienced, sticking to a model where threads share as little data as possible and very carefully hand off data from one thread to another and then never touch it again is far safer. The lowest levels of C that deal with threads generally is the //pthreads// API. EFL has a wrapper for systems with and without pthreads to ensure portability and compatibility, but this here will cover raw pthreads.
+
+You would begin a thread with ''pthread_create()'' as follows:
+
+
+#include
+#include
+
+static void
+thread1(void *data)
+{
+ for (;;)
+ {
+ sleep(8);
+ printf("THREAD 1, data: %s\n", data);
+ }
+}
+
+static void
+thread2(void *data)
+{
+ for (;;)
+ {
+ sleep(7);
+ printf("THREAD 2, data: %s\n", data);
+ }
+}
+
+int
+main(int argc, char **argv)
+{
+ pthread_t thread1_handle, thread2_handle;
+
+ pthread_create(&thread1_handle, NULL, thread1, "first data");
+ pthread_create(&thread2_handle, NULL, thread2, "second data");
+ for (;;)
+ {
+ sleep(3);
+ printf("MAIN PROCESS\n");
+ }
+ return 0;
+}
+
+
+The pthread API provides various utilities used to synchronize things between threads. There are mutexes (locks used to indicate the lock owner currently owns the data and everyone else has to wait to gain a lock), conditions, spinlocks and more. You would use mutexes (locks) like this:
+
+
+struct obj
+{
+ pthread_mutex_t lock;
+ int data1, data2;
+ char *str;
+};
+
+struct obj *
+create_obj(void)
+{
+ struct obj *ob = malloc(sizeof(struct obj));
+ if (!ob) return NULL;
+ ob->data1 = 1;
+ ob->data2 = 7;
+ obj->str = strdup("a string");
+ pthread_mutex_init(&(ob->lock));
+ return ob;
+}
+
+void
+set_string(struct obj *ob, char *str)
+{
+ pthread_mutex_lock(&(ob->lock));
+ free(ob->str);
+ ob->str = strdup(str);
+ pthread_mutex_unlock(&(ob->lock));
+}
+
+
+Note that any function modifying or accessing the object like ''set_string()'' first locks the mutex, then does its work, then unlocks. This is a major source of threading bugs. Often some code locks an object, then forgets to unlock, or with more complex lock setups, you end up with deadlocks as 2 pieces of code wait for the other to blink. It is easy to get this wrong and often very difficult to debug it as often the issues only happen rarely in special timing circumstances. Use threads very wisely.
+
+----
+
+=== Also See ===
+
+Now you have read our less-than-perfect primer on C for those wanting to get into developing on EFL or using it from the C APIs we have, you may also want to look at the following list of pages and pick up some more information or fill in the gaps we do not cover here //(feel free to link to more articles that are good for teaching C from new developers through to advanced)//.
+
+ * [[https://overiq.com/c-programming/101/intro-to-c-programming/|C tutorial]]
+ * [[http://www.cprogramming.com/tutorial/c-tutorial.html|C tutorial]]
+ * [[http://www.le.ac.uk/users/rjm1/cotter|Introduction to C]]
+ * [[http://www.tutorialspoint.com/cprogramming|C tutorial]]
+ * [[http://www.cac.cornell.edu/VW/Cintro|C Intro]]
+ * [[http://www.ntu.edu.sg/home/ehchua/programming/cpp/c0_Introduction.html|C programming tutorial]]
+ * [[http://en.wikipedia.org/wiki/C_(programming_language)|Wikipedia C language page]]
+
+----
+
+~~DISCUSSIONS~~
\ No newline at end of file
diff --git a/public_html/data/pages/docs/distros/archlinux-start.md.txt b/public_html/data/pages/docs/distros/archlinux-start.md.txt
new file mode 100644
index 00000000..3bfcd3a8
--- /dev/null
+++ b/public_html/data/pages/docs/distros/archlinux-start.md.txt
@@ -0,0 +1,205 @@
+---
+~~Title: Installing EFL on Arch~~
+---
+
+# Installing EFL on Arch #
+
+[The *Enlightenment Foundation Libraries (EFL)*](/about-efl.md) power millions of systems from mobile phones to set-top boxes, desktops, laptops, game systems and more. You'll need EFL if you want to develop apps for Enlightenment and for any of the devices that use Enlightenment for its visual interface.
+
+This tutorial describes several ways to install EFL on your system. You will only need to use one of these. Select your chosen method using the index on the right.
+
+Many distributions offer EFL as an installable package from their default repositories. In this case you only need to use your distribution's software management system to install. However most versions of EFL in default repositories are out of date and will not support more recent Enlightenment applications. If this is not an issue for you, read through the ["From Distribution Repositories"](#From_Distribution_Repositories) section below.
+
+Distributions often provide a special repository maintained by users or a method of integrating a bleeding edge version of EFL with your software management system. This means that once installed you can keep EFL current just by running system updates. If your distribution offers this, take a look at the section ["Installing from a Special Repository"](#Installing_from_a_Special_Repository).
+
+The Enlightenment developers provide a pre-packaged source of EFL. Although not bleeding edge it is up to date and considered stable for production environments. You can download, compile and install it yourself by following the instructions in ["Installing from Packaged Source"](#Installing_from_Packaged_Source).
+
+You can also download the source code for the most recent version from the EFL git repositories. This will provide you with the latest code, which is usually of stable quality. To get started, read the section ["Installing from Git"](#Installing_from_Git).
+
+Whichever installation method you use, visit ["Compiling EFL Applications"](#Compiling_EFL_Applications) to discover how to compile your Enlightenment applications.
+
+## From Distribution Repositories ##
+
+Arch contains an instance of the EFL package in its official repositories. To install, run the following command as root:
+
+```bash
+pacman -S efl
+```
+
+This will give you a working EFL installation.
+
+The version in Arch's official repositories may lag behind the latest version of EFL. This may cause problems when trying to compile examples from tutorials in this guide. If this happens, install a more recent version of EFL using one of the methods listed below.
+
+## Installing from a Special Repository ##
+
+You can use Arch's package management system to install an up-to-date version of EFL from the *Arch User Repository (AUR)* named [efl-git](https://aur.archlinux.org/packages/efl-git). Using the *efl-git* AUR is relatively simple and makes your EFL package easy to maintain using Arch's package management system, *pacman*. There is also [enlightenment-git](https://aur.archlinux.org/packages/enlightenment-git), [rage-git](
+https://aur.archlinux.org/packages/rage-git), [terminology-git](https://aur.archlinux.org/packages/terminology-git)
+
+### Step 1: Download Meta Package ###
+
+Download the files containing the required meta-information to install EFL from the AUR:
+
+```bash
+git clone https://aur.archlinux.org/efl-git.git
+```
+
+### Step 2: Install Build Tools and Dependencies ###
+
+In order to build EFL from source, you'll need some tools:
+
+```bash
+pacman -S gcc fakeroot binutils meson ninja pkg-config
+```
+
+The *makepkg* script in the following step will handle all the dependencies for you.
+
+### Step 3: Make Package ###
+
+Now ``cd`` into the new ``efl-git`` directory and build the package with:
+
+```bash
+makepkg -s
+```
+
+This process will download EFL from the Enlightenment git repositories, run the configuration and download and install the remaining dependencies. It will also compile and install the software (locally) then build a viable and installable package for your system. None of these steps need to be run as root.
+
+### Step 4: Install the package ###
+
+When *makepkg* is finished you'll find a file in your directory with a name like ``efl-git-X.XX.XX.XXXXX.XXXXXXXXX-X-XXXXXX.pkg.tar.xz``. This is the actual package you can install. To do this as root run:
+
+```bash
+sudo pacman -U efl-git-*.pkg.tar.xz
+```
+
+*pacman* will now install EFL for you.
+
+## Installing from Packaged Source ##
+
+There are two versions available from the Enlightenment website. One is the bleeding edge version which you can [download using git](#Installing_from_Git). The other is packaged and available from the [EFL download site](https://download.enlightenment.org/rel/libs/efl/), which is the focus of this section.
+
+### Step 1: Downloading Stable Version ###
+
+[Download the latest version of EFL](https://download.enlightenment.org/rel/libs/efl/) and check it against its SHA256 hash:
+
+```bash
+wget https://download.enlightenment.org/rel/libs/efl/efl-X.XX.X.tar.xz
+wget https://download.enlightenment.org/rel/libs/efl/efl-X.XX.X.tar.xz.sha256
+cat efl-X.XX.X.tar.xz.sha256; sha256sum efl-X.XX.X.tar.xz
+```
+
+Note that you will have to change ``X.XX.X`` to the actual version of EFL.
+
+### Step 2: Unpacking ###
+
+Once you have the archive file containing EFL on your hard disk unpack it with:
+
+```bash
+tar xvf efl-X.XX.X.tar.xz
+```
+
+This will produce a folder named ``efl-X.XX.X``.
+
+### Step 3: Installing Dependencies ###
+
+Before you can compile and install EFL you need to install the required software packages and tools:
+
+```bash
+pacman -S meson ninja pkgconf gcc binutils python2 avahi bullet curl fontconfig harfbuzz fribidi gst-plugins-base-libs luajit libexif libgl libinput libpulse libspectre libraw librsvg libwebp libxcomposite libxcursor libxinerama libxkbcommon libxp libxrandr libxss libunwind mesa openjpeg2 poppler shared-mime-info ttf-font scim libibus glib2 pulseaudio gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav libreoffice
+```
+
+### Step 4: Building and Installing ###
+
+Once you have installed all the required packages, ``cd`` into the ``efl-X.XX.X`` folder and run
+
+```bash
+meson build
+ninja -C build
+sudo ninja -C build install
+```
+
+This will configure the files needed for compiling, compile the software, then install it.
+
+### Step 5: Carrying out Post Installation Tasks ###
+
+You also have to make some files visible to *pkgconfig*. To do this open ``/etc/profile`` in a text editor as root (using for example ``sudo nano /etc/profile``) and add the following line to the end:
+
+```bash
+export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
+```
+
+You may also need to refresh your library path to make sure your apps can find the EFL libraries:
+
+```bash
+sudo ldconfig
+```
+
+## Installing from Git ##
+
+You can also download the bleeding edge version of EFL by cloning it from the git repository.
+
+### Step 1: Installing git and Cloning ###
+
+By default, *git* is not installed in Arch, so first install it:
+
+```bash
+pacman -S git
+```
+
+Next clone EFL's source code:
+
+```bash
+git clone https://git.enlightenment.org/core/efl.git
+```
+
+This will create a directory named ``efl/``.
+
+### Step 2: Installing Dependencies ###
+
+You'll need to install some tools to build the configuration file:
+
+```bash
+pacman -S meson ninja pkgconf gcc binutils check python2
+```
+
+You also must install the dependencies specific to EFL:
+
+```bash
+pacman -S avahi bullet curl fontconfig harfbuzz fribidi gst-plugins-base-libs luajit libexif libgl libinput libpulse libspectre libraw librsvg libwebp libxcomposite libxcursor libxinerama libxkbcommon libxp libxrandr libxss libunwind mesa openjpeg2 poppler shared-mime-info ttf-font scim libibus glib2 pulseaudio gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav libreoffice
+```
+
+### Step 3: Configuring the Software ###
+
+You can now ``cd`` into the ``efl\`` directory and run the ``autoreconf`` script to create and configure the software, ready for compilation:
+
+```bash
+meson build
+```
+
+Once configured, compile the software with:
+
+```bash
+ninja -C build
+sudo ninja -C build install
+```
+
+### Step 4: Carrying out Post Installation Tasks ###
+
+You also have to make some files visible to *pkgconfig*. To do this open ``/etc/profile`` in a text editor as root (using for example ``sudo nano /etc/profile``) and add the following line to the end:
+
+```bash
+export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
+```
+
+You may also need to refresh your library path to make sure your apps can find the EFL libraries:
+
+```bash
+sudo ldconfig
+```
+
+## Troubleshooting ##
+
+If you are having problems compiling and installing EFL you can find help on [our IRC channels](https://www.enlightenment.org/contact) or [post a ticket to our Phabricator](https://phab.enlightenment.org).
+
+## Installing on Other Operating Systems ##
+
+If you would like to install EFL on a different operating system visit the [Installing EFL](start) page.
\ No newline at end of file
diff --git a/public_html/data/pages/docs/distros/debian-start.md.txt b/public_html/data/pages/docs/distros/debian-start.md.txt
new file mode 100644
index 00000000..fa0c23e5
--- /dev/null
+++ b/public_html/data/pages/docs/distros/debian-start.md.txt
@@ -0,0 +1,155 @@
+---
+~~Title: Installing EFL on Debian~~
+~~NOCACHE~~
+---
+
+# Installing EFL on Debian #
+
+[The *Enlightenment Foundation Libraries (EFL)*](/about-efl.md) power millions of systems from mobile phones to set-top boxes, desktops, laptops, game systems and more. You'll need EFL if you want to develop apps for Enlightenment and for any of the devices that use Enlightenment for its visual interface.
+
+This tutorial describes several ways to install EFL on your system. You will only need to use one of these. Select your chosen method using the index on the right.
+
+Many distributions offer EFL as an installable package from their default repositories. In this case you only need to use your distribution's software management system to install. However most versions of EFL in default repositories are out of date and will not compile more recent Enlightenment applications. If this is not an issue for you, read through the ["From Distribution Repositories"](#From_Distribution_Repositories) section below.
+
+Distributions often provide a special repository maintained by users or a method of integrating a bleeding edge version of EFL with your software management system. This means that once installed you can keep EFL current just by running system updates. If your distribution offers this, take a look at the section ["Installing from a Special Repository"](#Installing_from_a_Special_Repository).
+
+The Enlightenment developers provide a pre-packaged source of EFL. Although not bleeding edge it is up to date and considered stable for production environments. You can download, compile and install it yourself by following the instructions in ["Installing from Packaged Source"](#Installing_from_Packaged_Source).
+
+You can also download the source code for the most recent version from the EFL git repositories. To get started, read the section ["Installing from Git"](#Installing_from_Git).
+
+Whichever installation method you use, visit ["Compiling EFL Applications"](#Compiling_EFL_Applications) to discover how to compile your Enlightenment applications.
+
+## From Distribution Repositories ##
+
+There's no EFL package in the official Debian repositories nor in any of the working user-maintained repositories. In light of this either [install EFL from the packaged source](#Installing_from Packaged_Source) or [download and install the most recent source code from the git repository](Installing_from_Git) as described below.
+
+## Installing from Packaged Source ##
+
+There are two versions of EFL available from the Enlightenment website. One is the bleeding edge version which you can [download using git](#Installing_from_Git). The other comes already packaged and is available from the [EFL's download site](https://download.enlightenment.org/rel/libs/efl/), which is the focus of this section.
+
+### Step 1: Downloading Stable Version ###
+
+[Download the latest version of EFL](https://download.enlightenment.org/rel/libs/efl/) and check it against its SHA256 hash:
+
+```bash
+wget https://download.enlightenment.org/rel/libs/efl/efl-X.XX.X.tar.xz
+wget https://download.enlightenment.org/rel/libs/efl/efl-X.XX.X.tar.xz.sha256
+cat efl-X.XX.X.tar.xz.sha256; sha256sum efl-X.XX.X.tar.xz
+```
+
+Note that you will have to change ``X.XX.X`` to the actual version of EFL.
+
+### Step 2: Unpacking ###
+
+Once you have the archive file containing EFL on your hard disk unpack it with:
+
+```bash
+tar xvf efl-X.XX.X.tar.xz
+```
+
+This will create a folder named ``efl-X.XX.X``.
+
+### Step 3: Installing Dependencies ###
+
+In order to compile and install EFL, first download the necessary software:
+
+```bash
+su -c "apt install gcc g++ check libssl-dev libsystemd-dev libjpeg-dev libglib2.0-dev libgstreamer1.0-dev libluajit-5.1-dev libfreetype6-dev libfontconfig1-dev libfribidi-dev libx11-dev libxext-dev libxrender-dev libgl1-mesa-dev libgif-dev libtiff5-dev libpoppler-dev libpoppler-cpp-dev libspectre-dev libraw-dev librsvg2-dev libudev-dev libmount-dev libdbus-1-dev libpulse-dev libsndfile1-dev libxcursor-dev libxcomposite-dev libxinerama-dev libxrandr-dev libxtst-dev libxss-dev libbullet-dev libgstreamer-plugins-base1.0-dev doxygen"
+```
+
+### Step 4: Building and Installing ###
+
+Once you have installed all the required packages to compile and install EFL, ``cd`` into the ``efl-X.XX.X`` folder and run
+
+```bash
+./configure
+make
+su -c "make install"
+```
+
+This will configure the files needed to compile software, then compile and install it.
+
+### Step 5: Carrying out Post Installation Tasks ###
+
+As you are not installing to ``/usr`` but to ``/usr/local``, ensure that some files are visible to *dbus*:
+
+```bash
+su -c "ln -s /usr/local/share/dbus-1/services/org.enlightenment.Ethumb.service /usr/share/dbus-1/services/org.enlightenment.Ethumb.service"
+```
+
+You may also need to refresh your library path to make sure your apps can find the EFL libraries:
+
+```bash
+su -c "ldconfig"
+```
+
+## Installing from Git ##
+
+You can also get the bleeding edge version of EFL by cloning it from the git repository.
+
+### Step 1: Installing git and Cloning ###
+
+By default, *git* is not installed in Debian so the first step is to install it:
+
+```bash
+su -c "apt install git"
+```
+
+Next clone EFL's source code:
+
+```bash
+git clone https://git.enlightenment.org/core/efl.git
+```
+
+This will create a a directory named ``efl/``.
+
+### Step 2: Installing Dependencies ###
+
+You'll need to install some tools to build the configuration file:
+
+```bash
+su -c "apt install autoconf autopoint libtool"
+```
+
+You'll also need to download the software dependencies for EFL itself:
+
+```bash
+su -c "apt install gcc g++ check libssl-dev libsystemd-dev libjpeg-dev libglib2.0-dev libgstreamer1.0-dev libluajit-5.1-dev libfreetype6-dev libfontconfig1-dev libfribidi-dev libx11-dev libxext-dev libxrender-dev libgl1-mesa-dev libgif-dev libtiff5-dev libpoppler-dev libpoppler-cpp-dev libspectre-dev libraw-dev librsvg2-dev libudev-dev libmount-dev libdbus-1-dev libpulse-dev libsndfile1-dev libxcursor-dev libxcomposite-dev libxinerama-dev libxrandr-dev libxtst-dev libxss-dev libbullet-dev libgstreamer-plugins-base1.0-dev doxygen"
+```
+
+### Step 3: Configuring the Software ###
+
+You can now ``cd`` into the ``efl\`` directory and run the ``autoreconf`` script to create and configure the software ready for compilation:
+
+```bash
+./autogen.sh
+```
+
+Once configured, compile the software with:
+
+```bash
+make
+su -c "make install"
+```
+
+### Step 4: Carrying out Post Installation Tasks ###
+
+As you are not installing to ``/usr`` but to ``/usr/local``, you will have to ensure that some files are visible to *dbus*:
+
+```bash
+su -c "ln -s /usr/local/share/dbus-1/services/org.enlightenment.Ethumb.service /usr/share/dbus-1/services/org.enlightenment.Ethumb.service"
+```
+
+You may also need to refresh your library path to make sure your apps can find the EFL libraries:
+
+```bash
+su -c "ldconfig"
+```
+
+## Troubleshooting ##
+
+If you're having problems compiling and installing EFL, you can find help on any of [our IRC channels](https://www.enlightenment.org/contact) or [post a ticket to our Phabricator](https://phab.enlightenment.org).
+
+## Installing on Other Operating Systems ##
+
+If you would like to install EFL on a different operating system visit the [Installing EFL](start) page.
\ No newline at end of file
diff --git a/public_html/data/pages/docs/distros/fedora-start.md.txt b/public_html/data/pages/docs/distros/fedora-start.md.txt
new file mode 100644
index 00000000..169ca71b
--- /dev/null
+++ b/public_html/data/pages/docs/distros/fedora-start.md.txt
@@ -0,0 +1,178 @@
+---
+~~Title: Installing EFL on Fedora~~
+~~NOCACHE~~
+---
+
+# Installing EFL on Fedora #
+[The *Enlightenment Foundation Libraries (EFL)*](about-efl.md) power millions of systems from mobile phones to set-top boxes, desktops, laptops, game systems and more. You'll need EFL if you want to develop apps for Enlightenment and for any of the devices that use Enlightenment for its visual interface.
+
+This tutorial describes several ways to install EFL on your system. You will only need to use one of these. Select your chosen method using the index on the right.
+
+Many distributions offer EFL as an installable package from their default repositories. In this case you only need to use your distribution's software management system to install. However most versions of EFL in default repositories are out of date and will not compile more recent Enlightenment applications. If this is not an issue for you, read through the ["From Distribution Repositories"](#From_Distribution_Repositories) section below.
+
+Distributions often provide a special repository maintained by users or a method of integrating a bleeding edge version of EFL with your software management system. This means that once installed you can keep EFL current just by running system updates. If your distribution offers this, take a look at the section ["Installing from a Special Repository"](#Installing_from_a_Special_Repository).
+
+The Enlightenment developers provide a pre-packaged source of EFL. Although not bleeding edge it is up to date and considered stable for production environments. You can download, compile and install it yourself by following the instructions in ["Installing from Packaged Source"](#Installing_from_Packaged_Source).
+
+You can also download the source code for the most recent version from the EFL git repositories. To get started, read the section ["Installing from Git"](#Installing_from_Git).
+
+Whichever installation method you use, visit ["Compiling EFL Applications"](#Compiling_EFL_Applications) to discover how to compile your Enlightenment applications.
+
+## From Distribution Repositories ##
+
+Fedora includes an *efl* packge in its default repositories. This makes installing EFL a simple task:
+
+```bash
+sudo dnf install efl
+```
+
+Fedora does not come with *gcc* or *cpp* preinstalled. You'll need to install these to compile EFL-based applications:
+
+```bash
+sudo dnf install gcc cpp
+```
+
+Note that the version of EFL in Fedoras's official repositories may not be the most recent release. This can cause problems when trying to compile examples from tutorials in this documentation. If this is the case, install a more recent version of EFL using one of the following methods:
+
+## Installing from a Special Repository ##
+
+Fedora does not maintain a repository with a nightly, up to date, version of EFL. There is a [user-maintained repository containing a nightly version of Enlightenment](http://download.opensuse.org/repositories/X11:/Enlightenment:/Nightly/Fedora_Rawhide/). Unfortunately installing packages with duplicate names from user-maintained repository is very complex. It's much easier to install and maintain EFL installing it from Enlightenments official packages and git repository, so this should be your first resort.
+
+## Installing from Packaged Source ##
+
+There are two versions of EFL available from the Enlightenment website. One is the bleeding edge version which you can [download using git](#Installing_from_Git). The other is packaged and available from the [EFL's download site](https://download.enlightenment.org/rel/libs/efl/) which is the focus of this section.
+
+### Step 1: Downloading Stable Version ###
+
+[Download the latest version of EFL](https://download.enlightenment.org/rel/libs/efl/) and check it against its SHA256 hash:
+
+```bash
+wget https://download.enlightenment.org/rel/libs/efl/efl-X.XX.X.tar.xz
+wget https://download.enlightenment.org/rel/libs/efl/efl-X.XX.X.tar.xz.sha256
+cat efl-X.XX.X.tar.xz.sha256; sha256sum efl-X.XX.X.tar.xz
+```
+
+Note that you will have to change ``X.XX.X`` to the current version of EFL.
+
+### Step 2: Unpacking ###
+
+Once you have downloaded the archive file containing EFL unpack it with:
+
+```bash
+tar xvf efl-X.XX.X.tar.xz
+```
+
+This will create a folder named *efl-X.XX.X*.
+
+### Step 3: Installing Dependencies ###
+
+Before you can compile and install EFL, you will have to install some software packages EFL requires:
+
+```bash
+sudo dnf install gcc gcc-c++ doxygen openssl-devel systemd-devel libjpeg-turbo-devel glib2-devel gstreamer1-devel luajit-devel freetype-devel fontconfig-devel fribidi-devel xorg-x11-server-devel libXrender-devel giflib-devel libtiff-devel poppler-devel poppler-cpp-devel libspectre-devel LibRaw-devel librsvg2-devel libmount-devel dbus-devel pulseaudio-libs-devel libsndfile-devel libXcursor-devel libXcomposite-devel libXinerama-devel libXrandr-devel libXtst-devel libXScrnSaver-devel bullet-devel gstreamer1-plugins-base-devel
+
+```
+
+### Step 4: Building and Installing ###
+
+Once you have installed all dependencies ``cd`` into the *efl-X.XX.X* folder and run:
+
+```bash
+./configure
+make
+sudo make install
+```
+
+This will configure the files needed for compiling and installation.
+
+### Step 5: Carrying out Post Installation Tasks ###
+
+As you are not installing to ``/usr`` but to ``/usr/local``, you will have to ensure that some files are visible to *dbus*:
+
+```bash
+sudo ln -s /usr/local/share/dbus-1/services/org.enlightenment.Ethumb.service /usr/share/dbus-1/services/org.enlightenment.Ethumb.service
+```
+
+You also have to make some files visible to *pkgconfig*. To do this open ``/etc/profile`` in a text editor as root (using ``sudo vi /etc/profile`` for instance) and add the following line to the end:
+
+```bash
+export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
+```
+
+You may also need to refresh your library path to make sure your apps can find the EFL libraries:
+
+```bash
+sudo ldconfig
+```
+
+## Installing from Git ##
+
+Download the bleeding edge version of EFL by cloning it from the git repository.
+
+### Step 1: Installing git and Cloning ###
+
+By default, *git* is installed in Fedora, so the first step is to clone EFL's source code:
+
+```bash
+git clone https://git.enlightenment.org/core/efl.git
+```
+
+This will create a a directory named ``efl/``.
+
+### Step 2: Installing Dependencies ###
+
+You now need to install some tools to build the configuration file:
+
+```bash
+sudo dnf install autoconf libtool gettext-devel
+```
+
+Install the dependencies specific for EFL too:
+
+```bash
+sudo dnf install gcc gcc-c++ doxygen openssl-devel systemd-devel libjpeg-turbo-devel glib2-devel gstreamer1-devel luajit-devel freetype-devel fontconfig-devel fribidi-devel xorg-x11-server-devel libXrender-devel giflib-devel libtiff-devel poppler-devel poppler-cpp-devel libspectre-devel LibRaw-devel librsvg2-devel libmount-devel dbus-devel pulseaudio-libs-devel libsndfile-devel libXcursor-devel libXcomposite-devel libXinerama-devel libXrandr-devel libXtst-devel libXScrnSaver-devel bullet-devel gstreamer1-plugins-base-devel
+```
+
+### Step 3: Configuring the Software ###
+
+Now you can ``cd`` into the *efl\* directory and run the *autoreconf* script to create and configure the software ready for compilation:
+
+```bash
+./autogen.sh
+```
+
+Once configured, you can compile the software with:
+
+```bash
+make
+sudo make install
+```
+
+### Step 4: Carrying out Post Installation Tasks ###
+
+As you are not installing to ``/usr`` but to ``/usr/local``, you will have to ensure that some files are visible to *dbus*:
+
+```bash
+sudo ln -s /usr/local/share/dbus-1/services/org.enlightenment.Ethumb.service /usr/share/dbus-1/services/org.enlightenment.Ethumb.service
+
+```
+
+You also have to make some files visible to *pkgconfig*. To do this, open ``/etc/profile`` in a text editor as root (using for example ``sudo vi /etc/profile``) and add the following line to the end:
+
+```bash
+export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
+```
+
+You may also need to refresh your library path to make sure your apps can find the EFL libraries:
+
+```bash
+sudo ldconfig
+```
+
+## Troubleshooting ##
+
+If you are having problems compiling and installing EFL, you can come and seek advice on any of [our IRC channels](https://www.enlightenment.org/contact) or [post a ticket to our Phabricator](https://phab.enlightenment.org).
+
+## Installing on Other Operating Systems ##
+
+If you would like to install EFL on a different operating system visit the [Installing EFL](start) page.
\ No newline at end of file
diff --git a/public_html/data/pages/docs/distros/freebsd-start.md.txt b/public_html/data/pages/docs/distros/freebsd-start.md.txt
new file mode 100644
index 00000000..0884a956
--- /dev/null
+++ b/public_html/data/pages/docs/distros/freebsd-start.md.txt
@@ -0,0 +1,164 @@
+---
+~~Title: Installing EFL on FreeBSD~~
+~~NOCACHE~~
+---
+
+# Installing EFL on FreeBSD #
+
+[The *Enlightenment Foundation Libraries (EFL)*](/about-efl.md) power millions of systems from mobile phones to set-top boxes, desktops, laptops, game systems and more. You'll need EFL if you want to develop apps for Enlightenment and for any of the devices that use Enlightenment for its visual interface.
+
+This tutorial describes several ways to install EFL on your system. You will only need to use one of these. Select your chosen method using the index on the right.
+
+Many distributions offer EFL as an installable package from their default repositories. In this case you only need to use your distribution's software management system to install. However most versions of EFL in default repositories are out of date and will not compile more recent Enlightenment applications. If this is not an issue for you read through the ["From Distribution Repositories"](#From_Distribution_Repositories) section below.
+
+The Enlightenment developers provide a pre-packaged source of EFL. Although not bleeding edge it is up to date and considered stable for production environments. You can download, compile and install it yourself by following the instructions in ["Installing from Packaged Source"](#Installing_from_Packaged_Source).
+
+You can also download the source code for the most recent version from the EFL git repositories. This will provide you with the latest code, which is updated on a nightly basis. To get started, read the section ["Installing from Git"](#Installing_from_Git).
+
+Whichever installation method you use, visit ["Compiling EFL Applications"](#Compiling_EFL_Applications) to discover how to compile your Enlightenment applications.
+
+## From Distribution Repositories ##
+
+FreeBSD contains an instance of the EFL package in its official repositories. To install it run the following command as root:
+
+```bash
+pkg install efl
+```
+
+This will give you a working EFL installation.
+
+The version in FreeBSD's official repositories may lag behind the latest version of EFL and give you problems when trying to compile examples from tutorials in this documentation. If this is the case, install a more recent version of EFL using one of the methods below.
+
+## Installing from Packaged Source ##
+
+There are two versions of EFL available from the Enlightenment website. One is the nightly bleeding edge version which you can [download using git](#Installing_from_Git). The other is packaged and available from the [EFL download page](https://download.enlightenment.org/rel/libs/efl/), which is the focus of this section.
+
+### Step 1: Downloading Stable Version ###
+
+[Download the latest version of EFL](https://download.enlightenment.org/rel/libs/efl/) and check it against its SHA256 hash:
+
+```bash
+wget --no-check-certificate https://download.enlightenment.org/rel/libs/efl/efl-X.XX.X.tar.xz
+wget --no-check-certificate https://download.enlightenment.org/rel/libs/efl/efl-X.XX.X.tar.xz.sha256
+cat efl-X.XX.X.tar.xz.sha256; sha256sum efl-X.XX.X.tar.xz
+```
+
+Note that you'll need to change ``X.XX.X`` to the actual version of EFL e.g. efl-1.20.6.tar.xz
+
+### Step 2: Unpacking ###
+
+Once you've downloaded the archive file containing EFL to your hard drive unpack it with:
+
+```bash
+tar xvf efl-X.XX.X.tar.xz
+```
+
+This will produce a folder named *efl-X.XX.X*.
+
+### Step 3: Installing Dependencies ###
+
+To install the software packages required by EFL:
+
+```bash
+su
+pkg install meson ninja python2 python3 bullet fribidi gettext-tools giflib git gmake gstreamer1 gstreamer1-plugins-core luajit check libraw libspectre librsvg2 libtool openssl poppler pkgconf pulseaudio shared-mime-info xcb-util-keysyms ibus xorg xorg-server
+```
+
+Note: Versions of EFL greater than 1.23.x use the base installation of OpenSSL (see instructions for building from Git).
+
+### Step 4: Building and Installing ###
+
+Set up these environment variables before building.
+
+```bash
+setenv PKG_CONFIG_PATH /usr/local/libdata/pkgconfig:/usr/local/lib/pkgconfig
+setenv CFLAGS "-I/usr/local/include"
+setenv LDFLAGS "-L/usr/local/lib"
+```
+
+Once you have installed all the required packages ``cd`` into the *efl-X.XX.X* folder and and set environment variables run
+
+```bash
+meson build -Dsystemd=false -Deeze=false
+ninja -C build
+su
+ninja -C build install
+```
+
+This will configure the files needed for compiling, compile the software itself and then install it.
+
+### Step 5: Carrying out Post Installation Tasks ###
+
+As you are not installing to */usr* but to */usr/local* you need to ensure that some files are visible to *dbus*:
+
+```bash
+su
+ln -s /usr/local/share/dbus-1/services/org.enlightenment.Ethumb.service /usr/share/dbus-1/services/org.enlightenment.Ethumb.service
+```
+
+## Installing from Git ##
+
+You can also install the bleeding edge version of EFL by cloning it from the git repository.
+
+### Step 1: Installing git and Cloning ###
+
+By default, *git* is not installed in FreeBSD, so the first step is to install it:
+
+```bash
+pkg install git
+```
+
+Next clone EFL's source code:
+
+```bash
+git clone https://git.enlightenment.org/core/efl.git
+```
+
+This will create a a directory named *efl/*.
+
+### Step 2: Installing Dependencies ###
+
+
+To install the dependencies specific to EFL:
+
+```bash
+pkg install meson ninja python2 python3 bullet fribidi gettext-tools giflib gmake gstreamer1 gstreamer1-plugins-core luajit check libraw libspectre librsvg2 libtool poppler pkgconf pulseaudio shared-mime-info xcb-util-keysyms ibus xorg xorg-server
+```
+
+Note: Versions of EFL greater than 1.23.x use the base installation of OpenSSL. Therefore there is no need for the OpenSSL port to be installed.
+
+### Step 3: Configuring the Software ###
+
+Set up these environment variables before building.
+
+```bash
+setenv PKG_CONFIG_PATH /usr/local/libdata/pkgconfig:/usr/local/lib/pkgconfig
+setenv CFLAGS "-I/usr/local/include"
+setenv LDFLAGS "-L/usr/local/lib"
+```
+
+You can now ``cd`` into the *efl\* directory compile and install EFL:
+
+```bash
+meson build -Dsystemd=false -Deeze=false
+ninja -C build
+su
+ninja -C build install
+```
+
+### Step 4: Carrying out Post Installation Tasks ###
+
+As you are not installing to */usr* but to */usr/local*, you need to ensure that some files are visible to *dbus*:
+
+```bash
+su
+ln -s /usr/local/share/dbus-1/services/org.enlightenment.Ethumb.service /usr/share/dbus-1/services/org.enlightenment.Ethumb.service
+```
+
+## Troubleshooting ##
+
+If you are having problems compiling and installing EFL you can find help on any of [our IRC channels](https://www.enlightenment.org/contact) or [post a ticket to our Phabricator](https://phab.enlightenment.org).
+
+## Installing on Other Operating Systems ##
+
+If you would like to install EFL on a different operating system visit the [Installing EFL](start) page.
diff --git a/public_html/data/pages/docs/distros/openbsd-start.md.txt b/public_html/data/pages/docs/distros/openbsd-start.md.txt
new file mode 100644
index 00000000..f99ebb2c
--- /dev/null
+++ b/public_html/data/pages/docs/distros/openbsd-start.md.txt
@@ -0,0 +1,157 @@
+---
+~~Title: Installing EFL on OpenBSD~~
+~~NOCACHE~~
+---
+
+# Installing EFL on OpenBSD #
+
+[The *Enlightenment Foundation Libraries (EFL)*](/about-efl.md) power millions of systems from mobile phones to set-top boxes, desktops, laptops, game systems and more. You'll need EFL if you want to develop apps for Enlightenment and for any of the devices that use Enlightenment for its visual interface.
+
+This tutorial describes several ways to install EFL on your system. You will only need to use one of these. Select your chosen method using the index on the right.
+
+The Enlightenment developers provide a pre-packaged source of EFL. Although not bleeding edge it is up to date and considered stable for production environments. You can download, compile and install it yourself by following the instructions in ["Installing from Packaged Source"](#Installing_from_Packaged_Source).
+
+You can also download the source code for the most recent version from the EFL git repositories. This will provide you with the latest code, which is updated on a nightly basis. To get started, read the section ["Installing from Git"](#Installing_from_Git).
+
+Finally, there's an installer available for OpenBSD + Enlightenment in the last section ["Enlightenment for OpenBSD Installer"](#Enlightenment_for_OpenBSD_Installer).
+
+Whichever installation method you use, visit ["Compiling EFL Applications"](#Compiling_EFL_Applications) to discover how to compile your Enlightenment applications.
+
+## Installing from Packaged Source ##
+
+There are two versions of EFL available from the Enlightenment website. One is the nightly bleeding edge version which you can [download using git](#Installing_from_Git). The other is packaged and available from the [EFL download page](https://download.enlightenment.org/rel/libs/efl/), which is the focus of this section.
+
+### Step 1: Downloading Stable Version ###
+
+[Download the latest version of EFL](https://download.enlightenment.org/rel/libs/efl/) and check it against its SHA256 hash:
+
+```bash
+wget --no-check-certificate https://download.enlightenment.org/rel/libs/efl/efl-X.XX.X.tar.xz
+wget --no-check-certificate https://download.enlightenment.org/rel/libs/efl/efl-X.XX.X.tar.xz.sha256
+cat efl-X.XX.X.tar.xz.sha256; sha256sum efl-X.XX.X.tar.xz
+```
+
+Note that you'll need to change ``X.XX.X`` to the actual version of EFL e.g. efl-1.20.6.tar.xz
+
+### Step 2: Unpacking ###
+
+Once you've downloaded the archive file containing EFL to your hard drive unpack it with:
+
+```bash
+tar xvf efl-X.XX.X.tar.xz
+```
+
+This will produce a folder named *efl-X.XX.X*.
+
+### Step 3: Installing Dependencies ###
+
+```bash
+su
+pkg_add bullet check fribidi gettext-tools giflib git gmake gstreamer1 gstreamer1-plugins-base gstreamer1-plugins-good gstreamer1-plugins-bad gstreamer1-plugins-ugly gstreamer1-plugins-libav poppler libraw librsvg libspectre libtool libXp luajit m4 png pulseaudio tiff xprintproto meson ninja ibus
+```
+
+### Step 4: Building and Installing ###
+
+Set up these environment variables before building.
+
+```bash
+su
+ulimit -n unlimited;
+export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/X11R6/lib/pkgconfig"
+export LDFLAGS="-lc++abi -lpthread -L/usr/lib -L/usr/X11R6/lib -L/usr/local/lib -L/usr/local/lib/pulseaudio"
+export CC=clang
+export CXX=clang++
+export CFLAGS="-femulated-tls"
+```
+
+Once you have installed all the required packages and setup the build environment ``cd`` into the *efl-X.XX.X* folder and run:
+
+```bash
+meson build -Dsystemd=false -Deeze=false
+ninja -C build
+su
+ninja -C build install
+```
+
+This will configure the files needed for compiling, compile the software itself and then install it.
+
+### Step 5: Carrying out Post Installation Tasks ###
+
+Due to differing library `soname` versioning you also need to create necessary symbolic links ensuring full compatibility and working EFL on OpenBSD. These are subsequent to change, the important factor is that a valid symbolic link points to the destination as shown below:
+
+```bash
+su
+ln -s /usr/local/lib/libcurl.so.25.14 /usr/local/libcurl.so.4
+ln -s /usr/local/lib/libpulse.so.6.3 /usr/local/lib/libpulse.so.0
+ln -s /usr/local/lib/libsndfile.so.5.0 /usr/local/lib/libsndfile.so.1
+```
+
+## Installing from Git ##
+
+You can also install the bleeding edge version of EFL by cloning it from the git repository.
+
+### Step 1: Installing git and Cloning ###
+
+By default, *git* is not installed on OpenBSD, so the first step is to install it:
+
+```bash
+pkg_add git
+```
+
+Next clone EFL's source code:
+
+```bash
+git clone https://git.enlightenment.org/core/efl.git
+```
+
+This will create a directory named *efl/*.
+
+### Step 2: Installing Dependencies ###
+
+As with packaged install, you'll need the following dependencies:
+
+```bash
+su
+pkg_add bullet check fribidi gettext-tools giflib gmake gstreamer1 gstreamer1-plugins-base gstreamer1-plugins-good gstreamer1-plugins-bad gstreamer1-plugins-ugly gstreamer1-plugins-libav poppler libraw librsvg libspectre libtool libXp luajit m4 png pulseaudio tiff xprintproto meson ninja ibus
+```
+
+### Step 3: Configuring the Software ###
+
+Set up these environment variables before building.
+
+```bash
+su
+ulimit -n unlimited;
+export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/X11R6/lib/pkgconfig"
+export LDFLAGS="-lc++abi -lpthread -L/usr/lib -L/usr/X11R6/lib -L/usr/local/lib -L/usr/local/lib/pulseaudio"
+export CC=clang
+export CXX=clang++
+export CFLAGS="-femulated-tls"
+```
+
+Once you have installed all the required packages and setup the build environment ``cd`` into the *efl-X.XX.X* folder and run:
+
+```bash
+meson build -Dsystemd=false -Deeze=false
+ninja -C build
+su
+ninja -C build install
+```
+
+### Step 4: Carrying out Post Installation Tasks ###
+
+Due to differing library `soname` versioning you also need to create necessary symbolic links ensuring full compatibility and working EFL on OpenBSD. These are subsequent to change, the important factor is that a valid symbolic link points to the destination as shown below:
+
+```bash
+ln -s /usr/local/lib/libcurl.so.25.14 /usr/local/libcurl.so.4
+ln -s /usr/local/lib/libpulse.so.6.3 /usr/local/lib/libpulse.so.0
+ln -s /usr/local/lib/libsndfile.so.5.0 /usr/local/lib/libsndfile.so.1
+```
+
+## Troubleshooting ##
+
+If you are having problems compiling and installing EFL you can find help on any of [our IRC channels](https://www.enlightenment.org/contact) or [post a ticket to our Phabricator](https://phab.enlightenment.org).
+
+## Installing on Other Operating Systems ##
+
+If you would like to install EFL on a different operating system visit the [Installing EFL](start) page.
diff --git a/public_html/data/pages/docs/distros/opensuse-start.md.txt b/public_html/data/pages/docs/distros/opensuse-start.md.txt
new file mode 100644
index 00000000..6ff3ba1f
--- /dev/null
+++ b/public_html/data/pages/docs/distros/opensuse-start.md.txt
@@ -0,0 +1,182 @@
+---
+~~Title: Installing EFL on openSUSE ~~
+---
+
+# Installing EFL on openSUSE #
+
+[The *Enlightenment Foundation Libraries (EFL)*](/about-efl.md) power millions of systems from mobile phones to set-top boxes, desktops, laptops, game systems and more. You'll need EFL if you want to develop apps for Enlightenment and for any of the devices that use Enlightenment for its visual interface.
+
+This tutorial describes several ways to install EFL on your system. You will only need to use one of these. Select your chosen method using the index on the right.
+
+Many distributions offer EFL as an installable package from their default repositories. In this case you only need to use your distribution's software management system to install. However most versions of EFL in default repositories are out of date and will not compile more recent Enlightenment applications. If this is not an issue for you, read through the ["From Distribution Repositories"](#From_Distribution_Repositories) section below.
+
+Distributions often provide a special repository maintained by users or a method of integrating a bleeding edge version of EFL with your software management system. This means that once installed you can keep EFL current just by running system updates. If your distribution offers this, take a look at the section ["Installing from a Special Repository"](#Installing_from_a_Special_Repository).
+
+The Enlightenment developers provide a pre-packaged source of EFL. Although not bleeding edge it is up to date and considered stable for production environments. You can download, compile and install it yourself by following the instructions in ["Installing from Packaged Source"](#Installing_from_Packaged_Source).
+
+You can also download the source code for the most recent version from the EFL git repositories. This will provide you with the latest code, which is updated on a nightly basis. To get started, read the section ["Installing from Git"](#Installing_from_Git).
+
+Whichever installation method you use, visit ["Compiling EFL Applications"](#Compiling_EFL_Applications) to discover how to compile your Enlightenment applications.
+
+## From Distribution Repositories ##
+
+openSUSE happens to have quite a good support for EFL and you can install all the items you need from openSUSE's official repository:
+
+```bash
+sudo zypper efl
+```
+
+This will give you a working EFL installation.
+
+However, the version in openSUSE's official repositories may lag behind the latest version of EFL and give you problems when trying to compile examples from tutorials in this documentation. If this is the case, it is advised you install a more recent version of EFL following one of the methods below.
+
+## Installing from a Special Repository ##
+
+You can also install the latest EFL using a special repository. Add it to your regular repositories with:
+
+```bash
+sudo zypper ar https://download.opensuse.org/repositories/X11:/Enlightenment:/Nightly/openSUSE_Tumbleweed/x86_64/ Enlightenment_Nightly
+```
+Refresh your repositories:
+
+```bash
+sudo zypper ref
+```
+
+And then install EFL and its development libraries:
+
+```bash
+sudo zypper in efl efl-devel
+```
+Note that the version in the Nightly repositories may lag behind the official Nightly by about 24 hours. This shouldn't be a big deal in most circumstances.
+
+## Installing from Packaged Source ##
+
+There are two versions available form the Enlightenment website. One is a packaged and available from the [EFL's download site](https://download.enlightenment.org/rel/libs/efl/). The other is the nightly bleeding edge version which you can [download using git](#Installing_from_Git). This section deals with installing with the packaged version available from the [EFL's download site](https://download.enlightenment.org/rel/libs/efl/).
+
+### Step 1: Downloading Stable Version ###
+
+[Download the latest version of EFL](https://download.enlightenment.org/rel/libs/efl/) and check it against its SHA256 hash:
+
+```bash
+wget https://download.enlightenment.org/rel/libs/efl/efl-X.XX.X.tar.xz
+wget https://download.enlightenment.org/rel/libs/efl/efl-X.XX.X.tar.xz.sha256
+cat efl-X.XX.X.tar.xz.sha256; sha256sum efl-X.XX.X.tar.xz
+```
+
+Note that you will have to change ``X.XX.X`` for the actual version of EFL.
+
+### Step 2: Unpacking ###
+
+Once you have the archive file containing EFL in your hard disk, unpack it with:
+
+```bash
+tar xvf efl-X.XX.X.tar.xz
+```
+
+This will produce a folder called *efl-X.XX.X*.
+
+### Step 3: Installing Dependencies ###
+
+Before you can compile and install EFL, you will have to install some software packages EFL needs:
+
+```bash
+sudo zypper in gcc gcc-c++ doxygen libopenssl-devel systemd-devel libjpeg62-devel glib2-devel gstreamer-devel lua51-luajit-devel freetype2-devel fontconfig-devel fribidi-devel xorg-x11-devel giflib-devel libpng16-compat-devel libtiff-devel libpoppler-devel libspectre-devel libraw-devel librsvg-devel libudev-devel libmount-devel dbus-1-devel libpulse-devel libsndfile-devel libbullet-devel gstreamer-plugins-base-devel check-devel
+```
+
+### Step 4: Building and Installing ###
+
+Once you have installed all the packages EFL needs, ``cd`` into the *efl-X.XX.X* folder and run
+
+```bash
+./configure
+make
+sudo make install
+```
+
+This will configure the files needed for compiling, actually compile the software, and then install it.
+
+### Step 5: Carrying out Post Installation Tasks ###
+
+As you are not installing to */usr* but to */usr/local*, you will have to ensure that some files are visible to *dbus*:
+
+```bash
+sudo ln -s /usr/local/share/dbus-1/services/org.enlightenment.Ethumb.service /usr/share/dbus-1/services/org.enlightenment.Ethumb.service
+```
+
+You may also need to refresh your library path to make sure your apps can find the EFL libraries:
+
+```bash
+sudo ldconfig
+```
+
+## Installing from Git ##
+
+You can also get the bleeding edge version of EFL by cloning it from the git repository.
+
+### Step 1: Installing git and Cloning ###
+
+By default, *git* is not installed in openSUSE, so the first step is to install it:
+
+```bash
+sudo zypper install git
+```
+
+Next clone EFL's source code:
+
+```bash
+git clone https://git.enlightenment.org/core/efl.git
+```
+
+This will create a a directory called *efl/*.
+
+### Step 2: Installing Dependencies ###
+
+You will need to install some tools to build the configuration file:
+
+```bash
+sudo zypper in autoconf libtool gettext-tools
+```
+
+As well as the dependencies specific for EFL:
+
+```bash
+sudo zypper in gcc gcc-c++ doxygen libopenssl-devel systemd-devel libjpeg62-devel glib2-devel gstreamer-devel lua51-luajit-devel freetype2-devel fontconfig-devel fribidi-devel xorg-x11-devel giflib-devel libpng16-compat-devel libtiff-devel libpoppler-devel libspectre-devel libraw-devel librsvg-devel libudev-devel libmount-devel dbus-1-devel libpulse-devel libsndfile-devel libbullet-devel gstreamer-plugins-base-devel check-devel
+```
+
+### Step 3: Configuring the Software ###
+
+Now you can ``cd`` into the *efl\* directory and run the *autoreconf* script to create and configure the software ready for compilation:
+
+```bash
+./autogen.sh
+```
+
+Once configured, you can compile the software with:
+
+```bash
+make
+sudo make install
+```
+
+### Step 4: Carrying out Post Installation Tasks ###
+
+As you are not installing to */usr* but to */usr/local*, you will have to ensure that some files are visible to *dbus*:
+
+```bash
+sudo ln -s /usr/local/share/dbus-1/services/org.enlightenment.Ethumb.service /usr/share/dbus-1/services/org.enlightenment.Ethumb.service
+```
+
+You may also need to refresh your library path to make sure your apps can find the EFL libraries:
+
+```bash
+sudo ldconfig
+```
+
+## Troubleshooting ##
+
+If you are having problems compiling and installing EFL, you can come and seek advice on any of [our IRC channels](https://www.enlightenment.org/contact) or [post a ticket to our Phabricator](https://phab.enlightenment.org).
+
+## Installing on Other Operating Systems ##
+
+If you would like to install EFL on a different operating system visit the [Installing EFL](start) page.
\ No newline at end of file
diff --git a/public_html/data/pages/docs/distros/osx-start.md.txt b/public_html/data/pages/docs/distros/osx-start.md.txt
new file mode 100644
index 00000000..dd66e003
--- /dev/null
+++ b/public_html/data/pages/docs/distros/osx-start.md.txt
@@ -0,0 +1,161 @@
+---
+~~Title: Installing EFL on macOS~~
+~~NOCACHE~~
+---
+
+# Installing EFL on macOS #
+
+> **NOTE:**
+> The Enlightenment (Desktop Manager) is not supported on macOS and there are no plans to do so in the near future. Please [contact us](https://www.enlightenment.org/contrib/start) if you'd like to help with this.
+
+[The *Enlightenment Foundation Libraries (EFL)*](/about-efl.md) power millions of systems from mobile phones to set-top boxes, desktops, laptops, game systems and more. You will need EFL if you want to develop apps for Enlightenment and for any of the devices that use Enlightenment for its visual interface.
+
+This tutorial describes two ways of installing EFL on your system. You will only need one so use the index on the right to navigate to the most useful method for you.
+
+The Enlightenment Foundation's projects mostly targets Linux platforms therefore not everything work on macOS works the first time. This is due to the specific requirements of macOS (kernel+userland) and the fact that there are very few 'Englightened' macOS users.
+
+This document explains how to install EFL using either the [Homebrew package manager](https://brew.sh/) or by building from source via git.
+
+Whichever installation method you use, read through the section on [Compiling EFL Applications](#Compiling_EFL_Applications) to find out more about building apps.
+
+## Install EFL with Homebrew ##
+
+Homebrew is an unofficial package manager for macOS which you can install a number of programs that aren't available in macOS by default.
+
+To install Homebrew open Terminal in macOS and run:
+
+```bash
+/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
+```
+
+The script will prompt you through the install process. Feel free to visit the [Homebrew website](https://docs.brew.sh/Installation.html) for more information on fine tuning the installation.
+
+Homebrew should run an update prior to installing any new software but double check this by running:
+
+```bash
+brew update
+```
+
+Next install EFL with:
+
+```bash
+brew install efl
+```
+
+The distributed version of EFL is [1.20.6](http://braumeister.org/formula/efl).
+
+## Installing from Git ##
+
+Installing EFL manually is broadly a three step process. Firstly you need to have the macOS *Command Line Tools (CLT)* installed on your system, then install the necessary software dependencies. You can then configure and compile the EFL source code.
+
+### Step 1: Install Command Line Tools ###
+
+If you've already installed [XCode](https://developer.apple.com/xcode/) via the Mac App Store, the command line tools are already embedded in the *Integrated Development Environment (IDE)*. Failing this, install the CLT by opening Terminal then run:
+
+```bash
+xcode-select --install
+```
+
+### Step 2: Installing Dependencies ###
+
+The easiest way to install the necessary software dependencies is to use a package manager like Homebrew. If you haven't already installed it do so now by opening Terminal and running:
+
+```bash
+/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
+```
+
+The script will prompt you through the install process. Feel free to visit the [Homebrew website](https://docs.brew.sh/Installation.html) for more information on fine tuning the installation.
+
+Homebrew should run an update prior to installing any new software but double check this by running:
+
+```bash
+brew update
+```
+
+Next install the dependencies with:
+
+```bash
+brew install autoconf automake libtool autoconf-archive gettext check pkg-config luajit jpeg freetype fribidi fontconfig giflib libtiff glib dbus libsndfile bullet libspectre libraw librsvg poppler gstreamer gst-plugins-good pulseaudio
+brew migrate dbus
+```
+If you're using a fresh install of macOS, create a 'LaunchAgents' folder for your own account if it doesn't exist already:
+
+```bash
+mkdir -p ~/Library/LaunchAgents
+```
+
+Next use ``launchctl`` to automatically start and stop ``dbus``:
+
+```bash
+ln -sfv /usr/local/opt/dbus/*.plist ~/Library/LaunchAgents
+launchctl load ~/Library/LaunchAgents/org.freedesktop.dbus-session.plist
+```
+
+If you want to use ``gettext`` you'll also need ''autopoint'' to your ''$PATH'' your in '~/.profile' file or similar. If the file doesn't exist user ``nano`` to create it, for instance:
+
+```bash
+cd ~/
+nano .profile
+export PATH="$(brew --prefix gettext)/bin:$PATH"
+```
+
+### Step 3: Install and configure SSL ###
+
+Since El Capitan, Apple no longer distributes OpenSSL headers. Fortunately you can install OpenSSL manually via Homebrew:
+
+```bash
+brew install openssl
+brew link openssl --force
+```
+
+To add flags to '~/.bashrc' or similar use:
+
+```bash
+export CFLAGS="-I/usr/local/opt/openssl/include $CFLAGS"
+export LDFLAGS="-L/usr/local/opt/openssl/lib $LDFLAGS"
+```
+
+### Step 4: Modify linker flags ###
+
+> **NOTE:**
+> This step is only necessary if you wish to build macOS App Bundles (.app).
+
+You can do this using 'osx-packager', which is a python package for generating App Bundles and/or .dmg files for easy distribution. To download, open Terminal and run:
+
+```bash
+git clone https://git.enlightenment.org/devs/jayji/osx-packager.git
+```
+For osx-packager to work properly, you must provide custom linker flags:
+
+```bash
+export LDFLAGS="-Wl,-headerpad_max_install_names ${LDFLAGS}"
+```
+
+### Step 5: Configuring the Software ###
+
+Now that you've installed all the required packages, you can download EFL itself directly from the git repository. Open Terminal and run:
+
+```bash
+git clone https://git.enlightenment.org/core/efl.git
+```
+
+This will create a a directory called *efl/*. Use ``cd`` to switch to the new directory, then compile EFL:
+
+```bash
+./autogen.sh --disable-cxx-bindings
+make -j $(nproc)
+```
+
+Finally, install EFL with:
+
+```bash
+sudo make -j $(nproc) install
+```
+
+## Troubleshooting ##
+
+If you are having problems compiling with installing EFL, you can also find help on any of [our IRC channels](https://www.enlightenment.org/contact) or [post a ticket to our Phabricator](https://phab.enlightenment.org).
+
+## Installing on Other Operating Systems ##
+
+If you would like to install EFL on a different operating system visit the [Installing EFL](start) page.
\ No newline at end of file
diff --git a/public_html/data/pages/docs/distros/start.txt b/public_html/data/pages/docs/distros/start.txt
new file mode 100644
index 00000000..e20ace99
--- /dev/null
+++ b/public_html/data/pages/docs/distros/start.txt
@@ -0,0 +1,96 @@
+~~Title: Get Source~~
+==== Source ====
+
+All our source repositories are on:
+
+ * [[https://git.enlightenment.org|git.enlightenment.org]]
+
+Our source code is developed collaboratively in a pretty typical open source manner. Our master branches in git are where all new development goes into as it happens, thus they are technically "unstable". We try and keep master working and usable daily, as developers generally are living off master themselves, so bugs affect developers directly and immediately. Sometimes issues happen, but they tend to get fixed rapidly.
+
+==== Basic Requirements ====
+
+Before you start you will want basic build tools installed such as:
+
+{{page>incl:efl-deps-git}}
+
+==== Get The Source ====
+
+As any general anonymous user for the EFL core libraries:
+
+
+git clone https://git.enlightenment.org/core/efl.git
+
+
+And for some sample well developed / maintained applications
+
+
+git clone https://git.enlightenment.org/core/enlightenment.git
+git clone https://git.enlightenment.org/apps/terminology.git
+git clone https://git.enlightenment.org/apps/rage.git
+
+
+==== Dependencies ====
+
+{{page>incl:efl-deps-src}}
+
+==== Build Environment ====
+
+{{page>incl:efl-buildenv}}
+
+==== Build Order ====
+
+For libraries (build these before applications), build them in order:
+
+{{page>incl:efl-buildorder}}
+
+==== Compilation ====
+
+For every library or application simply go into the source directory where you find a ''configure.ac'' file and run the following:
+
+
+# see README and INSTALL for more information
+./autogen.sh
+make
+sudo make install
+sudo ldconfig # needed on Linux to update linker library database
+
+
+If you are in a library that doesn't have a ''configure.ac'', it is likely using meson. For meson based libraries and applications run this in the project's top level directory:
+
+
+# see README and INSTALL for more information
+meson build
+ninja -C build
+sudo ninja -C build install
+sudo ldconfig
+
+
+If configure or meson fail you are likely missing a dependency - provide it, or consider options to disable it. It should tell you what that dependency is. **NOTE** that you can provide configure arguments to autogen.sh or meson command such as ''--prefix=/opt/e'', -Dwl=true or similar.
+
+==== Debugging ====
+
+For debugging you really want tools like these installed:
+
+ * gdb
+ * valgrind
+ * perf
+
+Please refer to our [[/develop/apps_efl_debugging|EFL application debugging]] page for full details on debugging with EFL.
+
+----
+
+=== Developer git access ===
+
+If you get git commit access simply use
+
+
+git clone git+ssh://git@
+
+
+instead of
+
+
+git clone https://
+
+
+~~DISCUSSIONS~~
diff --git a/public_html/data/pages/docs/distros/ubuntu-start.md.txt b/public_html/data/pages/docs/distros/ubuntu-start.md.txt
new file mode 100644
index 00000000..2edb3e60
--- /dev/null
+++ b/public_html/data/pages/docs/distros/ubuntu-start.md.txt
@@ -0,0 +1,180 @@
+---
+~~Title: Installing EFL on Ubuntu ~~
+---
+
+# Installing EFL on Ubuntu #
+[The *Enlightenment Foundation Libraries (EFL)*](/about-efl.md) power millions of systems from mobile phones to set-top boxes, desktops, laptops, game systems and more. You'll need EFL if you want to develop apps for Enlightenment and for any of the devices that use Enlightenment for its visual interface.
+
+This tutorial describes several ways to install EFL on your system. You will only need to use one of these. Select your chosen method using the index on the right.
+
+Many distributions offer EFL as an installable package from their default repositories. In this case you only need to use your distribution's software management system to install. However most versions of EFL in default repositories are out of date and will not compile more recent Enlightenment applications. If this is not an issue for you, read through the ["From Distribution Repositories"](#From_Distribution_Repositories) section below.
+
+Distributions often provide a special repository maintained by users or a method of integrating a bleeding edge version of EFL with your software management system. This means that once installed you can keep EFL current just by running system updates. If your distribution offers this, take a look at the section ["Installing from a Special Repository"](#Installing_from_a_Special_Repository).
+
+The Enlightenment developers provide a pre-packaged source of EFL. Although not bleeding edge it is up to date and considered stable for production environments. You can download, compile and install it yourself by following the instructions in ["Installing from Packaged Source"](#Installing_from_Packaged_Source).
+
+You can also download the source code for the most recent version from the EFL git repositories. To get started, read the section ["Installing from Git"](#Installing_from_Git).
+
+Whichever installation method you use, visit ["Compiling EFL Applications"](#Compiling_EFL_Applications) to discover how to compile your Enlightenment applications.
+
+## From Distribution repos ##
+
+EFL is not available in Ubuntu's official repositories, but you can install all the items you need from a special PPA repository. [See below for instructions on how to do that](#Installing_from_a_Special_Repository).
+
+## Installing from a Special Repository ##
+
+To install the latest EFL available from a special Ubuntu PPA repository, add the new repository with:
+
+```bash
+sudo add-apt-repository ppa:niko2040/e19
+```
+Refresh your repositories:
+
+```bash
+sudo apt-get update
+```
+
+And then install EFL and its development libraries:
+
+```bash
+sudo apt-get install libefl-dev
+```
+
+Ubuntu does not install by default the *gcc* compiler or *meson* or *ninja*, so, before you can [compile any apps](#Compiling_EFL_Applications), you will need to install those too:
+
+```bash
+sudo apt-get install gcc meson ninja-build
+```
+
+Also note that, due to EFL's fast development rate, it is unlikely the PPA will provide by default the latest version of EFL. This means that many of the examples in this documentation will probably need tweaking to work. If you would like to install an up to date version of EFL, see the [Installing from Source](#Installing_from_Source) section below or the instructions for [Installing from Git](#Installing_from_Git), also available below.
+
+## Installing from Packaged Source ##
+
+There are two versions available form the Enlightenment website. One is a packaged and available from the [EFL's download site](https://download.enlightenment.org/rel/libs/efl/). The other is the nightly bleeding edge version which you can [download using git](#Installing_from_Git). This section deals with installing with the packaged version available from the [EFL's download site](https://download.enlightenment.org/rel/libs/efl/).
+
+### Step 1: Downloading Stable Version ###
+
+[Download the latest version of EFL](https://download.enlightenment.org/rel/libs/efl/) and check it against its SHA256 hash:
+
+```bash
+wget https://download.enlightenment.org/rel/libs/efl/efl-X.XX.X.tar.xz
+wget https://download.enlightenment.org/rel/libs/efl/efl-X.XX.X.tar.xz.sha256
+cat efl-X.XX.X.tar.xz.sha256; sha256sum efl-X.XX.X.tar.xz
+```
+
+Note that you will have to change ``X.XX.X`` for the actual version of EFL.
+
+### Step 2: Unpacking ###
+
+Once you have the archive file containing EFL in your hard disk, unpack it with:
+
+```bash
+tar xvf efl-X.XX.X.tar.xz
+```
+
+This will produce a folder called ``efl-X.XX.X``.
+
+### Step 3: Installing Dependencies ###
+
+Before you can compile and install EFL, you will have to install some software packages EFL needs:
+
+```bash
+sudo apt install check libssl-dev libsystemd-dev libjpeg-dev libglib2.0-dev libgstreamer1.0-dev libluajit-5.1-dev libfreetype6-dev libfontconfig1-dev libfribidi-dev libavahi-client-dev libharfbuzz-dev libibus-1.0-dev libx11-dev libxext-dev libxrender-dev libgl1-mesa-dev libgif-dev libtiff5-dev libpoppler-dev libpoppler-cpp-dev libspectre-dev libraw-dev librsvg2-dev libudev-dev libmount-dev libdbus-1-dev libpulse-dev libsndfile1-dev libxcursor-dev libxcomposite-dev libxinerama-dev libxrandr-dev libxtst-dev libxss-dev libbullet-dev libgstreamer-plugins-base1.0-dev doxygen
+```
+
+### Step 4: Building and Installing ###
+
+Once you have installed all the packages EFL needs, ``cd`` into the ``efl-X.XX.X`` folder and run
+
+```bash
+meson build
+ninja -C build
+sudo ninja -C build install
+```
+
+This will configure the files needed for compiling, actually compile the software, and then install it.
+
+### Step 5: Carrying out Post Installation Tasks ###
+
+As you are not installing to ``/usr`` but to ``/usr/local``, you will have to ensure that some files are visible to *dbus*:
+
+```bash
+sudo ln -s /usr/local/share/dbus-1/services/org.enlightenment.Ethumb.service /usr/share/dbus-1/services/org.enlightenment.Ethumb.service
+```
+
+You may also need to refresh your library path to make sure your apps can find the EFL libraries:
+
+```bash
+sudo ldconfig
+```
+
+## Installing from Git ##
+
+You can also get the bleeding edge version of EFL by cloning it from the git repository.
+
+### Step 1: Installing git and Cloning ###
+
+By default, *git* is not installed in Ubuntu, so the first step is to install it:
+
+```bash
+sudo apt install git
+```
+
+Next clone EFL's source code:
+
+```bash
+git clone https://git.enlightenment.org/core/efl.git
+```
+
+This will create a directory called ``efl/``.
+
+### Step 2: Installing Dependencies ###
+
+You will need to install some tools to build EFL:
+
+```bash
+sudo apt install gcc meson ninja-build
+```
+
+As well as the dependencies specific for EFL:
+
+```bash
+sudo apt install check libssl-dev libsystemd-dev libjpeg-dev libglib2.0-dev libgstreamer1.0-dev libluajit-5.1-dev libfreetype6-dev libfontconfig1-dev libfribidi-dev libavahi-client-dev libharfbuzz-dev libibus-1.0-dev libx11-dev libxext-dev libxrender-dev libgl1-mesa-dev libgif-dev libtiff5-dev libpoppler-dev libpoppler-cpp-dev libspectre-dev libraw-dev librsvg2-dev libudev-dev libmount-dev libdbus-1-dev libpulse-dev libsndfile1-dev libxcursor-dev libxcomposite-dev libxinerama-dev libxrandr-dev libxtst-dev libxss-dev libgstreamer-plugins-base1.0-dev doxygen
+```
+
+### Step 3: Configuring the Software ###
+
+Now you can ``cd`` into the ``efl`` directory and run the ``meson build`` script to create and configure the software ready for compilation:
+
+```bash
+meson build
+```
+
+Once configured, you can compile the software with:
+
+```bash
+ninja -C build
+sudo ninja -C build install
+```
+
+### Step 4: Carrying out Post Installation Tasks ###
+
+As you are not installing to ``/usr`` but to ``/usr/local``, you will have to ensure that some files are visible to *dbus*:
+
+```bash
+sudo ln -s /usr/local/share/dbus-1/services/org.enlightenment.Ethumb.service /usr/share/dbus-1/services/org.enlightenment.Ethumb.service
+```
+
+You may also need to refresh your library path to make sure your apps can find the EFL libraries:
+
+```bash
+sudo ldconfig
+```
+
+## Troubleshooting ##
+
+If you are having problems compiling and installing EFL, you can come and seek advice on [any of our IRC channels](https://www.enlightenment.org/contact) or [post a ticket to our Phabricator](https://phab.enlightenment.org).
+
+## Installing on Other Operating Systems ##
+
+If you would like to install EFL on a different operating system visit the [Installing EFL](start) page.
\ No newline at end of file
diff --git a/public_html/data/pages/docs/distros/yocto-start.txt b/public_html/data/pages/docs/distros/yocto-start.txt
new file mode 100644
index 00000000..6dab90b8
--- /dev/null
+++ b/public_html/data/pages/docs/distros/yocto-start.txt
@@ -0,0 +1,29 @@
+~~Title: EFL on Yocto~~
+==== Yocto ====
+
+In Yocto, a ''meta-efl'' layer is provided by the ''meta-openembedded'' layer. It contains EFL, Elementary, Enlightenment, Terminology and other recipes.
+
+So, the first step is to add this layer in ''conf/bblayer.conf'':
+
+
+BBLAYERS ?= \
+ ${TOPDIR}/src/...
+ ...
+ ${TOPDIR}/src/meta-openembedded/meta-efl \
+ ...
+"
+
+
+Next, to install Enlightenment and Terminology, add the following lines to your recipe:
+
+
+#add enlightenment window manager
+IMAGE_INSTALL += "e-wm"
+IMAGE_INSTALL += "terminology"
+
+
+If you just want Elementary and EFL, just add the lines below or something that depends on EFL or Elementary:
+
+
+IMAGE_INSTALL += "elementary-tests"
+
\ No newline at end of file
diff --git a/public_html/data/pages/docs/navigation.txt b/public_html/data/pages/docs/navigation.txt
new file mode 100644
index 00000000..80ddcfda
--- /dev/null
+++ b/public_html/data/pages/docs/navigation.txt
@@ -0,0 +1,19 @@
+ * [[/docs/distros/|Installing EFL]]
+ * [[/docs/distros/ubuntu-start.md|EFL on Ubuntu]]
+ * [[/docs/distros/archlinux-start.md|EFL on Arch Linux]]
+ * [[/docs/distros/debian-start.md|EFL on Debian]]
+ * [[/docs/distros/fedora-start.md|EFL on Fedora]]
+ * [[/docs/distros/freebsd-start.md|EFL on FreeBSD]]
+ * [[/docs/distros/openbsd-start.md|EFL on OpenBSD]]
+ * [[/docs/distros/opensuse-start.md|EFL on openSUSE]]
+ * [[/docs/distros/yocto-start|EFL on Yocto]]
+ * [[/docs/distros/osx-start.md|EFL on Mac OS X]]
+ * [[/docs/c/start]]
+ * [[/develop/efl/|Getting started with EFL Development]]
+ * [[/develop/legacy/api/c/|EFL API (C language)]]
+ * [[/docs/apps/start.md | EFL Apps]]
+ * [[/docs/apps/terminology.md]]
+ * [[/docs/themes/start|Themeing EFL Apps]]
+ * [[/about-enventor|Enventor - GUI Edje File Design Tool]]
+ * [[/docs/themes/knob_example|Edje Theme Example]]
+
diff --git a/public_html/data/pages/docs/playground/osx-start.md.txt b/public_html/data/pages/docs/playground/osx-start.md.txt
new file mode 100644
index 00000000..cc0f93f8
--- /dev/null
+++ b/public_html/data/pages/docs/playground/osx-start.md.txt
@@ -0,0 +1,114 @@
+~~Title: EFL on Mac OS X~~
+~~NOCACHE~~
+
+
+brew update # To make sure you have the latest versions
+brew install efl # To install EFL
+
+
+And that's it! Enjoy your freshly distributed EFL :-).
+The distributed version of EFL is [[http://braumeister.org/formula/efl|1.20.4]].
+
+
+====== Manual Installation (for EFL DEVELOPERS) ======
+
+===== Setting up the environment =====
+
+You need to have the OS X CLT (Command-Line Tools) first, then install the EFL dependancies. The easiest way is by using a package manager. [[http://brew.sh|Homebrew]] is assumed to be the package manager.
+
+
+brew install autoconf automake libtool autoconf-archive gettext check pkg-config luajit jpeg freetype fribidi fontconfig giflib libtiff glib dbus libsndfile bullet libspectre libraw librsvg poppler gstreamer gst-plugins-good pulseaudio
+brew migrate dbus
+mkdir -p ~/Library/LaunchAgents
+ln -sfv /usr/local/opt/dbus/*.plist ~/Library/LaunchAgents
+launchctl load ~/Library/LaunchAgents/org.freedesktop.dbus-session.plist
+
+
+You need to add ''autopoint'' to your ''$PATH'' if you want to use gettext. Write the line below in your ''$HOME/.profile'' or similar file.
+
+
+export PATH="$(brew --prefix gettext)/bin:$PATH"
+
+
+===== OpenSSL handling =====
+
+Since Mac OS X El Capitan, Apple does not distribute OpenSSL headers anymore.
+It is necessary to install OpenSLL manually through homebrew:
+
+
+brew install openssl
+brew link openssl --force
+
+
+and to add flags to your bashrc (or equivalent):
+
+
+export CFLAGS="-I/usr/local/opt/openssl/include $CFLAGS"
+export LDFLAGS="-L/usr/local/opt/openssl/lib $LDFLAGS"
+
+
+===== Modifying your linker flags =====
+
+
+export LDFLAGS="-Wl,-headerpad_max_install_names ${LDFLAGS}"
+
+
+===== Configuring, Building and Installing EFL =====
+
+Installing dependancies on OS X is painful, but now you did it (congrats'), you can grab the sources from the git repository:
+
+
+git clone https://git.enlightenment.org/core/efl.git # Get the sources
+cd efl # Go to repository you cloned
+./autogen.sh --disable-cxx-bindings
+make -j $(nproc) # Compile
+sudo make -j $(nproc) install # Install
+
+
+
+======= Additional Resources =======
+
+ * Enlightenment Developer Days 2016 Slides (EFL & Mac OS X slides): https://phab.enlightenment.org/F36470.
+ * Internal Wiki Page. Contains “legacy” information: https://phab.enlightenment.org/w/osx/.
\ No newline at end of file
diff --git a/public_html/data/pages/docs/sidebar.txt b/public_html/data/pages/docs/sidebar.txt
new file mode 100644
index 00000000..4986dcf3
--- /dev/null
+++ b/public_html/data/pages/docs/sidebar.txt
@@ -0,0 +1,3 @@
+~~NOCACHE~~
+
+{{navi>:docs:navigation}}
diff --git a/public_html/data/pages/docs/start.txt b/public_html/data/pages/docs/start.txt
new file mode 100755
index 00000000..f31dda13
--- /dev/null
+++ b/public_html/data/pages/docs/start.txt
@@ -0,0 +1,80 @@
+~~Title: Documentation~~
+
+{{page>incl:start-shortcuts}}
+
+==== Enlightenment and EFL Developer Documentation ====
+
+Enlightenment has developed from a window manager into a set of libraries
+that support a large number of exciting applications.
+Aimed primarily at slick graphical presentation and optimal runtime we
+created the Enlightenment Foundation Libraries and have created the following
+documentation to help everyone get involved - thanks for stopping by.
+
+====Getting Started====
+
+If you are going to use EFL, we encourage you to actually work with
+EFL from [[https://git.enlightenment.org|git]] mostly because it allows
+you to either track stable branches to get latest fixes long before a
+release is out, or to track latest features and development
+continually. This is also the case if you want to contribute. Of
+course you can use stable packages for your distribution as well.
+
+=== Getting EFL ===
+
+Many operating systems have packages of EFL, Enlightenment and many of our apps.
+The specific information for each platform is available from [[/docs/distros/]]
+and sub-pages.
+
+We also track the current available version of EFL and our apps on each
+distro/platform, you can see the latest information at
+[[https://phab.enlightenment.org/w/packaging_status/|Table of current version of EFL]]
+
+----
+
+====EFL Documentation====
+
+The EFL is currently undergoing a significant redesign to give a better
+developer experience when building apps using our platform. We will be
+announcing the new API shortly to get early feedback from developers but
+for now we recommend using the stable API and its Bindings.
+
+You can find all the documentation for our [[/develop/legacy/api/c/|stable C API]],
+and bindings to [[https://docs.enlightenment.org/auto/group__Efl__Cxx__API.html|C++]] and
+[[https://docs.enlightenment.org/python-efl/current|Python]].
+We also have a preview available for our [[develop/api/|Beta API documentation]].
+
+==== Themes / Edje / EDC ====
+
+A core part of Enlightenment and EFL is the design/theme abstraction layer. This is handled by the Edje library and a series of tools that can compile/package up theme files and compress them, decompile them, and even provide some GUI editors too.
+
+ * [[/about-enventor|Enventor]] GUI Edje file design tool
+ * [[themes/start|Getting started]] with Edje and themes at the EDC file level
+ * [[themes/knob_example|Edje theme example]] A knob theme for the Elementary slider widget
+
+
+----
+
+
+collections{
+ group{
+ name: "elm/slider/horizontal/knob";
+ alias: "elm/slider/horizontal/default";
+ min: 64 64;
+
+Next we list the ''images'' we will be using
+
+ images{
+ image: "0000.png" COMP;
+ image: "0001.png" COMP;
+ image: "0002.png" COMP
+
+ //Similar for 0003.png to 0059.png.
+
+ image: "0060.png" COMP;
+ image: "knobbg.png" COMP;
+ }
+
+The ''script'' block contains global variables and functions. The function ''update_knob_state'' is used to load new images when the knob is turned. The variables are used to store the state of the knob.
+
+ script{
+ public knob_pos;
+ public knob_ref;
+ public knob_last;
+ public knob_move;
+ public signal_from_dragger;
+
+
+ public update_knob_state(Float:frac){
+
+ new px, py, pw, ph;
+ get_geometry(PART:"knob", px, py, pw, ph);
+ new Float:step = ph/60;
+ if(frac > ph) { set_state(PART:"knob", "60", 0.0); return;}
+ if(frac <= 0) { set_state(PART:"knob", "default", 0.0); return;}
+ if(frac < step) { set_state(PART:"knob", "1", 0.0); return;}
+ if(frac < 2*step) { set_state(PART:"knob", "2", 0.0); return;}
+
+ //Similar "if" statments for frac < 3*step to 59*step.
+
+ if(frac < 60*step) { set_state(PART:"knob", "60", 0.0); return;}
+
+ }
+
+ public reset_dragger(){
+ set_drag(PART:"dragger", 0.0, 0.0);
+ set_int(signal_from_dragger, 0);
+ }
+ }
+
+The ''parts'' block contains the functional parts of the knob.
+These are mostly geometric objects that may be moveable and/or visible.
+They may also emit signals which will be important in the ''programs'' block below.
+
+ parts{
+ part{
+ name: "knobbase";
+ scale: 1;
+ description{
+ state: "default" 0.0;
+ min: 64 64;
+ image.normal: "knobbg.png";
+ }
+ }
+
+Each part has a one or more descriptions, which represent states of the part.
+Here each state is associated with one image (position) of the knob.
+
+ part{
+ name: "knob";
+ mouse_events: 0;
+ scale: 1;
+ description{
+ state: "default" 0.0;
+ min: 64 64;
+ rel.to: "knobbase";
+ image.normal: "0000.png";
+ }
+ description{
+ state: "1" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "0001.png";
+ }
+ description{
+ state: "2" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "0002.png";
+ }
+
+ //Descriptions for states "3" to "59" similar.
+
+ description {
+ state: "60" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "0060.png";
+ }
+ }
+
+The following ''part'' is needed so we can set the value of the knob from the C source via elm_slider_value_set.
+
+ part{
+ //The real slider for elm_slider
+ name: "elm.dragable.slider";
+ scale: 1;
+ dragable.x: 1 1 0;
+ dragable.y: 1 1 0;
+ type: RECT;
+ description{
+ state: "default" 0.0;
+ visible: 0;
+ }
+ dragable{
+ x: 1 1 0;
+ y: 1 1 0;
+ }
+ }
+
+This ''part'' named "dragger" is the actually draggable part of the slider.
+It's invisible but will measure how much the knob has been turned (or dragged).
+
+ part{
+ name: "dragger";
+ type: RECT;
+ description{
+ state: "default" 0.0;
+ rel1.to: "knob";
+ rel2.to: "knob";
+ color: 0 0 0 0;
+ }
+ description{
+ state: "hoki" 0.0;
+ rel1.to: "knob";
+ rel2.to: "knob";
+ color: 0 0 0 0;
+ }
+ dragable{
+ x: 0 0 0;
+ y: 1 1 0;
+ }
+ }
+ }
+
+Now the ''parts'' block is finished and we continue with the ''programs'' block which contains small scripts which control the behaviour of our knob. The programs are called when a certain signal
+from a certain source is received. Signals can be emitted from inside this edje
+or from outside (C source).
+
+ programs{
+
+The script part of the ''program'' named "on_drag_move" runs when the
+signal "drag" from source "dragger" (the part defined above) is received.
+
+ program{
+ name: "on_drag_move";
+ signal: "drag";
+ source: "dragger";
+ script{
+ new Float:p1;
+ new Float:p2;
+
+ //The drag value is subtracted from the last knob position
+ //because a drag upwards yields negative values.
+
+ get_drag(PART:"dragger", p1, p2);
+ set_float(knob_pos, get_float(knob_last) - p2);
+
+ new px, py, pw, ph;
+ get_geometry(PART:"knob", px, py, pw, ph);
+ if(get_float(knob_pos) > ph) set_float(knob_pos, ph);
+ if(get_float(knob_pos) < 0) set_float(knob_pos, 0);
+
+ update_knob_state(get_float(knob_pos));
+ new Float:sl_val = get_float(knob_pos)/ph;
+
+ set_int(signal_from_dragger, 1);
+ set_drag(PART:"elm.dragable.slider", sl_val , sl_val);
+ }
+ }
+
+The variable "signal_from_dragger" is used as a guard to distinguish if calls of set_drag for "elm.dragable.slider" are made from within the edje theme (then it is 1), ore from outside, e.g. C source, (then it is 0).
+
+Next are some more programs
+
+ program{
+ name: "on_drag_stop";
+ signal: "drag,stop";
+ source: "dragger";
+ script{
+ set_float(knob_last, get_float(knob_pos));
+ reset_dragger();
+ }
+ }
+ program{
+ name: "on_wheel";
+ signal: "mouse,wheel*";
+ source: "dragger";
+ //after: "on_slider_set";
+ }
+ program{
+ signal: "elm,state,enabled";
+ source: "elm";
+ script {
+ set_int(signal_from_dragger, 0);
+ }
+ }
+
+The following ''program'' is called when set_drag for elm.dragable.slider is called.
+
+ program{
+
+ signal: "drag,set";
+ source: "elm.dragable.slider";
+ script {
+
+If we were called because the part "dragger" was dragged, "signal_from_dragger" is 1 and nothing else
+will happen here except that "signal_from_dragger" will be set to 0.
+
+ if(get_int(signal_from_dragger) == 0){
+ new Float:p1;
+ new Float:p2;
+ get_drag(PART:"elm.dragable.slider", p1, p2);
+
+ new px, py, pw, ph;
+ get_geometry(PART:"knob", px, py, pw, ph);
+ set_float(knob_pos, ph*p1);
+
+ if(get_float(knob_pos) > ph) set_float(knob_pos, ph);
+ if(get_float(knob_pos) < 0) set_float(knob_pos, 0);
+
+ set_float(knob_last, get_float(knob_pos));
+
+ update_knob_state(get_float(knob_pos));
+
+ new Float:sl_val = get_float(knob_pos)/ph;
+ set_drag(PART:"elm.dragable.slider", sl_val , sl_val);
+
+ }else{
+ set_int(signal_from_dragger, 0);
+ }
+ }
+ }
+ }
+
\ No newline at end of file
diff --git a/public_html/data/pages/docs/themes/start.txt b/public_html/data/pages/docs/themes/start.txt
new file mode 100644
index 00000000..2c036a69
--- /dev/null
+++ b/public_html/data/pages/docs/themes/start.txt
@@ -0,0 +1,184 @@
+~~Title: Getting Started on Themed and Edje~~
+
+==== EDC File Basics ====
+
+Let's start with a "Hello World" example. This is going to be in verbose sytax to make it as easy as possible to break down before we start making it more compact. Start with a source "EDC" file like below:
+
+
+collections {
+ group {
+ name: "example";
+ parts {
+ part {
+ name: "background";
+ type: RECT;
+ description {
+ state: "default";
+ color: 64 64 64 255;
+ }
+ }
+ part {
+ name: "label";
+ type: TEXT;
+ description {
+ state: "default";
+ color: 255 255 255 255;
+ text {
+ font: "Sans";
+ size: 10;
+ text: "Hello World";
+ }
+ }
+ }
+ }
+ }
+}
+
+
+Compiling it is easy. The compiled EDJ file is portable. It can be used on any OS and any architecture. It's basically a structured archive of all of the source material packed into a single file that is compressed and usable "as-is" at runtime without installation or unpacking.
+
+
+edje_cc example.edc
+
+
+Now a quick way to see your result is with the ''edje_player'' tool that will load a specific group in a file or just use the first it finds. In our case here we have only a single group so it should load just this group within the collections and let us see it:
+
+
+edje_player example.edj
+
+
+You now should see something like this in a window:
+
+{{/themes/edje-hello.png?nolink}}
+
+The window will be resizable, so resize it to see what happens when your group is resized too. One of the key ideas behind Edje is to be able to make both resizable AND scaleable components that can adapt to sizing needs and UI/DPI scaling needs.
+
+=== The Anantomy of an Edje File ===
+
+An Edje file is compiled from a combination of source "EDC" files and other data (images, fonts, sound samples, ...) into a single stand-alone binary "EDJ" file that is used at runtime. These files are, by default, de-compileable again back to source with the ''edje_decc'' tool. These files do not execute code, and are system-independent. That may use various compression schemes based on options to ''edje_cc''. The source EDC files are passed through a C pre-processor so they can use CPP directives such as ''#include'', ''#define'', ''#ifdef'', the macros defined by ''#define'', etc. and this can be used to make your EDC files more maintainable by being able to generate content from smaller macros or included files, split your content up into many files that you ''#include'' together and so on. But let's get into the actual structure.
+
+An EDC file will look a bit like a mix of JSON and a C language structure definition. Everything has some kind of parent/child hierarchy with parent sections containing child sections and so on. It is also possible to skip a section and use periods (''.'') to declare a parent and child relationship directly on a line, so You could express:
+
+
+text {
+ font: "Sans";
+ size: 10;
+ text: "Hello World";
+}
+
+
+As
+
+
+text.font: "Sans";
+text.size: 10;
+text.text: "Hello World";
+
+
+You can also remove whitespace before keywords and after statement delimiters ('';''), so the above could also be done expressed as:
+
+
+text { font: "Sans"; size: 10; }
+text.text: "Hello World";
+
+
+You should take advantage of white-space compression to make your EDC files less lengthy and thus easier to read and maintain. So let's take the above hello world example and make it a bit more compact before we continue:
+
+
+collections {
+ group { name: "example";
+ parts {
+ part { name: "background"; type: RECT;
+ description { state: "default";
+ color: 64 64 64 255;
+ }
+ }
+ part { name: "label"; type: TEXT;
+ description { state: "default";
+ color: 255 255 255 255;
+ text { font: "Sans"; size: 10; }
+ text.text: "Hello World";
+ }
+ }
+ }
+ }
+}
+
+
+We will use this kind of white-space compression from now on to keep things more compact. Remember that the same declaration is able to be expressed in many different ways, so don't get confused when you see the same thing expressed with different white space or with different parent/child syntax as they are equivalent.
+
+Edje files generally contain several major sections. ''collections'' is the section where a series of ''group'' sections are declared. Each group is accessible by its ''name'' via Edje or Elementary API. A single EDJ file may contain 0, 10, 100, or 1000 groups ... or more. It depends on how much you pack in. The names of such groups is a free-form string, but generally there is a convention to use something like a file path so ''group/children/thing'' would be common. So a very basic EDC source file may begin as:
+
+
+collections {
+ group { name: "example";
+ }
+}
+
+
+We have a group in our collections, and this group has nothing in it. What exactly is a ''group'' then? It's a group of child objects, programs that respond to signals/events and other layout logic that define a single graphical element. Code can ask the Edje library to use this defined group from that file such as:
+
+
+obj = elm_layout_add(win);
+elm_layout_file_set(obj, "example.edj", "example");
+elm_win_resize_object_add(win, obj);
+evas_object_show(obj);
+
+
+Elementary and Enlightenment have code like this everywhere (or the lower level versions of it). Almost every Elementary widget actually creates such layout/Edje objects internally and sources them from theme files such as ''default.edj'' that ships with EFL. Every single widget will likely go back to this file and figure out which bit of data maps to this name, load it and instantiate the objects based on the design data in the EDJ file. This is mostly transparent to a user or programmer, other than when they wish to change the look of their UI ... they then can make their own themes and override the standard search for a theme with their own.
+
+This is how any application may provide a custom look/feel of its own (it's own Themes), as well as added layout elements that are not normal widgets, built out of such data files and much much more. Enlightenment even will only accept EDJ files as wallpapers because then it then doesn't need to know how to tile, scale or otherwise lay out the wallpaper content. Edje takes care of this. The Wallpaper import dialog is simply generating a sample EDC file that includes the selected image file with the layout options selected. An added bonus is that a single EDJ file can include multiple resolutions of an image to optimally load the best one, scale and adapt on the fly and even animate.
+
+So learning how Edje works is the key to the kingdom of Enlightenment. Master Edje and your UI can be changed from clean modern flat styles through to skeumorphic madness and anything else your imagination can come up with. So let's continue with the basic anatomy.
+
+Every ''group'' will likely have ''parts'', possibly ''programs'' and may even have it's own ''images'' section as well as a few others. The ''parts'' section defines a series of parts in stacking order from bottom to top that comprise the group object. So a small step forward with our example may become something like this:
+
+
+collections {
+ group { name: "example";
+ parts {
+ part { name: "background"; type: RECT;
+ }
+ part { name: "label"; type: TEXT;
+ }
+ }
+ }
+}
+
+
+We have 2 parts, one named "background" that is of type RECT (a basic rectangle) and one "label" that is of type TEXT (a simple single line text object with no markup etc.). You generally will want names for any part you wish to later access or address by changing its state or otherwise accessing it from outside Edje (i.e. from the calling application). Come up with names that are memorable. In EFL we generally namespace our names. If the part name is meant to be accessed from outside the group (e.g. from an app), then we will namespace something like "e.text" or "elm.text" etc. but using a dot (''.'') with a prefix of the namespace then following namespaces. A sign that a part is "official" and is expected to exist or be interacted with is that it has a dot in its name with a namespace.
+
+But these parts are pretty useless as Edje has no idea of their description - what color are they? What Font used? What sized font? We need to provide at LEAST a ''default'' description.
+
+
+collections {
+ group { name: "example";
+ parts {
+ part { name: "background"; type: RECT;
+ description { state: "default";
+ color: 64 64 64 255;
+ }
+ }
+ part { name: "label"; type: TEXT;
+ description { state: "default";
+ color: 255 255 255 255;
+ text { font: "Sans"; size: 10; }
+ text.text: "Hello World";
+ }
+ }
+ }
+ }
+}
+
+
+And now we have a basic example. The rectangle is a dim grey (color is in R G B A with values from 0 to 255 for the elements) normally, but you can also use html-style color notations like "#404040ff" instead of 64 64 64 255 like '' color: "#404040ff";''. We have a single line text label that uses the "Sans" font at size 10, is white in color and displays the text "Hello World" by default.
+
+----
+
+For a pretty complete Edje programming guide, please see:
+
+[[program_guide/edje_pg]]
+
+----
+
+~~DISCUSSIONS~~
\ No newline at end of file
diff --git a/public_html/data/pages/download-e16.txt b/public_html/data/pages/download-e16.txt
new file mode 100644
index 00000000..39f7e18f
--- /dev/null
+++ b/public_html/data/pages/download-e16.txt
@@ -0,0 +1,13 @@
+=== Download Enlightenment E16 ===
+
+The latest version of DR16 is 1.0.21, released on October 24th, 2019.
+Packages for the current, and previous, releases of DR16,
+core themes, epplets, e16menuedit, e16keyedit, and imlib2 can be found
+on the
+[[https://sourceforge.net/project/showfiles.php?group_id=2|SourceForge download page]].
+
+^Package^Link^
+|Source Code TAR.GZ|[[https://prdownloads.sourceforge.net/enlightenment/e16-1.0.21.tar.gz|e16-1.0.21.tar.gz]]|
+|Source Package RPM|[[https://prdownloads.sourceforge.net/enlightenment/e16-1.0.21-1.fc30.src.rpm|e16-1.0.21-1.fc30.src.rpm]]|
+|Linux ix86 Binary RPM|[[https://prdownloads.sourceforge.net/enlightenment/e16-1.0.21-1.fc30.i686.rpm|e16-1.0.21-1.fc30.i686.rpm]]|
+|Linux x86_64 Binary RPM|[[https://prdownloads.sourceforge.net/enlightenment/e16-1.0.21-1.fc30.x86_64.rpm|e16-1.0.21-1.fc30.x86_64.rpm]]|
diff --git a/public_html/data/pages/download-latest.txt b/public_html/data/pages/download-latest.txt
new file mode 100644
index 00000000..70b800be
--- /dev/null
+++ b/public_html/data/pages/download-latest.txt
@@ -0,0 +1,40 @@
+
+./configure
+make
+sudo make install
+sudo ldconfig # needed on Linux to update linker library database
+
+
+or if meson based (has a meson.build file):
+
+
+meson build
+ninja -C build
+sudo ninja -C build install
+sudo ldconfig # needed on Linux to update linker library database
+
+
+If ''configure'' fails, you are likely missing a dependency - provide it. It should tell you what that dependency is. **NOTE** that you can provide arguments to ''configure'' such as ''--prefix=/opt/e'' or similar. Similarly for meson. See the INSTALL file for more information.
+
+----
+
+==== Master source repositories ====
+
+Our source code is developed collaboratively in a pretty typical open source manner. Our master branches in git are where all new development goes into as it happens, thus they are technically "unstable". We try and keep master working and usable daily, as developers generally are living off master themselves, so bugs affect developers directly and immediately. Sometimes issues happen, but they tend to get fixed rapidly.
+
+If you want to track the latest and greatest, please see our git repositories below and follow the [[/docs/distros/]] guide on compiling from upstream source. If you have issues please refer to our [[contact]] page to get in touch with us.
+
+All our git repositories are listed on:
+
+ * [[https://git.enlightenment.org|git.enlightenment.org]]
+
+----
+
+{{page>download-e16}}
+
+~~DISCUSSIONS~~
diff --git a/public_html/data/pages/e16.txt b/public_html/data/pages/e16.txt
new file mode 100644
index 00000000..98fed2cf
--- /dev/null
+++ b/public_html/data/pages/e16.txt
@@ -0,0 +1,62 @@
+~~Title: Enlightenment E16~~
+
+{{page>incl:start-shortcuts}}
+
+==== About E16====
+E16 is predecessor of the current E23 Enlightenment Window Manager, which is rather complete rewrite than incremental update of E16. Although most of the current development focus goes to E23, E16 is still under independent active development and some users prefer it to E23. In this sense E16 will keep its name while incrementing the versions from 1.0.0 unlike the mainstream Enlightenment manager, which is likely going to increment its E-suffix number. This page should summarize the links related to E16.
+
+==== Download ====
+
+We place all of our releases here:
+
+ * [[https://sourceforge.net/projects/enlightenment/files/|sourceforge.net/projects/enlightenment/]]
+
+==== Releases ====
+
+{{page>download-e16}}
+
+----
+We provide original source code "tarballs" as the canonical release of what we make. It is left up to distributions and individuals to make specific packages to their operating system. See your distribution packages for details.
+
+==== Library of Themes ===
+There is a large [[http://themes.effx.us/e16|collection of themes]] (see [[http://ps.ucw.cz/e16/e16-themes-gallery/|gallery]]), which can be used together with E16. You can find there also [[http://themes.effx.us/eterm|themes]] for oldschool Eterm.
+
+The documentation project for theme creation - [[https://web.archive.org/web/20180810104724id_/http://etherdoxproject.org/|Etherdox]].
+
+==== Compilation ====
+
+Before compilation you need to have proper dependencies installed, mainly the imlib2 library.
+For example on Debian (stretch) the following deps will be helpful before the compilation:
+''libimlib2-dev
+libxft-dev
+libxinerama-dev
+libxrandr-dev
+libxcomposite-dev''
+
+Untar downloaded e16 tarballs (mainly you want e16 and themes) by ''tar zxf downloaded.file.tar.gz'' and then go into the directories created. Please see the README file in this directory for each project for additional information on dependencies, configuration etc. Just remember that all our release tarballs come with configure set up so to compile you just need to do this in the source directory:
+
+
+./configure
+make
+sudo make install
+
+
+If ''configure'' fails, you are likely missing a dependency - provide it. It should tell you what that dependency is.
+
+=== Running e16 locally ===
+Note that you can build and run E16 only with local user privileges -- just provide arguments to ''configure'' such as ''--prefix=/home/user/e'' or similar and run E16 from there. How to run it varies across different systems but often putting the path to binary into ~/.xinitrc will just work.
+
+----
+
+==== Master source repositories ====
+
+Our source code is developed collaboratively in a pretty typical open source manner. Our master branches in git are where all new development goes into as it happens, but the main [[https://git.enlightenment.org/e16/e16.git/|E16 branch]] is generally pretty stable.
+
+All our git repositories are in section E16 listed on:
+
+ * [[https://git.enlightenment.org|git.enlightenment.org]]
+
+If you have issues please refer to our [[contact]] page to get in touch with us.
+
+----
+
diff --git a/public_html/data/pages/incl/donation-buttons.txt b/public_html/data/pages/incl/donation-buttons.txt
new file mode 100644
index 00000000..583d6395
--- /dev/null
+++ b/public_html/data/pages/incl/donation-buttons.txt
@@ -0,0 +1,24 @@
+=== Bitcoin (BTC) ===
+[[bitcoin>1KbHkZ6K6unQ9Rh3ZiM7Gk2xsYRLqSzPH3|{{:donate-bitcoin.png?direct|}}]]
+[[bitcoin>1KbHkZ6K6unQ9Rh3ZiM7Gk2xsYRLqSzPH3]]
+
+=== Monero (XMR) ===
+[[monero>48Hitqx8kPjfbPqUbUMrhAN84c2nWYvxtTtEtUBVVK7U6Z26eUr3rk9hEpkn9Lp562NtfGBA7fgMZGaVySo99QxuEoEb5Wj|{{:donate-monero.png?direct|}}]]
+[[monero>48Hitqx8kPjfbPqUbUMrhAN84c2nWYvxtTtEtUBVVK7U6Z26eUr3rk9hEpkn9Lp562NtfGBA7fgMZGaVySo99QxuEoEb5Wj]]
+
+=== Ethereum (ETH) ===
+[[ethereum>0x7e23d625B522d349FE1b485d7002F414A073C156|{{:donate-ethereum.png?direct|}}]]
+[[ethereum>0x7e23d625B522d349FE1b485d7002F414A073C156]]
+
+=== Litecoin (LTC) ===
+[[litecoin>LT9xtk6VmMCL1dFsVBQ4DAeAyiP13PD7Aw|{{:donate-litecoin.png?direct|}}]]
+[[litecoin>LT9xtk6VmMCL1dFsVBQ4DAeAyiP13PD7Aw]]
+
+=== Dogecoin (DOGE) ===
+[[dogecoin>D683rpxTAKbQUiVJ5idkpi1ZdHGJBckG5o|{{:donate-dogecoin.png?direct|}}]]
+[[dogecoin>D683rpxTAKbQUiVJ5idkpi1ZdHGJBckG5o]]
+
+=== Miscellaneous ===
+[[http://flattr.com/thing/418692/Enlightenment|{{:scut-flattr.svg|Flattr}}]]
+
+[[https://www.paypal.com/webscr?cmd=_s-xclick&hosted_button_id=A5U75JR3FFWFC|{{:scut-paypal.svg|PayPal}}]]
diff --git a/public_html/data/pages/incl/efl-buildenv.txt b/public_html/data/pages/incl/efl-buildenv.txt
new file mode 100644
index 00000000..d932806a
--- /dev/null
+++ b/public_html/data/pages/incl/efl-buildenv.txt
@@ -0,0 +1,37 @@
+You will want to ensure the default prefix ''/usr/local'' is available to build tools. If you know what you are doing, you can change the prefix, but this here shall assume you do not, and the above prefix is used. These environment variables are used during build, so you may want to make them more permanent.
+
+
+export PATH=/usr/local/bin:"$PATH"
+export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:"$PKG_CONFIG_PATH"
+export LD_LIBRARY_PATH=/usr/local/lib:"$LD_LIBRARY_PATH"
+
+
+Below choose one of the following ''CFLAGS'' to use. To ensure your code is compiled with decent optimzations you should also set this up in your environment:
+
+
+export CFLAGS="-O3 -ffast-math -march=native"
+
+
+Note that if you wish to compile for older architectures than your current system, please look up the compiler documentation and replace ''-march=native'' with something appropriate.
+
+If you wish decently optimized code that is still debuggable (but that optimizations may still make a little hard to debug) you can do:
+
+
+export CFLAGS="-O2 -ffast-math -march=native -g -ggdb3"
+
+
+If you want a really debuggable piece of code where optimizations mess with little to nothing at all use:
+
+
+export CFLAGS="-O -g -ffast-math -march=native -ggdb3"
+
+
+==== Runtime Library Linking ====
+
+Note the ''LD_LIBRARY_PATH'' environment variable is set. You can ensure the system always supports ''/usr/local/lib'' by editing ''/etc/ld.so.conf'' or adding a file to ''/etc/ld.so.conf.d'' and simply have a line in either file that says:
+
+
+/usr/local/lib
+
+
+And remember to run ''sudo ldconfig'' tool every time you install a library to ensure caches are updated.
diff --git a/public_html/data/pages/incl/efl-buildorder.txt b/public_html/data/pages/incl/efl-buildorder.txt
new file mode 100644
index 00000000..0f39f75e
--- /dev/null
+++ b/public_html/data/pages/incl/efl-buildorder.txt
@@ -0,0 +1,8 @@
+ * efl
+
+Then any further applications or tools (in any order now) such as:
+
+ * enlightenment
+ * terminology
+ * rage
+ * etc.
diff --git a/public_html/data/pages/incl/efl-deps-git.txt b/public_html/data/pages/incl/efl-deps-git.txt
new file mode 100644
index 00000000..ed784e57
--- /dev/null
+++ b/public_html/data/pages/incl/efl-deps-git.txt
@@ -0,0 +1,3 @@
+ * git
+ * meson
+ * ninja
\ No newline at end of file
diff --git a/public_html/data/pages/incl/efl-deps-src.txt b/public_html/data/pages/incl/efl-deps-src.txt
new file mode 100644
index 00000000..1a0f51c6
--- /dev/null
+++ b/public_html/data/pages/incl/efl-deps-src.txt
@@ -0,0 +1,46 @@
+ * [[https://gcc.gnu.org/|GCC]] or [[http://clang.llvm.org/|clang]]
+ * [[https://mesonbuild.com|Meson]]
+ * [[https://ninja-build.org|Ninja]]
+ * check
+ * libpam
+ * [[http://freetype.org/|freetype]] //(2.3 or better)//
+ * [[http://libpng.org/pub/png/libpng.html|libpng]]
+ * [[http://ijg.org/|libjpeg]]
+ * [[http://zlib.net/|zlib]]
+ * libdbus
+ * [[http://luajit.org/|luajit]]
+ * [[http://cgit.freedesktop.org/xorg/lib/libX11|libx11]]
+ * [[http://cgit.freedesktop.org/xorg/lib/libXcursor|libxcursor]]
+ * [[http://cgit.freedesktop.org/xorg/lib/libXrender|libxrender]]
+ * [[http://cgit.freedesktop.org/xorg/lib/libXrandr|libxrandr]]
+ * [[http://cgit.freedesktop.org/xorg/lib/libXfixes|libxfixes]]
+ * [[http://cgit.freedesktop.org/xorg/lib/libXdamage|libxdamage]]
+ * [[http://cgit.freedesktop.org/xorg/lib/libXcomposite|libxcomposite]]
+ * libxss
+ * [[http://cgit.freedesktop.org/xorg/lib/libXp|libxp]]
+ * [[http://cgit.freedesktop.org/xorg/lib/libXext|libxext]]
+ * [[http://cgit.freedesktop.org/xorg/lib/libXinerama|libxinerama]]
+ * libxkbfile
+ * [[http://cgit.freedesktop.org/xorg/lib/libXtst|libxtst]]
+ * [[http://xcb.freedesktop.org/|libxcb]]
+ * [[http://xcb.freedesktop.org/|libxcb-shape]]
+ * libxcb-keysyms1
+ * libpulse ([[https://wiki.freedesktop.org/www/Software/PulseAudio/|pulseaudio]]'s library)
+ * [[http://www.mega-nerd.com/libsndfile/|libsndfile]]
+ * [[http://www.freedesktop.org/software/systemd/libudev/|libudev]] //(for eeze udev support)//
+ * [[https://www.freedesktop.org/wiki/Software/systemd/|systemd]]
+ * [[http://fribidi.org/|fribidi]]
+ * libblkid & libmount **OR** libutil-linux
+ * [[http://gstreamer.freedesktop.org/|libgstreamer]] //(1.0 or better)//
+ * [[https://www.videolan.org/vlc/|vlc]] //(for emotion_generic_players)//
+ * [[http://www.remotesensing.org/libtiff/|libtiff]]
+ * [[http://giflib.sourceforge.net/|giflib]]
+ * [[http://curl.haxx.se/|curl]]
+ * [[https://www.openssl.org/|openssl]]
+ * opengl //(Mesa or vendor supplied desktop OpenGL or OpenGL-ES2)//
+ * [[https://wiki.freedesktop.org/www/Software/libspectre/|libspectre]] //(for evas_generic_loaders)//
+ * [[http://poppler.freedesktop.org/|poppler]] (poppler-cpp for some distros) //(for evas_generic_loaders)//
+ * [[https://wiki.gnome.org/action/show/Projects/LibRsvg?action=show&redirect=LibRsvg|librsvg]] //(for evas_generic_loaders)//
+ * [[http://www.libraw.org/|libraw]] //(for evas_generic_laoders)//
+ * [[https://www.xine-project.org/home|libxine]] //(for emotion xine back-end support - optional)//
+ * [[http://bulletphysics.org/wordpress/|bullet]]
\ No newline at end of file
diff --git a/public_html/data/pages/incl/start-release.txt b/public_html/data/pages/incl/start-release.txt
new file mode 100644
index 00000000..c0733d3f
--- /dev/null
+++ b/public_html/data/pages/incl/start-release.txt
@@ -0,0 +1,3 @@
+
+xz -d ArchLinuxARM-Rpi-ARMv7-Enlightenment-Wayland.img.xz
+dd if=ArchLinuxARM-Rpi-ARMv7-Enlightenment-Wayland.img of=/dev/sdX bs=4M status=progress conv=fdatasync oflag=sync
+
+
+Once the above ''dd'' command complete, power down your Raspberry Pi, plug
+the card in, then power it up and wait for the desktop to come up.
+Double-click on the "Install & Setup" icon on the desktop to begin the
+setup process. Please forgive the roughness of this tool as it's a
+first-cut shell script to be replaced in future by a proper GUI tool.
+
+^ ** LINK ** ^
+| [[ https://download.enlightenment.org/distros/arch/alarm/images/ArchLinuxARM-Rpi-ARMv7-Enlightenment-Wayland.img.xz | Arch Linux ARMv7 32bit for Raspberry Pi disk image XZ]] |
+{{:blank.png?nolink&100|}}
+~~DISCUSSIONS~~
diff --git a/public_html/data/pages/news/2019-11-16-terminology-1.6.0.txt b/public_html/data/pages/news/2019-11-16-terminology-1.6.0.txt
new file mode 100644
index 00000000..31442d92
--- /dev/null
+++ b/public_html/data/pages/news/2019-11-16-terminology-1.6.0.txt
@@ -0,0 +1,43 @@
+=== Terminology 1.6.0 Release ===
+ * //2019-11-16 - by Boris Faure//
+
+> “Adopt the pace of nature: her secret is patience.” ― Ralph Waldo Emerson
+
+With 95 new commits, Terminology 1.6.0 is ready. It packs UI improvements around tabs and splits, a welcome wizard to adjust the scaling factor, translation updates and its load of fixes. During development of this release, Terminology's Twitter account [[https://twitter.com/_Terminology_|@_Terminology_]] was created.
+
+== Additions ==
+ * Show title tab on splits, depending on configuration
+ * Show tabs that had a bell rang and had not been focused
+ * Add wizard on new configuration to set scaling
+ * Add scale configuration in the Settings panel
+ * Add Polish translation
+
+== Improvements ==
+ * Themes: make tab title readable based on theme default colors
+ * Move the tab selector on the tab line
+ * Be able to select and copy tabs
+ * Better handle stalled unix socket when using one terminology with multiple instances
+ * Change `typop` behavior to queue files in case there are multiple files to look at
+ * Update Italian translation
+
+== Fixes ==
+ * Fix live selections in the scrollback
+ * Fix unchecking `auto-hide cursor` not working
+ * Fix memory leaks related to looking for links under the mouse
+ * Ensure Terminology compiles with `EFL-1.20`
+ * Fix link detection over spaces
+ * Fix tab selector no longer taking into account the new destination
+ * Fix crash when using `typop` with multiple files
+ * No longer set environment variable `DESKTOP_STARTUP_ID` as it may no longer be accurate
+ * Allow tabs to be pasted
+
+
+== Download ==
+
+^ ** LINK ** ^ ** SHA256 ** ^
+| [[ https://download.enlightenment.org/rel/apps/terminology/terminology-1.6.0.tar.xz | Terminology 1.6.0 XZ]] | ''b95cb05653afe0dad77fc038a8d5276c02a9c08d64ac97ddf0cee8087d27bd77'' |
+
+== In action ==
+{{ :news:terminology-1.6.0.png?nolink |}}
+{{:blank.png?nolink&100|}}
+~~DISCUSSIONS~~
\ No newline at end of file
diff --git a/public_html/data/pages/news/2019-11-26-e-dev-days-2019.txt.txt b/public_html/data/pages/news/2019-11-26-e-dev-days-2019.txt.txt
new file mode 100644
index 00000000..47df13c1
--- /dev/null
+++ b/public_html/data/pages/news/2019-11-26-e-dev-days-2019.txt.txt
@@ -0,0 +1,47 @@
+=== Enlightenment Developer Days 2019 ===
+ * //2019-11-28 - by Xavi Artigas//
+
+On November 23 part of the Enlightenment community gathered for two days in Barcelona, Spain, to hold the Enlightenment Developer Days.
+
+Except for the hiatus in 2018, this tradition has been honored uninterruptedly since 2012, when it was also held in Barcelona.
+
+Over the weekend, 14 people from 7 countries presented their latest work, discussed their current problems, and talked about what lies ahead.
+
+Attendees included Enlightenment Desktop users, application developers, and core maintainers, producing a very interesting mixture. The outcome was varied: doubts were dispelled, action items for the upcoming months were laid out and, most importantly, the community was strengthened. For those of us who attended for the first time, it was a pleasure to put a face to the IRC nicks!
+
+I had the honor of being the host this time, and I enjoyed the opportunity to show my enlightened fellows around the city and take them out to have some Spanish tapas for dinner. Thanks a lot for coming!
+
+Thanks also to the Pompeu Fabra University who allowed us to use their facilities free of charge.
+
+Finally, a big thank you to Stefan Schmidt for organizing everything and getting Samsung to sponsor the meals for both days.
+
+See you all, and a bunch more, next year!
+
+{{ :news:edd2019_pic1.jpg?800,direct | Attendees hard at work!}}
+
+
+
+==== Image Links ====
+
+You can also use an image to link to another internal or external page by combining the syntax for links and [[#images_and_other_files|images]] (see below) like this:
+
+ [[http://php.net|{{wiki:dokuwiki-128.png}}]]
+
+[[http://php.net|{{wiki:dokuwiki-128.png}}]]
+
+Please note: The image formatting is the only formatting syntax accepted in link names.
+
+The whole [[#images_and_other_files|image]] and [[#links|link]] syntax is supported (including image resizing, internal and external images and URLs and interwiki links).
+
+===== Footnotes =====
+
+You can add footnotes ((This is a footnote)) by using double parentheses.
+
+ You can add footnotes ((This is a footnote)) by using double parentheses.
+
+===== Sectioning =====
+
+You can use up to five different levels of headlines to structure your content. If you have more than three headlines, a table of contents is generated automatically -- this can be disabled by including the string ''~~NOTOC~~ '' in the document.
+
+==== Headline Level 3 ====
+=== Headline Level 4 ===
+== Headline Level 5 ==
+
+ ==== Headline Level 3 ====
+ === Headline Level 4 ===
+ == Headline Level 5 ==
+
+By using four or more dashes, you can make a horizontal line:
+
+----
+
+===== Media Files =====
+
+You can include external and internal [[doku>images|images, videos and audio files]] with curly brackets. Optionally you can specify the size of them.
+
+Real size: {{wiki:dokuwiki-128.png}}
+
+Resize to given width: {{wiki:dokuwiki-128.png?50}}
+
+Resize to given width and height((when the aspect ratio of the given width and height doesn't match that of the image, it will be cropped to the new ratio before resizing)): {{wiki:dokuwiki-128.png?200x50}}
+
+Resized external image: {{http://php.net/images/php.gif?200x50}}
+
+ Real size: {{wiki:dokuwiki-128.png}}
+ Resize to given width: {{wiki:dokuwiki-128.png?50}}
+ Resize to given width and height: {{wiki:dokuwiki-128.png?200x50}}
+ Resized external image: {{http://php.net/images/php.gif?200x50}}
+
+
+By using left or right whitespaces you can choose the alignment.
+
+{{ wiki:dokuwiki-128.png}}
+
+{{wiki:dokuwiki-128.png }}
+
+{{ wiki:dokuwiki-128.png }}
+
+ {{ wiki:dokuwiki-128.png}}
+ {{wiki:dokuwiki-128.png }}
+ {{ wiki:dokuwiki-128.png }}
+
+Of course, you can add a title (displayed as a tooltip by most browsers), too.
+
+{{ wiki:dokuwiki-128.png |This is the caption}}
+
+ {{ wiki:dokuwiki-128.png |This is the caption}}
+
+For linking an image to another page see [[#Image Links]] above.
+
+==== Supported Media Formats ====
+
+DokuWiki can embed the following media formats directly.
+
+| Image | ''gif'', ''jpg'', ''png'' |
+| Video | ''webm'', ''ogv'', ''mp4'' |
+| Audio | ''ogg'', ''mp3'', ''wav'' |
+| Flash | ''swf'' |
+
+If you specify a filename that is not a supported media format, then it will be displayed as a link instead.
+
+By adding ''?linkonly'' you provide a link to the media without displaying it inline
+
+ {{wiki:dokuwiki-128.png?linkonly}}
+
+{{wiki:dokuwiki-128.png?linkonly}} This is just a link to the image.
+
+==== Fallback Formats ====
+
+Unfortunately not all browsers understand all video and audio formats. To mitigate the problem, you can upload your file in different formats for maximum browser compatibility.
+
+For example consider this embedded mp4 video:
+
+ {{video.mp4|A funny video}}
+
+When you upload a ''video.webm'' and ''video.ogv'' next to the referenced ''video.mp4'', DokuWiki will automatically add them as alternatives so that one of the three files is understood by your browser.
+
+Additionally DokuWiki supports a "poster" image which will be shown before the video has started. That image needs to have the same filename as the video and be either a jpg or png file. In the example above a ''video.jpg'' file would work.
+
+===== Lists =====
+
+Dokuwiki supports ordered and unordered lists. To create a list item, indent your text by two spaces and use a ''*'' for unordered lists or a ''-'' for ordered ones.
+
+ * This is a list
+ * The second item
+ * You may have different levels
+ * Another item
+
+ - The same list but ordered
+ - Another item
+ - Just use indention for deeper levels
+ - That's it
+
+
+ * This is a list
+ * The second item
+ * You may have different levels
+ * Another item
+
+ - The same list but ordered
+ - Another item
+ - Just use indention for deeper levels
+ - That's it
+
+
+Also take a look at the [[doku>faq:lists|FAQ on list items]].
+
+===== Text Conversions =====
+
+DokuWiki can convert certain pre-defined characters or strings into images or other text or HTML.
+
+The text to image conversion is mainly done for smileys. And the text to HTML conversion is used for typography replacements, but can be configured to use other HTML as well.
+
+==== Text to Image Conversions ====
+
+DokuWiki converts commonly used [[wp>emoticon]]s to their graphical equivalents. Those [[doku>Smileys]] and other images can be configured and extended. Here is an overview of Smileys included in DokuWiki:
+
+ * 8-) %% 8-) %%
+ * 8-O %% 8-O %%
+ * :-( %% :-( %%
+ * :-) %% :-) %%
+ * =) %% =) %%
+ * :-/ %% :-/ %%
+ * :-\ %% :-\ %%
+ * :-? %% :-? %%
+ * :-D %% :-D %%
+ * :-P %% :-P %%
+ * :-O %% :-O %%
+ * :-X %% :-X %%
+ * :-| %% :-| %%
+ * ;-) %% ;-) %%
+ * ^_^ %% ^_^ %%
+ * :?: %% :?: %%
+ * :!: %% :!: %%
+ * LOL %% LOL %%
+ * FIXME %% FIXME %%
+ * DELETEME %% DELETEME %%
+
+==== Text to HTML Conversions ====
+
+Typography: [[DokuWiki]] can convert simple text characters to their typographically correct entities. Here is an example of recognized characters.
+
+-> <- <-> => <= <=> >> << -- --- 640x480 (c) (tm) (r)
+"He thought 'It's a man's world'..."
+
+
+-> <- <-> => <= <=> >> << -- --- 640x480 (c) (tm) (r)
+"He thought 'It's a man's world'..."
+
+
+The same can be done to produce any kind of HTML, it just needs to be added to the [[doku>entities|pattern file]].
+
+There are three exceptions which do not come from that pattern file: multiplication entity (640x480), 'single' and "double quotes". They can be turned off through a [[doku>config:typography|config option]].
+
+===== Quoting =====
+
+Some times you want to mark some text to show it's a reply or comment. You can use the following syntax:
+
+
+I think we should do it
+
+> No we shouldn't
+
+>> Well, I say we should
+
+> Really?
+
+>> Yes!
+
+>>> Then lets do it!
+
+
+I think we should do it
+
+> No we shouldn't
+
+>> Well, I say we should
+
+> Really?
+
+>> Yes!
+
+>>> Then lets do it!
+
+===== Tables =====
+
+DokuWiki supports a simple syntax to create tables.
+
+^ Heading 1 ^ Heading 2 ^ Heading 3 ^
+| Row 1 Col 1 | Row 1 Col 2 | Row 1 Col 3 |
+| Row 2 Col 1 | some colspan (note the double pipe) ||
+| Row 3 Col 1 | Row 3 Col 2 | Row 3 Col 3 |
+
+Table rows have to start and end with a ''|'' for normal rows or a ''^'' for headers.
+
+ ^ Heading 1 ^ Heading 2 ^ Heading 3 ^
+ | Row 1 Col 1 | Row 1 Col 2 | Row 1 Col 3 |
+ | Row 2 Col 1 | some colspan (note the double pipe) ||
+ | Row 3 Col 1 | Row 3 Col 2 | Row 3 Col 3 |
+
+To connect cells horizontally, just make the next cell completely empty as shown above. Be sure to have always the same amount of cell separators!
+
+Vertical tableheaders are possible, too.
+
+| ^ Heading 1 ^ Heading 2 ^
+^ Heading 3 | Row 1 Col 2 | Row 1 Col 3 |
+^ Heading 4 | no colspan this time | |
+^ Heading 5 | Row 2 Col 2 | Row 2 Col 3 |
+
+As you can see, it's the cell separator before a cell which decides about the formatting:
+
+ | ^ Heading 1 ^ Heading 2 ^
+ ^ Heading 3 | Row 1 Col 2 | Row 1 Col 3 |
+ ^ Heading 4 | no colspan this time | |
+ ^ Heading 5 | Row 2 Col 2 | Row 2 Col 3 |
+
+You can have rowspans (vertically connected cells) by adding ''%%:::%%'' into the cells below the one to which they should connect.
+
+^ Heading 1 ^ Heading 2 ^ Heading 3 ^
+| Row 1 Col 1 | this cell spans vertically | Row 1 Col 3 |
+| Row 2 Col 1 | ::: | Row 2 Col 3 |
+| Row 3 Col 1 | ::: | Row 2 Col 3 |
+
+Apart from the rowspan syntax those cells should not contain anything else.
+
+ ^ Heading 1 ^ Heading 2 ^ Heading 3 ^
+ | Row 1 Col 1 | this cell spans vertically | Row 1 Col 3 |
+ | Row 2 Col 1 | ::: | Row 2 Col 3 |
+ | Row 3 Col 1 | ::: | Row 2 Col 3 |
+
+You can align the table contents, too. Just add at least two whitespaces at the opposite end of your text: Add two spaces on the left to align right, two spaces on the right to align left and two spaces at least at both ends for centered text.
+
+^ Table with alignment ^^^
+| right| center |left |
+|left | right| center |
+| xxxxxxxxxxxx | xxxxxxxxxxxx | xxxxxxxxxxxx |
+
+This is how it looks in the source:
+
+ ^ Table with alignment ^^^
+ | right| center |left |
+ |left | right| center |
+ | xxxxxxxxxxxx | xxxxxxxxxxxx | xxxxxxxxxxxx |
+
+Note: Vertical alignment is not supported.
+
+===== No Formatting =====
+
+If you need to display text exactly like it is typed (without any formatting), enclose the area either with ''%%%%'' tags or even simpler, with double percent signs ''%% ''.
+
+
+This is some text which contains addresses like this: http://www.splitbrain.org and **formatting**, but nothing is done with it.
+
+The same is true for %%//__this__ text// with a smiley ;-)%%.
+
+
+ This is some text which contains addresses like this: http://www.splitbrain.org and **formatting**, but nothing is done with it.
+
+ The same is true for %%//__this__ text// with a smiley ;-)%%.
+
+===== Code Blocks =====
+
+You can include code blocks into your documents by either indenting them by at least two spaces (like used for the previous examples) or by using the tags ''%%%%'' or ''%%%%''.
+
+ This is text is indented by two spaces.
+
+
+This is preformatted code all spaces are preserved: like <-this
+
+
+
+This is pretty much the same, but you could use it to show that you quoted a file.
+
+
+Those blocks were created by this source:
+
+ This is text is indented by two spaces.
+
+
+ This is preformatted code all spaces are preserved: like <-this
+
+
+
+ This is pretty much the same, but you could use it to show that you quoted a file.
+
+
+==== Syntax Highlighting ====
+
+[[wiki:DokuWiki]] can highlight sourcecode, which makes it easier to read. It uses the [[http://qbnz.com/highlighter/|GeSHi]] Generic Syntax Highlighter -- so any language supported by GeSHi is supported. The syntax uses the same code and file blocks described in the previous section, but this time the name of the language syntax to be highlighted is included inside the tag, e.g. ''
'' or '' ''.
+
+
+/**
+ * The HelloWorldApp class implements an application that
+ * simply displays "Hello World!" to the standard output.
+ */
+class HelloWorldApp {
+ public static void main(String[] args) {
+ System.out.println("Hello World!"); //Display the string.
+ }
+}
+
+
+The following language strings are currently recognized: //4cs 6502acme 6502kickass 6502tasm 68000devpac abap actionscript3 actionscript ada aimms algol68 apache applescript apt_sources arm asm asp asymptote autoconf autohotkey autoit avisynth awk bascomavr bash basic4gl batch bf biblatex bibtex blitzbasic bnf boo caddcl cadlisp ceylon cfdg cfm chaiscript chapel cil c_loadrunner clojure c_mac cmake cobol coffeescript c cpp cpp-qt cpp-winapi csharp css cuesheet c_winapi dart dcl dcpu16 dcs delphi diff div dos dot d ecmascript eiffel email epc e erlang euphoria ezt f1 falcon fo fortran freebasic freeswitch fsharp gambas gdb genero genie gettext glsl gml gnuplot go groovy gwbasic haskell haxe hicest hq9plus html html4strict html5 icon idl ini inno intercal io ispfpanel java5 java javascript jcl j jquery julia kixtart klonec klonecpp kotlin latex lb ldif lisp llvm locobasic logtalk lolcode lotusformulas lotusscript lscript lsl2 lua m68k magiksf make mapbasic mathematica matlab mercury metapost mirc mk-61 mmix modula2 modula3 mpasm mxml mysql nagios netrexx newlisp nginx nimrod nsis oberon2 objc objeck ocaml-brief ocaml octave oobas oorexx oracle11 oracle8 oxygene oz parasail parigp pascal pcre perl6 perl per pf phix php-brief php pic16 pike pixelbender pli plsql postgresql postscript povray powerbuilder powershell proftpd progress prolog properties providex purebasic pycon pys60 python qbasic qml q racket rails rbs rebol reg rexx robots rpmspec rsplus ruby rust sas sass scala scheme scilab scl sdlbasic smalltalk smarty spark sparql sql standardml stonescript swift systemverilog tclegg tcl teraterm texgraph text thinbasic tsql twig typoscript unicon upc urbi uscript vala vbnet vb vbscript vedit verilog vhdl vim visualfoxpro visualprolog whitespace whois winbatch xbasic xml xojo xorg_conf xpp yaml z80 zxbasic//
+
+There are additional [[doku>syntax_highlighting|advanced options]] available for syntax highlighting, such as highlighting lines or adding line numbers.
+
+==== Downloadable Code Blocks ====
+
+When you use the ''%%%%'' or ''%%%%'' syntax as above, you might want to make the shown code available for download as well. You can do this by specifying a file name after language code like this:
+
+
+
+
+
+
+
+
+
+
+
+If you don't want any highlighting but want a downloadable file, specify a dash (''-'') as the language code: ''%%%%''.
+
+
+===== Embedding HTML and PHP =====
+
+You can embed raw HTML or PHP code into your documents by using the ''%%%%'' or ''%%%%'' tags. (Use uppercase tags if you need to enclose block level elements.)
+
+HTML example:
+
+
+
+This is some inline HTML
+
+
+And this is some block HTML
+
+
+
+
+This is some inline HTML
+
+
+And this is some block HTML
+
+
+PHP example:
+
+
+
+echo 'The PHP version: ';
+echo phpversion();
+echo ' (generated inline HTML)';
+
+
+echo 'The same, but inside a block level element: ';
+echo ''.phpversion().' ';
+echo '
';
+
+
+
+
+echo 'The PHP version: ';
+echo phpversion();
+echo ' (inline HTML)';
+
+
+echo 'The same, but inside a block level element: ';
+echo ''.phpversion().' ';
+echo '
';
+
+
+**Please Note**: HTML and PHP embedding is disabled by default in the configuration. If disabled, the code is displayed instead of executed.
+
+===== RSS/ATOM Feed Aggregation =====
+[[DokuWiki]] can integrate data from external XML feeds. For parsing the XML feeds, [[http://simplepie.org/|SimplePie]] is used. All formats understood by SimplePie can be used in DokuWiki as well. You can influence the rendering by multiple additional space separated parameters:
+
+^ Parameter ^ Description ^
+| any number | will be used as maximum number items to show, defaults to 8 |
+| reverse | display the last items in the feed first |
+| author | show item authors names |
+| date | show item dates |
+| description| show the item description. If [[doku>config:htmlok|HTML]] is disabled all tags will be stripped |
+| nosort | do not sort the items in the feed |
+| //n//[dhm] | refresh period, where d=days, h=hours, m=minutes. (e.g. 12h = 12 hours). |
+
+The refresh period defaults to 4 hours. Any value below 10 minutes will be treated as 10 minutes. [[wiki:DokuWiki]] will generally try to supply a cached version of a page, obviously this is inappropriate when the page contains dynamic external content. The parameter tells [[wiki:DokuWiki]] to re-render the page if it is more than //refresh period// since the page was last rendered.
+
+By default the feed will be sorted by date, newest items first. You can sort it by oldest first using the ''reverse'' parameter, or display the feed as is with ''nosort''.
+
+**Example:**
+
+ {{rss>http://slashdot.org/index.rss 5 author date 1h }}
+
+{{rss>http://slashdot.org/index.rss 5 author date 1h }}
+
+
+===== Control Macros =====
+
+Some syntax influences how DokuWiki renders a page without creating any output it self. The following control macros are availble:
+
+^ Macro ^ Description |
+| %%~~NOTOC~~%% | If this macro is found on the page, no table of contents will be created |
+| %%~~NOCACHE~~%% | DokuWiki caches all output by default. Sometimes this might not be wanted (eg. when the %%%% syntax above is used), adding this macro will force DokuWiki to rerender a page on every call |
+
+===== Syntax Plugins =====
+
+DokuWiki's syntax can be extended by [[doku>plugins|Plugins]]. How the installed plugins are used is described on their appropriate description pages. The following syntax plugins are available in this particular DokuWiki installation:
+
+~~INFO:syntaxplugins~~
diff --git a/public_html/data/pages/wiki/welcome.txt b/public_html/data/pages/wiki/welcome.txt
new file mode 100644
index 00000000..6978f1b1
--- /dev/null
+++ b/public_html/data/pages/wiki/welcome.txt
@@ -0,0 +1,30 @@
+====== Welcome to your new DokuWiki ======
+
+Congratulations, your wiki is now up and running. Here are a few more tips to get you started.
+
+Enjoy your work with DokuWiki,\\
+-- the developers
+
+===== Create your first pages =====
+
+Your wiki needs to have a start page. As long as it doesn't exist, this link will be red: [[:start]].
+
+Go on, follow that link and create the page. If you need help with using the syntax you can always refer to the [[wiki:syntax|syntax page]].
+
+You might also want to use a sidebar. To create it, just edit the [[:sidebar]] page. Everything in that page will be shown in a margin column on the side. Read our [[doku>faq:sidebar|FAQ on sidebars]] to learn more.
+
+Please be aware that not all templates support sidebars.
+
+===== Customize your Wiki =====
+
+Once you're comfortable with creating and editing pages you might want to have a look at the [[this>doku.php?do=admin&page=config|configuration settings]] (be sure to login as superuser first).
+
+You may also want to see what [[doku>plugins|plugins]] and [[doku>templates|templates]] are available at DokuWiki.org to extend the functionality and looks of your DokuWiki installation.
+
+===== Join the Community =====
+
+DokuWiki is an Open Source project that thrives through user contributions. A good way to stay informed on what's going on and to get useful tips in using DokuWiki is subscribing to the [[doku>newsletter]].
+
+The [[http://forum.dokuwiki.org|DokuWiki User Forum]] is an excellent way to get in contact with other DokuWiki users and is just one of the many ways to get [[doku>faq:support|support]].
+
+Of course we'd be more than happy to have you [[doku>teams:getting_involved|getting involved]] with DokuWiki.
diff --git a/public_html/inc/Action/AbstractAclAction.php b/public_html/inc/Action/AbstractAclAction.php
new file mode 100644
index 00000000..871edb0a
--- /dev/null
+++ b/public_html/inc/Action/AbstractAclAction.php
@@ -0,0 +1,25 @@
+actionname = $actionname;
+ } else {
+ // http://stackoverflow.com/a/27457689/172068
+ $this->actionname = strtolower(substr(strrchr(get_class($this), '\\'), 1));
+ }
+ }
+
+ /**
+ * Return the minimum permission needed
+ *
+ * This needs to return one of the AUTH_* constants. It will be checked against
+ * the current user and page after checkPermissions() ran through. If it fails,
+ * the user will be shown the Denied action.
+ *
+ * @return int
+ */
+ abstract public function minimumPermission();
+
+ /**
+ * Check conditions are met to run this action
+ *
+ * @throws ActionException
+ * @return void
+ */
+ public function checkPreconditions() {
+ }
+
+ /**
+ * Process data
+ *
+ * This runs before any output is sent to the browser.
+ *
+ * Throw an Exception if a different action should be run after this step.
+ *
+ * @throws ActionException
+ * @return void
+ */
+ public function preProcess() {
+ }
+
+ /**
+ * Output whatever content is wanted within tpl_content();
+ *
+ * @fixme we may want to return a Ui class here
+ */
+ public function tplContent() {
+ throw new FatalException('No content for Action ' . $this->actionname);
+ }
+
+ /**
+ * Returns the name of this action
+ *
+ * This is usually the lowercased class name, but may differ for some actions.
+ * eg. the export_ modes or for the Plugin action.
+ *
+ * @return string
+ */
+ public function getActionName() {
+ return $this->actionname;
+ }
+}
diff --git a/public_html/inc/Action/AbstractAliasAction.php b/public_html/inc/Action/AbstractAliasAction.php
new file mode 100644
index 00000000..7240f5ed
--- /dev/null
+++ b/public_html/inc/Action/AbstractAliasAction.php
@@ -0,0 +1,28 @@
+server->str('REMOTE_USER')) {
+ throw new ActionUserRequiredException();
+ }
+ }
+
+}
diff --git a/public_html/inc/Action/Admin.php b/public_html/inc/Action/Admin.php
new file mode 100644
index 00000000..8d430578
--- /dev/null
+++ b/public_html/inc/Action/Admin.php
@@ -0,0 +1,56 @@
+str('page', '', true)) != '') {
+ /** @var $plugin \DokuWiki_Admin_Plugin */
+ if($plugin = plugin_getRequestAdminPlugin()) { // FIXME this method does also permission checking
+ if($plugin->forAdminOnly() && !$INFO['isadmin']) {
+ throw new ActionException('denied');
+ }
+ $plugin->handle();
+ }
+ }
+ }
+
+ public function tplContent() {
+ tpl_admin();
+ }
+
+}
diff --git a/public_html/inc/Action/Backlink.php b/public_html/inc/Action/Backlink.php
new file mode 100644
index 00000000..0337917b
--- /dev/null
+++ b/public_html/inc/Action/Backlink.php
@@ -0,0 +1,24 @@
+ redirect -> show
+ throw new ActionAbort('draftdel');
+ }
+
+}
diff --git a/public_html/inc/Action/Check.php b/public_html/inc/Action/Check.php
new file mode 100644
index 00000000..36ae8e8b
--- /dev/null
+++ b/public_html/inc/Action/Check.php
@@ -0,0 +1,26 @@
+str('difftype');
+ if(!empty($difftype)) {
+ set_doku_pref('difftype', $difftype);
+ }
+ }
+
+ /** @inheritdoc */
+ public function tplContent() {
+ html_diff();
+ }
+
+}
diff --git a/public_html/inc/Action/Draft.php b/public_html/inc/Action/Draft.php
new file mode 100644
index 00000000..caf08701
--- /dev/null
+++ b/public_html/inc/Action/Draft.php
@@ -0,0 +1,39 @@
+server->str('REQUEST_METHOD')) == 'post') {
+ $newaction = 'redirect';
+ } else {
+ $newaction = 'show';
+ }
+ }
+
+ $this->newaction = $newaction;
+ }
+
+ /**
+ * Returns the action to use next
+ *
+ * @return string
+ */
+ public function getNewAction() {
+ return $this->newaction;
+ }
+
+ /**
+ * Should this Exception's message be shown to the user?
+ *
+ * @param null|bool $set when null is given, the current setting is not changed
+ * @return bool
+ */
+ public function displayToUser($set = null) {
+ if(!is_null($set)) $this->displayToUser = $set;
+ return $set;
+ }
+}
diff --git a/public_html/inc/Action/Exception/ActionUserRequiredException.php b/public_html/inc/Action/Exception/ActionUserRequiredException.php
new file mode 100644
index 00000000..aab06cca
--- /dev/null
+++ b/public_html/inc/Action/Exception/ActionUserRequiredException.php
@@ -0,0 +1,17 @@
+
+ * @author Michael Klier
+ * @inheritdoc
+ */
+ public function preProcess() {
+ global $ID;
+ global $REV;
+ global $conf;
+ global $lang;
+
+ $pre = '';
+ $post = '';
+ $headers = array();
+
+ // search engines: never cache exported docs! (Google only currently)
+ $headers['X-Robots-Tag'] = 'noindex';
+
+ $mode = substr($this->actionname, 7);
+ switch($mode) {
+ case 'raw':
+ $headers['Content-Type'] = 'text/plain; charset=utf-8';
+ $headers['Content-Disposition'] = 'attachment; filename=' . noNS($ID) . '.txt';
+ $output = rawWiki($ID, $REV);
+ break;
+ case 'xhtml':
+ $pre .= '' . DOKU_LF;
+ $pre .= '' . DOKU_LF;
+ $pre .= '' . DOKU_LF;
+ $pre .= ' ' . DOKU_LF; // FIXME improve wrapper
+ $pre .= ' ' . $ID . ' ' . DOKU_LF;
+
+ // get metaheaders
+ ob_start();
+ tpl_metaheaders();
+ $pre .= ob_get_clean();
+
+ $pre .= '' . DOKU_LF;
+ $pre .= '' . DOKU_LF;
+ $pre .= '' . DOKU_LF;
+
+ // get toc
+ $pre .= tpl_toc(true);
+
+ $headers['Content-Type'] = 'text/html; charset=utf-8';
+ $output = p_wiki_xhtml($ID, $REV, false);
+
+ $post .= '' . DOKU_LF;
+ $post .= '' . DOKU_LF;
+ $post .= '' . DOKU_LF;
+ break;
+ case 'xhtmlbody':
+ $headers['Content-Type'] = 'text/html; charset=utf-8';
+ $output = p_wiki_xhtml($ID, $REV, false);
+ break;
+ default:
+ $output = p_cached_output(wikiFN($ID, $REV), $mode, $ID);
+ $headers = p_get_metadata($ID, "format $mode");
+ break;
+ }
+
+ // prepare event data
+ $data = array();
+ $data['id'] = $ID;
+ $data['mode'] = $mode;
+ $data['headers'] = $headers;
+ $data['output'] =& $output;
+
+ trigger_event('ACTION_EXPORT_POSTPROCESS', $data);
+
+ if(!empty($data['output'])) {
+ if(is_array($data['headers'])) foreach($data['headers'] as $key => $val) {
+ header("$key: $val");
+ }
+ print $pre . $data['output'] . $post;
+ exit;
+ }
+
+ throw new ActionAbort();
+ }
+
+}
diff --git a/public_html/inc/Action/Index.php b/public_html/inc/Action/Index.php
new file mode 100644
index 00000000..c87a3f89
--- /dev/null
+++ b/public_html/inc/Action/Index.php
@@ -0,0 +1,25 @@
+server->has('REMOTE_USER')) {
+ // nothing to do
+ throw new ActionException();
+ }
+ }
+
+ /** @inheritdoc */
+ public function tplContent() {
+ html_login();
+ }
+
+}
diff --git a/public_html/inc/Action/Logout.php b/public_html/inc/Action/Logout.php
new file mode 100644
index 00000000..15909042
--- /dev/null
+++ b/public_html/inc/Action/Logout.php
@@ -0,0 +1,50 @@
+canDo('logout')) throw new ActionDisabledException();
+ }
+
+ /** @inheritdoc */
+ public function preProcess() {
+ global $ID;
+ global $INPUT;
+
+ // when logging out during an edit session, unlock the page
+ $lockedby = checklock($ID);
+ if($lockedby == $INPUT->server->str('REMOTE_USER')) {
+ unlock($ID);
+ }
+
+ // do the logout stuff and redirect to login
+ auth_logoff();
+ send_redirect(wl($ID, array('do' => 'login')));
+
+ // should never be reached
+ throw new ActionException('login');
+ }
+
+}
diff --git a/public_html/inc/Action/Media.php b/public_html/inc/Action/Media.php
new file mode 100644
index 00000000..77a2a6f0
--- /dev/null
+++ b/public_html/inc/Action/Media.php
@@ -0,0 +1,24 @@
+actionname);
+ if($evt->advise_before()) {
+ msg('Failed to handle action: ' . hsc($this->actionname), -1);
+ }
+ $evt->advise_after();
+ }
+}
diff --git a/public_html/inc/Action/Preview.php b/public_html/inc/Action/Preview.php
new file mode 100644
index 00000000..850b2049
--- /dev/null
+++ b/public_html/inc/Action/Preview.php
@@ -0,0 +1,58 @@
+savedraft();
+ parent::preProcess();
+ }
+
+ /** @inheritdoc */
+ public function tplContent() {
+ global $TEXT;
+ html_edit();
+ html_show($TEXT);
+ }
+
+ /**
+ * Saves a draft on preview
+ */
+ protected function savedraft() {
+ global $INFO;
+ global $ID;
+ global $INPUT;
+ global $conf;
+
+ if(!$conf['usedraft']) return;
+ if(!$INPUT->post->has('wikitext')) return;
+
+ // ensure environment (safeguard when used via AJAX)
+ assert(isset($INFO['client']), 'INFO.client should have been set');
+ assert(isset($ID), 'ID should have been set');
+
+ $draft = array(
+ 'id' => $ID,
+ 'prefix' => substr($INPUT->post->str('prefix'), 0, -1),
+ 'text' => $INPUT->post->str('wikitext'),
+ 'suffix' => $INPUT->post->str('suffix'),
+ 'date' => $INPUT->post->int('date'),
+ 'client' => $INFO['client'],
+ );
+ $cname = getCacheName($draft['client'] . $ID, '.draft');
+ if(io_saveFile($cname, serialize($draft))) {
+ $INFO['draft'] = $cname;
+ }
+ }
+
+}
diff --git a/public_html/inc/Action/Profile.php b/public_html/inc/Action/Profile.php
new file mode 100644
index 00000000..53d8d2ff
--- /dev/null
+++ b/public_html/inc/Action/Profile.php
@@ -0,0 +1,45 @@
+canDo('Profile')) throw new ActionDisabledException();
+ }
+
+ /** @inheritdoc */
+ public function preProcess() {
+ global $lang;
+ if(updateprofile()) {
+ msg($lang['profchanged'], 1);
+ throw new ActionAbort('show');
+ }
+ }
+
+ /** @inheritdoc */
+ public function tplContent() {
+ html_updateprofile();
+ }
+
+}
diff --git a/public_html/inc/Action/ProfileDelete.php b/public_html/inc/Action/ProfileDelete.php
new file mode 100644
index 00000000..995f8139
--- /dev/null
+++ b/public_html/inc/Action/ProfileDelete.php
@@ -0,0 +1,42 @@
+canDo('delUser')) throw new ActionDisabledException();
+ }
+
+ /** @inheritdoc */
+ public function preProcess() {
+ global $lang;
+ if(auth_deleteprofile()) {
+ msg($lang['profdeleted'], 1);
+ throw new ActionAbort('show');
+ } else {
+ throw new ActionAbort('profile');
+ }
+ }
+
+}
diff --git a/public_html/inc/Action/Recent.php b/public_html/inc/Action/Recent.php
new file mode 100644
index 00000000..9273d52c
--- /dev/null
+++ b/public_html/inc/Action/Recent.php
@@ -0,0 +1,40 @@
+str('show_changes');
+ if(!empty($show_changes)) {
+ set_doku_pref('show_changes', $show_changes);
+ $this->showType = $show_changes;
+ } else {
+ $this->showType = get_doku_pref('show_changes', 'both');
+ }
+ }
+
+ /** @inheritdoc */
+ public function tplContent() {
+ global $INPUT;
+ html_recent((int) $INPUT->extract('first')->int('first'), $this->showType);
+ }
+
+}
diff --git a/public_html/inc/Action/Recover.php b/public_html/inc/Action/Recover.php
new file mode 100644
index 00000000..7966396b
--- /dev/null
+++ b/public_html/inc/Action/Recover.php
@@ -0,0 +1,21 @@
+ $ID,
+ 'preact' => $ACT
+ );
+ //get section name when coming from section edit
+ if($INPUT->has('hid')) {
+ // Use explicitly transmitted header id
+ $opts['fragment'] = $INPUT->str('hid');
+ } else if($PRE && preg_match('/^\s*==+([^=\n]+)/', $TEXT, $match)) {
+ // Fallback to old mechanism
+ $check = false; //Byref
+ $opts['fragment'] = sectionID($match[0], $check);
+ }
+
+ // execute the redirect
+ trigger_event('ACTION_SHOW_REDIRECT', $opts, array($this, 'redirect'));
+
+ // should never be reached
+ throw new ActionAbort('show');
+ }
+
+ /**
+ * Execute the redirect
+ *
+ * Default action for ACTION_SHOW_REDIRECT
+ *
+ * @param array $opts id and fragment for the redirect and the preact
+ */
+ public function redirect($opts) {
+ $go = wl($opts['id'], '', true);
+ if(isset($opts['fragment'])) $go .= '#' . $opts['fragment'];
+
+ //show it
+ send_redirect($go);
+ }
+}
diff --git a/public_html/inc/Action/Register.php b/public_html/inc/Action/Register.php
new file mode 100644
index 00000000..0d541586
--- /dev/null
+++ b/public_html/inc/Action/Register.php
@@ -0,0 +1,45 @@
+canDo('addUser')) throw new ActionDisabledException();
+ }
+
+ /** @inheritdoc */
+ public function preProcess() {
+ if(register()) { // FIXME could be moved from auth to here
+ throw new ActionAbort('login');
+ }
+ }
+
+ /** @inheritdoc */
+ public function tplContent() {
+ html_register();
+ }
+
+}
diff --git a/public_html/inc/Action/Resendpwd.php b/public_html/inc/Action/Resendpwd.php
new file mode 100644
index 00000000..5b5e3819
--- /dev/null
+++ b/public_html/inc/Action/Resendpwd.php
@@ -0,0 +1,177 @@
+canDo('modPass')) throw new ActionDisabledException();
+ }
+
+ /** @inheritdoc */
+ public function preProcess() {
+ if($this->resendpwd()) {
+ throw new ActionAbort('login');
+ }
+ }
+
+ /** @inheritdoc */
+ public function tplContent() {
+ html_resendpwd();
+ }
+
+ /**
+ * Send a new password
+ *
+ * This function handles both phases of the password reset:
+ *
+ * - handling the first request of password reset
+ * - validating the password reset auth token
+ *
+ * @author Benoit Chesneau
+ * @author Chris Smith
+ * @author Andreas Gohr
+ * @fixme this should be split up into multiple methods
+ * @return bool true on success, false on any error
+ */
+ protected function resendpwd() {
+ global $lang;
+ global $conf;
+ /* @var \DokuWiki_Auth_Plugin $auth */
+ global $auth;
+ global $INPUT;
+
+ if(!actionOK('resendpwd')) {
+ msg($lang['resendna'], -1);
+ return false;
+ }
+
+ $token = preg_replace('/[^a-f0-9]+/', '', $INPUT->str('pwauth'));
+
+ if($token) {
+ // we're in token phase - get user info from token
+
+ $tfile = $conf['cachedir'] . '/' . $token{0} . '/' . $token . '.pwauth';
+ if(!file_exists($tfile)) {
+ msg($lang['resendpwdbadauth'], -1);
+ $INPUT->remove('pwauth');
+ return false;
+ }
+ // token is only valid for 3 days
+ if((time() - filemtime($tfile)) > (3 * 60 * 60 * 24)) {
+ msg($lang['resendpwdbadauth'], -1);
+ $INPUT->remove('pwauth');
+ @unlink($tfile);
+ return false;
+ }
+
+ $user = io_readfile($tfile);
+ $userinfo = $auth->getUserData($user, $requireGroups = false);
+ if(!$userinfo['mail']) {
+ msg($lang['resendpwdnouser'], -1);
+ return false;
+ }
+
+ if(!$conf['autopasswd']) { // we let the user choose a password
+ $pass = $INPUT->str('pass');
+
+ // password given correctly?
+ if(!$pass) return false;
+ if($pass != $INPUT->str('passchk')) {
+ msg($lang['regbadpass'], -1);
+ return false;
+ }
+
+ // change it
+ if(!$auth->triggerUserMod('modify', array($user, array('pass' => $pass)))) {
+ msg($lang['proffail'], -1);
+ return false;
+ }
+
+ } else { // autogenerate the password and send by mail
+
+ $pass = auth_pwgen($user);
+ if(!$auth->triggerUserMod('modify', array($user, array('pass' => $pass)))) {
+ msg($lang['proffail'], -1);
+ return false;
+ }
+
+ if(auth_sendPassword($user, $pass)) {
+ msg($lang['resendpwdsuccess'], 1);
+ } else {
+ msg($lang['regmailfail'], -1);
+ }
+ }
+
+ @unlink($tfile);
+ return true;
+
+ } else {
+ // we're in request phase
+
+ if(!$INPUT->post->bool('save')) return false;
+
+ if(!$INPUT->post->str('login')) {
+ msg($lang['resendpwdmissing'], -1);
+ return false;
+ } else {
+ $user = trim($auth->cleanUser($INPUT->post->str('login')));
+ }
+
+ $userinfo = $auth->getUserData($user, $requireGroups = false);
+ if(!$userinfo['mail']) {
+ msg($lang['resendpwdnouser'], -1);
+ return false;
+ }
+
+ // generate auth token
+ $token = md5(auth_randombytes(16)); // random secret
+ $tfile = $conf['cachedir'] . '/' . $token{0} . '/' . $token . '.pwauth';
+ $url = wl('', array('do' => 'resendpwd', 'pwauth' => $token), true, '&');
+
+ io_saveFile($tfile, $user);
+
+ $text = rawLocale('pwconfirm');
+ $trep = array(
+ 'FULLNAME' => $userinfo['name'],
+ 'LOGIN' => $user,
+ 'CONFIRM' => $url
+ );
+
+ $mail = new \Mailer();
+ $mail->to($userinfo['name'] . ' <' . $userinfo['mail'] . '>');
+ $mail->subject($lang['regpwmail']);
+ $mail->setBody($text, $trep);
+ if($mail->send()) {
+ msg($lang['resendpwdconfirm'], 1);
+ } else {
+ msg($lang['regmailfail'], -1);
+ }
+ return true;
+ }
+ // never reached
+ }
+
+}
diff --git a/public_html/inc/Action/Revert.php b/public_html/inc/Action/Revert.php
new file mode 100644
index 00000000..ca35374f
--- /dev/null
+++ b/public_html/inc/Action/Revert.php
@@ -0,0 +1,65 @@
+ redirect -> show
+ throw new ActionAbort('draftdel');
+ }
+
+}
diff --git a/public_html/inc/Action/Revisions.php b/public_html/inc/Action/Revisions.php
new file mode 100644
index 00000000..b8db531c
--- /dev/null
+++ b/public_html/inc/Action/Revisions.php
@@ -0,0 +1,24 @@
+int('first'));
+ }
+}
diff --git a/public_html/inc/Action/Save.php b/public_html/inc/Action/Save.php
new file mode 100644
index 00000000..0b247298
--- /dev/null
+++ b/public_html/inc/Action/Save.php
@@ -0,0 +1,60 @@
+ $DATE) {
+ throw new ActionException('conflict');
+ }
+
+ //save it
+ saveWikiText($ID, con($PRE, $TEXT, $SUF, true), $SUM, $INPUT->bool('minor')); //use pretty mode for con
+ //unlock it
+ unlock($ID);
+
+ // continue with draftdel -> redirect -> show
+ throw new ActionAbort('draftdel');
+ }
+
+}
diff --git a/public_html/inc/Action/Search.php b/public_html/inc/Action/Search.php
new file mode 100644
index 00000000..382fc47e
--- /dev/null
+++ b/public_html/inc/Action/Search.php
@@ -0,0 +1,135 @@
+has('q')) {
+ parse_str($INPUT->server->str('QUERY_STRING'), $urlParts);
+ $urlParts['q'] = $urlParts['id'];
+ $urlParts['id'] = $conf['start'];
+ $url = DOKU_URL . DOKU_SCRIPT . '?' . http_build_query($urlParts, null, '&');
+ send_redirect($url);
+ }
+
+ if ($s === '') throw new ActionAbort();
+ $this->adjustGlobalQuery();
+ }
+
+ /** @inheritdoc */
+ public function tplContent()
+ {
+ $this->execute();
+
+ $search = new \dokuwiki\Ui\Search($this->pageLookupResults, $this->fullTextResults, $this->highlight);
+ $search->show();
+ }
+
+
+ /**
+ * run the search
+ */
+ protected function execute()
+ {
+ global $INPUT, $QUERY;
+ $after = $INPUT->str('min');
+ $before = $INPUT->str('max');
+ $this->pageLookupResults = ft_pageLookup($QUERY, true, useHeading('navigation'), $after, $before);
+ $this->fullTextResults = ft_pageSearch($QUERY, $highlight, $INPUT->str('srt'), $after, $before);
+ $this->highlight = $highlight;
+ }
+
+ /**
+ * Adjust the global query accordingly to the config search_nslimit and search_fragment
+ *
+ * This will only do something if the search didn't originate from the form on the searchpage itself
+ */
+ protected function adjustGlobalQuery()
+ {
+ global $conf, $INPUT, $QUERY, $ID;
+
+ if ($INPUT->bool('sf')) {
+ return;
+ }
+
+ $Indexer = idx_get_indexer();
+ $parsedQuery = ft_queryParser($Indexer, $QUERY);
+
+ if (empty($parsedQuery['ns']) && empty($parsedQuery['notns'])) {
+ if ($conf['search_nslimit'] > 0) {
+ if (getNS($ID) !== false) {
+ $nsParts = explode(':', getNS($ID));
+ $ns = implode(':', array_slice($nsParts, 0, $conf['search_nslimit']));
+ $QUERY .= " @$ns";
+ }
+ }
+ }
+
+ if ($conf['search_fragment'] !== 'exact') {
+ if (empty(array_diff($parsedQuery['words'], $parsedQuery['and']))) {
+ if (strpos($QUERY, '*') === false) {
+ $queryParts = explode(' ', $QUERY);
+ $queryParts = array_map(function ($part) {
+ if (strpos($part, '@') === 0) {
+ return $part;
+ }
+ if (strpos($part, 'ns:') === 0) {
+ return $part;
+ }
+ if (strpos($part, '^') === 0) {
+ return $part;
+ }
+ if (strpos($part, '-ns:') === 0) {
+ return $part;
+ }
+
+ global $conf;
+
+ if ($conf['search_fragment'] === 'starts_with') {
+ return $part . '*';
+ }
+ if ($conf['search_fragment'] === 'ends_with') {
+ return '*' . $part;
+ }
+
+ return '*' . $part . '*';
+
+ }, $queryParts);
+ $QUERY = implode(' ', $queryParts);
+ }
+ }
+ }
+ }
+}
diff --git a/public_html/inc/Action/Show.php b/public_html/inc/Action/Show.php
new file mode 100644
index 00000000..a5cb5344
--- /dev/null
+++ b/public_html/inc/Action/Show.php
@@ -0,0 +1,36 @@
+
+ * @throws FatalException
+ * @inheritdoc
+ */
+ public function preProcess() {
+ global $conf;
+
+ if($conf['sitemap'] < 1 || !is_numeric($conf['sitemap'])) {
+ throw new FatalException(404, 'Sitemap generation is disabled');
+ }
+
+ $sitemap = \Sitemapper::getFilePath();
+ if(\Sitemapper::sitemapIsCompressed()) {
+ $mime = 'application/x-gzip';
+ } else {
+ $mime = 'application/xml; charset=utf-8';
+ }
+
+ // Check if sitemap file exists, otherwise create it
+ if(!is_readable($sitemap)) {
+ \Sitemapper::generate();
+ }
+
+ if(is_readable($sitemap)) {
+ // Send headers
+ header('Content-Type: ' . $mime);
+ header('Content-Disposition: attachment; filename=' . utf8_basename($sitemap));
+
+ http_conditionalRequest(filemtime($sitemap));
+
+ // Send file
+ //use x-sendfile header to pass the delivery to compatible webservers
+ http_sendfile($sitemap);
+
+ readfile($sitemap);
+ exit;
+ }
+
+ throw new FatalException(500, 'Could not read the sitemap file - bad permissions?');
+ }
+
+}
diff --git a/public_html/inc/Action/Source.php b/public_html/inc/Action/Source.php
new file mode 100644
index 00000000..9b03fe98
--- /dev/null
+++ b/public_html/inc/Action/Source.php
@@ -0,0 +1,36 @@
+handleSubscribeData();
+ } catch(ActionAbort $e) {
+ throw $e;
+ } catch(\Exception $e) {
+ msg($e->getMessage(), -1);
+ }
+ }
+
+ /** @inheritdoc */
+ public function tplContent() {
+ tpl_subscribe();
+ }
+
+ /**
+ * Handle page 'subscribe'
+ *
+ * @author Adrian Lang
+ * @throws \Exception if (un)subscribing fails
+ * @throws ActionAbort when (un)subscribing worked
+ */
+ protected function handleSubscribeData() {
+ global $lang;
+ global $INFO;
+ global $INPUT;
+
+ // get and preprocess data.
+ $params = array();
+ foreach(array('target', 'style', 'action') as $param) {
+ if($INPUT->has("sub_$param")) {
+ $params[$param] = $INPUT->str("sub_$param");
+ }
+ }
+
+ // any action given? if not just return and show the subscription page
+ if(empty($params['action']) || !checkSecurityToken()) return;
+
+ // Handle POST data, may throw exception.
+ trigger_event('ACTION_HANDLE_SUBSCRIBE', $params, array($this, 'handlePostData'));
+
+ $target = $params['target'];
+ $style = $params['style'];
+ $action = $params['action'];
+
+ // Perform action.
+ $sub = new \Subscription();
+ if($action == 'unsubscribe') {
+ $ok = $sub->remove($target, $INPUT->server->str('REMOTE_USER'), $style);
+ } else {
+ $ok = $sub->add($target, $INPUT->server->str('REMOTE_USER'), $style);
+ }
+
+ if($ok) {
+ msg(
+ sprintf(
+ $lang["subscr_{$action}_success"], hsc($INFO['userinfo']['name']),
+ prettyprint_id($target)
+ ), 1
+ );
+ throw new ActionAbort('redirect');
+ } else {
+ throw new \Exception(
+ sprintf(
+ $lang["subscr_{$action}_error"],
+ hsc($INFO['userinfo']['name']),
+ prettyprint_id($target)
+ )
+ );
+ }
+ }
+
+ /**
+ * Validate POST data
+ *
+ * Validates POST data for a subscribe or unsubscribe request. This is the
+ * default action for the event ACTION_HANDLE_SUBSCRIBE.
+ *
+ * @author Adrian Lang
+ *
+ * @param array &$params the parameters: target, style and action
+ * @throws \Exception
+ */
+ public function handlePostData(&$params) {
+ global $INFO;
+ global $lang;
+ global $INPUT;
+
+ // Get and validate parameters.
+ if(!isset($params['target'])) {
+ throw new \Exception('no subscription target given');
+ }
+ $target = $params['target'];
+ $valid_styles = array('every', 'digest');
+ if(substr($target, -1, 1) === ':') {
+ // Allow “list” subscribe style since the target is a namespace.
+ $valid_styles[] = 'list';
+ }
+ $style = valid_input_set(
+ 'style', $valid_styles, $params,
+ 'invalid subscription style given'
+ );
+ $action = valid_input_set(
+ 'action', array('subscribe', 'unsubscribe'),
+ $params, 'invalid subscription action given'
+ );
+
+ // Check other conditions.
+ if($action === 'subscribe') {
+ if($INFO['userinfo']['mail'] === '') {
+ throw new \Exception($lang['subscr_subscribe_noaddress']);
+ }
+ } elseif($action === 'unsubscribe') {
+ $is = false;
+ foreach($INFO['subscribed'] as $subscr) {
+ if($subscr['target'] === $target) {
+ $is = true;
+ }
+ }
+ if($is === false) {
+ throw new \Exception(
+ sprintf(
+ $lang['subscr_not_subscribed'],
+ $INPUT->server->str('REMOTE_USER'),
+ prettyprint_id($target)
+ )
+ );
+ }
+ // subscription_set deletes a subscription if style = null.
+ $style = null;
+ }
+
+ $params = compact('target', 'style', 'action');
+ }
+
+}
diff --git a/public_html/inc/ActionRouter.php b/public_html/inc/ActionRouter.php
new file mode 100644
index 00000000..edc45cfc
--- /dev/null
+++ b/public_html/inc/ActionRouter.php
@@ -0,0 +1,228 @@
+disabled = explode(',', $conf['disableactions']);
+ $this->disabled = array_map('trim', $this->disabled);
+ $this->transitions = 0;
+
+ $ACT = act_clean($ACT);
+ $this->setupAction($ACT);
+ $ACT = $this->action->getActionName();
+ }
+
+ /**
+ * Get the singleton instance
+ *
+ * @param bool $reinit
+ * @return ActionRouter
+ */
+ public static function getInstance($reinit = false) {
+ if((self::$instance === null) || $reinit) {
+ self::$instance = new ActionRouter();
+ }
+ return self::$instance;
+ }
+
+ /**
+ * Setup the given action
+ *
+ * Instantiates the right class, runs permission checks and pre-processing and
+ * sets $action
+ *
+ * @param string $actionname this is passed as a reference to $ACT, for plugin backward compatibility
+ * @triggers ACTION_ACT_PREPROCESS
+ */
+ protected function setupAction(&$actionname) {
+ $presetup = $actionname;
+
+ try {
+ // give plugins an opportunity to process the actionname
+ $evt = new \Doku_Event('ACTION_ACT_PREPROCESS', $actionname);
+ if ($evt->advise_before()) {
+ $this->action = $this->loadAction($actionname);
+ $this->checkAction($this->action);
+ $this->action->preProcess();
+ } else {
+ // event said the action should be kept, assume action plugin will handle it later
+ $this->action = new Plugin($actionname);
+ }
+ $evt->advise_after();
+
+ } catch(ActionException $e) {
+ // we should have gotten a new action
+ $actionname = $e->getNewAction();
+
+ // this one should trigger a user message
+ if(is_a($e, ActionDisabledException::class)) {
+ msg('Action disabled: ' . hsc($presetup), -1);
+ }
+
+ // some actions may request the display of a message
+ if($e->displayToUser()) {
+ msg(hsc($e->getMessage()), -1);
+ }
+
+ // do setup for new action
+ $this->transitionAction($presetup, $actionname);
+
+ } catch(NoActionException $e) {
+ msg('Action unknown: ' . hsc($actionname), -1);
+ $actionname = 'show';
+ $this->transitionAction($presetup, $actionname);
+ } catch(\Exception $e) {
+ $this->handleFatalException($e);
+ }
+ }
+
+ /**
+ * Transitions from one action to another
+ *
+ * Basically just calls setupAction() again but does some checks before.
+ *
+ * @param string $from current action name
+ * @param string $to new action name
+ * @param null|ActionException $e any previous exception that caused the transition
+ */
+ protected function transitionAction($from, $to, $e = null) {
+ $this->transitions++;
+
+ // no infinite recursion
+ if($from == $to) {
+ $this->handleFatalException(new FatalException('Infinite loop in actions', 500, $e));
+ }
+
+ // larger loops will be caught here
+ if($this->transitions >= self::MAX_TRANSITIONS) {
+ $this->handleFatalException(new FatalException('Maximum action transitions reached', 500, $e));
+ }
+
+ // do the recursion
+ $this->setupAction($to);
+ }
+
+ /**
+ * Aborts all processing with a message
+ *
+ * When a FataException instanc is passed, the code is treated as Status code
+ *
+ * @param \Exception|FatalException $e
+ * @throws FatalException during unit testing
+ */
+ protected function handleFatalException(\Exception $e) {
+ if(is_a($e, FatalException::class)) {
+ http_status($e->getCode());
+ } else {
+ http_status(500);
+ }
+ if(defined('DOKU_UNITTEST')) {
+ throw $e;
+ }
+ $msg = 'Something unforseen has happened: ' . $e->getMessage();
+ nice_die(hsc($msg));
+ }
+
+ /**
+ * Load the given action
+ *
+ * This translates the given name to a class name by uppercasing the first letter.
+ * Underscores translate to camelcase names. For actions with underscores, the different
+ * parts are removed beginning from the end until a matching class is found. The instatiated
+ * Action will always have the full original action set as Name
+ *
+ * Example: 'export_raw' -> ExportRaw then 'export' -> 'Export'
+ *
+ * @param $actionname
+ * @return AbstractAction
+ * @throws NoActionException
+ */
+ public function loadAction($actionname) {
+ $actionname = strtolower($actionname); // FIXME is this needed here? should we run a cleanup somewhere else?
+ $parts = explode('_', $actionname);
+ while(!empty($parts)) {
+ $load = join('_', $parts);
+ $class = 'dokuwiki\\Action\\' . str_replace('_', '', ucwords($load, '_'));
+ if(class_exists($class)) {
+ return new $class($actionname);
+ }
+ array_pop($parts);
+ }
+
+ throw new NoActionException();
+ }
+
+ /**
+ * Execute all the checks to see if this action can be executed
+ *
+ * @param AbstractAction $action
+ * @throws ActionDisabledException
+ * @throws ActionException
+ */
+ public function checkAction(AbstractAction $action) {
+ global $INFO;
+ global $ID;
+
+ if(in_array($action->getActionName(), $this->disabled)) {
+ throw new ActionDisabledException();
+ }
+
+ $action->checkPreconditions();
+
+ if(isset($INFO)) {
+ $perm = $INFO['perm'];
+ } else {
+ $perm = auth_quickaclcheck($ID);
+ }
+
+ if($perm < $action->minimumPermission()) {
+ throw new ActionException('denied');
+ }
+ }
+
+ /**
+ * Returns the action handling the current request
+ *
+ * @return AbstractAction
+ */
+ public function getAction() {
+ return $this->action;
+ }
+}
diff --git a/public_html/inc/Ajax.php b/public_html/inc/Ajax.php
new file mode 100644
index 00000000..191d8f8b
--- /dev/null
+++ b/public_html/inc/Ajax.php
@@ -0,0 +1,446 @@
+$callfn();
+ } else {
+ $evt = new \Doku_Event('AJAX_CALL_UNKNOWN', $call);
+ if($evt->advise_before()) {
+ print "AJAX call '" . hsc($call) . "' unknown!\n";
+ } else {
+ $evt->advise_after();
+ unset($evt);
+ }
+ }
+ }
+
+ /**
+ * Searches for matching pagenames
+ *
+ * @author Andreas Gohr
+ */
+ protected function call_qsearch() {
+ global $lang;
+ global $INPUT;
+
+ $maxnumbersuggestions = 50;
+
+ $query = $INPUT->post->str('q');
+ if(empty($query)) $query = $INPUT->get->str('q');
+ if(empty($query)) return;
+
+ $query = urldecode($query);
+
+ $data = ft_pageLookup($query, true, useHeading('navigation'));
+
+ if(!count($data)) return;
+
+ print '' . $lang['quickhits'] . '';
+ print '';
+ $counter = 0;
+ foreach($data as $id => $title) {
+ if(useHeading('navigation')) {
+ $name = $title;
+ } else {
+ $ns = getNS($id);
+ if($ns) {
+ $name = noNS($id) . ' (' . $ns . ')';
+ } else {
+ $name = $id;
+ }
+ }
+ echo '- ' . html_wikilink(':' . $id, $name) . '
';
+
+ $counter++;
+ if($counter > $maxnumbersuggestions) {
+ echo '- ...
';
+ break;
+ }
+ }
+ print '
';
+ }
+
+ /**
+ * Support OpenSearch suggestions
+ *
+ * @link http://www.opensearch.org/Specifications/OpenSearch/Extensions/Suggestions/1.0
+ * @author Mike Frysinger
+ */
+ protected function call_suggestions() {
+ global $INPUT;
+
+ $query = cleanID($INPUT->post->str('q'));
+ if(empty($query)) $query = cleanID($INPUT->get->str('q'));
+ if(empty($query)) return;
+
+ $data = ft_pageLookup($query);
+ if(!count($data)) return;
+ $data = array_keys($data);
+
+ // limit results to 15 hits
+ $data = array_slice($data, 0, 15);
+ $data = array_map('trim', $data);
+ $data = array_map('noNS', $data);
+ $data = array_unique($data);
+ sort($data);
+
+ /* now construct a json */
+ $suggestions = array(
+ $query, // the original query
+ $data, // some suggestions
+ array(), // no description
+ array() // no urls
+ );
+ $json = new \JSON();
+
+ header('Content-Type: application/x-suggestions+json');
+ print $json->encode($suggestions);
+ }
+
+ /**
+ * Refresh a page lock and save draft
+ *
+ * Andreas Gohr
+ */
+ protected function call_lock() {
+ global $conf;
+ global $lang;
+ global $ID;
+ global $INFO;
+ global $INPUT;
+
+ $ID = cleanID($INPUT->post->str('id'));
+ if(empty($ID)) return;
+
+ $INFO = pageinfo();
+
+ if(!$INFO['writable']) {
+ echo 'Permission denied';
+ return;
+ }
+
+ if(!checklock($ID)) {
+ lock($ID);
+ echo 1;
+ }
+
+ if($conf['usedraft'] && $INPUT->post->str('wikitext')) {
+ $client = $_SERVER['REMOTE_USER'];
+ if(!$client) $client = clientIP(true);
+
+ $draft = array(
+ 'id' => $ID,
+ 'prefix' => substr($INPUT->post->str('prefix'), 0, -1),
+ 'text' => $INPUT->post->str('wikitext'),
+ 'suffix' => $INPUT->post->str('suffix'),
+ 'date' => $INPUT->post->int('date'),
+ 'client' => $client,
+ );
+ $cname = getCacheName($draft['client'] . $ID, '.draft');
+ if(io_saveFile($cname, serialize($draft))) {
+ echo $lang['draftdate'] . ' ' . dformat();
+ }
+ }
+
+ }
+
+ /**
+ * Delete a draft
+ *
+ * @author Andreas Gohr
+ */
+ protected function call_draftdel() {
+ global $INPUT;
+ $id = cleanID($INPUT->str('id'));
+ if(empty($id)) return;
+
+ $client = $_SERVER['REMOTE_USER'];
+ if(!$client) $client = clientIP(true);
+
+ $cname = getCacheName($client . $id, '.draft');
+ @unlink($cname);
+ }
+
+ /**
+ * Return subnamespaces for the Mediamanager
+ *
+ * @author Andreas Gohr
+ */
+ protected function call_medians() {
+ global $conf;
+ global $INPUT;
+
+ // wanted namespace
+ $ns = cleanID($INPUT->post->str('ns'));
+ $dir = utf8_encodeFN(str_replace(':', '/', $ns));
+
+ $lvl = count(explode(':', $ns));
+
+ $data = array();
+ search($data, $conf['mediadir'], 'search_index', array('nofiles' => true), $dir);
+ foreach(array_keys($data) as $item) {
+ $data[$item]['level'] = $lvl + 1;
+ }
+ echo html_buildlist($data, 'idx', 'media_nstree_item', 'media_nstree_li');
+ }
+
+ /**
+ * Return list of files for the Mediamanager
+ *
+ * @author Andreas Gohr
+ */
+ protected function call_medialist() {
+ global $NS;
+ global $INPUT;
+
+ $NS = cleanID($INPUT->post->str('ns'));
+ $sort = $INPUT->post->bool('recent') ? 'date' : 'natural';
+ if($INPUT->post->str('do') == 'media') {
+ tpl_mediaFileList();
+ } else {
+ tpl_mediaContent(true, $sort);
+ }
+ }
+
+ /**
+ * Return the content of the right column
+ * (image details) for the Mediamanager
+ *
+ * @author Kate Arzamastseva
+ */
+ protected function call_mediadetails() {
+ global $IMG, $JUMPTO, $REV, $fullscreen, $INPUT;
+ $fullscreen = true;
+ require_once(DOKU_INC . 'lib/exe/mediamanager.php');
+
+ $image = '';
+ if($INPUT->has('image')) $image = cleanID($INPUT->str('image'));
+ if(isset($IMG)) $image = $IMG;
+ if(isset($JUMPTO)) $image = $JUMPTO;
+ $rev = false;
+ if(isset($REV) && !$JUMPTO) $rev = $REV;
+
+ html_msgarea();
+ tpl_mediaFileDetails($image, $rev);
+ }
+
+ /**
+ * Returns image diff representation for mediamanager
+ *
+ * @author Kate Arzamastseva
+ */
+ protected function call_mediadiff() {
+ global $NS;
+ global $INPUT;
+
+ $image = '';
+ if($INPUT->has('image')) $image = cleanID($INPUT->str('image'));
+ $NS = getNS($image);
+ $auth = auth_quickaclcheck("$NS:*");
+ media_diff($image, $NS, $auth, true);
+ }
+
+ /**
+ * Manages file uploads
+ *
+ * @author Kate Arzamastseva
+ */
+ protected function call_mediaupload() {
+ global $NS, $MSG, $INPUT;
+
+ $id = '';
+ if($_FILES['qqfile']['tmp_name']) {
+ $id = $INPUT->post->str('mediaid', $_FILES['qqfile']['name']);
+ } elseif($INPUT->get->has('qqfile')) {
+ $id = $INPUT->get->str('qqfile');
+ }
+
+ $id = cleanID($id);
+
+ $NS = $INPUT->str('ns');
+ $ns = $NS . ':' . getNS($id);
+
+ $AUTH = auth_quickaclcheck("$ns:*");
+ if($AUTH >= AUTH_UPLOAD) {
+ io_createNamespace("$ns:xxx", 'media');
+ }
+
+ if($_FILES['qqfile']['error']) unset($_FILES['qqfile']);
+
+ $res = false;
+ if($_FILES['qqfile']['tmp_name']) $res = media_upload($NS, $AUTH, $_FILES['qqfile']);
+ if($INPUT->get->has('qqfile')) $res = media_upload_xhr($NS, $AUTH);
+
+ if($res) {
+ $result = array(
+ 'success' => true,
+ 'link' => media_managerURL(array('ns' => $ns, 'image' => $NS . ':' . $id), '&'),
+ 'id' => $NS . ':' . $id,
+ 'ns' => $NS
+ );
+ } else {
+ $error = '';
+ if(isset($MSG)) {
+ foreach($MSG as $msg) {
+ $error .= $msg['msg'];
+ }
+ }
+ $result = array(
+ 'error' => $error,
+ 'ns' => $NS
+ );
+ }
+ $json = new \JSON;
+ header('Content-Type: application/json');
+ echo $json->encode($result);
+ }
+
+ /**
+ * Return sub index for index view
+ *
+ * @author Andreas Gohr
+ */
+ protected function call_index() {
+ global $conf;
+ global $INPUT;
+
+ // wanted namespace
+ $ns = cleanID($INPUT->post->str('idx'));
+ $dir = utf8_encodeFN(str_replace(':', '/', $ns));
+
+ $lvl = count(explode(':', $ns));
+
+ $data = array();
+ search($data, $conf['datadir'], 'search_index', array('ns' => $ns), $dir);
+ foreach(array_keys($data) as $item) {
+ $data[$item]['level'] = $lvl + 1;
+ }
+ echo html_buildlist($data, 'idx', 'html_list_index', 'html_li_index');
+ }
+
+ /**
+ * List matching namespaces and pages for the link wizard
+ *
+ * @author Andreas Gohr
+ */
+ protected function call_linkwiz() {
+ global $conf;
+ global $lang;
+ global $INPUT;
+
+ $q = ltrim(trim($INPUT->post->str('q')), ':');
+ $id = noNS($q);
+ $ns = getNS($q);
+
+ $ns = cleanID($ns);
+ $id = cleanID($id);
+
+ $nsd = utf8_encodeFN(str_replace(':', '/', $ns));
+
+ $data = array();
+ if($q && !$ns) {
+
+ // use index to lookup matching pages
+ $pages = ft_pageLookup($id, true);
+
+ // result contains matches in pages and namespaces
+ // we now extract the matching namespaces to show
+ // them seperately
+ $dirs = array();
+
+ foreach($pages as $pid => $title) {
+ if(strpos(noNS($pid), $id) === false) {
+ // match was in the namespace
+ $dirs[getNS($pid)] = 1; // assoc array avoids dupes
+ } else {
+ // it is a matching page, add it to the result
+ $data[] = array(
+ 'id' => $pid,
+ 'title' => $title,
+ 'type' => 'f',
+ );
+ }
+ unset($pages[$pid]);
+ }
+ foreach($dirs as $dir => $junk) {
+ $data[] = array(
+ 'id' => $dir,
+ 'type' => 'd',
+ );
+ }
+
+ } else {
+
+ $opts = array(
+ 'depth' => 1,
+ 'listfiles' => true,
+ 'listdirs' => true,
+ 'pagesonly' => true,
+ 'firsthead' => true,
+ 'sneakyacl' => $conf['sneaky_index'],
+ );
+ if($id) $opts['filematch'] = '^.*\/' . $id;
+ if($id) $opts['dirmatch'] = '^.*\/' . $id;
+ search($data, $conf['datadir'], 'search_universal', $opts, $nsd);
+
+ // add back to upper
+ if($ns) {
+ array_unshift(
+ $data, array(
+ 'id' => getNS($ns),
+ 'type' => 'u',
+ )
+ );
+ }
+ }
+
+ // fixme sort results in a useful way ?
+
+ if(!count($data)) {
+ echo $lang['nothingfound'];
+ exit;
+ }
+
+ // output the found data
+ $even = 1;
+ foreach($data as $item) {
+ $even *= -1; //zebra
+
+ if(($item['type'] == 'd' || $item['type'] == 'u') && $item['id']) $item['id'] .= ':';
+ $link = wl($item['id']);
+
+ echo '';
+
+ if($item['type'] == 'u') {
+ $name = $lang['upperns'];
+ } else {
+ $name = hsc($item['id']);
+ }
+
+ echo '' . $name . '';
+
+ if(!blank($item['title'])) {
+ echo '' . hsc($item['title']) . '';
+ }
+ echo '';
+ }
+
+ }
+
+}
diff --git a/public_html/inc/Form/ButtonElement.php b/public_html/inc/Form/ButtonElement.php
new file mode 100644
index 00000000..e2afe9c9
--- /dev/null
+++ b/public_html/inc/Form/ButtonElement.php
@@ -0,0 +1,34 @@
+ $name, 'value' => 1));
+ $this->content = $content;
+ }
+
+ /**
+ * The HTML representation of this element
+ *
+ * @return string
+ */
+ public function toHTML() {
+ return '';
+ }
+
+}
diff --git a/public_html/inc/Form/CheckableElement.php b/public_html/inc/Form/CheckableElement.php
new file mode 100644
index 00000000..27d5c2ea
--- /dev/null
+++ b/public_html/inc/Form/CheckableElement.php
@@ -0,0 +1,62 @@
+attr('value', 1);
+ }
+
+ /**
+ * Handles the useInput flag and sets the checked attribute accordingly
+ */
+ protected function prefillInput() {
+ global $INPUT;
+ list($name, $key) = $this->getInputName();
+ $myvalue = $this->val();
+
+ if(!$INPUT->has($name)) return;
+
+ if($key === null) {
+ // no key - single value
+ $value = $INPUT->str($name);
+ if($value == $myvalue) {
+ $this->attr('checked', 'checked');
+ } else {
+ $this->rmattr('checked');
+ }
+ } else {
+ // we have an array, there might be several values in it
+ $input = $INPUT->arr($name);
+ if(isset($input[$key])) {
+ $this->rmattr('checked');
+
+ // values seem to be in another sub array
+ if(is_array($input[$key])) {
+ $input = $input[$key];
+ }
+
+ foreach($input as $value) {
+ if($value == $myvalue) {
+ $this->attr('checked', 'checked');
+ }
+ }
+ }
+ }
+ }
+
+}
diff --git a/public_html/inc/Form/DropdownElement.php b/public_html/inc/Form/DropdownElement.php
new file mode 100644
index 00000000..023b67dd
--- /dev/null
+++ b/public_html/inc/Form/DropdownElement.php
@@ -0,0 +1,190 @@
+rmattr('type');
+ $this->optGroups[''] = new OptGroup(null, $options);
+ $this->val('');
+ }
+
+ /**
+ * Add an `
is nie beskibaar nie. Miskien is dit af gehaal.';
diff --git a/public_html/inc/lang/ar/admin.txt b/public_html/inc/lang/ar/admin.txt
new file mode 100644
index 00000000..bbb44388
--- /dev/null
+++ b/public_html/inc/lang/ar/admin.txt
@@ -0,0 +1,3 @@
+====== الأدارة ======
+
+قائمة بالمهام الإدارية المتاحة فى دوكو ويكي.
\ No newline at end of file
diff --git a/public_html/inc/lang/ar/adminplugins.txt b/public_html/inc/lang/ar/adminplugins.txt
new file mode 100644
index 00000000..44790a04
--- /dev/null
+++ b/public_html/inc/lang/ar/adminplugins.txt
@@ -0,0 +1 @@
+===== إضافات إضافية =====
\ No newline at end of file
diff --git a/public_html/inc/lang/ar/backlinks.txt b/public_html/inc/lang/ar/backlinks.txt
new file mode 100644
index 00000000..f6d24f41
--- /dev/null
+++ b/public_html/inc/lang/ar/backlinks.txt
@@ -0,0 +1,3 @@
+====== إرتباطات ======
+
+هذه قائمة بالصفحات المرتبطة بالصفحة الحالية.
\ No newline at end of file
diff --git a/public_html/inc/lang/ar/conflict.txt b/public_html/inc/lang/ar/conflict.txt
new file mode 100644
index 00000000..4d7c4e8e
--- /dev/null
+++ b/public_html/inc/lang/ar/conflict.txt
@@ -0,0 +1,5 @@
+====== يوجد نسخة أحدث ======
+
+يوجد نسخة أحدث من هذه الصفحة. يحدث هذا عندما يحرر مشترك آخر الصفحة أثناء تعديلك لها.
+
+افحص الاختلافات جيداً، ثم حدد أية نسخة تحفظ. بالضغط على "حفظ" ستحفظ نسختك. أما بالضغط على "إلغاء" فستحافظ على النسخة الحالية.
\ No newline at end of file
diff --git a/public_html/inc/lang/ar/denied.txt b/public_html/inc/lang/ar/denied.txt
new file mode 100644
index 00000000..b369f7f2
--- /dev/null
+++ b/public_html/inc/lang/ar/denied.txt
@@ -0,0 +1,3 @@
+====== لا صلاحيات ======
+
+عذرا، ليس مصرح لك الاستمرار
\ No newline at end of file
diff --git a/public_html/inc/lang/ar/diff.txt b/public_html/inc/lang/ar/diff.txt
new file mode 100644
index 00000000..ed1937c2
--- /dev/null
+++ b/public_html/inc/lang/ar/diff.txt
@@ -0,0 +1,3 @@
+====== اختلافات ======
+
+عرض الاختلافات بين النسخة المختارة و النسخة الحالية من الصفحة.
\ No newline at end of file
diff --git a/public_html/inc/lang/ar/draft.txt b/public_html/inc/lang/ar/draft.txt
new file mode 100644
index 00000000..50c07f2e
--- /dev/null
+++ b/public_html/inc/lang/ar/draft.txt
@@ -0,0 +1,5 @@
+====== وجدت مسوّدة ======
+
+إن تعديلك لهذه الصفحة في المرة الماضية لم يتم بشكل صحيح، حفظت دوكو ويكي آلياً مسوّدة من عملك الأخير الذي يمكنك استخدامه الآن لمتابعة التعديل. فيما يلي البيانات التي حفظت من المرة الماضية.
+
+يرجى أن تقرر إن كنت تريد //استعادة// عملك السابق أو //حذف// المسوّدة أو //إلغاء// عملية التحرير.
diff --git a/public_html/inc/lang/ar/edit.txt b/public_html/inc/lang/ar/edit.txt
new file mode 100644
index 00000000..d4e1eb43
--- /dev/null
+++ b/public_html/inc/lang/ar/edit.txt
@@ -0,0 +1 @@
+حرر هذه الصفحة ثم اضغط على "حفظ". انظر [[wiki:syntax|دليل الصياغة]] لمعرفة صيغة الويكي. يرجى تعديل الصفحة فقط إذا كنت ستحسنها. إذا رغبت فى اختبار شيء ما، تعلم الخطوات الأولى فى [[playground:playground|الملعب]].
\ No newline at end of file
diff --git a/public_html/inc/lang/ar/editrev.txt b/public_html/inc/lang/ar/editrev.txt
new file mode 100644
index 00000000..a51fe943
--- /dev/null
+++ b/public_html/inc/lang/ar/editrev.txt
@@ -0,0 +1,2 @@
+**لقد حملت نسخة قديمة من الصفحة!** إذا حفظتها، سيتم إنشاء نسخة جديدة بهذه المعلومات.
+----
\ No newline at end of file
diff --git a/public_html/inc/lang/ar/index.txt b/public_html/inc/lang/ar/index.txt
new file mode 100644
index 00000000..43840ec2
--- /dev/null
+++ b/public_html/inc/lang/ar/index.txt
@@ -0,0 +1,3 @@
+====== فهرس ======
+
+هذا فهرس لجميع الصفحات مرتبة حسب [[doku>namespaces|namespaces]].
diff --git a/public_html/inc/lang/ar/install.html b/public_html/inc/lang/ar/install.html
new file mode 100644
index 00000000..3ef23aee
--- /dev/null
+++ b/public_html/inc/lang/ar/install.html
@@ -0,0 +1,12 @@
+تساعد هذه الصفحة في التثبيت والإعداد الأوليين ل دوكو ويكي. مزيد من المعلومات عن هذا المثبت في
+صفحة التوثيق الخاصة به.
+
+دوكو ويكي تستخدم ملفات عادية لتخزين الصفحات و المعلومات المرتبطة بها (مثل. الصور , وفهارس البحث, والنسخ القديمة, إلخ). لكي تعمل بنجاح دوكو ويكي يجب ان يكون لديها اذن بالكتابة على المجلدات التي تحوي هذه الملفات. هذا المثبت غير قادر على اعداد اذونات المجلدات. عادة يجب عمل هذا مباشرة باستخدام أمر في محث الاوامر أو إن كنت تستخدم استضافة، عن طريقة FTP في لوحة تحكم الاستضافة (مثل. cPanel).
+
+سيُعد هذا المثبت اعدادات دوكو ويكي ل
+ACL, الذي سيسمح للمدير بالولوج و الوصول لقائمة إدارة دوكو ويكي لتثبيت الإضافات، وإدارة المستخدمين، و التحكم بالوصول لصفحات الويكي، وتعديل الاعدادات.
+ليس مطلوبا لأجل عمل دوكو ويكي, لكنه سيجعل دوكو ويكي أسهل على المدير.
+
+المستخدمين الخبراء و المستخدمين مع متطلبات خاصة عليهم استخدام هذا الرابط لتفاصيل تتعلق ب
+توجيهات التثبيت
+و ضبط الإعدادات.
\ No newline at end of file
diff --git a/public_html/inc/lang/ar/jquery.ui.datepicker.js b/public_html/inc/lang/ar/jquery.ui.datepicker.js
new file mode 100644
index 00000000..95784e88
--- /dev/null
+++ b/public_html/inc/lang/ar/jquery.ui.datepicker.js
@@ -0,0 +1,39 @@
+/* Arabic Translation for jQuery UI date picker plugin. */
+/* Used in most of Arab countries, primarily in Bahrain, */
+/* Kuwait, Oman, Qatar, Saudi Arabia and the United Arab Emirates, Egypt, Sudan and Yemen. */
+/* Written by Mohammed Alshehri -- m@dralshehri.com */
+
+( function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+
+ // AMD. Register as an anonymous module.
+ define( [ "../widgets/datepicker" ], factory );
+ } else {
+
+ // Browser globals
+ factory( jQuery.datepicker );
+ }
+}( function( datepicker ) {
+
+datepicker.regional.ar = {
+ closeText: "إغلاق",
+ prevText: "<السابق",
+ nextText: "التالي>",
+ currentText: "اليوم",
+ monthNames: [ "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو",
+ "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر" ],
+ monthNamesShort: [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" ],
+ dayNames: [ "الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت" ],
+ dayNamesShort: [ "أحد", "اثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت" ],
+ dayNamesMin: [ "ح", "ن", "ث", "ر", "خ", "ج", "س" ],
+ weekHeader: "أسبوع",
+ dateFormat: "dd/mm/yy",
+ firstDay: 0,
+ isRTL: true,
+ showMonthAfterYear: false,
+ yearSuffix: "" };
+datepicker.setDefaults( datepicker.regional.ar );
+
+return datepicker.regional.ar;
+
+} ) );
diff --git a/public_html/inc/lang/ar/lang.php b/public_html/inc/lang/ar/lang.php
new file mode 100644
index 00000000..82ef5325
--- /dev/null
+++ b/public_html/inc/lang/ar/lang.php
@@ -0,0 +1,348 @@
+
+ * @author Yaman Hokan
+ * @author Usama Akkad
+ * @author uahello@gmail.com
+ * @author Ahmad Abd-Elghany
+ * @author alhajr
+ * @author Mohamed Belhsine
+ */
+$lang['encoding'] = 'utf-8';
+$lang['direction'] = 'rtl';
+$lang['doublequoteopening'] = '“';
+$lang['doublequoteclosing'] = '”';
+$lang['singlequoteopening'] = '‘';
+$lang['singlequoteclosing'] = '’';
+$lang['apostrophe'] = '؛';
+$lang['btn_edit'] = 'حرر هذه الصفحة';
+$lang['btn_source'] = 'اعرض مصدر الصفحة';
+$lang['btn_show'] = 'اعرض الصفحة';
+$lang['btn_create'] = 'أنشئ هذه الصفحة';
+$lang['btn_search'] = 'ابحث';
+$lang['btn_save'] = 'احفظ';
+$lang['btn_preview'] = 'عاين';
+$lang['btn_top'] = 'ارجع للأعلى';
+$lang['btn_newer'] = '<< أحدث';
+$lang['btn_older'] = 'أقدم >>';
+$lang['btn_revs'] = 'نسخ قديمة';
+$lang['btn_recent'] = 'أحدث التغييرات';
+$lang['btn_upload'] = 'ارفع';
+$lang['btn_cancel'] = 'ألغ';
+$lang['btn_index'] = 'خريطة موقع';
+$lang['btn_secedit'] = 'حرر';
+$lang['btn_login'] = 'تسجيل الدخول';
+$lang['btn_logout'] = 'خروج';
+$lang['btn_admin'] = 'المدير';
+$lang['btn_update'] = 'حدّث';
+$lang['btn_delete'] = 'احذف';
+$lang['btn_back'] = 'ارجع';
+$lang['btn_backlink'] = 'ارتباطات';
+$lang['btn_subscribe'] = 'ادر الاشتراكات';
+$lang['btn_profile'] = 'حدث الملف الشخصي';
+$lang['btn_reset'] = 'صفّر';
+$lang['btn_resendpwd'] = 'اضبط كلمة سر جديدة';
+$lang['btn_draft'] = 'حرر المسودة';
+$lang['btn_recover'] = 'استرجع المسودة';
+$lang['btn_draftdel'] = 'احذف المسوّدة';
+$lang['btn_revert'] = 'استعد';
+$lang['btn_register'] = 'سجّل';
+$lang['btn_apply'] = 'طبق';
+$lang['btn_media'] = 'مدير الوسائط';
+$lang['btn_deleteuser'] = 'احذف حسابي الخاص';
+$lang['btn_img_backto'] = 'عودة إلى %s';
+$lang['btn_mediaManager'] = 'اعرض في مدير الوسائط';
+$lang['loggedinas'] = 'داخل باسم:';
+$lang['user'] = 'اسم المستخدم';
+$lang['pass'] = 'كلمة السر';
+$lang['newpass'] = 'كلمة سر جديدة';
+$lang['oldpass'] = 'أكد كلمة السر الحالية';
+$lang['passchk'] = 'مرة أخرى';
+$lang['remember'] = 'تذكرني';
+$lang['fullname'] = 'الاسم الحقيقي';
+$lang['email'] = 'البريد الإلكتروني';
+$lang['profile'] = 'الملف الشخصي';
+$lang['badlogin'] = 'عذرا، اسم المشترك أو كلمة السر غير صحيحة';
+$lang['badpassconfirm'] = 'عذراً,كلمة السر غير صحيحة';
+$lang['minoredit'] = 'تعديلات طفيفة';
+$lang['draftdate'] = 'حفظ المسودات آليا مفعّل';
+$lang['nosecedit'] = 'غُيرت الصفحة في هذه الأثناء، معلومات الجزء اصبحت قديمة. حُمُلت كل الصفحة بدلا.';
+$lang['regmissing'] = 'عذرا، عليك ملء جميع الحقول.';
+$lang['reguexists'] = 'عذرا، يوجد مشترك بنفس الاسم.';
+$lang['regsuccess'] = 'أنشئ المستخدم و ارسلت كلمة السر بالبريد.';
+$lang['regsuccess2'] = 'أنشئ المستخدم.';
+$lang['regmailfail'] = 'حدث خطأ فى إرسال رسالة كلمة السر. يرجى مراسلة المدير!';
+$lang['regbadmail'] = 'يبدو البريد الإلكتروني المعطى غيرَ صحيح، إن كنت تظن أن هذا خطأ، راسل المدير';
+$lang['regbadpass'] = 'كلمتا المرور غير متطابقتين، حاول مرة أخرى.';
+$lang['regpwmail'] = 'كلمة مرورك إلى دوكو ويكي';
+$lang['reghere'] = 'ليس لديك حساب بعد؟ احصل على واحد';
+$lang['profna'] = 'هذه الويكي لا تدعم تعديل الملف الشخصي';
+$lang['profnochange'] = 'لا تغييرات، لا شيء ليُعمل.';
+$lang['profnoempty'] = 'غير مسموح باسم مستخدم أو بريد فارغ.';
+$lang['profchanged'] = 'حُدث الملف الشخصي للمستخدم بنجاح.';
+$lang['profnodelete'] = 'هذه الموسوعه لا ندعم حذف الأشخاص';
+$lang['profdeleteuser'] = 'احذف حساب';
+$lang['profdeleted'] = 'حسابك الخاص تم حذفه من هذه الموسوعة';
+$lang['profconfdelete'] = 'أنا أرغب في حذف حسابي من هذه الموسوعة.
+هذا الحدث غير ممكن.';
+$lang['profconfdeletemissing'] = 'لم تقم بوضع علامة في مربع التأكيد';
+$lang['pwdforget'] = 'أنسيت كلمة السر؟ احصل على واحدة جديدة';
+$lang['resendna'] = 'هذه الويكي لا تدعم إعادة إرسال كلمة المرور.';
+$lang['resendpwd'] = 'اضبط كلمة سر جديدة لـ';
+$lang['resendpwdmissing'] = 'عذراّ، يجب أن تملأ كل الحقول.';
+$lang['resendpwdnouser'] = 'عذراً، لم نجد المستخدم هذا في قاعدة بياناتنا.';
+$lang['resendpwdbadauth'] = 'عذراً، رمز التفعيل هذا غير صحيح. نأكد من استخدامك كامل وصلة التأكيد.';
+$lang['resendpwdconfirm'] = 'اُرسل رابط التأكيد بواسطة البريد.';
+$lang['resendpwdsuccess'] = 'كلمة السرالجديدة اُرسلت عبر البريد.';
+$lang['license'] = 'مالم يشر لخلاف ذلك، فإن المحتوى في هذه الويكي مرخص وفق الرخصة التالية:';
+$lang['licenseok'] = 'لاحظ: بتحرير هذه الصفحة أنت توافق على ترخيص محتواها تحت الرخصة التالية:';
+$lang['searchmedia'] = 'ابحث في أسماء الملفات:';
+$lang['searchmedia_in'] = 'ابحث في %s';
+$lang['txt_upload'] = 'اختر ملفاً للرفع:';
+$lang['txt_filename'] = 'رفع كـ (اختياري):';
+$lang['txt_overwrt'] = 'اكتب على ملف موجود';
+$lang['maxuploadsize'] = 'الحجم الاقصى %s للملف';
+$lang['lockedby'] = 'مقفلة حاليا لـ:';
+$lang['lockexpire'] = 'ينتهي القفل في:';
+$lang['js']['willexpire'] = 'سينتهي قفل تحرير هذه الصفحه خلال دقيقة.\nلتجنب التعارض استخدم زر المعاينة لتصفير مؤقت القفل.';
+$lang['js']['notsavedyet'] = 'التعديلات غير المحفوظة ستفقد.';
+$lang['js']['searchmedia'] = 'ابحث عن ملفات';
+$lang['js']['keepopen'] = 'أبقي النافذة مفتوحة أثناء الاختيار';
+$lang['js']['hidedetails'] = 'أخف التفاصيل';
+$lang['js']['mediatitle'] = 'إعدادات الرابط';
+$lang['js']['mediadisplay'] = 'نوع الرابط';
+$lang['js']['mediaalign'] = 'المحاذاة';
+$lang['js']['mediasize'] = 'حجم الصورة';
+$lang['js']['mediatarget'] = 'هدف الرابط';
+$lang['js']['mediaclose'] = 'أغلق';
+$lang['js']['mediainsert'] = 'أدرج';
+$lang['js']['mediadisplayimg'] = 'أظهر الصورة.';
+$lang['js']['mediadisplaylnk'] = 'اظهر الرابط فقط.';
+$lang['js']['mediasmall'] = 'نسخة مصغرة';
+$lang['js']['mediamedium'] = 'نسخة متوسطة';
+$lang['js']['medialarge'] = 'نسخة كبيرة';
+$lang['js']['mediaoriginal'] = 'النسخة الأصلية';
+$lang['js']['medialnk'] = 'الرابط لصفحة التفاصيل';
+$lang['js']['mediadirect'] = 'رابط مباشر للأصل';
+$lang['js']['medianolnk'] = 'لا رابط';
+$lang['js']['medianolink'] = 'لا تربط الصورة';
+$lang['js']['medialeft'] = 'حاذي الصورة إلى اليسار.';
+$lang['js']['mediaright'] = 'حاذي الصورة إلى اليمين.';
+$lang['js']['mediacenter'] = 'حاذي الصورة إلى الوسط.';
+$lang['js']['medianoalign'] = 'لا تستعمل المحاذاة.';
+$lang['js']['nosmblinks'] = 'الروابط لمجلدات مشاركة وندز تعمل فقط مع متصفح مايكروسفت Internet Explorer.
+ما زال بإمكانك قص و لصق الرابط.';
+$lang['js']['linkwiz'] = 'مرشد الروابط';
+$lang['js']['linkto'] = 'الرابط إلى :';
+$lang['js']['del_confirm'] = 'هل حقاً تريد حذف البنود المختارة؟';
+$lang['js']['restore_confirm'] = 'أمتأكد من استرجاع هذه النسخة؟';
+$lang['js']['media_diff'] = 'عرض الفروق:';
+$lang['js']['media_diff_both'] = 'جنبا إلى جنب';
+$lang['js']['media_select'] = 'اختر ملفا...';
+$lang['js']['media_upload_btn'] = 'ارفع';
+$lang['js']['media_done_btn'] = 'تم';
+$lang['js']['media_drop'] = 'اسقط الملف هنا لرفعه';
+$lang['js']['media_cancel'] = 'أزل';
+$lang['js']['media_overwrt'] = 'أكتب فوق الملفات الموجودة';
+$lang['rssfailed'] = 'خطأ ما حدث أثناء جلب ملف التغذية:';
+$lang['nothingfound'] = 'لا يوجد شيء';
+$lang['mediaselect'] = 'ملفات الوسائط';
+$lang['uploadsucc'] = 'تم الرفع بنجاح';
+$lang['uploadfail'] = 'فشل الرفع، ربما خطأ تراخيص؟';
+$lang['uploadwrong'] = 'الرفع ممنوع، نوع الملف مرفوض!';
+$lang['uploadexist'] = 'الملف موجود أصلاً. لم يُعمل شيئ.';
+$lang['uploadbadcontent'] = 'المحتوى المرفوع لم يطابق لاحقة ملفات %s.';
+$lang['uploadspam'] = 'الرفع محجوب بواسطة القائمة السوداء لبرنامج تقفي التطفل.';
+$lang['uploadxss'] = 'رُفض الرفع للإشتباه بمحتوى ضار.';
+$lang['uploadsize'] = 'الملف المرفوع كان كبيرا جدا . ( الحد %s )';
+$lang['deletesucc'] = 'حُذف الملف "%s".';
+$lang['deletefail'] = 'تعذر حذف "%s" - تأكد من الصلاحيات.';
+$lang['mediainuse'] = 'لم يحذف الملف "%s" - مازال مستخدما.';
+$lang['namespaces'] = 'فضاء التسمية';
+$lang['mediafiles'] = 'ملفات موجودة في';
+$lang['accessdenied'] = 'لا يسمح لك برؤية هذه الصفحة.';
+$lang['mediausage'] = 'استخدم هذه الصياغة للدلالة على هذا الملف:';
+$lang['mediaview'] = 'اعرض الملف الأصلي';
+$lang['mediaroot'] = 'الجذر';
+$lang['mediaupload'] = 'تحميل ملف إلى فضاء التسمية هنا. لإنشاء فضاءات تسمية فرعية، أضفها إلى بداية خانة تحميل باسم وافصل بينها باستخدام الفاصلتان الرأسيتان.';
+$lang['mediaextchange'] = 'غُيرت لاحقة الملف من .%s إلى .%s!';
+$lang['reference'] = 'مراجع لـ';
+$lang['ref_inuse'] = 'لا يمكن حذف الملف، لأنه مستخدم من قبل الصفحات التالية:';
+$lang['ref_hidden'] = 'بعض المراجع على صفحات لا تملك صلاحيات قراءتها';
+$lang['hits'] = 'مرة';
+$lang['quickhits'] = 'صفحات مطابقة';
+$lang['toc'] = 'جدول المحتويات';
+$lang['current'] = 'حالي';
+$lang['yours'] = 'نسختك';
+$lang['diff'] = 'أظهر الاختلافات مع النسخة الحالية';
+$lang['diff2'] = 'أظهر الاختلافات بين النسخ المحددة';
+$lang['difflink'] = 'رابط إلى هذه المقارنة';
+$lang['diff_type'] = 'أظهر الفروق:';
+$lang['diff_inline'] = 'ضمنا';
+$lang['diff_side'] = 'جنبا إلى جنب';
+$lang['diffprevrev'] = 'المراجعة السابقة';
+$lang['diffnextrev'] = 'المراجعة التالية';
+$lang['difflastrev'] = 'المراجعة الأخيرة';
+$lang['diffbothprevrev'] = 'جانبي المراجعة السابقة';
+$lang['diffbothnextrev'] = 'جانبي المراجعة التالية';
+$lang['line'] = 'سطر';
+$lang['breadcrumb'] = 'أثر:';
+$lang['youarehere'] = 'أنت هنا:';
+$lang['lastmod'] = 'آخر تعديل:';
+$lang['by'] = 'بواسطة';
+$lang['deleted'] = 'حذفت';
+$lang['created'] = 'اُنشئت';
+$lang['restored'] = 'استعيدت نسخة قديمة (%s)';
+$lang['external_edit'] = 'تحرير خارجي';
+$lang['summary'] = 'ملخص التحرير';
+$lang['noflash'] = 'تحتاج إلىملحق فلاش أدوبي لعرض هذا المحتوى.';
+$lang['download'] = 'نزل Snippet';
+$lang['tools'] = 'أدوات';
+$lang['user_tools'] = 'أدوات المستخدم';
+$lang['site_tools'] = 'أدوات الموقع';
+$lang['page_tools'] = 'أدوات الصفحة';
+$lang['skip_to_content'] = 'تجاوز إلى المحتوى';
+$lang['sidebar'] = 'العمود الجانبي';
+$lang['mail_newpage'] = 'إضافة صفحة:';
+$lang['mail_changed'] = 'تعديل صفحة:';
+$lang['mail_subscribe_list'] = 'صفحات غيرت في النطاق:';
+$lang['mail_new_user'] = 'مشترك جديد:';
+$lang['mail_upload'] = 'رفع ملف:';
+$lang['changes_type'] = 'أظهر تغييرات الـ';
+$lang['pages_changes'] = 'صفحات';
+$lang['media_changes'] = 'ملفات الوسائط';
+$lang['both_changes'] = 'كلا من الصفحات وملفات الوسائط';
+$lang['qb_bold'] = 'نص عريض';
+$lang['qb_italic'] = 'نص مائل';
+$lang['qb_underl'] = 'نص مسطر';
+$lang['qb_code'] = 'نص برمجي';
+$lang['qb_strike'] = 'نص مشطوب';
+$lang['qb_h1'] = 'عنوان مستوى ١';
+$lang['qb_h2'] = 'عنوان مستوى ٢';
+$lang['qb_h3'] = 'عنوان مستوى ٣';
+$lang['qb_h4'] = 'عنوان مستوى ٤';
+$lang['qb_h5'] = 'عنوان مستوى ٥';
+$lang['qb_h'] = 'الترويسة';
+$lang['qb_hs'] = 'حدد الترويسة';
+$lang['qb_hplus'] = 'ترويسة أعلى';
+$lang['qb_hminus'] = 'ترويسة أخفض';
+$lang['qb_hequal'] = 'ترويسة بنفس المستوى';
+$lang['qb_link'] = 'رابط داخلي';
+$lang['qb_extlink'] = 'رابط خارجي';
+$lang['qb_hr'] = 'سطر أفقي';
+$lang['qb_ol'] = 'بند فى قائمة مرتبة';
+$lang['qb_ul'] = 'بند فى قائمة غير مرتبة';
+$lang['qb_media'] = 'أضف صورا و ملفات أخرى';
+$lang['qb_sig'] = 'أدرج التوقيع';
+$lang['qb_smileys'] = 'الإبتسامات';
+$lang['qb_chars'] = 'محارف خاصة';
+$lang['upperns'] = 'انتقل للنطاق الأب';
+$lang['metaedit'] = 'تحرير البيانات الشمولية ';
+$lang['metasaveerr'] = 'فشلت كتابة البيانات الشمولية';
+$lang['metasaveok'] = 'حُفظت البيانات الشمولية';
+$lang['img_title'] = 'العنوان:';
+$lang['img_caption'] = 'وصف:';
+$lang['img_date'] = 'التاريخ:';
+$lang['img_fname'] = 'اسم الملف:';
+$lang['img_fsize'] = 'الحجم:';
+$lang['img_artist'] = 'المصور:';
+$lang['img_copyr'] = 'حقوق النسخ:';
+$lang['img_format'] = 'الهيئة:';
+$lang['img_camera'] = 'الكمرا:';
+$lang['img_keywords'] = 'كلمات مفتاحية:';
+$lang['img_width'] = 'العرض:';
+$lang['img_height'] = 'الإرتفاع:';
+$lang['subscr_subscribe_success'] = 'اضيف %s لقائمة اشتراك %s';
+$lang['subscr_subscribe_error'] = 'خطأ في إضافة %s لقائمة اشتراك %s';
+$lang['subscr_subscribe_noaddress'] = 'ليس هناك عنوان مرتبط بولوجك، لا يمكن اضافتك لقائمة الاشتراك';
+$lang['subscr_unsubscribe_success'] = 'أزيل %s من قائمة اشتراك %s';
+$lang['subscr_unsubscribe_error'] = 'خطأ في إزالة %s من قائمة اشتراك %s';
+$lang['subscr_already_subscribed'] = '%s مشترك مسبقا في %s';
+$lang['subscr_not_subscribed'] = '%s ليس مشتركا في %s';
+$lang['subscr_m_not_subscribed'] = 'لست مشتركا حاليا بالصفحة او النطاق الحاليين';
+$lang['subscr_m_new_header'] = 'أضف اشتراكا';
+$lang['subscr_m_current_header'] = 'الاشتراكات الحالية';
+$lang['subscr_m_unsubscribe'] = 'ألغ الاشتراك';
+$lang['subscr_m_subscribe'] = 'اشترك';
+$lang['subscr_m_receive'] = 'استقبال';
+$lang['subscr_style_every'] = 'بريدا على كل تغيير';
+$lang['subscr_style_digest'] = 'البريد الإلكتروني, ملخص للتغييرات لكل صفحة (كل يوم %.2f)';
+$lang['subscr_style_list'] = 'قائمة بالصفحات التي تم تغييرها منذ آخر بريد الإلكتروني (كل يوم %.2f)';
+$lang['authtempfail'] = 'تصريح المشترك غير متوفر مؤقتاً، إن استمرت هذه الحالة يرجى مراسلة المدير';
+$lang['i_chooselang'] = 'اختر لغتك';
+$lang['i_installer'] = 'برنامج تنصيب دوكو ويكي';
+$lang['i_wikiname'] = 'اسم الويكي';
+$lang['i_enableacl'] = 'تفعيل ACL - مفضل';
+$lang['i_superuser'] = 'مشرف';
+$lang['i_problems'] = 'وجد برنامج التنصيب المشاكل التالية، لا يمكنك المتابعة قبل حلها.';
+$lang['i_modified'] = 'لأسباب أمنية هذا البرنامج سيعمل فقط مع تنصيب دوكو ويكي جديد و غير معدّل.
+يجب أن تعيد فك ضغط الملفات مرة أخرى من المكتبة المضغوطة، أو راجع تعليمات تنصيب دوكو ويكي ';
+$lang['i_funcna'] = 'دالة PHP التالية غير متوفرة.
+%s
+قد يكون مزود خدمة الاستفادة قد حجبها لسبب ما.';
+$lang['i_phpver'] = 'نسخة PHP التي لديك هي
+%s
+وهي أقل من النسخة المطلوبة
+%s
+عليك تحديث نسخة PHP';
+$lang['i_mbfuncoverload'] = 'يجب ايقاف تشغيل mbstring.func_overload في ملف php.ini لتشغيل دوكوويكي.';
+$lang['i_permfail'] = 'إن %s
غير قابل للكتابة بواسطة دوكو ويكي، عليك تعديل إعدادات الصلاحيات لهذا المجلد!';
+$lang['i_confexists'] = 'إن %s
موجود أصلاً';
+$lang['i_writeerr'] = 'لا يمكن إنشاء %s
، عليك التأكد من صلاحيات الملف أو المجلد وإنشاء الملف يدوياً.';
+$lang['i_badhash'] = 'الملف dokuwiki.php غير مصنف أو قد تم تعديله
+(hash=%s
)';
+$lang['i_badval'] = 'القيمة %s
غير شرعية أو فارغة';
+$lang['i_success'] = 'الإعدادات تمت بنجاح، يرجى حذف الملف install.php الآن.
+ثم تابع إلى دوكو ويكي الجديدة';
+$lang['i_failure'] = 'بعض الأخطاء حدثت أثنا كتابة ملفات الإعدادات، عليك تعديلها يدوياً قبل أن تستطيع استخدام دوكو ويكي الجديدة';
+$lang['i_policy'] = 'تصريح ACL مبدئي';
+$lang['i_pol0'] = 'ويكي مفتوحة؛ أي القراءة والكتابة والتحميل مسموحة للجميع';
+$lang['i_pol1'] = 'ويكي عامة؛ أي القراءة للجميع ولكن الكتابة والتحميل للمشتركين المسجلين فقط';
+$lang['i_pol2'] = 'ويكي مغلقة؛ أي القراءة والكتابة والتحميل للمشتركين المسجلين فقط';
+$lang['i_allowreg'] = 'السماح للمستخدمين بتسجيل أنفسهم';
+$lang['i_retry'] = 'إعادة المحاولة';
+$lang['i_license'] = 'اختر الرخصة التي تريد وضع المحتوى تحتها:';
+$lang['i_license_none'] = 'لا تظهر أية معلومات للترخيص';
+$lang['i_pop_field'] = 'من فضلك، ساعدنا على تحسين تجربة دوكي ويكي:';
+$lang['i_pop_label'] = 'مرة واحدة في شهر، إرسال بيانات استخدام المجهول للمطورين دوكي ويكي';
+$lang['recent_global'] = 'انت تراقب حاليا التغييرات داخل نطاق %s. يمكنك أيضا عرض أحدث تغييرات الويكي كلها.';
+$lang['years'] = '%d سنة مضت';
+$lang['months'] = '%d شهرا مضى';
+$lang['weeks'] = '%d اسبوعا مضى';
+$lang['days'] = '%d يوما مضى';
+$lang['hours'] = '%d ساعة مضت';
+$lang['minutes'] = '%d دقيقة مضت';
+$lang['seconds'] = '%d ثانية مضت';
+$lang['wordblock'] = 'لم تحفظ تغييراتك لاحتوائها على نص ممنوع )غثاء(';
+$lang['media_uploadtab'] = 'ارفع';
+$lang['media_searchtab'] = 'ابحث';
+$lang['media_file'] = 'ملف';
+$lang['media_viewtab'] = 'عرض';
+$lang['media_edittab'] = 'تحرير';
+$lang['media_historytab'] = 'التاريخ';
+$lang['media_list_thumbs'] = 'المصغرات';
+$lang['media_list_rows'] = 'صفوف';
+$lang['media_sort_name'] = 'الاسم';
+$lang['media_sort_date'] = 'التاريخ';
+$lang['media_namespaces'] = 'اختر نطاقا';
+$lang['media_files'] = 'الملفات في %s';
+$lang['media_upload'] = 'ارفع إلى %s';
+$lang['media_search'] = 'ابحث في %s';
+$lang['media_view'] = '%s';
+$lang['media_viewold'] = '%s في %s';
+$lang['media_edit'] = 'حرر %s';
+$lang['media_history'] = 'تاريخ %s';
+$lang['media_meta_edited'] = 'عُدلت الميتاداتا';
+$lang['media_perm_read'] = 'عفوا، لست مخولا بقراءة الملفات.';
+$lang['media_perm_upload'] = 'عفوا، لست مخولا برفع الملفات.';
+$lang['media_update'] = 'ارفع إصدارا أحدث';
+$lang['media_restore'] = 'استرجع هذه النسخة';
+$lang['currentns'] = 'مساحة الاسم الحالية';
+$lang['searchresult'] = 'نتيجة البحث';
+$lang['plainhtml'] = 'نص HTML غير منسق';
+$lang['wikimarkup'] = 'علامات الوكي';
+$lang['email_signature_text'] = 'أنشئت هذه الرسالة من دوكو ويكي في
+@DOKUWIKIURL@';
diff --git a/public_html/inc/lang/ar/locked.txt b/public_html/inc/lang/ar/locked.txt
new file mode 100644
index 00000000..72e9be53
--- /dev/null
+++ b/public_html/inc/lang/ar/locked.txt
@@ -0,0 +1,3 @@
+====== الصفحة مقفلة ======
+
+هذه الصفحة مقفلة للتحرير بواسطة مستخدم أخر. عليك أن تنتظر حتى ينتهى من تعديلاتة أو تتنتهى مدة القفل.
\ No newline at end of file
diff --git a/public_html/inc/lang/ar/login.txt b/public_html/inc/lang/ar/login.txt
new file mode 100644
index 00000000..00ffccdd
--- /dev/null
+++ b/public_html/inc/lang/ar/login.txt
@@ -0,0 +1,3 @@
+====== دخول ======
+
+أنت لست مسجل دخولك. أدخل بيانات تسجيلك للدخول. يجب أن يكون مسموح للمتصفح بأستخدام الكوكي.
diff --git a/public_html/inc/lang/ar/mailtext.txt b/public_html/inc/lang/ar/mailtext.txt
new file mode 100644
index 00000000..132e36ef
--- /dev/null
+++ b/public_html/inc/lang/ar/mailtext.txt
@@ -0,0 +1,12 @@
+تم تغيير أو أضافة صفحة فى دوكو ويكي. اليك التفاصيل:
+
+التاريخ : @DATE@
+المتصفح : @BROWSER@
+عنوان الـIP : @IPADDRESS@
+أسم الجهاز : @HOSTNAME@
+النسخة القديمة: @OLDPAGE@
+النسخة الجديدة: @NEWPAGE@
+ملخص التحرير: @SUMMARY@
+مستخدم : @USER@
+
+@DIFF@
diff --git a/public_html/inc/lang/ar/mailwrap.html b/public_html/inc/lang/ar/mailwrap.html
new file mode 100644
index 00000000..d2571909
--- /dev/null
+++ b/public_html/inc/lang/ar/mailwrap.html
@@ -0,0 +1,13 @@
+
+
+@TITLE@
+
+
+
+
+@HTMLBODY@
+
+
+@EMAILSIGNATURE@
+
+
\ No newline at end of file
diff --git a/public_html/inc/lang/ar/newpage.txt b/public_html/inc/lang/ar/newpage.txt
new file mode 100644
index 00000000..ecaa7fa3
--- /dev/null
+++ b/public_html/inc/lang/ar/newpage.txt
@@ -0,0 +1,3 @@
+====== لا يوجد هذا الموضوع بعد ======
+
+لقد تابعت رابط لموضوع غير متواجد بعد. يمكنك إنشائة بالضعط على زر "انشيء هذه الصفحة".
diff --git a/public_html/inc/lang/ar/norev.txt b/public_html/inc/lang/ar/norev.txt
new file mode 100644
index 00000000..2aa2330e
--- /dev/null
+++ b/public_html/inc/lang/ar/norev.txt
@@ -0,0 +1,3 @@
+====== لا توجد تلك النسخة ======
+
+النسخة المختارة ليست موجودة. أسبخدم زر "نسخ قديمة" لعرض قائمة بالنسخ القديمة من هذه الصفحة.
diff --git a/public_html/inc/lang/ar/password.txt b/public_html/inc/lang/ar/password.txt
new file mode 100644
index 00000000..2489800a
--- /dev/null
+++ b/public_html/inc/lang/ar/password.txt
@@ -0,0 +1,6 @@
+أهلاً @FULLNAME@!
+
+ها هى معلومات المستخدم لـ @TITLE@ الموجودة على العنوان @DOKUWIKIURL@
+
+أسم المستخدم : @LOGIN@
+كلمة السر : @PASSWORD@
diff --git a/public_html/inc/lang/ar/preview.txt b/public_html/inc/lang/ar/preview.txt
new file mode 100644
index 00000000..c537e6b2
--- /dev/null
+++ b/public_html/inc/lang/ar/preview.txt
@@ -0,0 +1,3 @@
+====== عرض التعديلات ======
+
+هذا عرض لما سيصبح علية نص الصفحة. تذكر أن التعديلات **لم تحفظ** بعد!
diff --git a/public_html/inc/lang/ar/pwconfirm.txt b/public_html/inc/lang/ar/pwconfirm.txt
new file mode 100644
index 00000000..6e971d36
--- /dev/null
+++ b/public_html/inc/lang/ar/pwconfirm.txt
@@ -0,0 +1,6 @@
+مرحبا @FULLNAME@
+
+شخص ما طلب كلمة سر جديدة لـحسابك @TITLE@ في @DOKUWIKIURL@
+إذا لم تكن قد طلبت كلمة سر جديدة رجاء قم بتجاهل هذه الرسالة .
+لتأكيد أنك أنت قمت بطلب كلمة السر الجديدة . نرجو منك الضغط على الرابط في الأسفل .
+@CONFIRM@
diff --git a/public_html/inc/lang/ar/read.txt b/public_html/inc/lang/ar/read.txt
new file mode 100644
index 00000000..3e6c504f
--- /dev/null
+++ b/public_html/inc/lang/ar/read.txt
@@ -0,0 +1 @@
+هذه الصفحة للقراءة فقط. يمكنك تصفح مصدرها، ولكن لا يمكنك تعديلها. إن كنت تتعتفد أن هناك خطأ ما خاطب المدير.
\ No newline at end of file
diff --git a/public_html/inc/lang/ar/recent.txt b/public_html/inc/lang/ar/recent.txt
new file mode 100644
index 00000000..94d68401
--- /dev/null
+++ b/public_html/inc/lang/ar/recent.txt
@@ -0,0 +1,3 @@
+====== احدث التغييرات ======
+
+تم تعديل الصفحات التالية حديثا.
\ No newline at end of file
diff --git a/public_html/inc/lang/ar/register.txt b/public_html/inc/lang/ar/register.txt
new file mode 100644
index 00000000..10a7fa20
--- /dev/null
+++ b/public_html/inc/lang/ar/register.txt
@@ -0,0 +1,3 @@
+====== سجل كمستخدم جديد ======
+
+املئ البيانات التالية لتسجيل حساب جديد على الويكي. تأكد من كتابة **بريد إلكتروني صحيح** - سترسل إليك كلمة سر جديدة. اسم الدخول يجب أن يكون [[doku>pagename|أسم صفحة]] صحيح.
diff --git a/public_html/inc/lang/ar/registermail.txt b/public_html/inc/lang/ar/registermail.txt
new file mode 100644
index 00000000..7c1cae08
--- /dev/null
+++ b/public_html/inc/lang/ar/registermail.txt
@@ -0,0 +1,10 @@
+سجل مستخدم جديد. هذه هي التفاصيل:
+
+اسم المستخدم : @NEWUSER@
+الاسم الكامل : @NEWNAME@
+البريد: @NEWEMAIL@
+
+التاريخ : @DATE@
+المتصفح : @BROWSER@
+عنوان-IP: @IPADDRESS@
+اسم المضيف: @HOSTNAME@
diff --git a/public_html/inc/lang/ar/resendpwd.txt b/public_html/inc/lang/ar/resendpwd.txt
new file mode 100644
index 00000000..c6971370
--- /dev/null
+++ b/public_html/inc/lang/ar/resendpwd.txt
@@ -0,0 +1,3 @@
+==== إرسال كلمة سر جديدة ====
+
+رجاء اكتب اسم المستخدم في الاستمارة الموجودة في الأسفل ليتم طلب رقم سري جديد لحسابك في هذا الويكي . سيرسل رابط لتأكيد طلبك إلى بريدك الإلكتروني المسجل .
\ No newline at end of file
diff --git a/public_html/inc/lang/ar/resetpwd.txt b/public_html/inc/lang/ar/resetpwd.txt
new file mode 100644
index 00000000..2bbd4a21
--- /dev/null
+++ b/public_html/inc/lang/ar/resetpwd.txt
@@ -0,0 +1,3 @@
+====== اضبط كلمة سر جديدة ======
+
+أدخل كلمة سر جديدة لحسابك في هذه الويكي.
diff --git a/public_html/inc/lang/ar/revisions.txt b/public_html/inc/lang/ar/revisions.txt
new file mode 100644
index 00000000..930a4ef5
--- /dev/null
+++ b/public_html/inc/lang/ar/revisions.txt
@@ -0,0 +1,2 @@
+====== النسخ القديمة ======
+النسخ القديمة للصفحة الحالية. لإستعادة نسخة قديمة: أخترها من المعروض، ثم إضغط على زر "عدل هذه الصفحة" و أحفظها.
\ No newline at end of file
diff --git a/public_html/inc/lang/ar/searchpage.txt b/public_html/inc/lang/ar/searchpage.txt
new file mode 100644
index 00000000..52537c3b
--- /dev/null
+++ b/public_html/inc/lang/ar/searchpage.txt
@@ -0,0 +1,4 @@
+====== بحث ======
+
+نتائج البحث . @CREATEPAGEINFO@
+
diff --git a/public_html/inc/lang/ar/showrev.txt b/public_html/inc/lang/ar/showrev.txt
new file mode 100644
index 00000000..30129071
--- /dev/null
+++ b/public_html/inc/lang/ar/showrev.txt
@@ -0,0 +1,2 @@
+**هذه نسخة قديمة من الصفحة!**
+----
\ No newline at end of file
diff --git a/public_html/inc/lang/ar/stopwords.txt b/public_html/inc/lang/ar/stopwords.txt
new file mode 100644
index 00000000..1a885988
--- /dev/null
+++ b/public_html/inc/lang/ar/stopwords.txt
@@ -0,0 +1,192 @@
+# This is a list of words the indexer ignores, one word per line
+# When you edit this file be sure to use UNIX line endings (single newline)
+# No need to include words shorter than 3 chars - these are ignored anyway
+# This list is based upon the ones found at http://www.ranks.nl/stopwords/
+ب
+ا
+،
+عشر
+عدد
+عدة
+عشرة
+عدم
+عام
+عاما
+عن
+عند
+عندما
+على
+عليه
+عليها
+زيارة
+سنة
+سنوات
+تم
+ضد
+بعد
+بعض
+اعادة
+اعلنت
+بسبب
+حتى
+اذا
+احد
+اثر
+برس
+باسم
+غدا
+شخصا
+صباح
+اطار
+اربعة
+اخرى
+بان
+اجل
+غير
+بشكل
+حاليا
+بن
+به
+ثم
+اف
+ان
+او
+اي
+بها
+صفر
+حيث
+اكد
+الا
+اما
+امس
+السابق
+التى
+التي
+اكثر
+ايار
+ايضا
+ثلاثة
+الذاتي
+الاخيرة
+الثاني
+الثانية
+الذى
+الذي
+الان
+امام
+ايام
+خلال
+حوالى
+الذين
+الاول
+الاولى
+بين
+ذلك
+دون
+حول
+حين
+الف
+الى
+انه
+اول
+ضمن
+انها
+جميع
+الماضي
+الوقت
+المقبل
+اليوم
+ـ
+ف
+و
+و6
+قد
+لا
+ما
+مع
+مساء
+هذا
+واحد
+واضاف
+واضافت
+فان
+قبل
+قال
+كان
+لدى
+نحو
+هذه
+وان
+واكد
+كانت
+واوضح
+مايو
+فى
+في
+كل
+لم
+لن
+له
+من
+هو
+هي
+قوة
+كما
+لها
+منذ
+وقد
+ولا
+نفسه
+لقاء
+مقابل
+هناك
+وقال
+وكان
+نهاية
+وقالت
+وكانت
+للامم
+فيه
+كلم
+لكن
+وفي
+وقف
+ولم
+ومن
+وهو
+وهي
+يوم
+فيها
+منها
+مليار
+لوكالة
+يكون
+يمكن
+مليون
+فى
+أم
+about
+are
+and
+you
+your
+them
+their
+com
+for
+from
+into
+how
+that
+the
+this
+was
+what
+when
+where
+who
+will
+with
+und
+the
+www
diff --git a/public_html/inc/lang/ar/subscr_digest.txt b/public_html/inc/lang/ar/subscr_digest.txt
new file mode 100644
index 00000000..58256f5b
--- /dev/null
+++ b/public_html/inc/lang/ar/subscr_digest.txt
@@ -0,0 +1,16 @@
+مرحبا!
+
+تغيرت الصفحة @PAGE@ في ويكي @TITLE@.
+هذه هي التغيرات:
+
+--------------------------------------------------------
+@DIFF@
+--------------------------------------------------------
+
+النسخة القديمة: @OLDPAGE@
+النسخة الحديثة: @NEWPAGE@
+
+لإلغاء تنبيه الصفحة, لج الويكي في
+@DOKUWIKIURL@ ثم زُر
+@SUBSCRIBE@
+وألغ اشتراكك من الصفحات أو النظاقات
diff --git a/public_html/inc/lang/ar/subscr_form.txt b/public_html/inc/lang/ar/subscr_form.txt
new file mode 100644
index 00000000..919d256f
--- /dev/null
+++ b/public_html/inc/lang/ar/subscr_form.txt
@@ -0,0 +1,3 @@
+====== إدارة الإشتراكات ======
+
+تمكنك هذه الصفحة من إدارة اشتراكاتك للصفحة و النطاق الحاليين.
\ No newline at end of file
diff --git a/public_html/inc/lang/ar/subscr_list.txt b/public_html/inc/lang/ar/subscr_list.txt
new file mode 100644
index 00000000..681fed24
--- /dev/null
+++ b/public_html/inc/lang/ar/subscr_list.txt
@@ -0,0 +1,13 @@
+مرحبا!
+
+صفحات في النطاق @PAGE@ في ويكي @TITLE@ غُيرت.
+هذه هي الصفحات المتغيرة:
+
+--------------------------------------------------------
+@DIFF@
+--------------------------------------------------------
+
+لإلغاء إشعارات الصفحة, لُج الويكي في
+@DOKUWIKIURL@ ثم زُر
+@SUBSCRIBE@
+ثم ألغ اشتراك تغييرات الصفحة و/أو النطاق.
diff --git a/public_html/inc/lang/ar/subscr_single.txt b/public_html/inc/lang/ar/subscr_single.txt
new file mode 100644
index 00000000..6ac7d21d
--- /dev/null
+++ b/public_html/inc/lang/ar/subscr_single.txt
@@ -0,0 +1,19 @@
+مرحبا!
+
+الصفحة @PAGE@ في ويكي @TITLE@ تغيرت.
+هذه هي التغييرات:
+
+--------------------------------------------------------
+@DIFF@
+--------------------------------------------------------
+
+التاريخ : @DATE@
+المستخدم : @USER@
+ملخص التحرير: @SUMMARY@
+الاصدار القديم: @OLDPAGE@
+الاصدار الحديث: @NEWPAGE@
+
+لإلغاء إشعارات الصفحة,لُج الويكي في
+@DOKUWIKIURL@ ثم زُر
+@SUBSCRIBE@
+وألغ الاشتراك من تغييرات الصفحة و/أو النطاق.
diff --git a/public_html/inc/lang/ar/updateprofile.txt b/public_html/inc/lang/ar/updateprofile.txt
new file mode 100644
index 00000000..04a5a09d
--- /dev/null
+++ b/public_html/inc/lang/ar/updateprofile.txt
@@ -0,0 +1,3 @@
+==== تحديث بيانات حسابك ====
+
+عليك فقط أن تكمل كتابة الحقول التي تريد أن تغيرها . لا تستطيع تغيير اسم المستخدم .
\ No newline at end of file
diff --git a/public_html/inc/lang/ar/uploadmail.txt b/public_html/inc/lang/ar/uploadmail.txt
new file mode 100644
index 00000000..bc61e6ef
--- /dev/null
+++ b/public_html/inc/lang/ar/uploadmail.txt
@@ -0,0 +1,10 @@
+رُفع ملف إلى دوكو ويكي خاصتك. هذه هي التفاصيل:
+
+الملف : @MEDIA@
+التاريخ : @DATE@
+المستعرض : @BROWSER@
+عنوان-IP: @IPADDRESS@
+اسم المضيف: @HOSTNAME@
+الحجم : @SIZE@
+نوع MIME : @MIME@
+المستخدم: @USER@
diff --git a/public_html/inc/lang/az/admin.txt b/public_html/inc/lang/az/admin.txt
new file mode 100644
index 00000000..000caa06
--- /dev/null
+++ b/public_html/inc/lang/az/admin.txt
@@ -0,0 +1,4 @@
+====== İdarəetmə ======
+
+Aşağıda Dokuwiki-də mümkün olan administrativ əməliyyatların siyahısı göstərilib.
+
diff --git a/public_html/inc/lang/az/adminplugins.txt b/public_html/inc/lang/az/adminplugins.txt
new file mode 100644
index 00000000..62b1f879
--- /dev/null
+++ b/public_html/inc/lang/az/adminplugins.txt
@@ -0,0 +1 @@
+===== Əlavə Plugin-lər =====
diff --git a/public_html/inc/lang/az/backlinks.txt b/public_html/inc/lang/az/backlinks.txt
new file mode 100644
index 00000000..72a7c858
--- /dev/null
+++ b/public_html/inc/lang/az/backlinks.txt
@@ -0,0 +1,4 @@
+====== Əks linklər ======
+
+Bu, bu səhifəyə link saxlayan səhifələrin siyahısıdır.
+
diff --git a/public_html/inc/lang/az/conflict.txt b/public_html/inc/lang/az/conflict.txt
new file mode 100644
index 00000000..908be09f
--- /dev/null
+++ b/public_html/inc/lang/az/conflict.txt
@@ -0,0 +1,5 @@
+====== Daha yeni versiya var ======
+
+Düzəliş etdiyiniz sənədin daha yeni versiyası var. Siz və başqa istifadəçi eyni zamanda eyni sənədi düzəliş edən zaman belə vəziyyət yaranır.
+
+Aşağıda göstərilən fərqlər ilə tanış olun və lazım olan versiyanı təyin edin. Əgər ''Yadda Saxla'' düyməsini sıxsanız, onda sizin versiya seçilmiş olur. ''İmtina'' düyməsini sıxsanız isə onda hazırki versiya seçilmiş olur.
diff --git a/public_html/inc/lang/az/denied.txt b/public_html/inc/lang/az/denied.txt
new file mode 100644
index 00000000..c6fddb63
--- /dev/null
+++ b/public_html/inc/lang/az/denied.txt
@@ -0,0 +1,3 @@
+====== Müraciət qadağan edilmişdir ======
+
+Sizin bu əməliyyat üçün kifayət qədər haqqınız yoxdur.
diff --git a/public_html/inc/lang/az/diff.txt b/public_html/inc/lang/az/diff.txt
new file mode 100644
index 00000000..a944f84f
--- /dev/null
+++ b/public_html/inc/lang/az/diff.txt
@@ -0,0 +1,4 @@
+====== Fərqlər ======
+
+Burada bu səhifənin seçilmiş və hazırki versiyaların arasında olan fərqlər göstərilib.
+
diff --git a/public_html/inc/lang/az/draft.txt b/public_html/inc/lang/az/draft.txt
new file mode 100644
index 00000000..65c743de
--- /dev/null
+++ b/public_html/inc/lang/az/draft.txt
@@ -0,0 +1,5 @@
+====== Qaralama tapılıb ======
+
+Bu səhifənin son düzəlişi düzgün başa çatdırılmamışdir. Düzəliş zamanı qaralama avtomatik yadda saxlanılmışdır. İndi Siz onu açıb düzəlişi davam edə bilərsiniz. Qaralama versiyası aşağıda göstərilib.
+
+İtmiş versiyanı //qaytarmaq//, qaralamanı //silmək//, və ya düzəlişi //imtina// etmək istədiyinizi təyin edin.
diff --git a/public_html/inc/lang/az/edit.txt b/public_html/inc/lang/az/edit.txt
new file mode 100644
index 00000000..7ce66307
--- /dev/null
+++ b/public_html/inc/lang/az/edit.txt
@@ -0,0 +1 @@
+Səhifədə düzəliş edin və ''Yadda Saxla'' düyməsini sıxın. Sintaksis ilə tanış olmaq üçün [[wiki:syntax]] səhifəsini oxuyun. Ançaq səhifəni **daha yaxşı** etməki istədiyiniz halda düzəliş etməyinizi xahiş edirik. Əgər Siz nəyi isə ancaq test etmək istəyirsiniz sə, onda [[playground:playground]] xüsusi səhifədən istifadə edin.
diff --git a/public_html/inc/lang/az/editrev.txt b/public_html/inc/lang/az/editrev.txt
new file mode 100644
index 00000000..8e98d2ff
--- /dev/null
+++ b/public_html/inc/lang/az/editrev.txt
@@ -0,0 +1,2 @@
+**Sənədin köhnə versiyasını açmısınız!** Bu versiyanı yadda saxlasanız, bu mətn ilə olan yeni hazırki versiya yaratmış olarsınız.
+----
diff --git a/public_html/inc/lang/az/index.txt b/public_html/inc/lang/az/index.txt
new file mode 100644
index 00000000..dc3ffa3b
--- /dev/null
+++ b/public_html/inc/lang/az/index.txt
@@ -0,0 +1,4 @@
+====== Mündəricat ======
+
+Burada mövcud olan səhifələr Namespace-lərə ([[doku>namespaces|namespaces]]) görə sıralanmış halda göstərilib.
+
diff --git a/public_html/inc/lang/az/install.html b/public_html/inc/lang/az/install.html
new file mode 100644
index 00000000..d8382b19
--- /dev/null
+++ b/public_html/inc/lang/az/install.html
@@ -0,0 +1,7 @@
+Bu səhifə Sizə DokuWiki-ni quraşdırmaqa kömək etmək üçündür. Quraşdırma haqqına əlavə məlumatı onun dokumentasiya səhifəsində var.
+
+Səhifələri və əlavə məlumatları (məsələn, şəkillər, axtarış indeksi, səhifələrin əvvəlki versiyaları, və sairə) saxlamaq üçün DokuWiki adi fayllardan istifadə edir. DokuWiki-nin uğurlu işləməsi üçün bu faylların yerləşən qovluqa yazı imkanı vacib lazımdır. Bu quraşdırma proqramı sistemin qovluqlarına olan haqları dəyişə bilmir. Çox vaxt bu birbaşa shell-dən, və ya, əgər Siz hostinq-dən istifadə edirsinizsə, FTP vasitəsi ya idarəetmə paneli vasitəsi (məsələn, cPanel) ilə edilir.
+
+Quraşdırma proqramı sizin DokuWiki-nizdə haqlar kontrolu siyahısını (ACL) quracaq. Bu, sistemə girdikdən sonra, administratora xüsusi menü vasitəsi ilə plugin-ləri quraşdırmaq, istifadiçiləri və səhifələrə giriş haqlarını idarəetmək, və həmçinin sistemin konfiqurasiyasını quraşdırmağa imkan verəcək. Haqlar kontrolu siyahısı DokuWiki-yə mütləq lazım deyil, amma o Sizə DokuWiki-nin idarəetməsini asanlaşdırır.
+
+Təcrübəli istifadəçilər və xüsusi tələbləri olan istifadəçilərə əlavə məlumat üçün quraşdırılma prosesi və konfiqurasiya parametrləri link-lərinə muraciyət etməsk tövsiyyə olunur.
diff --git a/public_html/inc/lang/az/jquery.ui.datepicker.js b/public_html/inc/lang/az/jquery.ui.datepicker.js
new file mode 100644
index 00000000..2ebdcfa8
--- /dev/null
+++ b/public_html/inc/lang/az/jquery.ui.datepicker.js
@@ -0,0 +1,37 @@
+/* Azerbaijani (UTF-8) initialisation for the jQuery UI date picker plugin. */
+/* Written by Jamil Najafov (necefov33@gmail.com). */
+( function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+
+ // AMD. Register as an anonymous module.
+ define( [ "../widgets/datepicker" ], factory );
+ } else {
+
+ // Browser globals
+ factory( jQuery.datepicker );
+ }
+}( function( datepicker ) {
+
+datepicker.regional.az = {
+ closeText: "Bağla",
+ prevText: "<Geri",
+ nextText: "İrəli>",
+ currentText: "Bugün",
+ monthNames: [ "Yanvar","Fevral","Mart","Aprel","May","İyun",
+ "İyul","Avqust","Sentyabr","Oktyabr","Noyabr","Dekabr" ],
+ monthNamesShort: [ "Yan","Fev","Mar","Apr","May","İyun",
+ "İyul","Avq","Sen","Okt","Noy","Dek" ],
+ dayNames: [ "Bazar","Bazar ertəsi","Çərşənbə axşamı","Çərşənbə","Cümə axşamı","Cümə","Şənbə" ],
+ dayNamesShort: [ "B","Be","Ça","Ç","Ca","C","Ş" ],
+ dayNamesMin: [ "B","B","Ç","С","Ç","C","Ş" ],
+ weekHeader: "Hf",
+ dateFormat: "dd.mm.yy",
+ firstDay: 1,
+ isRTL: false,
+ showMonthAfterYear: false,
+ yearSuffix: "" };
+datepicker.setDefaults( datepicker.regional.az );
+
+return datepicker.regional.az;
+
+} ) );
diff --git a/public_html/inc/lang/az/lang.php b/public_html/inc/lang/az/lang.php
new file mode 100644
index 00000000..f2c9aa66
--- /dev/null
+++ b/public_html/inc/lang/az/lang.php
@@ -0,0 +1,231 @@
+
+ * @author Elchin
+ */
+$lang['encoding'] = 'utf-8';
+$lang['direction'] = 'ltr';
+$lang['doublequoteopening'] = '«';
+$lang['doublequoteclosing'] = '»';
+$lang['singlequoteopening'] = '„';
+$lang['singlequoteclosing'] = '“';
+$lang['apostrophe'] = '’';
+$lang['btn_edit'] = 'Səhifəyə düzəliş et';
+$lang['btn_source'] = 'Səhifənin ilkin mətnini göstər';
+$lang['btn_show'] = 'Səhifəni göstər';
+$lang['btn_create'] = 'Səhifəni yarat';
+$lang['btn_search'] = 'Axtarış';
+$lang['btn_save'] = 'Yadda saxla';
+$lang['btn_preview'] = 'Baxış';
+$lang['btn_top'] = 'Yuxarı';
+$lang['btn_newer'] = '<< daha təzələr';
+$lang['btn_older'] = 'daha köhnələr >>';
+$lang['btn_revs'] = 'Səhifənin tarixçəsi';
+$lang['btn_recent'] = 'Yaxın dəyişiklər';
+$lang['btn_upload'] = 'Serverə yükə';
+$lang['btn_cancel'] = 'İmtina';
+$lang['btn_index'] = 'Bütün səhifələr';
+$lang['btn_secedit'] = 'Düzəliş et';
+$lang['btn_login'] = 'Giriş';
+$lang['btn_logout'] = 'Cıxış';
+$lang['btn_admin'] = 'İdarəetmə';
+$lang['btn_update'] = 'Yenilə';
+$lang['btn_delete'] = 'Sil';
+$lang['btn_back'] = 'Geri';
+$lang['btn_backlink'] = 'Bura olan link-lər';
+$lang['btn_subscribe'] = 'Abunə ol (bütün dəyişiklər)';
+$lang['btn_profile'] = 'Profil';
+$lang['btn_reset'] = 'Boşalt';
+$lang['btn_draft'] = 'Qaralamada düzəliş etmək';
+$lang['btn_recover'] = 'Qaralamanı qaytar';
+$lang['btn_draftdel'] = 'Qaralamanı sil';
+$lang['btn_revert'] = 'Qaytar';
+$lang['btn_register'] = 'Qeydiyyatdan keç';
+$lang['btn_img_backto'] = 'Qayıd %s';
+$lang['loggedinas'] = 'İstifadəcinin adı:';
+$lang['user'] = 'istifadəci adı';
+$lang['pass'] = 'Şifrə';
+$lang['newpass'] = 'Yeni şifrə';
+$lang['oldpass'] = 'Hazırki şifrəni daxil edin';
+$lang['passchk'] = 'təkrarlayın';
+$lang['remember'] = 'Məni yadda saxla';
+$lang['fullname'] = 'Tam ad';
+$lang['email'] = 'E-Mail';
+$lang['profile'] = 'İstifadəçi profili';
+$lang['badlogin'] = 'Təssüf ki istifadəçi adı və ya şifrə səhvdir.';
+$lang['minoredit'] = 'Az dəyişiklər';
+$lang['draftdate'] = 'Qaralama yadda saxlandı';
+$lang['nosecedit'] = 'Bu vaxt ərzində səhifə dəyişilmişdir, və bölmə haqqında məlumat köhnəlmişdir. Səhifənin tam versiyası yüklənmişdir.';
+$lang['regmissing'] = 'Təssüf ki Siz bütün xanələri doldurmalısınız.';
+$lang['reguexists'] = 'Təssüf ki bu ad ilə istifadəçi artıq mövcuddur.';
+$lang['regsuccess'] = 'İstivadəci yaradıldı və şifrə sizin e-maila göndərildi.';
+$lang['regsuccess2'] = 'İstifadəçi yaradıldı.';
+$lang['regmailfail'] = 'Deyəsən, xəta şifrə e-maila göndərildikdə baş verdi. Xaiş olunur, ki administrator ilə əlaqə saxlayasınız!';
+$lang['regbadmail'] = 'Deyəsən, daxil edilmiş e-mail ünvanı səhvdir. Əgər şübhəniz var isə administrator ilə əlaqə saxlayın.';
+$lang['regbadpass'] = 'Daxil edilmiş iki şifrə fərqlidir. Xaiş olunur ki, yenidən daxil edəsiniz.';
+$lang['regpwmail'] = 'Sizin DokuWiki sistemi üçün şifrəniz';
+$lang['reghere'] = 'Sizin hələ istifadəçi adınız yoxdur? Buyurun əldə edin';
+$lang['profna'] = 'Bu wiki profilin dəyişdirilməsini dəstəkləmir';
+$lang['profnochange'] = 'Dəyişiklər edilmədi, profil yenilənmədi.';
+$lang['profnoempty'] = 'istifadəci adı və e-mail ünvanı boş ola bilməz.';
+$lang['profchanged'] = 'İstifadəçi profili uğurla yeniləndi.';
+$lang['profdeleteuser'] = 'Profili sil.';
+$lang['profconfdeletemissing'] = 'Təsdiq xanası seçilməib.';
+$lang['proffail'] = 'İstifadəçi profili yenilənmiyib.';
+$lang['pwdforget'] = 'Şifrəni yaddan çıxartmısız? Buyurun yenisini əldə edin';
+$lang['resendna'] = 'Bu wiki şifrəni yenidən göndərməyi dəstəkləmir.';
+$lang['resendpwdmissing'] = 'Formanın bütün xanəlırini doldurun.';
+$lang['resendpwdnouser'] = 'Verilənlər bazasında bu ad ilə istifadəçi tapılmadı.';
+$lang['resendpwdbadauth'] = 'Ativləşdirmə kodu səhvdir. Link-i tam olaraq köçürdüyünüzü yoxlayın. ';
+$lang['resendpwdconfirm'] = 'Şifrəni təstiqləmək üçün sizin e-maila link göndərilmişdir. ';
+$lang['resendpwdsuccess'] = 'Yeni şifrəniz e-maila göndərildi.';
+$lang['license'] = 'Fərqli şey göstərilmiş hallardan başqa, bu wiki-nin mətni aşağıda göstərilmiş lisenziyanın şərtlərinə uyğun təqdim olunur:';
+$lang['licenseok'] = 'Qeyd: bu səhifəni düzəliş edərək, Siz elədiyiniz düzəlişi aşağıda göstərilmiş lisenziyanın şərtlərinə uyğun istifadəsinə razılıq verirsiniz:';
+$lang['searchmedia'] = 'Faylın adına görə axtarış:';
+$lang['searchmedia_in'] = '%s-ın içində axtarış';
+$lang['txt_upload'] = 'Serverə yükləmək üçün fayl seçin:';
+$lang['txt_filename'] = 'Faylın wiki-də olan adını daxil edin (mütləq deyil):';
+$lang['txt_overwrt'] = 'Mövcud olan faylın üstündən yaz';
+$lang['lockedby'] = 'В данный момент заблокирован Bu an blokdadır:';
+$lang['lockexpire'] = 'Blok bitir:';
+$lang['js']['willexpire'] = 'Sizin bu səhifədə dəyişik etmək üçün blokunuz bir dəqiqə ərzində bitəcək.\nMünaqişələrdən yayınmaq və blokun taymerini sıfırlamaq üçün, baxış düyməsini sıxın.';
+$lang['js']['notsavedyet'] = 'Yaddaşa verilməmiş məlumatlar itəcək.';
+$lang['js']['searchmedia'] = 'Faylların axtarışı';
+$lang['js']['keepopen'] = 'Seçimdən sonra pəncərəni açıq saxlamaq';
+$lang['js']['hidedetails'] = 'Təfərruatı gizlət';
+$lang['js']['mediadisplay'] = 'Link növü';
+$lang['js']['mediasize'] = 'Şəkil ölçüsü.';
+$lang['js']['mediaclose'] = 'Bağla.';
+$lang['js']['mediadisplayimg'] = 'Şəkili göstər.';
+$lang['js']['mediadisplaylnk'] = 'Ancaq linki göstər.';
+$lang['js']['mediasmall'] = 'Kiçik versiya.';
+$lang['js']['mediamedium'] = 'Orta versiya.';
+$lang['js']['medialarge'] = 'Böyük versiya.';
+$lang['js']['mediaoriginal'] = 'Orjinal versiya.';
+$lang['js']['medialnk'] = 'Məlumat səhifəsinə keçid.';
+$lang['js']['nosmblinks'] = 'Windows-un şəbəkə qovluqlarına link ancaq Internet Explorer-dən işləyir. \nAmma Siz linki köçürə bilərsiniz.';
+$lang['js']['linkwiz'] = 'Linklər köməkçisi';
+$lang['js']['linkto'] = 'Link göstərir:';
+$lang['js']['del_confirm'] = 'Siz əminsiz ki, seçilmişləri silmək istəyirsiniz?';
+$lang['rssfailed'] = 'Aşağıda göstərilmiş xəbər lentini əldə edən zaman xəta baş verdi: ';
+$lang['nothingfound'] = 'Heçnə tapılmadı.';
+$lang['mediaselect'] = 'Mediya-faylın seçilməsi';
+$lang['uploadsucc'] = 'Yüklənmə uğur ilə başa çatdı';
+$lang['uploadfail'] = 'Yüklənmə zamanı xəta baş veri. Bəlkə giriş haqları ilə problem var?';
+$lang['uploadwrong'] = 'Yuklənməyə qadağa qoyuldu. Belə növlu faylları serverə yükləmək olmaz. ';
+$lang['uploadexist'] = 'Bu adlı fayl artıq serverdə var. Yükləmə alınmadı .';
+$lang['uploadbadcontent'] = 'Faylın tərkibi %s növünə uyğun gəlmir.';
+$lang['uploadspam'] = 'Yüklənmə spam-filtri tərəfindən dayandırıldı.';
+$lang['uploadxss'] = 'Yüklənmə təhlükəsizlik nəzərindən dayandırılmışdır.';
+$lang['uploadsize'] = 'Yüklənilmiş fayl çox boyükdür. (maks. %s)';
+$lang['deletesucc'] = '"%s" adlı fayl silindi.';
+$lang['deletefail'] = '"%s" adlı fayl silinmədi. Faylın giriş haqlarını yoxlayın.';
+$lang['mediainuse'] = '"%s" adlı fayl silinmədi. Fayl hələ istifadə olunur';
+$lang['namespaces'] = 'Namespace-lər';
+$lang['mediafiles'] = 'Mövcud olan fayllar';
+$lang['mediausage'] = 'Bu fayla link yaratmaq üçün aşağıdakı sintaksisdən istifadə edin:';
+$lang['mediaview'] = 'Bu faylın ilkinə bax';
+$lang['mediaroot'] = 'kök';
+$lang['mediaupload'] = 'Burda faylı hazırki qovluqa yükləmək olar ("namespace"). Alt qovluqlar yaratmaq üçün, onların adlarını faylın adının avvəlinə artırın ("Adla yükləmək"). Alt qovluqların adları çütnöqtə ilə ayrılır. ';
+$lang['mediaextchange'] = 'Faylın nüvü .%s -dan .%s -ya dəyişdi!';
+$lang['reference'] = 'Linklər göstərir';
+$lang['ref_inuse'] = 'Bu fayl silinə bilməz, çünki o aşağıdaki səhifələr tərəfindən istifadə olunur:';
+$lang['ref_hidden'] = 'Bəzi link-lər sizin oxumaq haqqınız olmayan səhifələrdə yerləşir';
+$lang['hits'] = 'uyğunluqlar';
+$lang['quickhits'] = 'Səhifələrin adlarında uyğunluqlar';
+$lang['toc'] = 'Mündəricat';
+$lang['current'] = 'hazırki';
+$lang['yours'] = 'Sizin versiyanız';
+$lang['diff'] = 'hazırki versiyadan fərqləri göstər';
+$lang['diff2'] = 'Versiyaların arasındaki fərqləri göstər ';
+$lang['line'] = 'Sətr';
+$lang['breadcrumb'] = 'Siz ziyarət etdiniz:';
+$lang['youarehere'] = 'Siz burdasınız:';
+$lang['lastmod'] = 'Son dəyişiklər:';
+$lang['by'] = ' Kimdən';
+$lang['deleted'] = 'silinib';
+$lang['created'] = 'yaranıb';
+$lang['restored'] = 'köhnə versiya qaytarıldı (%s)';
+$lang['external_edit'] = 'bayırdan dəyişik';
+$lang['summary'] = 'Dəyişiklər xülasəsi';
+$lang['noflash'] = 'Bu məzmuna baxmaq üçün Adobe Flash Plugin tələb olunur.';
+$lang['download'] = 'Kodu yüklə';
+$lang['mail_newpage'] = 'səhifə əlavə olundu:';
+$lang['mail_changed'] = 'səhifəyə düzəliş edildi:';
+$lang['mail_new_user'] = 'yeni istifadəçi:';
+$lang['mail_upload'] = 'fayl yükləndi:';
+$lang['qb_bold'] = 'Qalın şrift';
+$lang['qb_italic'] = 'Maili şrift';
+$lang['qb_underl'] = 'Alt-xətt';
+$lang['qb_code'] = 'Kodun mətni';
+$lang['qb_strike'] = 'Pozulmuş şrift';
+$lang['qb_h1'] = '1 dərəcəli başlıq';
+$lang['qb_h2'] = '2 dərəcəli başlıq';
+$lang['qb_h3'] = '3 dərəcəli başlıq';
+$lang['qb_h4'] = '4 dərəcəli başlıq';
+$lang['qb_h5'] = '5 dərəcəli başlıq';
+$lang['qb_h'] = 'Başlıq';
+$lang['qb_hs'] = 'Başlıq seçimi';
+$lang['qb_hplus'] = 'Daha yüksək dərəcəli başlıq';
+$lang['qb_hminus'] = 'Daha aşağı dərəcəli başlıq (altbaşlıq)';
+$lang['qb_hequal'] = 'Hazırki dərəcəli başlıq';
+$lang['qb_link'] = 'İç link';
+$lang['qb_extlink'] = 'Bayır link';
+$lang['qb_hr'] = 'Bölücü';
+$lang['qb_ol'] = 'Nömrələnmiş siyahının element';
+$lang['qb_ul'] = 'Nömrələnməmiş siyahının element';
+$lang['qb_media'] = 'Şəkillər və başqa fayllar əlavə et';
+$lang['qb_sig'] = 'İmza at';
+$lang['qb_smileys'] = 'Smayllar';
+$lang['qb_chars'] = 'Xüsusi simvollar';
+$lang['upperns'] = 'Ana namespace-ə keç';
+$lang['metaedit'] = 'Meta-məlumatlarda düzəliş et';
+$lang['metasaveerr'] = 'Meta-məlumatları yazan zamanı xəta';
+$lang['metasaveok'] = 'Meta-məlumatlar yadda saxlandı';
+$lang['img_title'] = 'Başlıq:';
+$lang['img_caption'] = 'İmza:';
+$lang['img_date'] = 'Tarix:';
+$lang['img_fname'] = 'Faylın adı:';
+$lang['img_fsize'] = 'Boy:';
+$lang['img_artist'] = 'Şkilin müəllifi:';
+$lang['img_copyr'] = 'Müəllif hüquqları:';
+$lang['img_format'] = 'Format:';
+$lang['img_camera'] = 'Model:';
+$lang['img_keywords'] = 'Açar sözlər:';
+$lang['authtempfail'] = 'İstifadəçilərin autentifikasiyası müvəqqəti dayandırılıb. Əgər bu problem uzun müddət davam edir sə, administrator ilə əlaqə saxlayın.';
+$lang['i_chooselang'] = 'Dili seçin/Language';
+$lang['i_installer'] = 'DokuWiki quraşdırılır';
+$lang['i_wikiname'] = 'wiki-nin adı';
+$lang['i_enableacl'] = 'Haqlar kontrolu siyahısının istifadəsinə icazə ver (tövsiyə edilir)';
+$lang['i_superuser'] = 'Super-istifadəci';
+$lang['i_problems'] = 'Quraşdırma proqramı aşağıdakı problemlər ilə üzləşdi. Davam etmək üçün onları həll etmək lazımdır. ';
+$lang['i_modified'] = 'Təhlükəsizlik baxımından bu proqram ancaq yeni, dəyişməmiş halda olan DokuWiki üzərində işləyir.
+ Siz ya yüklənmiş quraşdırma paketini yenidən açmalısınız, ya da DokuWiki-nin tam quraşdırma instruksiyasına müraciyət etməlisiniz';
+$lang['i_funcna'] = 'PHP-nin %s
funksiyası mövcud deyil. Bəlkə, o hansı sa səbəbdən sizin host-unuz tərəfindən blok edilib?';
+$lang['i_phpver'] = 'Sizin PHP-nin versiyası (%s
) tələb olunan versiyadan aşagıdır (%s
). Quraşdırılmış PHP-nin versiyasını yeniləyin.';
+$lang['i_permfail'] = '%s
DokuWiki-yə yazı üçün bağlıdır. Bu qovluğun giriş haqlarını yoxlamaq lazımdır!';
+$lang['i_confexists'] = '%s
artıq mövcuddur';
+$lang['i_writeerr'] = '%s
yaradıla bilmədi. Faylın/qovluqların giriş haqlarını yaxlamaq lazımdır. Və faylı əl ilə yaradın. ';
+$lang['i_badhash'] = 'dokuwiki.php tanıla bilmir və ya dəyişdirilmişdir (hash=%s
)';
+$lang['i_badval'] = '%s
- səhv ya boş qiymətdir';
+$lang['i_success'] = 'Konfiqurasiya uğurla başa çatdı. İndi siz install.php faylını silə bilərsiniz.
+ Yeni DokuWiki-nizə xoş gəlmişsiniz!';
+$lang['i_failure'] = 'Konfiqurasiya fayllarına məlumat yazan zaman səhvlər tapıldı. Yəgin ki, yeni DokuWiki-nizi istifadə etmədən öncə, Siz o xətaları əl ilə düzəltməli olacaqsınız.';
+$lang['i_policy'] = 'İlkin giriş haqları siyasəti';
+$lang['i_pol0'] = 'Tam açıq wiki (oxumaq, yazmaq, fayl yükləmək hamıya olar)';
+$lang['i_pol1'] = 'Acıq wiki (oxumaq hamıya olar, yazmaq və fayl yükləmək ancaq üzv olan istifadəçilərə olar)';
+$lang['i_pol2'] = 'Bağlı wiki (uxumaq, yazmaq və yükləmək ancaq üzv olan istifadəçilərə olar)';
+$lang['i_retry'] = 'Cəhdi təkrarla';
+$lang['recent_global'] = '%s namespace-də baş vermiş dəyışıklərə baxırsınız. Siz həmçinin wiki-də bu yaxında baş vermiş bütün dəyişiklərə baxa bilərsiniz.';
+$lang['years'] = '%d il əvvəl';
+$lang['months'] = '%d ay əvvəl';
+$lang['weeks'] = '%d həftə əvvəl';
+$lang['days'] = '%d gün əvvəl';
+$lang['hours'] = '%d saat əvvəl';
+$lang['minutes'] = '%d dəqiqə əvvəl';
+$lang['seconds'] = '%d saniyə əvvəl';
+$lang['email_signature_text'] = 'DokuWiki aşağıdakı adresdə yerləşir
+@DOKUWIKIURL@';
diff --git a/public_html/inc/lang/az/locked.txt b/public_html/inc/lang/az/locked.txt
new file mode 100644
index 00000000..8ab93444
--- /dev/null
+++ b/public_html/inc/lang/az/locked.txt
@@ -0,0 +1,3 @@
+====== Səhifə blok edilmişdir ======
+
+Bu səhifə başqa istifadəçi tərəfindən dəyişdirilmə üçün blok edilmişdir. O istifadəçi dəyişdirməni başa çatdırınca ya blokun vaxtı bitincə, Siz gözləməlisiniz.
diff --git a/public_html/inc/lang/az/login.txt b/public_html/inc/lang/az/login.txt
new file mode 100644
index 00000000..e0a559bc
--- /dev/null
+++ b/public_html/inc/lang/az/login.txt
@@ -0,0 +1,4 @@
+====== Avtorizasiya ======
+
+Hazırda Siz sistemə daxil olmamısınız. Aşağıdakı formanı istifadə edib sistemə daxil olun. //Qeyd:// cookies qurlu olmalıdır.
+
diff --git a/public_html/inc/lang/az/mailtext.txt b/public_html/inc/lang/az/mailtext.txt
new file mode 100644
index 00000000..97cb68d0
--- /dev/null
+++ b/public_html/inc/lang/az/mailtext.txt
@@ -0,0 +1,12 @@
+Sizin DokuWiki-də səhifə yaradılıb ya dəyişdirilib. Ətraflı məlumat:
+
+Tarix : @DATE@
+Brauzer : @BROWSER@
+IP-adres : @IPADDRESS@
+Host : @HOSTNAME@
+Köhnə versiya : @OLDPAGE@
+Yeni versiya : @NEWPAGE@
+Dəyişiklərin xülasəsi : @SUMMARY@
+İstifadəçi : @USER@
+
+@DIFF@
diff --git a/public_html/inc/lang/az/newpage.txt b/public_html/inc/lang/az/newpage.txt
new file mode 100644
index 00000000..c749f20a
--- /dev/null
+++ b/public_html/inc/lang/az/newpage.txt
@@ -0,0 +1,3 @@
+====== Bu səhifə hələ mövcud deyil ======
+
+Siz yaradılmamış səhifənin link-ini acmısınız. Əgər sizin giriş haqlarınız çatırsa, siz "Səhifəni yarat" düyməsini sixib, o səhifəni yarada bilərsiniz.
diff --git a/public_html/inc/lang/az/norev.txt b/public_html/inc/lang/az/norev.txt
new file mode 100644
index 00000000..453dad56
--- /dev/null
+++ b/public_html/inc/lang/az/norev.txt
@@ -0,0 +1,4 @@
+====== Belə versiya mövcud deyil ======
+
+Bu səhifənin göstərilmiş versiyası mövcud deyil. Səhifənin bütün versiyalaraının siyahısını görmək üçün, ''Səhifənin tarixçəsi'' düyməsini sıxın.
+
diff --git a/public_html/inc/lang/az/password.txt b/public_html/inc/lang/az/password.txt
new file mode 100644
index 00000000..6424161f
--- /dev/null
+++ b/public_html/inc/lang/az/password.txt
@@ -0,0 +1,6 @@
+Salam @FULLNAME@!
+
+Sizin @TITLE@ (@DOKUWIKIURL@) üçün olan məlumatlarınız
+
+İstifadəçi adı : @LOGIN@
+Şifrə : @PASSWORD@
diff --git a/public_html/inc/lang/az/preview.txt b/public_html/inc/lang/az/preview.txt
new file mode 100644
index 00000000..dbeaa44f
--- /dev/null
+++ b/public_html/inc/lang/az/preview.txt
@@ -0,0 +1,4 @@
+====== Baxış ======
+
+Burda daxil elədiyiniz mətnin necə görünəcəyi göstərilir. Qeyd: mətn hələ **yadda saxlanılmayıb!**
+
diff --git a/public_html/inc/lang/az/pwconfirm.txt b/public_html/inc/lang/az/pwconfirm.txt
new file mode 100644
index 00000000..582124af
--- /dev/null
+++ b/public_html/inc/lang/az/pwconfirm.txt
@@ -0,0 +1,9 @@
+Salam @FULLNAME@!
+
+Kimsə @DOKUWIKIURL@ adresində yerləşən @TITLE@ adlı wiki-yə giriş üçün yeni şifrə tələb eləyib.
+
+Əgər o şəxs siz deyildinizsə, bu məktuba fikir verməyin.
+
+Tələbi təsdiq etmək üçün, aşağıdakı link-ə keçin.
+
+@CONFIRM@
diff --git a/public_html/inc/lang/az/read.txt b/public_html/inc/lang/az/read.txt
new file mode 100644
index 00000000..39b31f10
--- /dev/null
+++ b/public_html/inc/lang/az/read.txt
@@ -0,0 +1,2 @@
+Bu səhifəni ancaq oxumaq olar. Siz səhifənin ilkin mətninə baxa bilərsiniz, amma dəyişə bilməzsiniz. Əgər bunun düzgün olmadığını fikirləşirsinizsə onda administrator ilə əlaqə saxlayın.
+
diff --git a/public_html/inc/lang/az/recent.txt b/public_html/inc/lang/az/recent.txt
new file mode 100644
index 00000000..8766d995
--- /dev/null
+++ b/public_html/inc/lang/az/recent.txt
@@ -0,0 +1,5 @@
+====== Son dəyişiklər ======
+
+Bu səhifələr yaxında dəyismişdirlər.
+
+
diff --git a/public_html/inc/lang/az/register.txt b/public_html/inc/lang/az/register.txt
new file mode 100644
index 00000000..eb6386f7
--- /dev/null
+++ b/public_html/inc/lang/az/register.txt
@@ -0,0 +1,3 @@
+====== Регистрация нового пользователя ======
+
+Qeydiyyat üçün bütün aşağıdaı xanalari doldurun. **e-mail adresinizin duz olduguna** fikir verin. Əgər şıfrəni əl ilə daxil etməyiniz xaiş olunmursa, onda şifrə e-mail adresinizə göndəriləcək. İstifadəçi adı [[doku>pagename|səhifənin identifikatorunun]] məhdudiyyətlərinə uyğun olmalıdır.
diff --git a/public_html/inc/lang/az/registermail.txt b/public_html/inc/lang/az/registermail.txt
new file mode 100644
index 00000000..b080e9b5
--- /dev/null
+++ b/public_html/inc/lang/az/registermail.txt
@@ -0,0 +1,10 @@
+Yeni istifadəçi qeydiyyatdan keçdi. Ətraflı məlumat:
+
+İstifadəçi adı : @NEWUSER@
+Tam adı : @NEWNAME@
+E-mail : @NEWEMAIL@
+
+Tarix : @DATE@
+Brauzer : @BROWSER@
+IP adres : @IPADDRESS@
+Host : @HOSTNAME@
diff --git a/public_html/inc/lang/az/resendpwd.txt b/public_html/inc/lang/az/resendpwd.txt
new file mode 100644
index 00000000..cc286174
--- /dev/null
+++ b/public_html/inc/lang/az/resendpwd.txt
@@ -0,0 +1,3 @@
+====== Yeni şifrənin göndərilməsi ======
+
+Yeni şifrə əldə etmək üçün aşağıda tələb olunan məlumatları daxil edin. Yeni şifrə sizin istifadəçi adınıza aid olan e-mail adresə göndəriləcək. Aşagıda daxil olunan ad - sizin bu wiki-də olan istifadəçi adınız olmalıdır.
diff --git a/public_html/inc/lang/az/revisions.txt b/public_html/inc/lang/az/revisions.txt
new file mode 100644
index 00000000..7164a995
--- /dev/null
+++ b/public_html/inc/lang/az/revisions.txt
@@ -0,0 +1,3 @@
+====== Səhifənin tarixçəsi ======
+
+Qarşınızda - hazırki sənədin dəyişiklər tarixçəsidir. Əvvəlki versiyaların birinə qayıtmaq üçün, lazım olan versiyanı seçin, ''Səhifəni düzəliş et'' düyməsini sıxın və yaddaşa yazın.
diff --git a/public_html/inc/lang/az/searchpage.txt b/public_html/inc/lang/az/searchpage.txt
new file mode 100644
index 00000000..9bf5a5b1
--- /dev/null
+++ b/public_html/inc/lang/az/searchpage.txt
@@ -0,0 +1,4 @@
+====== Axtarış ======
+
+Qarşınızda - axtarışın nəticələridir. @CREATEPAGEINFO@
+
diff --git a/public_html/inc/lang/az/showrev.txt b/public_html/inc/lang/az/showrev.txt
new file mode 100644
index 00000000..dd398704
--- /dev/null
+++ b/public_html/inc/lang/az/showrev.txt
@@ -0,0 +1,2 @@
+**Bu - sənədin köhnə versiyasıdır!**
+----
diff --git a/public_html/inc/lang/az/stopwords.txt b/public_html/inc/lang/az/stopwords.txt
new file mode 100644
index 00000000..04eb312e
--- /dev/null
+++ b/public_html/inc/lang/az/stopwords.txt
@@ -0,0 +1,64 @@
+# This is a list of words the indexer ignores, one word per line
+# When you edit this file be sure to use UNIX line endings (single newline)
+# No need to include words shorter than 3 chars - these are ignored anyway
+amma
+arada
+arasında
+başqa
+başqalar
+başqaların
+başqanın
+belə
+birdən
+bugün
+bunu
+burada
+bəlkə
+cəmi
+dedi
+dedilər
+dedim
+dediniz
+demək
+deyəsən
+görə
+hamını
+hansı
+hansılar
+hansınız
+həmçinin
+həmişə
+hərdən
+hətta
+həyat
+indi
+lazım
+lazımdır
+məncə
+məni
+niyə
+nəyi
+olacaq
+olar
+oldu
+oldum
+olmaq
+olmaz
+olub
+onda
+onlar
+onları
+onun
+ozunun
+qabaq
+quya
+sabağ
+sizcə
+sizi
+sonra
+sözsüz
+şübhəsiz
+səni
+yaxşı
+yenə
+əgər
diff --git a/public_html/inc/lang/az/updateprofile.txt b/public_html/inc/lang/az/updateprofile.txt
new file mode 100644
index 00000000..569e425d
--- /dev/null
+++ b/public_html/inc/lang/az/updateprofile.txt
@@ -0,0 +1,5 @@
+====== Profili yenilə ======
+
+İstədiyiniz xanaları dəyiştirin. İstifadəşi adı dəyiştirilə bilməz.
+
+
diff --git a/public_html/inc/lang/az/uploadmail.txt b/public_html/inc/lang/az/uploadmail.txt
new file mode 100644
index 00000000..88103fd8
--- /dev/null
+++ b/public_html/inc/lang/az/uploadmail.txt
@@ -0,0 +1,10 @@
+Sizin DokuWiki-yə fayl yuklənildi. Ətraflı məlumat:
+
+Fayl : @MEDIA@
+Tarix : @DATE@
+Brauzer : @BROWSER@
+IP Adres : @IPADDRESS@
+Host : @HOSTNAME@
+Həcm : @SIZE@
+MIME Növ : @MIME@
+İstifadəçi : @USER@
diff --git a/public_html/inc/lang/az/wordblock.txt b/public_html/inc/lang/az/wordblock.txt
new file mode 100644
index 00000000..ec8b102a
--- /dev/null
+++ b/public_html/inc/lang/az/wordblock.txt
@@ -0,0 +1,3 @@
+====== SPAM-ın qarşısı alındı ======
+
+Sizin dəyişiklər **yaddaşa saxlanmadı**, çünki onların içində bir və ya daha çox içazəsiz sözlər var idi. Əgər siz wiki-yə spam əlavə etmək istəyirdinizsə, onda utanmırsız?! Əgər siz bunu səhv hesab edirsinizsə, onda administrator ilə əlaqə saxlayın.
diff --git a/public_html/inc/lang/be/admin.txt b/public_html/inc/lang/be/admin.txt
new file mode 100644
index 00000000..40fc5fbc
--- /dev/null
+++ b/public_html/inc/lang/be/admin.txt
@@ -0,0 +1,3 @@
+====== Кіраванне ======
+
+Ніжэй вы зможаце знайсці спіс адміністрацыйных аперацый, даступных у «ДокуВікі».
\ No newline at end of file
diff --git a/public_html/inc/lang/be/adminplugins.txt b/public_html/inc/lang/be/adminplugins.txt
new file mode 100644
index 00000000..c5aa5d70
--- /dev/null
+++ b/public_html/inc/lang/be/adminplugins.txt
@@ -0,0 +1 @@
+===== Дадатковыя ўбудовы =====
\ No newline at end of file
diff --git a/public_html/inc/lang/bg/admin.txt b/public_html/inc/lang/bg/admin.txt
new file mode 100644
index 00000000..d3c14a0d
--- /dev/null
+++ b/public_html/inc/lang/bg/admin.txt
@@ -0,0 +1,3 @@
+====== Администриране ======
+
+Отдолу ще намерите списъка с администраторските задачи в DokuWiki.
\ No newline at end of file
diff --git a/public_html/inc/lang/bg/adminplugins.txt b/public_html/inc/lang/bg/adminplugins.txt
new file mode 100644
index 00000000..df24b053
--- /dev/null
+++ b/public_html/inc/lang/bg/adminplugins.txt
@@ -0,0 +1 @@
+===== Допълнителни приставки =====
\ No newline at end of file
diff --git a/public_html/inc/lang/bg/backlinks.txt b/public_html/inc/lang/bg/backlinks.txt
new file mode 100644
index 00000000..e5016146
--- /dev/null
+++ b/public_html/inc/lang/bg/backlinks.txt
@@ -0,0 +1,3 @@
+====== Какво сочи насам ======
+
+Това е списък на страниците, които препращат обратно към текущата страница.
diff --git a/public_html/inc/lang/bg/conflict.txt b/public_html/inc/lang/bg/conflict.txt
new file mode 100644
index 00000000..8c62a378
--- /dev/null
+++ b/public_html/inc/lang/bg/conflict.txt
@@ -0,0 +1,6 @@
+====== Съществува по-нова версия ======
+
+Съществува по-нова версия на документа, който сте редактирали. Това се случва когато друг потребител е променил документа докато сте го редактирали.
+
+Разгледайте внимателно разликите, след това решете коя версия да бъде запазена. Ако натиснете ''Запис'', ще бъде запазена вашата версия. Натиснете ли ''Отказ'', ще бъде запазена текущата версия.
+
diff --git a/public_html/inc/lang/bg/denied.txt b/public_html/inc/lang/bg/denied.txt
new file mode 100644
index 00000000..bd695d46
--- /dev/null
+++ b/public_html/inc/lang/bg/denied.txt
@@ -0,0 +1,4 @@
+====== Отказан достъп ======
+
+Нямате достатъчно права, за да продължите.
+
diff --git a/public_html/inc/lang/bg/diff.txt b/public_html/inc/lang/bg/diff.txt
new file mode 100644
index 00000000..a22031e9
--- /dev/null
+++ b/public_html/inc/lang/bg/diff.txt
@@ -0,0 +1,3 @@
+====== Разлики ======
+
+Тук са показани разликите между избраната и текущата версия на страницата.
diff --git a/public_html/inc/lang/bg/draft.txt b/public_html/inc/lang/bg/draft.txt
new file mode 100644
index 00000000..a5920113
--- /dev/null
+++ b/public_html/inc/lang/bg/draft.txt
@@ -0,0 +1,6 @@
+====== Намерена чернова ======
+
+Последната редакционна сесия на страницата не е завършена правилно. Dokuwiki автоматично запазва чернова по време на редактирането, която можете да ползвате сега, за да продължите работата си. Отдолу може да видите данните, които бяха запазени от последната сесия.
+
+Моля решете, дали искате да //възстановите// последната си редакционна сесия, //изтриете// автоматично запазената чернова или //откажете// редакцията.
+
diff --git a/public_html/inc/lang/bg/edit.txt b/public_html/inc/lang/bg/edit.txt
new file mode 100644
index 00000000..086d9978
--- /dev/null
+++ b/public_html/inc/lang/bg/edit.txt
@@ -0,0 +1,2 @@
+Редактирайте и натиснете ''Запис''. За информация относно ползвания синтаксис прочетете [[wiki:syntax]]. Моля, редактирайте само когато може да **подобрите** съдържанието. Ако ще пробвате разни неща, може да експериментирате в [[playground:playground|пясъчника]].
+
diff --git a/public_html/inc/lang/bg/editrev.txt b/public_html/inc/lang/bg/editrev.txt
new file mode 100644
index 00000000..ba97f253
--- /dev/null
+++ b/public_html/inc/lang/bg/editrev.txt
@@ -0,0 +1,2 @@
+**Заредена е стара версия на документа!** Ако я запазите, ще създадете нова версия с текущите данни.
+----
diff --git a/public_html/inc/lang/bg/index.txt b/public_html/inc/lang/bg/index.txt
new file mode 100644
index 00000000..7dabac6a
--- /dev/null
+++ b/public_html/inc/lang/bg/index.txt
@@ -0,0 +1,4 @@
+====== Индекс ======
+
+Това е списък на всички налични страници подредени по [[doku>namespaces|именни пространства]].
+
diff --git a/public_html/inc/lang/bg/install.html b/public_html/inc/lang/bg/install.html
new file mode 100644
index 00000000..8763e4df
--- /dev/null
+++ b/public_html/inc/lang/bg/install.html
@@ -0,0 +1,15 @@
+Страницата помага при инсталиране за първи път и настройване на
+Dokuwiki. Повече информация
+за инсталатора ще намерите в документацията му.
+
+Dokuwiki ползва обикновени файлове за съхраняване на страниците и информацията свързана с тях (примерно картинки, търсения, стари версии, и др.).
+За да функционира нормално DokuWiki
+трябва да има право за писане в директориите, които съдържат тези
+файлове. Инсталаторът не може да настройва правата на директориите.
+Вие трябва да направите това директно от командният ред или ако ползвате хостинг през FTP или контролния панела на хоста (примерно cPanel).
+
+Инсталаторът ще настрои вашата DokuWiki конфигурация на
+ACL, което ще позволи на администратора да се впише и ползва администраторското меню в DokuWiki за инсталиране на приставки, контрол на потребителите, управление на достъпа до страниците и промяна на останалите настройки. Това не е необходимо за функционирането на DokuWiki, но прави администрирането по-лесно.
+
+Опитните потребители и потребителите със специални изисквания към настройките имат на разположение допълнителна информация относно инсталирането
+и настройването.
diff --git a/public_html/inc/lang/bg/jquery.ui.datepicker.js b/public_html/inc/lang/bg/jquery.ui.datepicker.js
new file mode 100644
index 00000000..cb066a4c
--- /dev/null
+++ b/public_html/inc/lang/bg/jquery.ui.datepicker.js
@@ -0,0 +1,38 @@
+/* Bulgarian initialisation for the jQuery UI date picker plugin. */
+/* Written by Stoyan Kyosev (http://svest.org). */
+( function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+
+ // AMD. Register as an anonymous module.
+ define( [ "../widgets/datepicker" ], factory );
+ } else {
+
+ // Browser globals
+ factory( jQuery.datepicker );
+ }
+}( function( datepicker ) {
+
+datepicker.regional.bg = {
+ closeText: "затвори",
+ prevText: "<назад",
+ nextText: "напред>",
+ nextBigText: ">>",
+ currentText: "днес",
+ monthNames: [ "Януари","Февруари","Март","Април","Май","Юни",
+ "Юли","Август","Септември","Октомври","Ноември","Декември" ],
+ monthNamesShort: [ "Яну","Фев","Мар","Апр","Май","Юни",
+ "Юли","Авг","Сеп","Окт","Нов","Дек" ],
+ dayNames: [ "Неделя","Понеделник","Вторник","Сряда","Четвъртък","Петък","Събота" ],
+ dayNamesShort: [ "Нед","Пон","Вто","Сря","Чет","Пет","Съб" ],
+ dayNamesMin: [ "Не","По","Вт","Ср","Че","Пе","Съ" ],
+ weekHeader: "Wk",
+ dateFormat: "dd.mm.yy",
+ firstDay: 1,
+ isRTL: false,
+ showMonthAfterYear: false,
+ yearSuffix: "" };
+datepicker.setDefaults( datepicker.regional.bg );
+
+return datepicker.regional.bg;
+
+} ) );
diff --git a/public_html/inc/lang/bg/lang.php b/public_html/inc/lang/bg/lang.php
new file mode 100644
index 00000000..fd4677c1
--- /dev/null
+++ b/public_html/inc/lang/bg/lang.php
@@ -0,0 +1,337 @@
+
+ * @author Viktor Usunov
+ * @author Kiril
+ * @author Ivan Peltekov
+ */
+$lang['encoding'] = 'utf-8';
+$lang['direction'] = 'ltr';
+$lang['doublequoteopening'] = '„';
+$lang['doublequoteclosing'] = '“';
+$lang['singlequoteopening'] = '‘';
+$lang['singlequoteclosing'] = '’';
+$lang['apostrophe'] = '’';
+$lang['btn_edit'] = 'Редактиране';
+$lang['btn_source'] = 'Преглед на кода';
+$lang['btn_show'] = 'Преглед на страницата';
+$lang['btn_create'] = 'Създаване на страница';
+$lang['btn_search'] = 'Търсене';
+$lang['btn_save'] = 'Запис';
+$lang['btn_preview'] = 'Преглед';
+$lang['btn_top'] = 'Към началото';
+$lang['btn_newer'] = '<< по-нови';
+$lang['btn_older'] = 'по-стари >>';
+$lang['btn_revs'] = 'История';
+$lang['btn_recent'] = 'Скорошни промени';
+$lang['btn_upload'] = 'Качване';
+$lang['btn_cancel'] = 'Отказ';
+$lang['btn_index'] = 'Индекс';
+$lang['btn_secedit'] = 'Редактиране';
+$lang['btn_login'] = 'Вписване';
+$lang['btn_logout'] = 'Отписване';
+$lang['btn_admin'] = 'Настройки';
+$lang['btn_update'] = 'Актуализиране';
+$lang['btn_delete'] = 'Изтриване';
+$lang['btn_back'] = 'Назад';
+$lang['btn_backlink'] = 'Какво сочи насам';
+$lang['btn_subscribe'] = 'Абонаменти';
+$lang['btn_profile'] = 'Профил';
+$lang['btn_reset'] = 'Изчистване';
+$lang['btn_resendpwd'] = 'Задаване на нова парола';
+$lang['btn_draft'] = 'Редактиране на черновата';
+$lang['btn_recover'] = 'Възстановяване на черновата';
+$lang['btn_draftdel'] = 'Изтриване на черновата';
+$lang['btn_revert'] = 'Възстановяване';
+$lang['btn_register'] = 'Регистриране';
+$lang['btn_apply'] = 'Прилагане';
+$lang['btn_media'] = 'Диспечер на файлове';
+$lang['btn_deleteuser'] = 'Изтриване на профила';
+$lang['btn_img_backto'] = 'Назад към %s';
+$lang['btn_mediaManager'] = 'Преглед в диспечера на файлове';
+$lang['loggedinas'] = 'Вписани сте като:';
+$lang['user'] = 'Потребител';
+$lang['pass'] = 'Парола';
+$lang['newpass'] = 'Нова парола';
+$lang['oldpass'] = 'Потвърждение на текуща парола';
+$lang['passchk'] = 'още веднъж';
+$lang['remember'] = 'Запомни ме';
+$lang['fullname'] = 'Истинско име';
+$lang['email'] = 'Електронна поща';
+$lang['profile'] = 'Потребителски профил';
+$lang['badlogin'] = 'Грешно потребителско име или парола.';
+$lang['badpassconfirm'] = 'За съжаление паролата е грешна';
+$lang['minoredit'] = 'Промените са незначителни';
+$lang['draftdate'] = 'Черновата е автоматично записана на';
+$lang['nosecedit'] = 'Страницата бе междувременно променена, презареждане на страницата поради неактуална информация.';
+$lang['regmissing'] = 'Моля, попълнете всички полета.';
+$lang['reguexists'] = 'Вече съществува потребител с избраното име.';
+$lang['regsuccess'] = 'Потребителят е създаден, а паролата е пратена по електронната поща.';
+$lang['regsuccess2'] = 'Потребителят е създаден.';
+$lang['regfail'] = 'Потребителят не може да бъде създаден.';
+$lang['regmailfail'] = 'Изглежда, че има проблем с пращането на писмото с паролата. Моля, свържете се с администратора!';
+$lang['regbadmail'] = 'Въведеният адрес изглежда невалиден - ако мислите, че това е грешка, свържете се с администратора.';
+$lang['regbadpass'] = 'Двете въведени пароли не съвпадат, моля опитайте отново.';
+$lang['regpwmail'] = 'Паролата ви за DokuWiki';
+$lang['reghere'] = 'Все още нямате профил? Направете си';
+$lang['profna'] = 'Wiki-то не поддържа промяна на профила';
+$lang['profnochange'] = 'Няма промени.';
+$lang['profnoempty'] = 'Въвеждането на име и имейл е задължително';
+$lang['profchanged'] = 'Потребителският профил е обновен успешно.';
+$lang['profnodelete'] = 'Изтриването на потребители в това wiki не е възможно';
+$lang['profdeleteuser'] = 'Изтриване на профила';
+$lang['profdeleted'] = 'Вашият профил е премахнат от това wiki ';
+$lang['profconfdelete'] = 'Искам да изтрия профила си от това wiki.
Веднъж изтрит, профилът не може да бъде възстановен!';
+$lang['profconfdeletemissing'] = 'Не сте поставили отметка в кутията потвърждение';
+$lang['proffail'] = 'Потребителският профил не може да бъде актуализиран.';
+$lang['pwdforget'] = 'Забравили сте паролата си? Получете нова';
+$lang['resendna'] = 'Wiki-то не поддържа повторно пращане на паролата.';
+$lang['resendpwd'] = 'Задаване на нова парола за';
+$lang['resendpwdmissing'] = 'Моля, попълнете всички полета.';
+$lang['resendpwdnouser'] = 'Потребителят не е намерен в базата от данни.';
+$lang['resendpwdbadauth'] = 'Кодът за потвърждение е невалиден. Проверете дали сте използвали целия линк за потвърждение.';
+$lang['resendpwdconfirm'] = 'Линк за потвърждение е пратен по електронната поща.';
+$lang['resendpwdsuccess'] = 'Новата ви паролата е пратена по електронната поща.';
+$lang['license'] = 'Ако не е посочено друго, съдържанието на Wiki-то е лицензирано под следния лиценз:';
+$lang['licenseok'] = 'Бележка: Редактирайки страницата, Вие се съгласявате да лицензирате промените (които сте направили) под следния лиценз:';
+$lang['searchmedia'] = 'Търсене на файл: ';
+$lang['searchmedia_in'] = 'Търсене в %s';
+$lang['txt_upload'] = 'Изберете файл за качване:';
+$lang['txt_filename'] = 'Качи като (незадължително):';
+$lang['txt_overwrt'] = 'Презапиши съществуващите файлове';
+$lang['maxuploadsize'] = 'Макс. размер за отделните файлове е %s.';
+$lang['lockedby'] = 'В момента е заключена от:';
+$lang['lockexpire'] = 'Ще бъде отключена на:';
+$lang['js']['willexpire'] = 'Страницата ще бъде отключена за редактиране след минута.\nЗа предотвратяване на конфликти, ползвайте бутона "Преглед", за рестартиране на брояча за заключване.';
+$lang['js']['notsavedyet'] = 'Незаписаните промени ще бъдат загубени. Желаете ли да продължите?';
+$lang['js']['searchmedia'] = 'Търсене на файлове';
+$lang['js']['keepopen'] = 'Без затваряне на прозореца след избор';
+$lang['js']['hidedetails'] = 'Без подробности';
+$lang['js']['mediatitle'] = 'Настройки на препратката';
+$lang['js']['mediadisplay'] = 'Тип на препратката';
+$lang['js']['mediaalign'] = 'Подреждане';
+$lang['js']['mediasize'] = 'Размер на изображението';
+$lang['js']['mediatarget'] = 'Препращане към';
+$lang['js']['mediaclose'] = 'Затваряне';
+$lang['js']['mediainsert'] = 'Вмъкване';
+$lang['js']['mediadisplayimg'] = 'Показвай изображението.';
+$lang['js']['mediadisplaylnk'] = 'Показвай само препратката.';
+$lang['js']['mediasmall'] = 'Малка версия';
+$lang['js']['mediamedium'] = 'Средна версия';
+$lang['js']['medialarge'] = 'Голяма версия';
+$lang['js']['mediaoriginal'] = 'Оригинална версия';
+$lang['js']['medialnk'] = 'Препратка към подробна страница';
+$lang['js']['mediadirect'] = 'Директна препратка към оригинала';
+$lang['js']['medianolnk'] = 'Без препратка';
+$lang['js']['medianolink'] = 'Без препратка към изображението';
+$lang['js']['medialeft'] = 'Подреди изображението отляво.';
+$lang['js']['mediaright'] = 'Подреди изображението отдясно.';
+$lang['js']['mediacenter'] = 'Подреди изображението по средата.';
+$lang['js']['medianoalign'] = 'Без подреждане.';
+$lang['js']['nosmblinks'] = 'Връзките към Windows shares работят само под Internet Explorer.
Можете да копирате и поставите връзката.';
+$lang['js']['linkwiz'] = 'Помощник за препратки';
+$lang['js']['linkto'] = 'Препратка към: ';
+$lang['js']['del_confirm'] = 'Да бъдат ли изтрити избраните елементи?';
+$lang['js']['restore_confirm'] = 'Наистина ли желаете да бъде възстановена тази версия?';
+$lang['js']['media_diff'] = 'Преглед на разликите:';
+$lang['js']['media_diff_both'] = 'Един до друг';
+$lang['js']['media_diff_opacity'] = 'Наслагване (и прозиране)';
+$lang['js']['media_diff_portions'] = 'По половинка';
+$lang['js']['media_select'] = 'Изберете файлове...';
+$lang['js']['media_upload_btn'] = 'Качване';
+$lang['js']['media_done_btn'] = 'Готово';
+$lang['js']['media_drop'] = 'Влачете и пуснете файлове тук, за да бъдат качени';
+$lang['js']['media_cancel'] = 'премахване';
+$lang['js']['media_overwrt'] = 'Презапиши съществуващите файлове';
+$lang['rssfailed'] = 'Възникна грешка при получаването на емисията: ';
+$lang['nothingfound'] = 'Нищо не е открито.';
+$lang['mediaselect'] = 'Файлове';
+$lang['uploadsucc'] = 'Качването е успешно';
+$lang['uploadfail'] = 'Качването се провали. Може би поради грешни права?';
+$lang['uploadwrong'] = 'Качването е отказано. Файлово разширение е забранено!';
+$lang['uploadexist'] = 'Файлът вече съществува. Нищо не е направено.';
+$lang['uploadbadcontent'] = 'Каченото съдържание не съответства на файлово разширение %s .';
+$lang['uploadspam'] = 'Качването е блокирано от SPAM списъка.';
+$lang['uploadxss'] = 'Качването е блокирано, поради възможно зловредно съдържание.';
+$lang['uploadsize'] = 'Файлът за качване е прекалено голям. (макс. %s)';
+$lang['deletesucc'] = 'Файлът "%s" бе изтрит.';
+$lang['deletefail'] = '"%s" не може да бъде изтрит - проверете правата.';
+$lang['mediainuse'] = 'Файлът "%s" не бе изтрит - все още се ползва.';
+$lang['namespaces'] = 'Именни пространства';
+$lang['mediafiles'] = 'Налични файлове в';
+$lang['accessdenied'] = 'Нямате необходимите права за преглеждане на страницата.';
+$lang['mediausage'] = 'Ползвайте следния синтаксис, за да упоменете файла:';
+$lang['mediaview'] = 'Преглед на оригиналния файл';
+$lang['mediaroot'] = 'root';
+$lang['mediaupload'] = 'Качете файл в текущото именно пространство. За създаване на подименно пространство, добавете име преди това на файла като ги разделите с двоеточие в полето "Качи като"';
+$lang['mediaextchange'] = 'Разширението на файла е сменено от .%s на .%s!';
+$lang['reference'] = 'Връзки за';
+$lang['ref_inuse'] = 'Файлът не може да бъде изтрит, защото все още се ползва от следните страници:';
+$lang['ref_hidden'] = 'Някои връзки са към страници, които нямате права да четете';
+$lang['hits'] = 'Съвпадения';
+$lang['quickhits'] = 'Съвпадащи имена на страници';
+$lang['toc'] = 'Съдържание';
+$lang['current'] = 'текуща';
+$lang['yours'] = 'Вашата версия';
+$lang['diff'] = 'Преглед на разликите с текущата версия';
+$lang['diff2'] = 'Показване на разликите между избрани версии';
+$lang['difflink'] = 'Препратка към сравнението на версиите';
+$lang['diff_type'] = 'Преглед на разликите:';
+$lang['diff_inline'] = 'Вграден';
+$lang['diff_side'] = 'Един до друг';
+$lang['diffprevrev'] = 'Предходна версия';
+$lang['diffnextrev'] = 'Следваща версия';
+$lang['difflastrev'] = 'Последна версия';
+$lang['line'] = 'Ред';
+$lang['breadcrumb'] = 'Следа:';
+$lang['youarehere'] = 'Намирате се в:';
+$lang['lastmod'] = 'Последна промяна:';
+$lang['by'] = 'от';
+$lang['deleted'] = 'изтрита';
+$lang['created'] = 'създадена';
+$lang['restored'] = 'възстановена предишна версия (%s)';
+$lang['external_edit'] = 'външна редакция';
+$lang['summary'] = 'Обобщение';
+$lang['noflash'] = 'Необходим е Adobe Flash Plugin за изобразяване на съдържанието.';
+$lang['download'] = 'Изтегляне на фрагмент';
+$lang['tools'] = 'Инструменти';
+$lang['user_tools'] = 'Инструменти за потребители';
+$lang['site_tools'] = 'Инструменти за сайта';
+$lang['page_tools'] = 'Инструменти за страници';
+$lang['skip_to_content'] = 'към съдържанието';
+$lang['sidebar'] = 'Странична лента';
+$lang['mail_newpage'] = 'добавена страница: ';
+$lang['mail_changed'] = 'променена страница: ';
+$lang['mail_subscribe_list'] = 'променени страници в именно пространство: ';
+$lang['mail_new_user'] = 'нов потребител: ';
+$lang['mail_upload'] = 'качен файл: ';
+$lang['changes_type'] = 'Преглед на променените';
+$lang['pages_changes'] = 'Страници';
+$lang['media_changes'] = 'Файлове';
+$lang['both_changes'] = 'Страници и файлове';
+$lang['qb_bold'] = 'Удебелен текст';
+$lang['qb_italic'] = 'Курсив текст';
+$lang['qb_underl'] = 'Подчертан текст';
+$lang['qb_code'] = 'Код';
+$lang['qb_strike'] = 'Зачеркнат текст';
+$lang['qb_h1'] = 'Заглавие от 1 ниво';
+$lang['qb_h2'] = 'Заглавие от 2 ниво';
+$lang['qb_h3'] = 'Заглавие от 3 ниво';
+$lang['qb_h4'] = 'Заглавие от 4 ниво';
+$lang['qb_h5'] = 'Заглавие от 5 ниво';
+$lang['qb_h'] = 'Заглавие';
+$lang['qb_hs'] = 'Изберете заглавие';
+$lang['qb_hplus'] = 'Надзаглавие';
+$lang['qb_hminus'] = 'Подзаглавие';
+$lang['qb_hequal'] = 'Заглавие от същото ниво';
+$lang['qb_link'] = 'Вътрешна препратка';
+$lang['qb_extlink'] = 'Външна препратка';
+$lang['qb_hr'] = 'Хоризонтална линия';
+$lang['qb_ol'] = 'Номериран списък';
+$lang['qb_ul'] = 'Неномериран списък';
+$lang['qb_media'] = 'Добавяне на изображения и други файлове';
+$lang['qb_sig'] = 'Вмъкване на подпис';
+$lang['qb_smileys'] = 'Усмивчици';
+$lang['qb_chars'] = 'Специални знаци';
+$lang['upperns'] = 'към майчиното именно пространство';
+$lang['metaedit'] = 'Редактиране на метаданни';
+$lang['metasaveerr'] = 'Записването на метаданните се провали';
+$lang['metasaveok'] = 'Метаданните са запазени успешно';
+$lang['img_title'] = 'Заглавие:';
+$lang['img_caption'] = 'Надпис:';
+$lang['img_date'] = 'Дата:';
+$lang['img_fname'] = 'Име на файла:';
+$lang['img_fsize'] = 'Размер:';
+$lang['img_artist'] = 'Фотограф:';
+$lang['img_copyr'] = 'Авторско право:';
+$lang['img_format'] = 'Формат:';
+$lang['img_camera'] = 'Фотоапарат:';
+$lang['img_keywords'] = 'Ключови думи:';
+$lang['img_width'] = 'Ширина:';
+$lang['img_height'] = 'Височина:';
+$lang['subscr_subscribe_success'] = '%s е добавен към списъка с абониралите се за %s';
+$lang['subscr_subscribe_error'] = 'Грешка при добавянето на %s към списъка с абониралите се за %s';
+$lang['subscr_subscribe_noaddress'] = 'Добавянето ви към списъка с абонати не е възможно поради липсата на свързан адрес (имейл) с профила ви.';
+$lang['subscr_unsubscribe_success'] = '%s е премахнат от списъка с абониралите се за %s';
+$lang['subscr_unsubscribe_error'] = 'Грешка при премахването на %s от списъка с абониралите се за %s';
+$lang['subscr_already_subscribed'] = '%s е вече абониран за %s';
+$lang['subscr_not_subscribed'] = '%s не е абониран за %s';
+$lang['subscr_m_not_subscribed'] = 'Не сте абониран за текущата страницата или именно пространство.';
+$lang['subscr_m_new_header'] = 'Добави абонамент';
+$lang['subscr_m_current_header'] = 'Текущи абонаменти';
+$lang['subscr_m_unsubscribe'] = 'Прекратяване на абонамента';
+$lang['subscr_m_subscribe'] = 'Абониране';
+$lang['subscr_m_receive'] = 'Получаване';
+$lang['subscr_style_every'] = 'на имейл при всяка промяна';
+$lang['subscr_style_digest'] = 'на имейл с обобщение на промените във всяка страница (всеки %.2f дни)';
+$lang['subscr_style_list'] = 'на списък с променените страници от последния имейл (всеки %.2f дни)';
+$lang['authtempfail'] = 'Удостоверяването на потребители не е възможно за момента. Ако продължи дълго, моля уведомете администратора на Wiki страницата.';
+$lang['i_chooselang'] = 'Изберете вашия език';
+$lang['i_installer'] = 'Инсталатор на DokuWiki';
+$lang['i_wikiname'] = 'Име на Wiki-то';
+$lang['i_enableacl'] = 'Ползване на списък за достъп (ACL) [препоръчително]';
+$lang['i_superuser'] = 'Супер потребител';
+$lang['i_problems'] = 'Открити са проблеми, които възпрепятстват инсталирането. Ще можете да продължите след като отстраните долуизброените проблеми.';
+$lang['i_modified'] = 'Поради мерки за сигурност инсталаторът работи само с нови и непроменени инсталационни файлове.
+ Трябва да разархивирате отново файловете от сваления архив или да се посъветвате с Инструкциите за инсталиране на Dokuwiki.';
+$lang['i_funcna'] = 'PHP функцията %s
не е достъпна. Може би е забранена от доставчика на хостинг.';
+$lang['i_phpver'] = 'Инсталираната версия %s
на PHP е по-стара от необходимата %s
. Актуализирайте PHP инсталацията.';
+$lang['i_mbfuncoverload'] = 'Необходимо е да изключите mbstring.func_overload в php.ini за да може DokuWiki да стартира.';
+$lang['i_permfail'] = '%s
не е достъпна за писане от DokuWiki. Трябва да промените правата за достъп до директорията!';
+$lang['i_confexists'] = '%s
вече съществува';
+$lang['i_writeerr'] = '%s
не можа да бъде създаден. Трябва да проверите правата за достъп до директорията/файла и да създадете файла ръчно.';
+$lang['i_badhash'] = 'Файлът dokuwiki.php не може да бъде разпознат или е променен (hash=%s
)';
+$lang['i_badval'] = '%s
- непозволена или празна стойност';
+$lang['i_success'] = 'Настройването приключи успешно. Вече можете да изтриете файла install.php. Продължете към Вашето новата инсталация на DokuWiki.';
+$lang['i_failure'] = 'Възникнаха грешки при записването на файловете с настройки. Вероятно ще се наложи да ги поправите ръчно,
+ за да можете да ползвате Вашето ново DokuWiki.';
+$lang['i_policy'] = 'Първоначална политика за достъп';
+$lang['i_pol0'] = 'Отворено Wiki (всеки може да чете, пише и качва)';
+$lang['i_pol1'] = 'Публично Wiki (всеки може да чете, само регистрирани пишат и качват)';
+$lang['i_pol2'] = 'Затворено Wiki (само регистрирани четат, пишат и качват)';
+$lang['i_allowreg'] = 'Разрешете на потребителите за се регистрират сами';
+$lang['i_retry'] = 'Повторен опит';
+$lang['i_license'] = 'Моля, изберете лиценз под който желаете да публикувате съдържанието:';
+$lang['i_license_none'] = 'Без показване на информация относно лиценза';
+$lang['i_pop_field'] = 'Моля, помогнете за усъвършенстването на DokuWiki:';
+$lang['i_pop_label'] = 'Изпращане на анонимна информация до разработчиците на DokuWiki, веднъж седмично';
+$lang['recent_global'] = 'В момента преглеждате промените в именно пространство %s. Може да прегледате и промените в цялото Wiki.';
+$lang['years'] = 'преди %d години';
+$lang['months'] = 'преди %d месеца';
+$lang['weeks'] = 'преди %d седмици';
+$lang['days'] = 'преди %d дни';
+$lang['hours'] = 'преди %d часа';
+$lang['minutes'] = 'преди %d минути';
+$lang['seconds'] = 'преди %d секунди';
+$lang['wordblock'] = 'Направените от Вас промени не са съхранени, защото съдържат забранен текст (SPAM).';
+$lang['media_uploadtab'] = 'Качване';
+$lang['media_searchtab'] = 'Търсене';
+$lang['media_file'] = 'Файл';
+$lang['media_viewtab'] = 'Преглед';
+$lang['media_edittab'] = 'Редактиране';
+$lang['media_historytab'] = 'История';
+$lang['media_list_thumbs'] = 'Миниатюри';
+$lang['media_list_rows'] = 'Редове';
+$lang['media_sort_name'] = 'Име';
+$lang['media_sort_date'] = 'Дата';
+$lang['media_namespaces'] = 'Изберете:';
+$lang['media_files'] = 'Файлове в %s';
+$lang['media_upload'] = 'Качване в %s';
+$lang['media_search'] = 'Търсене в %s';
+$lang['media_view'] = '%s';
+$lang['media_viewold'] = '%s в %s';
+$lang['media_edit'] = 'Редактиране на %s';
+$lang['media_history'] = 'История на %s';
+$lang['media_meta_edited'] = 'редактиране на метаданните';
+$lang['media_perm_read'] = 'За съжаление нямате достатъчно права, за да можете да прочетете файла.';
+$lang['media_perm_upload'] = 'За съжаление нямате достатъчно права, за да можете да качите файла.';
+$lang['media_update'] = 'Качване на нова версия';
+$lang['media_restore'] = 'Възстановяване на тази версия';
+$lang['currentns'] = 'Текущо именно пространство';
+$lang['searchresult'] = 'Резултати от търсенето';
+$lang['plainhtml'] = 'Обикновен HTML';
+$lang['email_signature_text'] = 'Писмото е генерирано от DokuWiki на адрес
+@DOKUWIKIURL@';
diff --git a/public_html/inc/lang/bg/locked.txt b/public_html/inc/lang/bg/locked.txt
new file mode 100644
index 00000000..7cdfba78
--- /dev/null
+++ b/public_html/inc/lang/bg/locked.txt
@@ -0,0 +1,3 @@
+====== Страницата е заключена ======
+
+В момента страницата е заключена за редактиране от друг потребител. Трябва да изчакате потребителя да приключи с редактирането на страницата или автоматичното отключване на страницата.
diff --git a/public_html/inc/lang/bg/login.txt b/public_html/inc/lang/bg/login.txt
new file mode 100644
index 00000000..e5061c3d
--- /dev/null
+++ b/public_html/inc/lang/bg/login.txt
@@ -0,0 +1,3 @@
+====== Вписване ======
+
+Не сте се вписали! Въведете данните си за удостоверяване отдолу, за да го направите. Бисквитките (cookies) трябва да са включени.
diff --git a/public_html/inc/lang/bg/mailtext.txt b/public_html/inc/lang/bg/mailtext.txt
new file mode 100644
index 00000000..60cffed2
--- /dev/null
+++ b/public_html/inc/lang/bg/mailtext.txt
@@ -0,0 +1,12 @@
+Страница в DokuWiki е добавена или променена. Ето детайлите:
+
+Дата : @DATE@
+Браузър : @BROWSER@
+IP адрес : @IPADDRESS@
+Име на хоста : @HOSTNAME@
+Стара версия: @OLDPAGE@
+Нова версия: @NEWPAGE@
+Обобщение: @SUMMARY@
+Потребител : @USER@
+
+@DIFF@
diff --git a/public_html/inc/lang/bg/mailwrap.html b/public_html/inc/lang/bg/mailwrap.html
new file mode 100644
index 00000000..7df0cdce
--- /dev/null
+++ b/public_html/inc/lang/bg/mailwrap.html
@@ -0,0 +1,13 @@
+
+
+ @TITLE@
+
+
+
+
+@HTMLBODY@
+
+
+@EMAILSIGNATURE@
+
+
diff --git a/public_html/inc/lang/bg/newpage.txt b/public_html/inc/lang/bg/newpage.txt
new file mode 100644
index 00000000..22d3bb6d
--- /dev/null
+++ b/public_html/inc/lang/bg/newpage.txt
@@ -0,0 +1,4 @@
+====== Несъществуваща тема ======
+
+Последвали сте препратка към тема, която не съществува. Ако правата ви позволяват, може да я създадете чрез бутона ''Създаване на страница''.
+
diff --git a/public_html/inc/lang/bg/norev.txt b/public_html/inc/lang/bg/norev.txt
new file mode 100644
index 00000000..fb7aeef8
--- /dev/null
+++ b/public_html/inc/lang/bg/norev.txt
@@ -0,0 +1,4 @@
+====== Няма такава версия ======
+
+Избраната версия не съществува. Натиснете бутона ''История'' за отваряне на списъка със стари версии на документа.
+
diff --git a/public_html/inc/lang/bg/password.txt b/public_html/inc/lang/bg/password.txt
new file mode 100644
index 00000000..77fa48b9
--- /dev/null
+++ b/public_html/inc/lang/bg/password.txt
@@ -0,0 +1,6 @@
+Здравейте @FULLNAME@!
+
+Вашите потребителски данни за @TITLE@ на @DOKUWIKIURL@
+
+Потребител : @LOGIN@
+Парола : @PASSWORD@
diff --git a/public_html/inc/lang/bg/preview.txt b/public_html/inc/lang/bg/preview.txt
new file mode 100644
index 00000000..41fde738
--- /dev/null
+++ b/public_html/inc/lang/bg/preview.txt
@@ -0,0 +1,3 @@
+====== Преглед ======
+
+Ето как ще изглежда страницата. Текста все още **не е запазен**!
\ No newline at end of file
diff --git a/public_html/inc/lang/bg/pwconfirm.txt b/public_html/inc/lang/bg/pwconfirm.txt
new file mode 100644
index 00000000..3d0a9671
--- /dev/null
+++ b/public_html/inc/lang/bg/pwconfirm.txt
@@ -0,0 +1,10 @@
+Здравейте @FULLNAME@!
+
+Някой е поискал нова парола за потребител @TITLE@
+на @DOKUWIKIURL@
+
+Ако не сте поискали нова парола, тогава просто игнорирайте това писмо.
+
+За да потвърдите, че искането е наистина от вас, моля ползвайте следния линк:
+
+@CONFIRM@
diff --git a/public_html/inc/lang/bg/read.txt b/public_html/inc/lang/bg/read.txt
new file mode 100644
index 00000000..861d47fc
--- /dev/null
+++ b/public_html/inc/lang/bg/read.txt
@@ -0,0 +1,2 @@
+Страницата е само за четене. Може да разглеждате кода, но не и да го променяте. Обърнете се съм администратора, ако смятате, че това не е редно.
+
diff --git a/public_html/inc/lang/bg/recent.txt b/public_html/inc/lang/bg/recent.txt
new file mode 100644
index 00000000..c9202905
--- /dev/null
+++ b/public_html/inc/lang/bg/recent.txt
@@ -0,0 +1,4 @@
+====== Скорошни промени ======
+
+Следните страници са били променени наскоро.
+
diff --git a/public_html/inc/lang/bg/register.txt b/public_html/inc/lang/bg/register.txt
new file mode 100644
index 00000000..33342800
--- /dev/null
+++ b/public_html/inc/lang/bg/register.txt
@@ -0,0 +1,4 @@
+====== Регистриране като нов потребител ======
+
+Моля, попълнете всичките полета отдолу, за да бъде създаден нов профил. Уверете се, че въведеният **имейл адрес е правилен**. Ако няма поле за парола, ще ви бъде изпратена такава на въведения адрес. Потребителското име трябва да бъде валидно [[doku>pagename|име на страница]].
+
diff --git a/public_html/inc/lang/bg/registermail.txt b/public_html/inc/lang/bg/registermail.txt
new file mode 100644
index 00000000..3c555f54
--- /dev/null
+++ b/public_html/inc/lang/bg/registermail.txt
@@ -0,0 +1,10 @@
+Регистриран е нов потребител. Ето детайлите:
+
+Потребител : @NEWUSER@
+Пълно име : @NEWNAME@
+E. поща : @NEWEMAIL@
+
+Дата : @DATE@
+Браузър : @BROWSER@
+IP адрес : @IPADDRESS@
+Име на хоста : @HOSTNAME@
diff --git a/public_html/inc/lang/bg/resendpwd.txt b/public_html/inc/lang/bg/resendpwd.txt
new file mode 100644
index 00000000..19dffc07
--- /dev/null
+++ b/public_html/inc/lang/bg/resendpwd.txt
@@ -0,0 +1,3 @@
+====== Пращане на нова парола ======
+
+Моля, въведете потребителското си име във формата по-долу, ако желаете да получите нова парола. Чрез имейл ще получите линк, с който да потвърдите.
diff --git a/public_html/inc/lang/bg/resetpwd.txt b/public_html/inc/lang/bg/resetpwd.txt
new file mode 100644
index 00000000..caa4adfd
--- /dev/null
+++ b/public_html/inc/lang/bg/resetpwd.txt
@@ -0,0 +1,4 @@
+====== Задаване на нова парола ======
+
+Моля, въведете нова парола за вашия акаунт в Wiki страницата.
+
diff --git a/public_html/inc/lang/bg/revisions.txt b/public_html/inc/lang/bg/revisions.txt
new file mode 100644
index 00000000..0e14662b
--- /dev/null
+++ b/public_html/inc/lang/bg/revisions.txt
@@ -0,0 +1,4 @@
+====== Стари версии======
+
+Това са старите версии на документа. За да възстановите стара версия, изберете я долу, натиснете ''Редактиране'' и я запазете.
+
diff --git a/public_html/inc/lang/bg/searchpage.txt b/public_html/inc/lang/bg/searchpage.txt
new file mode 100644
index 00000000..6da6042e
--- /dev/null
+++ b/public_html/inc/lang/bg/searchpage.txt
@@ -0,0 +1,4 @@
+====== Търсене ======
+
+Резултата от търсенето ще намерите по-долу. @CREATEPAGEINFO@
+
diff --git a/public_html/inc/lang/bg/showrev.txt b/public_html/inc/lang/bg/showrev.txt
new file mode 100644
index 00000000..a3848f8b
--- /dev/null
+++ b/public_html/inc/lang/bg/showrev.txt
@@ -0,0 +1,2 @@
+**Това е стара версия на документа!**
+----
diff --git a/public_html/inc/lang/bg/stopwords.txt b/public_html/inc/lang/bg/stopwords.txt
new file mode 100644
index 00000000..03fd1375
--- /dev/null
+++ b/public_html/inc/lang/bg/stopwords.txt
@@ -0,0 +1,29 @@
+# Това е списък с думи за игнориране при индексиране, с една дума на ред
+# Когато редактирате този файл, не забравяйте да използвате UNIX символ за нов ред
+# Не е нужно да включвате думи по-кратки от 3 символа - те биват игнорирани така или иначе
+# Списъкът се основава на думи от http://www.ranks.nl/stopwords/
+about
+are
+and
+you
+your
+them
+their
+com
+for
+from
+into
+how
+that
+the
+this
+was
+what
+when
+where
+who
+will
+with
+und
+the
+www
diff --git a/public_html/inc/lang/bg/subscr_digest.txt b/public_html/inc/lang/bg/subscr_digest.txt
new file mode 100644
index 00000000..8f8cfeaa
--- /dev/null
+++ b/public_html/inc/lang/bg/subscr_digest.txt
@@ -0,0 +1,15 @@
+Здравейте!
+
+Страницата @PAGE@ в @TITLE@ wiki е променена.
+Промените са по-долу:
+
+--------------------------------------------------------
+@DIFF@
+--------------------------------------------------------
+
+Стара версия: @OLDPAGE@
+Нова версия: @NEWPAGE@
+
+Ако желаете да прекратите уведомяването за страницата трябва да се впишете на адрес @DOKUWIKIURL@, да посетите
+@SUBSCRIBE@
+и да прекратите абонамента за промени по страницата или именното пространство.
diff --git a/public_html/inc/lang/bg/subscr_form.txt b/public_html/inc/lang/bg/subscr_form.txt
new file mode 100644
index 00000000..e32a5ec2
--- /dev/null
+++ b/public_html/inc/lang/bg/subscr_form.txt
@@ -0,0 +1,3 @@
+====== Диспечер на абонаменти ======
+
+Страницата ви позволява да управлявате текущите си абонаменти за страници и именни пространства.
\ No newline at end of file
diff --git a/public_html/inc/lang/bg/subscr_list.txt b/public_html/inc/lang/bg/subscr_list.txt
new file mode 100644
index 00000000..1e2b9817
--- /dev/null
+++ b/public_html/inc/lang/bg/subscr_list.txt
@@ -0,0 +1,12 @@
+Здравейте!
+
+Променени са страници от именното пространство @PAGE@ от @TITLE@ wiki.
+Ето променените страници:
+
+--------------------------------------------------------
+@DIFF@
+--------------------------------------------------------
+
+Ако желаете да прекратите уведомяването за страницата трябва да се впишете на адрес @DOKUWIKIURL@, да посетите
+@SUBSCRIBE@
+и да прекратите абонамента за промени по страницата или именното пространство.
diff --git a/public_html/inc/lang/bg/subscr_single.txt b/public_html/inc/lang/bg/subscr_single.txt
new file mode 100644
index 00000000..36b2df3e
--- /dev/null
+++ b/public_html/inc/lang/bg/subscr_single.txt
@@ -0,0 +1,18 @@
+Здравейте!
+
+Страницата @PAGE@ в @TITLE@ wiki е променена.
+Промените са по-долу:
+
+--------------------------------------------------------
+@DIFF@
+--------------------------------------------------------
+
+Дата : @DATE@
+Потребител : @USER@
+Обобщение: @SUMMARY@
+Стара версия: @OLDPAGE@
+Нова версия: @NEWPAGE@
+
+Ако желаете да прекратите уведомяването за страницата трябва да се впишете на адрес @DOKUWIKIURL@, да посетите
+@SUBSCRIBE@
+и да прекратите абонамента за промени по страницата или именното пространство.
diff --git a/public_html/inc/lang/bg/updateprofile.txt b/public_html/inc/lang/bg/updateprofile.txt
new file mode 100644
index 00000000..6113f0d0
--- /dev/null
+++ b/public_html/inc/lang/bg/updateprofile.txt
@@ -0,0 +1,3 @@
+====== Обновете профила си ======
+
+Трябва само да допълните полетата, които искате да промените. Потребителското не може да бъде променяно.
diff --git a/public_html/inc/lang/bg/uploadmail.txt b/public_html/inc/lang/bg/uploadmail.txt
new file mode 100644
index 00000000..0c14437b
--- /dev/null
+++ b/public_html/inc/lang/bg/uploadmail.txt
@@ -0,0 +1,10 @@
+Качен е файл на вашето DokuWiki. Ето детайлите
+
+Файл : @MEDIA@
+Дата : @DATE@
+Браузър : @BROWSER@
+IP адрес : @IPADDRESS@
+Име на хоста : @HOSTNAME@
+Размер : @SIZE@
+MIME тип : @MIME@
+Потребител : @USER@
diff --git a/public_html/inc/lang/bn/admin.txt b/public_html/inc/lang/bn/admin.txt
new file mode 100644
index 00000000..ede23c76
--- /dev/null
+++ b/public_html/inc/lang/bn/admin.txt
@@ -0,0 +1,3 @@
+====== প্রশাসন ======
+
+আপনি DokuWiki পাওয়া প্রশাসনিক কাজগুলো একটি তালিকা পেতে পারেন নীচে.
\ No newline at end of file
diff --git a/public_html/inc/lang/bn/adminplugins.txt b/public_html/inc/lang/bn/adminplugins.txt
new file mode 100644
index 00000000..c491ff9b
--- /dev/null
+++ b/public_html/inc/lang/bn/adminplugins.txt
@@ -0,0 +1 @@
+===== অতিরিক্ত প্লাগইন =====
\ No newline at end of file
diff --git a/public_html/inc/lang/bn/backlinks.txt b/public_html/inc/lang/bn/backlinks.txt
new file mode 100644
index 00000000..61a7cac3
--- /dev/null
+++ b/public_html/inc/lang/bn/backlinks.txt
@@ -0,0 +1,3 @@
+====== ব্যাকলিঙ্কগুলি ======
+
+এই বর্তমান পৃষ্ঠায় ফিরে সংযোগ আছে বলে মনে হচ্ছে যে পেজের একটি তালিকা.
\ No newline at end of file
diff --git a/public_html/inc/lang/bn/conflict.txt b/public_html/inc/lang/bn/conflict.txt
new file mode 100644
index 00000000..b18ad953
--- /dev/null
+++ b/public_html/inc/lang/bn/conflict.txt
@@ -0,0 +1,5 @@
+====== একটি নতুন সংস্করণ উপস্থিত ======
+
+আপনি সম্পাদিত ডকুমেন্টের একটি নতুন সংস্করণ বিদ্যমান. আপনি এটি সম্পাদনা যখন অন্য ব্যবহারকারীর নথি পরিবর্তিত যখন এটি হয়.
+
+পুঙ্খানুপুঙ্খভাবে নিচে দেখানো পার্থক্য পরীক্ষা, তারপর রাখা যা সংস্করণে ঠিক. আপনি "সংরক্ষণ" চয়ন, আপনার সংস্করণ সংরক্ষিত হবে অথবা বর্তমান সংস্করণ রাখা ''বাতিল'' হিট করুন.
\ No newline at end of file
diff --git a/public_html/inc/lang/bn/denied.txt b/public_html/inc/lang/bn/denied.txt
new file mode 100644
index 00000000..5ba0fcf4
--- /dev/null
+++ b/public_html/inc/lang/bn/denied.txt
@@ -0,0 +1,3 @@
+====== অনুমতি অস্বীকার =====
+
+দুঃখিত, আপনি কি এগিয়ে যেতে যথেষ্ট অধিকার নেই.
\ No newline at end of file
diff --git a/public_html/inc/lang/bn/diff.txt b/public_html/inc/lang/bn/diff.txt
new file mode 100644
index 00000000..5952e28d
--- /dev/null
+++ b/public_html/inc/lang/bn/diff.txt
@@ -0,0 +1,3 @@
+====== পার্থক্য ======
+
+এর মানে আপনি পৃষ্ঠার দুটি সংস্করণের মধ্যে পার্থক্য দেখায়.
\ No newline at end of file
diff --git a/public_html/inc/lang/bn/draft.txt b/public_html/inc/lang/bn/draft.txt
new file mode 100644
index 00000000..0b614f48
--- /dev/null
+++ b/public_html/inc/lang/bn/draft.txt
@@ -0,0 +1,5 @@
+====== খসড়া ফাইল ====== পাওয়া
+
+এই পৃষ্ঠাতে আপনার সর্বশেষ সম্পাদনা সময় সঠিকভাবে সম্পন্ন করা হয় নি. DokuWiki স্বয়ংক্রিয়ভাবে আপনি এখন আপনার সম্পাদনা চালিয়ে যেতে ব্যবহার করতে পারেন যা আপনার কাজ করার সময় একটি খসড়া সংরক্ষিত. আপনি আপনার শেষ সময় থেকে সংরক্ষিত ছিল যে তথ্য দেখতে পারেন নিচে.
+
+আপনি / /ফিরাইয়া আনা / / আপনার হারিয়ে সম্পাদনা সময়, / / মুছে দিন / / স্বতঃসংরক্ষিত খসড়া অথবা / / বাতিল / / সম্পাদনা প্রক্রিয়া পুনরুদ্ধার করতে চান তা স্থির করুন.
\ No newline at end of file
diff --git a/public_html/inc/lang/bn/edit.txt b/public_html/inc/lang/bn/edit.txt
new file mode 100644
index 00000000..b294b646
--- /dev/null
+++ b/public_html/inc/lang/bn/edit.txt
@@ -0,0 +1 @@
+পাতা সম্পাদনা করুন এবং ''সংরক্ষণ'' আঘাত. দেখুন [[উইকি: সিনট্যাক্স]] উইকি সিনট্যাক্স জন্য. আপনি এটি **উন্নত** করতে পারেন শুধুমাত্র যদি পাতাটি সম্পাদনা করুন. আপনি কিছু কিছু বিষয় পরীক্ষা আপনার প্রথম পদক্ষেপ করা শিখতে চান [[খেলার মাঠ: খেলার মাঠ | খেলার মাঠ]].
\ No newline at end of file
diff --git a/public_html/inc/lang/bn/editrev.txt b/public_html/inc/lang/bn/editrev.txt
new file mode 100644
index 00000000..1ea72367
--- /dev/null
+++ b/public_html/inc/lang/bn/editrev.txt
@@ -0,0 +1,2 @@
+** আপনি নথির একটি পুরোনো সংস্করণ লোড করেছেন! ** যদি আপনি এটি সংরক্ষণ করেন, আপনি এই তথ্য দিয়ে একটি নতুন সংস্করণ তৈরি করবে.
+----
\ No newline at end of file
diff --git a/public_html/inc/lang/bn/index.txt b/public_html/inc/lang/bn/index.txt
new file mode 100644
index 00000000..9f5ad751
--- /dev/null
+++ b/public_html/inc/lang/bn/index.txt
@@ -0,0 +1,3 @@
+====== সাইটম্যাপ ======
+
+এই দ্বারা আদেশ সমস্ত উপলব্ধ পৃষ্ঠাগুলি উপর একটি সাইট ম্যাপ হল [[Doku> নামব্যবধান | নামব্যবধান]].
\ No newline at end of file
diff --git a/public_html/inc/lang/bn/lang.php b/public_html/inc/lang/bn/lang.php
new file mode 100644
index 00000000..5cb66a85
--- /dev/null
+++ b/public_html/inc/lang/bn/lang.php
@@ -0,0 +1,226 @@
+
+ * @author ninetailz
+ * @author Khan M. B. Asad
+ * @author Ninetailz
+ */
+$lang['encoding'] = 'utf-8';
+$lang['direction'] = 'ltr';
+$lang['doublequoteopening'] = '“';
+$lang['doublequoteclosing'] = '”';
+$lang['singlequoteopening'] = '‘';
+$lang['singlequoteclosing'] = '’';
+$lang['apostrophe'] = '’';
+$lang['btn_edit'] = 'এই পৃষ্ঠা সম্পাদনা করুন';
+$lang['btn_source'] = 'দেখান পাতা উৎস';
+$lang['btn_show'] = 'দেখান পৃষ্ঠা';
+$lang['btn_create'] = 'এই পৃষ্ঠা তৈরি করুন';
+$lang['btn_search'] = 'অনুসন্ধান';
+$lang['btn_preview'] = 'পূর্বরূপ';
+$lang['btn_top'] = 'উপরে ফিরে যান ';
+$lang['btn_newer'] = '<< আরো সাম্প্রতিক';
+$lang['btn_older'] = 'কম সাম্প্রতিক >>';
+$lang['btn_revs'] = 'প্রাচীন সংশোধন';
+$lang['btn_recent'] = 'সাধিত পরিবর্তনসমূহ';
+$lang['btn_upload'] = 'আপলোড করুন';
+$lang['btn_cancel'] = 'বাতিল করা';
+$lang['btn_index'] = 'সাইট ম্যাপ';
+$lang['btn_secedit'] = 'সম্পাদন করা';
+$lang['btn_login'] = 'লগইন';
+$lang['btn_logout'] = 'লগ আউট';
+$lang['btn_admin'] = 'অ্যাডমিন';
+$lang['btn_update'] = 'আধুনিক করা';
+$lang['btn_delete'] = 'মুছে ফেলা';
+$lang['btn_back'] = 'পিছনে';
+$lang['btn_backlink'] = 'ব্যাকলিঙ্কগুলি';
+$lang['btn_subscribe'] = 'সাবস্ক্রিপশন পরিচালনা করুন';
+$lang['btn_profile'] = 'প্রোফাইল আপডেট করুন';
+$lang['btn_reset'] = 'রিসেট করুন';
+$lang['btn_resendpwd'] = 'সেট করুন নতুন পাসওয়ার্ড';
+$lang['btn_draft'] = 'সম্পাদনা খসড়া';
+$lang['btn_recover'] = 'খসড়া উদ্ধার';
+$lang['btn_draftdel'] = 'খসড়া মুছে দিন';
+$lang['btn_revert'] = 'পুনরূদ্ধার করা';
+$lang['btn_register'] = 'খাতা';
+$lang['btn_apply'] = 'প্রয়োগ করা';
+$lang['btn_media'] = 'মিডিয়া ম্যানেজার';
+$lang['btn_deleteuser'] = 'আমার অ্যাকাউন্ট অপসারণ করুন';
+$lang['btn_img_backto'] = 'ফিরে যান %s';
+$lang['btn_mediaManager'] = 'মিডিয়া ম্যানেজারে দেখুন';
+$lang['loggedinas'] = 'লগ ইন:';
+$lang['user'] = 'ইউজারনেম';
+$lang['pass'] = 'পাসওয়ার্ড';
+$lang['newpass'] = 'নতুন পাসওয়ার্ড';
+$lang['oldpass'] = 'বর্তমান পাসওয়ার্ড নিশ্চিত করুন';
+$lang['passchk'] = 'আরো একবার';
+$lang['remember'] = 'আমাকে মনে রেখো';
+$lang['fullname'] = 'আমাকে মনে রেখো';
+$lang['email'] = 'ই মেইল';
+$lang['profile'] = 'ব্যবহারকারী প্রোফাইল';
+$lang['badlogin'] = 'দুঃখিত, ব্যবহারকারীর নাম বা পাসওয়ার্ড ভুল ছিল.';
+$lang['badpassconfirm'] = 'দুঃখিত, পাসওয়ার্ড ভুল ছিল';
+$lang['minoredit'] = 'ক্ষুদ্র পরিবর্তনসমূহ';
+$lang['draftdate'] = 'খসড়া উপর স্বতঃসংরক্ষণ';
+$lang['nosecedit'] = 'পাতা ইতিমধ্যে পরিবর্তিত হয়েছিল, অধ্যায় তথ্যের পরিবর্তে পুরো পাতা লোড তারিখ সীমার বাইরে ছিল.
+';
+$lang['regmissing'] = 'দুঃখিত, আপনি সমস্ত ক্ষেত্রগুলি পূরণ করা আবশ্যক.';
+$lang['reguexists'] = 'দুঃখিত, এই লগইন সঙ্গে একটি ব্যবহারকারী ইতিমধ্যেই বিদ্যমান.';
+$lang['regsuccess'] = 'ব্যবহারকারী তৈরি করা হয়েছে এবং পাসওয়ার্ড ইমেইল করে পাঠানো হয়েছিল.';
+$lang['regsuccess2'] = 'ব্যবহারকারী তৈরি করা হয়েছে.';
+$lang['regmailfail'] = 'একটি ত্রুটি পাসওয়ার্ড মেইল পাঠানোর নেভিগেশন ছিল মনে হচ্ছে. অ্যাডমিন যোগাযোগ করুন!';
+$lang['regbadmail'] = 'প্রদত্ত ইমেইল ঠিকানা সঠিক মনে হচ্ছে - আপনি এই একটি ত্রুটি মনে হলে, অ্যাডমিন যোগাযোগ';
+$lang['regbadpass'] = 'দুটি প্রদত্ত পাসওয়ার্ড অভিন্ন নয়, আবার চেষ্টা করুন.';
+$lang['regpwmail'] = 'আপনার DokuWiki পাসওয়ার্ড';
+$lang['reghere'] = 'যদিও তোমার কোনো একাউন্ট নেই? শুধু একটি পেতে';
+$lang['profna'] = 'এই উইকি প্রোফাইল পরিবর্তন সমর্থন করে না';
+$lang['profnochange'] = 'এমন কোন পরিবর্তন, না কিছুই.';
+$lang['profnoempty'] = 'একটি খালি নাম অথবা ইমেইল ঠিকানা অনুমোদিত নয়.';
+$lang['profchanged'] = 'ইউজার প্রোফাইল সফলভাবে আপডেট.';
+$lang['profnodelete'] = 'এই উইকি ব্যবহারকারী মুছে ফেলার সমর্থন করে না';
+$lang['profdeleteuser'] = 'একাউন্ট মুছে দিন';
+$lang['profdeleted'] = 'আপনার অ্যাকাউন্টটি এই উইকি থেকে মুছে ফেলা হয়েছে';
+$lang['profconfdelete'] = 'আমি এই উইকি থেকে আমার অ্যাকাউন্ট অপসারণ করতে ইচ্ছুক.
এই ক্রিয়াটি পূর্বাবস্থায় ফেরানো যায় না.';
+$lang['profconfdeletemissing'] = 'নিশ্চিতকরণ চেক বক্স ticked না';
+$lang['pwdforget'] = 'আপনার পাসওয়ার্ড ভুলে গেছেন? একটি নতুন পান';
+$lang['resendna'] = 'এই উইকি পাসওয়ার্ড পুনরায় প্রেরণ সমর্থন করে না.';
+$lang['resendpwd'] = 'জন্য সেট করুন নতুন পাসওয়ার্ড';
+$lang['resendpwdmissing'] = 'দুঃখিত, আপনি সমস্ত ক্ষেত্রগুলি পূরণ করা আবশ্যক.';
+$lang['resendpwdnouser'] = 'দুঃখিত, আমরা আমাদের ডাটাবেসের মধ্যে ব্যবহারকারীর খুঁজে পাচ্ছি না.';
+$lang['resendpwdbadauth'] = 'দুঃখিত, এই auth কোড বৈধ নয়. আপনি সম্পূর্ণ কনফার্মেশন লিঙ্ক ব্যবহার নিশ্চিত করুন.';
+$lang['resendpwdconfirm'] = 'একটি নিশ্চায়ন লিঙ্ক ইমেলের মাধ্যমে পাঠানো হয়েছে.';
+$lang['resendpwdsuccess'] = 'আপনার নতুন পাসওয়ার্ড ইমেইলের মাধ্যমে পাঠানো হয়েছে.';
+$lang['license'] = 'অন্যথায় নোট যেখানে ছাড়া, এই উইকি নেভিগেশন কন্টেন্ট নিম্নলিখিত লাইসেন্সের আওতায় লাইসেন্সকৃত:';
+$lang['licenseok'] = 'দ্রষ্টব্য: আপনি নিম্নলিখিত লাইসেন্সের অধীনে আপনার বিষয়বস্তু লাইসেন্স সম্মত হন এই পৃষ্ঠার সম্পাদনার দ্বারা:';
+$lang['searchmedia'] = 'অনুসন্ধান ফাইলের নাম:';
+$lang['searchmedia_in'] = 'অনুসন্ধান %s -এ';
+$lang['txt_upload'] = 'আপলোড করার জন্য নির্বাচন করুন ফাইল:';
+$lang['txt_filename'] = 'হিসাবে আপলোড করুন (ঐচ্ছিক):';
+$lang['txt_overwrt'] = 'বিদ্যমান ফাইল মুছে যাবে';
+$lang['maxuploadsize'] = 'সর্বোচ্চ আপলোড করুন. %s-ফাইলের প্রতি.';
+$lang['lockedby'] = 'বর্তমানে দ্বারা লক:';
+$lang['lockexpire'] = 'তালা এ মেয়াদ শেষ:';
+$lang['js']['willexpire'] = 'এই পৃষ্ঠার সম্পাদনার জন্য আপনার লক এক মিনিটের মধ্যে মেয়াদ শেষ সম্পর্কে. \ দ্বন্দ্ব লক টাইমার রিসেট প্রিভিউ বাটন ব্যবহার এড়াতে.';
+$lang['js']['notsavedyet'] = 'অসংরক্ষিত পরিবর্তন হারিয়ে যাবে.';
+$lang['js']['searchmedia'] = 'ফাইলের জন্য অনুসন্ধান';
+$lang['js']['keepopen'] = 'নির্বাচনের উপর উইন্ডো খোলা রাখুন';
+$lang['js']['hidedetails'] = 'বিশদ আড়াল করুন';
+$lang['js']['mediatitle'] = 'লিংক সেটিংস';
+$lang['js']['mediadisplay'] = 'লিংক টাইপ';
+$lang['js']['mediaalign'] = 'শ্রেণীবিন্যাস';
+$lang['js']['mediasize'] = 'চিত্র আকার';
+$lang['js']['mediatarget'] = 'লিংক টার্গেট';
+$lang['js']['mediaclose'] = 'বন্ধ করা';
+$lang['js']['mediainsert'] = 'ঢোকান';
+$lang['js']['mediadisplayimg'] = 'ছবিটি দেখান';
+$lang['js']['mediadisplaylnk'] = 'শুধুমাত্র লিঙ্ক দেখান';
+$lang['js']['mediasmall'] = 'ক্ষুদ্র সংস্করণ';
+$lang['js']['mediamedium'] = 'মাধ্যম সংস্করণ';
+$lang['js']['medialarge'] = 'বড় সংস্করণ';
+$lang['js']['mediaoriginal'] = 'আসল সংস্করণ';
+$lang['js']['medialnk'] = 'বিস্তারিত পৃষ্ঠায় লিংক';
+$lang['js']['mediadirect'] = 'মূল সরাসরি লিঙ্ক';
+$lang['js']['medianolnk'] = 'কোনো লিঙ্ক নাই';
+$lang['js']['medianolink'] = 'ইমেজ লিঙ্ক কোরো না';
+$lang['js']['medialeft'] = 'বাম দিকে ইমেজ সারিবদ্ধ কর';
+$lang['js']['mediaright'] = 'ডান দিকে ইমেজ সারিবদ্ধ কর';
+$lang['js']['mediacenter'] = 'মাঝখানে ইমেজ সারিবদ্ধ কর';
+$lang['js']['medianoalign'] = 'কোনো সারিবদ্ধ করা প্রয়োজন নেই';
+$lang['js']['nosmblinks'] = 'উইন্ডোস শেয়ার এর সাথে সংযোগ সাধন কেবল মাইক্রোসফ্ট ইন্টারনেট এক্সপ্লোরারেই সম্ভব।\nতবে আপনি লিংকটি কপি পেস্ট করতেই পারেন।';
+$lang['js']['linkwiz'] = 'লিংক উইজার্ড';
+$lang['js']['linkto'] = 'সংযোগের লক্ষ্য:';
+$lang['js']['del_confirm'] = 'নির্বাচিত আইটেম(গুলো) আসলেই মুছে ফেলতে চান?';
+$lang['js']['restore_confirm'] = 'এই সংস্করণ সত্যিই পূর্বাবস্থায় ফিরিয়ে আনতে চান?';
+$lang['js']['media_diff'] = 'পার্থক্যগুলো দেখুন:';
+$lang['js']['media_diff_both'] = 'পাশাপাশি';
+$lang['js']['media_diff_opacity'] = 'শাইন-থ্রু';
+$lang['js']['media_diff_portions'] = 'ঝেঁটিয়ে বিদায়';
+$lang['js']['media_select'] = 'ফাইল নির্বাচন...';
+$lang['js']['media_upload_btn'] = 'আপলোড';
+$lang['js']['media_done_btn'] = 'সাধিত';
+$lang['js']['media_drop'] = 'আপলোডের জন্য এখানে ফাইল ফেলুন';
+$lang['js']['media_cancel'] = 'অপসারণ';
+$lang['js']['media_overwrt'] = 'বর্তমান ফাইল ওভাররাইট করুন';
+$lang['rssfailed'] = 'ফিডটি জোগাড় করতে গিয়ে একটি ত্রুটি ঘটেছে:';
+$lang['nothingfound'] = 'কিছু পাওয়া যায়নি।';
+$lang['mediaselect'] = 'মিডিয়া ফাইল';
+$lang['uploadsucc'] = 'আপলোড সফল';
+$lang['uploadfail'] = 'আপলোড ব্যর্থ। অনুমতি জনিত ত্রুটি কী?';
+$lang['uploadwrong'] = 'আপলোড প্রত্যাখ্যাত। এই ফাইল এক্সটেনশন অননুমোদিত।';
+$lang['uploadexist'] = 'ফাইল ইতিমধ্যেই বিরাজমান। কিছু করা হয়নি।';
+$lang['uploadbadcontent'] = 'আপলোডকৃত সামগ্রী %s ফাইল এক্সটেনশন এর সাথে মিলেনি।';
+$lang['uploadspam'] = 'স্প্যাম ব্ল্যাকলিস্ট আপলোড আটকে দিয়েছে।';
+$lang['uploadxss'] = 'সামগ্রীটি ক্ষতিকর ভেবে আপলোড আটকে দেয়া হয়েছে।';
+$lang['uploadsize'] = 'আপলোডকৃত ফাইলটি বেশি বড়ো। (সর্বোচ্চ %s)';
+$lang['deletesucc'] = '"%s" ফাইলটি মুছে ফেলা হয়েছে।';
+$lang['deletefail'] = '"%s" ডিলিট করা যায়নি - অনুমতি আছে কি না দেখুন।';
+$lang['mediainuse'] = '"%s" ফাইলটি মোছা হয়নি - এটি এখনো ব্যবহৃত হচ্ছে।';
+$lang['namespaces'] = 'নামস্থান';
+$lang['mediafiles'] = 'ফাইল পাওয়া যাবে ';
+$lang['accessdenied'] = 'আপনি এই পৃষ্ঠাটি দেখতে অনুমতি দেওয়া হয়নি';
+$lang['mediausage'] = 'এই ফাইলের উল্লেখ নিম্নলিখিত সিনট্যাক্স ব্যবহার করুন:';
+$lang['mediaview'] = 'মূল ফাইলটি দেখুন';
+$lang['mediaroot'] = 'মূল';
+$lang['mediaupload'] = 'এখানে বর্তমান নামস্থান একটি ফাইল আপলোড করুন. , Subnamespaces তৈরি আপনি ফাইল নির্বাচন পরে কোলন দ্বারা বিভাজিত আপনার ফাইলের নাম তাদের পূর্বে লিখুন করুন. কোন ফাইল এছাড়াও ড্র্যাগ এবং ড্রপ দ্বারা নির্বাচন করা সম্ভব.';
+$lang['mediaextchange'] = 'ফাইল এক্সটেনশন .%s থেকে .%s\'এ পরিবর্তন হলো !';
+$lang['reference'] = 'তথ্যসূত্রের জন্য ';
+$lang['ref_inuse'] = 'এই ফাইল মুছে ফেলা যাবে না কারণ এটি এখনও ব্যবহৃত হচ্ছে নিম্নলিখিত পাতা দ্বারা:';
+$lang['ref_hidden'] = 'এই পাতায় কিছু রেফারেন্স পড়ার আপনার আনুমতি নেই';
+$lang['hits'] = 'সফল ';
+$lang['quickhits'] = 'পৃষ্ঠা মেলে';
+$lang['toc'] = 'সূচীপত্র';
+$lang['current'] = 'বর্তমান';
+$lang['yours'] = 'আপনার সংস্করণ
+';
+$lang['diff'] = 'বর্তমান সংস্করণের পার্থক্য দেখান ';
+$lang['diff2'] = 'নির্বাচিত সংস্করণের মধ্যে পার্থক্য দেখান ';
+$lang['diff_type'] = 'পার্থক্য দেখুন:';
+$lang['diff_inline'] = 'ইনলাইন';
+$lang['diff_side'] = 'পাশাপাশি';
+$lang['diffprevrev'] = 'পূর্ববর্তী সংস্করণ';
+$lang['diffnextrev'] = 'পরবর্তী সংস্করণ';
+$lang['difflastrev'] = 'সর্বশেষ সংস্করণ';
+$lang['diffbothprevrev'] = 'উভয় পক্ষের পূর্ববর্তী সংস্করণ';
+$lang['diffbothnextrev'] = 'উভয় পক্ষের পরবর্তী সংস্করণ';
+$lang['line'] = 'লাইন';
+$lang['breadcrumb'] = 'ট্রেস:';
+$lang['youarehere'] = 'আপনি এখানে আছেন:';
+$lang['lastmod'] = 'শেষ বার পরিমার্জিত';
+$lang['by'] = 'দ্বারা';
+$lang['deleted'] = 'মুছে ফেলা';
+$lang['created'] = 'তৈরি করা';
+$lang['restored'] = 'পুরানো সংস্করণের পুনঃস্থাপন (%s)';
+$lang['external_edit'] = 'বাহ্যিক সম্পাদনা';
+$lang['summary'] = 'সম্পাদনা সারাংশ';
+$lang['noflash'] = 'এ href="http://www.adobe.com/products/flashplayer/"> অ্যাডোবি ফ্ল্যাশ প্লাগইন এই সামগ্রী প্রদর্শন করার জন্য প্রয়োজন হয়.';
+$lang['download'] = 'ডাউনলোড স্নিপেট ';
+$lang['tools'] = 'সরঞ্জামসমূহ';
+$lang['user_tools'] = 'ব্যবহারকারীর সরঞ্জামসমূহ';
+$lang['site_tools'] = 'সাইটের সরঞ্জামসমূহ';
+$lang['page_tools'] = 'পৃষ্ঠার সরঞ্জামসমূহ';
+$lang['skip_to_content'] = 'বিষয়ে এড়িয়ে যান';
+$lang['sidebar'] = 'সাইডবার';
+$lang['mail_newpage'] = 'পৃষ্ঠা যোগ করা হয়েছে:';
+$lang['mail_changed'] = 'পৃষ্ঠা পরিবর্তন করা হয়েছে:';
+$lang['mail_subscribe_list'] = 'পৃষ্ঠাগুলির নামস্থান পরিবর্তন:';
+$lang['mail_new_user'] = 'নতুন ব্যবহারকারী:';
+$lang['mail_upload'] = 'ফাইল আপলোড করেছেন:';
+$lang['changes_type'] = 'দেখুন পরিবর্তনসমূহ';
+$lang['pages_changes'] = 'পৃষ্ঠাগুলি';
+$lang['media_changes'] = 'মিডিয়া ফাইলগুলি';
+$lang['both_changes'] = 'পেজ এবং মিডিয়া ফাইল উভয়েই';
+$lang['qb_bold'] = 'গাঢ় লেখা';
+$lang['qb_italic'] = 'বাঁকা লেখা';
+$lang['qb_underl'] = 'আন্ডারলাইন টেক্সট';
+$lang['qb_code'] = 'মোনোস্কেপ লেখা';
+$lang['qb_strike'] = 'স্ট্রাইক মাধ্যমে টেক্সট';
+$lang['qb_h1'] = 'স্তর 1 শিরোনাম';
+$lang['qb_h2'] = 'স্তর 2 শিরোনাম';
+$lang['qb_h3'] = 'স্তর 3 শিরোনাম';
+$lang['qb_h4'] = 'স্তর 4 শিরোনাম';
+$lang['qb_h5'] = 'স্তর 5 শিরোনাম';
+$lang['qb_h'] = 'শিরোনাম';
+$lang['qb_hs'] = 'নির্বাচন করুন শিরোনাম';
diff --git a/public_html/inc/lang/ca-valencia/admin.txt b/public_html/inc/lang/ca-valencia/admin.txt
new file mode 100644
index 00000000..60b1b6e5
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/admin.txt
@@ -0,0 +1,4 @@
+====== Administració ======
+
+Baix pot trobar una llista de tasques administratives disponibles en DokuWiki.
+
diff --git a/public_html/inc/lang/ca-valencia/adminplugins.txt b/public_html/inc/lang/ca-valencia/adminplugins.txt
new file mode 100644
index 00000000..010701e4
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/adminplugins.txt
@@ -0,0 +1 @@
+===== Plugins adicionals =====
diff --git a/public_html/inc/lang/ca-valencia/backlinks.txt b/public_html/inc/lang/ca-valencia/backlinks.txt
new file mode 100644
index 00000000..bd7fde83
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/backlinks.txt
@@ -0,0 +1,3 @@
+====== Vínculs remitents ======
+
+Una llista de pàgines que pareixen vincular a la pàgina actual.
diff --git a/public_html/inc/lang/ca-valencia/conflict.txt b/public_html/inc/lang/ca-valencia/conflict.txt
new file mode 100644
index 00000000..6e91fe5e
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/conflict.txt
@@ -0,0 +1,6 @@
+====== Ya existix una versió més nova ======
+
+Existix una versió més nova del document que ha editat. Açò ha passat perquè un altre usuari ha modificat el document mentre vosté estava editant-lo.
+
+Estudie be les diferències mostrades avall i decidixca quina versió vol guardar. Si pulsa ''Guardar'' es guardarà la versió que està editant. Pulse ''Cancelar'' per a conservar la versió modificada per l'atre usuari.
+
diff --git a/public_html/inc/lang/ca-valencia/denied.txt b/public_html/inc/lang/ca-valencia/denied.txt
new file mode 100644
index 00000000..6640e07f
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/denied.txt
@@ -0,0 +1,4 @@
+====== Permís denegat ======
+
+Disculpe, pero no té permís per a continuar.
+
diff --git a/public_html/inc/lang/ca-valencia/diff.txt b/public_html/inc/lang/ca-valencia/diff.txt
new file mode 100644
index 00000000..2b5c60e1
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/diff.txt
@@ -0,0 +1,4 @@
+====== Diferències ======
+
+Ací es mostren les diferències entre dos versions de la pàgina.
+
diff --git a/public_html/inc/lang/ca-valencia/draft.txt b/public_html/inc/lang/ca-valencia/draft.txt
new file mode 100644
index 00000000..d3972a78
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/draft.txt
@@ -0,0 +1,6 @@
+====== Borrador trobat ======
+
+L'última edició d'esta pàgina no es completà correctament. DokuWiki guarda automàticament un borrador que ara pot recuperar per a continuar editant. Baix pot vore la data en què es guardà l'últim borrador.
+
+Per favor, decidisca si vol //recuperar// la sessió que pergué, //borrar// el borrador o //cancelar// esta edició.
+
diff --git a/public_html/inc/lang/ca-valencia/edit.txt b/public_html/inc/lang/ca-valencia/edit.txt
new file mode 100644
index 00000000..e1ca6bf2
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/edit.txt
@@ -0,0 +1,2 @@
+Edite la pàgina i pulse 'Guardar". Consulte la [[wiki:syntax|Sintaxis]] del Wiki. Per favor, edite la pàgina només **si pot millorar-la**. Si vol fer proves, deprenga a utilisar el Wiki en el [[playground:playground|espai de proves]].
+
diff --git a/public_html/inc/lang/ca-valencia/editrev.txt b/public_html/inc/lang/ca-valencia/editrev.txt
new file mode 100644
index 00000000..54feb3bb
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/editrev.txt
@@ -0,0 +1,2 @@
+**Ha carregat una versió antiga del document!** Si la guarda crearà una nova versió en el contingut d'esta.
+----
diff --git a/public_html/inc/lang/ca-valencia/index.txt b/public_html/inc/lang/ca-valencia/index.txt
new file mode 100644
index 00000000..5e57c168
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/index.txt
@@ -0,0 +1,4 @@
+====== Índex ======
+
+Un índex de totes les pàgines disponibles ordenades per [[doku>namespaces|espais de noms]].
+
diff --git a/public_html/inc/lang/ca-valencia/install.html b/public_html/inc/lang/ca-valencia/install.html
new file mode 100644
index 00000000..804b8031
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/install.html
@@ -0,0 +1,8 @@
+Esta pàgina l'ajudarà en la primera instalació i configuració de Dokuwiki. N'hi ha més informació de l'instalador disponible en la
+pàgina de documentació.
+
+DokuWiki utilitza arxius corrents per al magatzemament de les pàgines del wiki i atra informació associada ad estes pàgines (p. e. imàgens, índexs de busca, versions antigues, etc.). Per a que DokuWiki funcione correctament deu tindre accés d'escritura als directoris que contenen estos archius. Est instalador no pot ajustar els permissos del directori. Normalment haurà de fer-ho directament en una consola de del sistema o, si utilisa un hostage, per FTP o en el panel de control (p. e. cPanel).
+
+L'instali·lador configurarà ACL en el seu DokuWiki, que al mateix temps permet l'accés de l'administrador i l'accés al menú d'administració de DokuWiki per a instalar plugins, gestionar usuaris, gestionar els accessos a les pàgines del wiki i la modificació dels ajusts de configuració. No és necessari per a que DokuWiki funcione, pero farà més fàcil la seua administració.
+
+Els usuaris experimentats o en necessitats especials de configuració deuen utilitzar estos vínculs per a informació referent a instruccions d'instalació i ajusts de configuració.
diff --git a/public_html/inc/lang/ca-valencia/lang.php b/public_html/inc/lang/ca-valencia/lang.php
new file mode 100644
index 00000000..da6bd67c
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/lang.php
@@ -0,0 +1,223 @@
+
+ * @author Bernat Arlandis
+ *
+ */
+$lang['encoding'] = 'utf-8';
+$lang['direction'] = 'ltr';
+$lang['doublequoteopening'] = '“';
+$lang['doublequoteclosing'] = '”';
+$lang['singlequoteopening'] = '‘';
+$lang['singlequoteclosing'] = '’';
+$lang['apostrophe'] = '’';
+$lang['btn_edit'] = 'Editar esta pàgina';
+$lang['btn_source'] = 'Mostrar font';
+$lang['btn_show'] = 'Mostrar pàgina';
+$lang['btn_create'] = 'Crear esta pàgina';
+$lang['btn_search'] = 'Buscar';
+$lang['btn_save'] = 'Guardar';
+$lang['btn_preview'] = 'Vista prèvia';
+$lang['btn_top'] = 'Tornar dalt';
+$lang['btn_newer'] = '<< més recents';
+$lang['btn_older'] = 'manco recents >>';
+$lang['btn_revs'] = 'Versions antigues';
+$lang['btn_recent'] = 'Canvis recents';
+$lang['btn_upload'] = 'Pujar';
+$lang['btn_cancel'] = 'Cancelar';
+$lang['btn_index'] = 'Índex';
+$lang['btn_secedit'] = 'Editar';
+$lang['btn_login'] = 'Iniciar sessió';
+$lang['btn_logout'] = 'Tancar sessió';
+$lang['btn_admin'] = 'Administrar';
+$lang['btn_update'] = 'Actualisar';
+$lang['btn_delete'] = 'Borrar';
+$lang['btn_back'] = 'Arrere';
+$lang['btn_backlink'] = 'Vínculs remitents';
+$lang['btn_subscribe'] = 'Subscriure\'s a la pàgina';
+$lang['btn_profile'] = 'Actualitzar perfil';
+$lang['btn_reset'] = 'Reiniciar';
+$lang['btn_draft'] = 'Editar borrador';
+$lang['btn_recover'] = 'Recuperar borrador';
+$lang['btn_draftdel'] = 'Borrar borrador';
+$lang['btn_revert'] = 'Recuperar';
+$lang['btn_register'] = 'Registrar-se';
+$lang['loggedinas'] = 'Sessió de:';
+$lang['user'] = 'Nom d\'usuari';
+$lang['pass'] = 'Contrasenya';
+$lang['newpass'] = 'Contrasenya nova';
+$lang['oldpass'] = 'Confirmar la contrasenya actual';
+$lang['passchk'] = 'una atra volta';
+$lang['remember'] = 'Recorda\'m';
+$lang['fullname'] = 'Nom complet';
+$lang['email'] = 'Correu electrònic';
+$lang['profile'] = 'Perfil d\'usuari';
+$lang['badlogin'] = 'Disculpe, pero el nom d\'usuari o la contrasenya són incorrectes.';
+$lang['minoredit'] = 'Canvis menors';
+$lang['draftdate'] = 'Borrador gravat el';
+$lang['nosecedit'] = 'La pàgina ha canviat mentres tant, l\'informació de la secció no estava al dia, s\'ha carregat la pàgina sancera.';
+$lang['regmissing'] = 'Disculpe, pero deu omplir tots els camps.';
+$lang['reguexists'] = 'Disculpe, pero ya existix un usuari en este nom.';
+$lang['regsuccess'] = 'S\'ha creat l\'usuari i se li ha enviat la contrasenya per correu electrònic.';
+$lang['regsuccess2'] = 'S\'ha creat l\'usuari.';
+$lang['regmailfail'] = 'Pareix que ha hagut un error enviant el correu en la contrasenya. ¡Per favor, contacte en l\'administrador!';
+$lang['regbadmail'] = 'La direcció de correu no pareix vàlida - contacte en l\'administrador si pensa que és deu a un erro nostre';
+$lang['regbadpass'] = 'Les dos contrasenyes que ha donat no són idèntiques, per favor, torne a intentar-ho.';
+$lang['regpwmail'] = 'La seua contrasenya de DokuWiki';
+$lang['reghere'] = '¿Encara no té un conte? Cree-se\'n un';
+$lang['profna'] = 'Este wiki no li permet modificar el perfil';
+$lang['profnochange'] = 'Sense canvis, no hi ha res que fer.';
+$lang['profnoempty'] = 'No es permet deixar el nom o la direcció de correu buits.';
+$lang['profchanged'] = 'Perfil de l\'usuari actualitzat.';
+$lang['pwdforget'] = '¿Ha oblidat la contrasenya? Demane\'n una nova';
+$lang['resendna'] = 'Este wiki no permet reenviar la contrasenya.';
+$lang['resendpwdmissing'] = 'Disculpe, pero deu omplir tots els camps.';
+$lang['resendpwdnouser'] = 'Disculpe, pero no trobem ad est usuari en la base de senyes.';
+$lang['resendpwdbadauth'] = 'Disculpe, pero este còdic d\'autenticació no es vàlit. Verifique que haja utilisat el víncul de confirmació sancer.';
+$lang['resendpwdconfirm'] = 'Li hem enviat un víncul de confirmació al correu.';
+$lang['resendpwdsuccess'] = 'Se li ha enviat una nova contrasenya per correu electrònic.';
+$lang['license'] = 'Excepte quan s\'indique una atra cosa, el contingut d\'este wiki està llicenciat baix la següent llicència:';
+$lang['licenseok'] = 'Nota: a l\'editar esta pàgina accepta llicenciar el seu contingut baix la següent llicència:';
+$lang['searchmedia'] = 'Buscar nom d\'archiu:';
+$lang['searchmedia_in'] = 'Buscar en %s';
+$lang['txt_upload'] = 'Seleccione l\'archiu que vol pujar:';
+$lang['txt_filename'] = 'Enviar com (opcional):';
+$lang['txt_overwrt'] = 'Sobreescriure archius existents';
+$lang['lockedby'] = 'Actualment bloquejat per:';
+$lang['lockexpire'] = 'El bloqueig venç a les:';
+$lang['js']['willexpire'] = 'El seu bloqueig per a editar esta pàgina vencerà en un minut.\nPer a evitar conflictes utilise el botó de vista prèvia i reiniciarà el contador.';
+$lang['js']['notsavedyet'] = 'Els canvis no guardats es perdran.\n¿Segur que vol continuar?';
+$lang['rssfailed'] = 'Ha ocorregut un erro al solicitar este canal: ';
+$lang['nothingfound'] = 'No s\'ha trobat res.';
+$lang['mediaselect'] = 'Arxius de mijos';
+$lang['uploadsucc'] = 'Enviament correcte';
+$lang['uploadfail'] = 'Enviament fallit. ¿Potser no tinga els permissos necessaris?';
+$lang['uploadwrong'] = 'Enviament denegat. ¡Esta extensió d\'archiu està prohibida!';
+$lang['uploadexist'] = 'L\'arxiu ya existix. No s\'ha fet res.';
+$lang['uploadbadcontent'] = 'El contingut enviat no coincidix en l\'extensió de l\'archiu %s';
+$lang['uploadspam'] = 'L\'enviament ha segut bloquejat per la llista anti-spam.';
+$lang['uploadxss'] = 'L\'enviament ha segut bloquejat per ser possiblement perillós.';
+$lang['uploadsize'] = 'L\'archiu enviat és massa gran. (màx. %s)';
+$lang['deletesucc'] = 'S\'ha borrat l\'archiu "%s".';
+$lang['deletefail'] = 'No s\'ha pogut borrar "%s" - comprove els permissos.';
+$lang['mediainuse'] = 'L\'arxiu "%s" no s\'ha borrat - encara s\'està utilisant.';
+$lang['namespaces'] = 'Espais de noms';
+$lang['mediafiles'] = 'Archius disponibles en';
+$lang['js']['searchmedia'] = 'Buscar archius';
+$lang['js']['keepopen'] = 'Mantindre la finestra oberta al seleccionar';
+$lang['js']['hidedetails'] = 'Ocultar detalls';
+$lang['js']['nosmblinks'] = 'Els vínculs a recursos compartits de Windows només funcionen en Microsoft Internet Explorer. No obstant, es poden copiar i apegar.';
+$lang['js']['linkwiz'] = 'Assistent de vínculs';
+$lang['js']['linkto'] = 'Vincular a:';
+$lang['js']['del_confirm'] = '¿Realment vol borrar el(s) ítem(s) seleccionat(s)?';
+$lang['mediausage'] = 'Utilize la següent sintaxis per a referenciar est archiu:';
+$lang['mediaview'] = 'Vore l\'archiu original';
+$lang['mediaroot'] = 'base';
+$lang['mediaupload'] = 'Enviar un arxiu a l\'espai de noms actual. Per a crear sub-espais, afigga\'ls separats per dos punts davant del nom de l\'arxiu que pose en "Enviar com".';
+$lang['mediaextchange'] = '¡Extensió de l\'archiu canviada de .%s a .%s!';
+$lang['reference'] = 'Referències per a';
+$lang['ref_inuse'] = 'No es pot borrar l\'arxiu perque encara s\'utilisa en les següents pàgines:';
+$lang['ref_hidden'] = 'Algunes referències estan en pàgines que no té permissos per a vore';
+$lang['hits'] = 'Encerts';
+$lang['quickhits'] = 'Noms de pàgines coincidents';
+$lang['toc'] = 'Taula de continguts';
+$lang['current'] = 'Actual';
+$lang['yours'] = 'La seua versió';
+$lang['diff'] = 'Mostrar diferències en la versió actual';
+$lang['diff2'] = 'Mostrar diferències entre versions';
+$lang['line'] = 'Llínea';
+$lang['breadcrumb'] = 'Traça:';
+$lang['youarehere'] = 'Vosté està ací:';
+$lang['lastmod'] = 'Última modificació el:';
+$lang['by'] = 'per';
+$lang['deleted'] = 'borrat';
+$lang['created'] = 'creat';
+$lang['restored'] = 'restaurada l\'última versió (%s)';
+$lang['external_edit'] = 'edició externa';
+$lang['summary'] = 'Editar sumari';
+$lang['noflash'] = 'Necessita el plúgin d\'Adobe Flash per a vore este contingut.';
+$lang['download'] = 'Descarregar un tros';
+$lang['mail_newpage'] = 'pàgina afegida:';
+$lang['mail_changed'] = 'pàgina canviada:';
+$lang['mail_new_user'] = 'Usuari nou:';
+$lang['mail_upload'] = 'archiu enviat:';
+$lang['qb_bold'] = 'Negreta';
+$lang['qb_italic'] = 'Itàlica';
+$lang['qb_underl'] = 'Subrallat';
+$lang['qb_code'] = 'Còdic';
+$lang['qb_strike'] = 'Tachat';
+$lang['qb_h1'] = 'Titular de nivell 1';
+$lang['qb_h2'] = 'Titular de nivell 2';
+$lang['qb_h3'] = 'Titular de nivell 3';
+$lang['qb_h4'] = 'Titular de nivell 4';
+$lang['qb_h5'] = 'Titular de nivell 5';
+$lang['qb_h'] = 'Titular';
+$lang['qb_hs'] = 'Triar titular';
+$lang['qb_hplus'] = 'Titular superior';
+$lang['qb_hminus'] = 'Titular inferior';
+$lang['qb_hequal'] = 'Titular al mateix nivell';
+$lang['qb_link'] = 'Víncul intern';
+$lang['qb_extlink'] = 'Víncul extern';
+$lang['qb_hr'] = 'Llínea horisontal';
+$lang['qb_ol'] = 'Llista numerada';
+$lang['qb_ul'] = 'Llista ';
+$lang['qb_media'] = 'Afegir imàgens i atres archius';
+$lang['qb_sig'] = 'Afegir firma';
+$lang['qb_smileys'] = 'Smileys';
+$lang['qb_chars'] = 'Caràcters especials';
+$lang['upperns'] = 'anar a l\'espai de noms superior';
+$lang['metaedit'] = 'Editar meta-senyes';
+$lang['metasaveerr'] = 'Error escrivint meta-senyes';
+$lang['metasaveok'] = 'Meta-senyes guardades';
+$lang['btn_img_backto'] = 'Tornar a %s';
+$lang['img_title'] = 'Títol:';
+$lang['img_caption'] = 'Subtítol:';
+$lang['img_date'] = 'Data:';
+$lang['img_fname'] = 'Nom de l\'arxiu:';
+$lang['img_fsize'] = 'Tamany:';
+$lang['img_artist'] = 'Fotógraf:';
+$lang['img_copyr'] = 'Copyright:';
+$lang['img_format'] = 'Format:';
+$lang['img_camera'] = 'Càmara:';
+$lang['img_keywords'] = 'Paraules clau:';
+$lang['authtempfail'] = 'L\'autenticació d\'usuaris està desactivada temporalment. Si la situació persistix, per favor, informe a l\'administrador del Wiki.';
+$lang['i_chooselang'] = 'Trie l\'idioma';
+$lang['i_installer'] = 'Instal·lador de DokuWiki';
+$lang['i_wikiname'] = 'Nom del Wiki';
+$lang['i_enableacl'] = 'Activar ACL (recomanat)';
+$lang['i_superuser'] = 'Super-usuari';
+$lang['i_problems'] = 'L\'instalador ha trobat els problemes mostrats més avall. No pot continuar fins que no els arregle.';
+$lang['i_modified'] = 'Per raons de seguritat, este procés només funcionarà en una instalació nova i verge de DokuWiki.
+Deuria tornar a extraure els archius del paquet que ha descarregat o consultar les
+instruccions d\'instalació de Dokuwiki completes';
+$lang['i_funcna'] = 'La funció de PHP %s
no està disponible. ¿Pot ser que el seu proveïdor d\'hostage l\'haja desactivada per algun motiu?';
+$lang['i_phpver'] = 'La versió de PHP %s
és menor que
+la %s
que es necessita. Necessita actualitzar PHP.';
+$lang['i_permfail'] = 'DokuWiki no pot escriure en %s
. ¡Necessita arreglar els permissos d\'este directori!';
+$lang['i_confexists'] = '%s
ya existix';
+$lang['i_writeerr'] = 'No es pot crear %s
. Haurà de comprovar els permissos del directori/archiu i crear manualment l\'arxiu.';
+$lang['i_badhash'] = 'dokuwiki.php substituït o modificat (hash=%s
)';
+$lang['i_badval'] = '%s
- valor illegal o buit';
+$lang['i_success'] = 'La configuració ha finalisat correctament. Ya pot borrar l\'arxiu install.php. Passe al
+nou DokuWiki.';
+$lang['i_failure'] = 'Han aparegut alguns erros escrivint els archius de configuració. Deurà arreglar-los manualment abans de que
+puga utilisar el nou DokuWiki.';
+$lang['i_policy'] = 'Política inicial ACL';
+$lang['i_pol0'] = 'Wiki obert (llegir, escriure i enviar tots)';
+$lang['i_pol1'] = 'Wiki públic (llegir tots, escriure i enviar només usuaris registrats)';
+$lang['i_pol2'] = 'Wiki tancat (llegir, escriure i enviar només usuaris registrats)';
+$lang['i_retry'] = 'Reintentar';
+$lang['recent_global'] = 'Està veent els canvis dins de l\'espai de noms %s. També pot vore els canvis recents en el wiki sancer.';
+$lang['years'] = 'fa %d anys';
+$lang['months'] = 'fa %d mesos';
+$lang['weeks'] = 'fa %d semanes';
+$lang['days'] = 'fa %d dies';
+$lang['hours'] = 'fa %d hores';
+$lang['minutes'] = 'fa %d minuts';
+$lang['seconds'] = 'fa %d segons';
+$lang['email_signature_text'] = 'Este correu ha segut generat per DokuWiki en
+@DOKUWIKIURL@';
+
diff --git a/public_html/inc/lang/ca-valencia/locked.txt b/public_html/inc/lang/ca-valencia/locked.txt
new file mode 100644
index 00000000..bdb2bdf0
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/locked.txt
@@ -0,0 +1,3 @@
+====== Pàgina bloquejada ======
+
+Esta pàgina està actualment bloquejada mentres l'edita un atre usuari. Ha d'esperar fins que l'usuari acabe d'editar la pàgina o vença el bloqueig.
diff --git a/public_html/inc/lang/ca-valencia/login.txt b/public_html/inc/lang/ca-valencia/login.txt
new file mode 100644
index 00000000..23cfd982
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/login.txt
@@ -0,0 +1,4 @@
+====== Inici de sessió ======
+
+Encara no ha iniciat sessió! Introduïxca les seues credencials d'autenticació per a iniciar-la. Necessita tindre les galetes del navegador activades.
+
diff --git a/public_html/inc/lang/ca-valencia/mailtext.txt b/public_html/inc/lang/ca-valencia/mailtext.txt
new file mode 100644
index 00000000..b9de236d
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/mailtext.txt
@@ -0,0 +1,12 @@
+S'ha afegit o modificat una pàgina en el seu DokuWiki. Les senyes són:
+
+Data: @DATE@
+Navegador: @BROWSER@
+Direcció IP: @IPADDRESS@
+Nom de la màquina: @HOSTNAME@
+Revisió anterior: @OLDPAGE@
+Nova revisió: @NEWPAGE@
+Resum: @SUMMARY@
+Usuari: @USER@
+
+@DIFF@
diff --git a/public_html/inc/lang/ca-valencia/newpage.txt b/public_html/inc/lang/ca-valencia/newpage.txt
new file mode 100644
index 00000000..9605ab07
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/newpage.txt
@@ -0,0 +1,3 @@
+====== Este tema encara no existix ======
+
+Ha seguit un víncul a una pàgina que encara no existix. Si té els permissos necessaris pot crear-la utilizant el botó ''Crear esta pàgina''.
diff --git a/public_html/inc/lang/ca-valencia/norev.txt b/public_html/inc/lang/ca-valencia/norev.txt
new file mode 100644
index 00000000..434e62df
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/norev.txt
@@ -0,0 +1,3 @@
+====== No existix la versió ======
+
+La versió especificada no existix. Utilise el botó ''Versions antigues'' per a vore una llista de versions antigues d'este document.
\ No newline at end of file
diff --git a/public_html/inc/lang/ca-valencia/password.txt b/public_html/inc/lang/ca-valencia/password.txt
new file mode 100644
index 00000000..d9a781e0
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/password.txt
@@ -0,0 +1,6 @@
+¡Hola @FULLNAME@!
+
+Estes són les seues senyes d'usuari per a @TITLE@ en @DOKUWIKIURL@
+
+Usuari : @LOGIN@
+Contrasenya : @PASSWORD@
diff --git a/public_html/inc/lang/ca-valencia/preview.txt b/public_html/inc/lang/ca-valencia/preview.txt
new file mode 100644
index 00000000..e4cddec2
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/preview.txt
@@ -0,0 +1,4 @@
+====== Previsualisació ======
+
+Açò es una previsualització per a vore cóm quedarà la pàgina. Recorde que encara no està guardada!
+
diff --git a/public_html/inc/lang/ca-valencia/pwconfirm.txt b/public_html/inc/lang/ca-valencia/pwconfirm.txt
new file mode 100644
index 00000000..a537567a
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/pwconfirm.txt
@@ -0,0 +1,11 @@
+¡Hola @FULLNAME@!
+
+Algú ha solicitat una nova contrasenya per a entrar com a
+@TITLE en @DOKUWIKIURL@
+
+Si no ha segut vosté qui ha solicitat la nova contrasenya ignore este correu.
+
+Per a confirmar que la petició ha segut feta realment per vosté
+utilise el següent víncul.
+
+@CONFIRM@
diff --git a/public_html/inc/lang/ca-valencia/read.txt b/public_html/inc/lang/ca-valencia/read.txt
new file mode 100644
index 00000000..28e42458
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/read.txt
@@ -0,0 +1,2 @@
+Esta pàgina és només de llectura. Pot vore el còdic font, pero no pot canviar-lo. Pregunte a l'administrador si creu que és un error.
+
diff --git a/public_html/inc/lang/ca-valencia/recent.txt b/public_html/inc/lang/ca-valencia/recent.txt
new file mode 100644
index 00000000..ca1f5c5e
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/recent.txt
@@ -0,0 +1,5 @@
+====== Canvis recents ======
+
+Les següents pàgines han canviat recentment.
+
+
diff --git a/public_html/inc/lang/ca-valencia/register.txt b/public_html/inc/lang/ca-valencia/register.txt
new file mode 100644
index 00000000..ec4ff8b2
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/register.txt
@@ -0,0 +1,4 @@
+====== Registrar-se com a usuari nou ======
+
+Escriga tota la informació que se li demana al davall per a crear un nou conte en este wiki. Assegure's de donar una **direcció de correu electrònic vàlida** - si no se li demana una contrasenya ací se li enviarà a eixa adreça. El nom d'usuari deuria ser un [[doku>pagename|nom de pàgina]] vàlid.
+
diff --git a/public_html/inc/lang/ca-valencia/registermail.txt b/public_html/inc/lang/ca-valencia/registermail.txt
new file mode 100644
index 00000000..02f2c1a3
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/registermail.txt
@@ -0,0 +1,10 @@
+S'ha registrat un usuari nou. Estes són les senyes:
+
+Nom d'usuari : @NEWUSER@
+Nom complet : @NEWNAME@
+Correu electrònic : @NEWEMAIL@
+
+Data : @DATE@
+Navegador : @BROWSER@
+Direcció IP : @IPADDRESS@
+Nom de la màquina : @HOSTNAME@
diff --git a/public_html/inc/lang/ca-valencia/resendpwd.txt b/public_html/inc/lang/ca-valencia/resendpwd.txt
new file mode 100644
index 00000000..2feac096
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/resendpwd.txt
@@ -0,0 +1,4 @@
+====== Enviar contrasenya nova ======
+
+Per favor, introduïxca el nom d'usuari en el formulari per a demanar una nova contrasenya per al seu conte en este wiki. Se li enviarà un víncul de confirmació a la direcció de correu en que estiga registrat.
+
diff --git a/public_html/inc/lang/ca-valencia/revisions.txt b/public_html/inc/lang/ca-valencia/revisions.txt
new file mode 100644
index 00000000..d83a2e9b
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/revisions.txt
@@ -0,0 +1,4 @@
+====== Versions antigues ======
+
+Versions antigues del document actual. Per a recuperar una versió anterior de la pàgina, tríe-la ací baix, pulse ''Editar esta pàgina'' i guarde-la.
+
diff --git a/public_html/inc/lang/ca-valencia/searchpage.txt b/public_html/inc/lang/ca-valencia/searchpage.txt
new file mode 100644
index 00000000..390d6064
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/searchpage.txt
@@ -0,0 +1,4 @@
+====== Buscar ======
+
+Pot vore els resultats de la busca ací baix. @CREATEPAGEINFO@
+
diff --git a/public_html/inc/lang/ca-valencia/showrev.txt b/public_html/inc/lang/ca-valencia/showrev.txt
new file mode 100644
index 00000000..86f28229
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/showrev.txt
@@ -0,0 +1,2 @@
+**¡Açò és una versió antiga del document!**
+----
diff --git a/public_html/inc/lang/ca-valencia/stopwords.txt b/public_html/inc/lang/ca-valencia/stopwords.txt
new file mode 100644
index 00000000..39c5bb3d
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/stopwords.txt
@@ -0,0 +1,73 @@
+# This is a list of words the indexer ignores, one word per line
+# When you edit this file be sure to use UNIX line endings (single newline)
+# No need to include words shorter than 3 chars - these are ignored anyway
+ell
+ella
+nosaltres
+vosaltres
+ells
+els
+los
+dels
+les
+una
+uns
+unes
+seu
+seua
+seus
+seues
+meu
+meua
+meus
+meues
+teu
+teua
+teus
+teues
+nostre
+nostres
+vostre
+vostres
+nos
+vos
+#eix
+eixe
+eixa
+aquell
+aquella
+aquells
+aquelles
+#est
+este
+esta
+estos
+estes
+està
+això
+açò
+allò
+des
+sóc
+eres
+som
+sou
+són
+fon
+per
+com
+cóm
+qui
+que
+què
+quan
+quant
+quants
+quanta
+quantes
+mentres
+però
+atre
+atra
+atres
+també
diff --git a/public_html/inc/lang/ca-valencia/updateprofile.txt b/public_html/inc/lang/ca-valencia/updateprofile.txt
new file mode 100644
index 00000000..9116fedf
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/updateprofile.txt
@@ -0,0 +1,5 @@
+====== Actualise el seu perfil ======
+
+Només deu completar els camps que vol canviar. No es pot canviar el nom d'usuari.
+
+
diff --git a/public_html/inc/lang/ca-valencia/uploadmail.txt b/public_html/inc/lang/ca-valencia/uploadmail.txt
new file mode 100644
index 00000000..a67397db
--- /dev/null
+++ b/public_html/inc/lang/ca-valencia/uploadmail.txt
@@ -0,0 +1,10 @@
+S'ha enviat un archiu al seu DokuWiki. Les senyes:
+
+Arxiu: @MEDIA@
+Data: @DATE@
+Navegador: @BROWSER@
+Direcció IP: @IPADDRESS@
+Nom de la màquina: @HOSTNAME@
+Tamany: @SIZE@
+Tipo MIME: @MIME@
+Usuari: @USER@
diff --git a/public_html/inc/lang/ca/admin.txt b/public_html/inc/lang/ca/admin.txt
new file mode 100644
index 00000000..5c0a6d00
--- /dev/null
+++ b/public_html/inc/lang/ca/admin.txt
@@ -0,0 +1,4 @@
+====== Administració ======
+
+Heus ací una llista de les tasques administratives disponibles en DokuWiki.
+
diff --git a/public_html/inc/lang/ca/adminplugins.txt b/public_html/inc/lang/ca/adminplugins.txt
new file mode 100644
index 00000000..9ea165c1
--- /dev/null
+++ b/public_html/inc/lang/ca/adminplugins.txt
@@ -0,0 +1 @@
+===== Connectors addicionals =====
\ No newline at end of file
diff --git a/public_html/inc/lang/ca/backlinks.txt b/public_html/inc/lang/ca/backlinks.txt
new file mode 100644
index 00000000..e2ecaf4f
--- /dev/null
+++ b/public_html/inc/lang/ca/backlinks.txt
@@ -0,0 +1,4 @@
+====== Enllaços ======
+
+Heus ací una llista de pàgines enllaçades amb la pàgina actual.
+
diff --git a/public_html/inc/lang/ca/conflict.txt b/public_html/inc/lang/ca/conflict.txt
new file mode 100644
index 00000000..53183f0b
--- /dev/null
+++ b/public_html/inc/lang/ca/conflict.txt
@@ -0,0 +1,6 @@
+====== Hi ha una versió més recent ======
+
+Existeix una versió més recent del document que heu editat. Això passa quan un altre usuari canvia el document mentre l'estàveu editant.
+
+Examineu detingudament les diferències que es mostren més avall i després decidiu quina versió voleu mantenir. Si trieu ''desa'', es desarà la vostra versió. Si trieu ''cancel·la'' es mantindrà la versió actual.
+
diff --git a/public_html/inc/lang/ca/denied.txt b/public_html/inc/lang/ca/denied.txt
new file mode 100644
index 00000000..3f66d6bb
--- /dev/null
+++ b/public_html/inc/lang/ca/denied.txt
@@ -0,0 +1,4 @@
+====== Permís denegat ======
+
+No teniu prou drets per continuar.
+
diff --git a/public_html/inc/lang/ca/diff.txt b/public_html/inc/lang/ca/diff.txt
new file mode 100644
index 00000000..83ca8678
--- /dev/null
+++ b/public_html/inc/lang/ca/diff.txt
@@ -0,0 +1,4 @@
+====== Diferències ======
+
+Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
+
diff --git a/public_html/inc/lang/ca/draft.txt b/public_html/inc/lang/ca/draft.txt
new file mode 100644
index 00000000..68593c2f
--- /dev/null
+++ b/public_html/inc/lang/ca/draft.txt
@@ -0,0 +1,5 @@
+====== S'ha trobat un esborrany ======
+
+La darrera sessió vostra d'edició d'aquesta pàgina no es va completar correctament. DokuWiki en va desar automàticament un esborrany mentre treballàveu, el qual podeu utilitzar ara per continuar l'edició. Més avall podeu veure la data i hora en què es va desar durant la vostra darrera sessió.
+
+Decidiu si voleu //recuperar// la vostra darrera sessió d'edició, //suprimir// l'esborrany que es va desar automàticament o //cancel·lar// el procés d'edició.
\ No newline at end of file
diff --git a/public_html/inc/lang/ca/edit.txt b/public_html/inc/lang/ca/edit.txt
new file mode 100644
index 00000000..743b0ff5
--- /dev/null
+++ b/public_html/inc/lang/ca/edit.txt
@@ -0,0 +1,2 @@
+Editeu la pàgina i premeu ''Desa''. Per a més informació sobre la sintaxi Wiki vegeu [[wiki:syntax|sintaxi]]. Si us plau, editeu la pàgina només si podeu **millorar-la**. Si voleu fer proves, aprengueu a donar les primeres passes al [[playground:playground|pati]].
+
diff --git a/public_html/inc/lang/ca/editrev.txt b/public_html/inc/lang/ca/editrev.txt
new file mode 100644
index 00000000..b2f304cb
--- /dev/null
+++ b/public_html/inc/lang/ca/editrev.txt
@@ -0,0 +1,2 @@
+**Heu penjat una revisió anterior del document.** Si la deseu, creareu una nova versió amb aquestes dades.
+----
diff --git a/public_html/inc/lang/ca/index.txt b/public_html/inc/lang/ca/index.txt
new file mode 100644
index 00000000..6ba71fd8
--- /dev/null
+++ b/public_html/inc/lang/ca/index.txt
@@ -0,0 +1,4 @@
+====== Índex ======
+
+Heus ací un índex de totes les pàgines disponibles, ordenades per [[doku>namespaces|espais]].
+
diff --git a/public_html/inc/lang/ca/install.html b/public_html/inc/lang/ca/install.html
new file mode 100644
index 00000000..363e598d
--- /dev/null
+++ b/public_html/inc/lang/ca/install.html
@@ -0,0 +1,8 @@
+Aquesta pàgina us ajuda a fer la primera instal·lació i la configuració de Dokuwiki. Hi ha més informació sobre aquest instal·lador en la seva pàgina de documentació.
+
+DokuWiki utilitza fitxers normals per a emmagatzemar les pàgines wiki i la informació associada a aquestes pàgines (p. ex. imatges, índexs de cerca, revisions anteriors, etc.). Per tal de funcionar correctament DokuWiki necessita tenir accés d'escriptura als directoris que contenen aquests fitxers. Aquest instal·lador no pot configurar els permisos del directori. Normalment això cal fer-ho directament en la línia d'ordres o, si esteu utilitzant un hostatge, mitjançant FTP o el tauler de control del vostre hostatge (p. ex. cPanel).
+
+Aquest instal·lador configurarà el vostre DokuWiki per a ACL, cosa que, al seu torn, permet l'accés de l'administrador al menú d'administració, on pot instal·lar connectors, gestionar usuaris, gestionar l'accés a les pàgines wiki i modificar els paràmetres de configuració. No és un requisit per al funcionament de DokuWiki, però el fa més fàcil d'administrar.
+
+Els usuaris experts o els que tinguin requeriments específics poden utilitzar els enllaços següents per a obtenir més detalls sobre instruccions d'instal·lació
+i paràmetres de configuració.
\ No newline at end of file
diff --git a/public_html/inc/lang/ca/jquery.ui.datepicker.js b/public_html/inc/lang/ca/jquery.ui.datepicker.js
new file mode 100644
index 00000000..9febd90e
--- /dev/null
+++ b/public_html/inc/lang/ca/jquery.ui.datepicker.js
@@ -0,0 +1,37 @@
+/* Inicialització en català per a l'extensió 'UI date picker' per jQuery. */
+/* Writers: (joan.leon@gmail.com). */
+( function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+
+ // AMD. Register as an anonymous module.
+ define( [ "../widgets/datepicker" ], factory );
+ } else {
+
+ // Browser globals
+ factory( jQuery.datepicker );
+ }
+}( function( datepicker ) {
+
+datepicker.regional.ca = {
+ closeText: "Tanca",
+ prevText: "Anterior",
+ nextText: "Següent",
+ currentText: "Avui",
+ monthNames: [ "gener","febrer","març","abril","maig","juny",
+ "juliol","agost","setembre","octubre","novembre","desembre" ],
+ monthNamesShort: [ "gen","feb","març","abr","maig","juny",
+ "jul","ag","set","oct","nov","des" ],
+ dayNames: [ "diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte" ],
+ dayNamesShort: [ "dg","dl","dt","dc","dj","dv","ds" ],
+ dayNamesMin: [ "dg","dl","dt","dc","dj","dv","ds" ],
+ weekHeader: "Set",
+ dateFormat: "dd/mm/yy",
+ firstDay: 1,
+ isRTL: false,
+ showMonthAfterYear: false,
+ yearSuffix: "" };
+datepicker.setDefaults( datepicker.regional.ca );
+
+return datepicker.regional.ca;
+
+} ) );
diff --git a/public_html/inc/lang/ca/lang.php b/public_html/inc/lang/ca/lang.php
new file mode 100644
index 00000000..5133b37a
--- /dev/null
+++ b/public_html/inc/lang/ca/lang.php
@@ -0,0 +1,347 @@
+
+ * @author Carles Bellver
+ * @author daniel@6temes.cat
+ * @author Eduard Díaz
+ * @author controlonline.net
+ * @author Pauet
+ * @author Àngel Pérez Beroy
+ * @author David Surroca
+ */
+$lang['encoding'] = 'utf-8';
+$lang['direction'] = 'ltr';
+$lang['doublequoteopening'] = '“';
+$lang['doublequoteclosing'] = '”';
+$lang['singlequoteopening'] = '‘';
+$lang['singlequoteclosing'] = '’';
+$lang['apostrophe'] = '’';
+$lang['btn_edit'] = 'Edita aquesta pàgina';
+$lang['btn_source'] = 'Mostra codi font';
+$lang['btn_show'] = 'Mostra pàgina';
+$lang['btn_create'] = 'Crea aquesta pàgina';
+$lang['btn_search'] = 'Cerca';
+$lang['btn_save'] = 'Desa';
+$lang['btn_preview'] = 'Previsualitza';
+$lang['btn_top'] = 'Torna dalt';
+$lang['btn_newer'] = '<< més recent';
+$lang['btn_older'] = 'menys recent >>';
+$lang['btn_revs'] = 'Revisions anteriors';
+$lang['btn_recent'] = 'Canvis recents';
+$lang['btn_upload'] = 'Penja';
+$lang['btn_cancel'] = 'Cancel·la';
+$lang['btn_index'] = 'Mapa del lloc';
+$lang['btn_secedit'] = 'Edita';
+$lang['btn_login'] = 'Entra';
+$lang['btn_logout'] = 'Surt';
+$lang['btn_admin'] = 'Admin';
+$lang['btn_update'] = 'Actualitza';
+$lang['btn_delete'] = 'Suprimeix';
+$lang['btn_back'] = 'Enrere';
+$lang['btn_backlink'] = 'Què hi enllaça';
+$lang['btn_subscribe'] = 'Subscripció a canvis d\'aquesta pàgina';
+$lang['btn_profile'] = 'Actualització del perfil';
+$lang['btn_reset'] = 'Reinicia';
+$lang['btn_resendpwd'] = 'Estableix una nova contrasenya';
+$lang['btn_draft'] = 'Edita esborrany';
+$lang['btn_recover'] = 'Recupera esborrany';
+$lang['btn_draftdel'] = 'Suprimeix esborrany';
+$lang['btn_revert'] = 'Restaura';
+$lang['btn_register'] = 'Registra\'m';
+$lang['btn_apply'] = 'Aplica';
+$lang['btn_media'] = 'Mànager Multimèdia';
+$lang['btn_deleteuser'] = 'Esborrar compte';
+$lang['btn_img_backto'] = 'Torna a %s';
+$lang['btn_mediaManager'] = 'Veure a multimèdia mànager ';
+$lang['loggedinas'] = 'Heu entrat com:';
+$lang['user'] = 'Nom d\'usuari';
+$lang['pass'] = 'Contrasenya';
+$lang['newpass'] = 'Nova contrasenya';
+$lang['oldpass'] = 'Confirmeu la contrasenya actual';
+$lang['passchk'] = 'una altra vegada';
+$lang['remember'] = 'Recorda\'m';
+$lang['fullname'] = 'Nom complet';
+$lang['email'] = 'Correu electrònic';
+$lang['profile'] = 'Perfil d\'usuari';
+$lang['badlogin'] = 'Nom d\'usuari o contrasenya incorrectes.';
+$lang['badpassconfirm'] = 'Contrasenya incorrecta';
+$lang['minoredit'] = 'Canvis menors';
+$lang['draftdate'] = 'L\'esborrany s\'ha desat automàticament';
+$lang['nosecedit'] = 'Mentrestant la pàgina ha estat modificada. La informació de seccions estava obsoleta i ha calgut carregar la pàgina sencera.';
+$lang['regmissing'] = 'Heu d\'omplir tots els camps.';
+$lang['reguexists'] = 'Ja existeix un altre usuari amb aquest nom.';
+$lang['regsuccess'] = 'S\'ha creat l\'usuari. La contrasenya s\'ha enviat per correu.';
+$lang['regsuccess2'] = 'S\'ha creat l\'usuari.';
+$lang['regfail'] = 'L\'usuari no pot ser creat';
+$lang['regmailfail'] = 'Sembla que un error ha impedit enviar la contrasenya per correu. Contacteu amb l\'administrador.';
+$lang['regbadmail'] = 'L\'adreça de correu que heu donat no sembla vàlida. Si creieu que això és un error, contacu amb l\'administrador.';
+$lang['regbadpass'] = 'Les dues contrasenyes no són iguals. Torneu a intentar-ho.';
+$lang['regpwmail'] = 'La vostra contrasenya per al Wiki';
+$lang['reghere'] = 'Si no teniu un compte, aquí en podeu obtenir un';
+$lang['profna'] = 'Aquest wiki no permet modificar el perfil';
+$lang['profnochange'] = 'No heu introduït cap canvi.';
+$lang['profnoempty'] = 'No es pot deixar en blanc el nom o l\'adreça de correu.';
+$lang['profchanged'] = 'El perfil d\'usuari s\'ha actualitzat correctament.';
+$lang['profnodelete'] = 'Aquesta wiki no permet esborrar usuaris';
+$lang['profdeleteuser'] = 'Esborrar compte';
+$lang['profdeleted'] = 'El vostre compte ha sigut esborrat d\'aquest compte';
+$lang['profconfdelete'] = 'Vull esmorrar el meu compte d\'aquesta wiki. Aquesta acció no pot desfer-se.';
+$lang['profconfdeletemissing'] = 'Confirmació no acceptada';
+$lang['proffail'] = 'Perfil d\'usuari no actialitzat';
+$lang['pwdforget'] = 'Heu oblidat la contrasenya? Podeu obtenir-ne una de nova.';
+$lang['resendna'] = 'Aquest wiki no permet tornar a enviar la contrasenya.';
+$lang['resendpwd'] = 'Estableix una nova contrasenya per';
+$lang['resendpwdmissing'] = 'Heu d\'emplenar tots els camps.';
+$lang['resendpwdnouser'] = 'No s\'ha pogut trobar aquest usuari a la base de dades.';
+$lang['resendpwdbadauth'] = 'Aquest codi d\'autenticació no és vàlid. Assegureu-vos d\'utilitzar l\'enllaç de confirmació complet.';
+$lang['resendpwdconfirm'] = 'Se us ha enviat per correu electrònic un enllaç de confirmació.';
+$lang['resendpwdsuccess'] = 'Se us ha enviat la nova contrasenya per correu electrònic.';
+$lang['license'] = 'Excepte on es digui una altra cosa, el contingut d\'aquest wiki està subjecte a la llicència següent:';
+$lang['licenseok'] = 'Nota. En editar aquesta pàgina esteu acceptant que el vostre contingut estigui subjecte a la llicència següent:';
+$lang['searchmedia'] = 'Cerca pel nom de fitxer';
+$lang['searchmedia_in'] = 'Cerca en: %s';
+$lang['txt_upload'] = 'Trieu el fitxer que voleu penjar:';
+$lang['txt_filename'] = 'Introduïu el nom wiki (opcional):';
+$lang['txt_overwrt'] = 'Sobreescriu el fitxer actual';
+$lang['maxuploadsize'] = 'Puja com a màxim %s per arxiu.';
+$lang['lockedby'] = 'Actualment blocat per:';
+$lang['lockexpire'] = 'Venciment del blocatge:';
+$lang['js']['willexpire'] = 'El blocatge per a editar aquesta pàgina venç d\'aquí a un minut.\nUtilitzeu la visualització prèvia per reiniciar el rellotge i evitar conflictes.';
+$lang['js']['notsavedyet'] = 'Heu fet canvis que es perdran si no els deseu.
+Voleu continuar?';
+$lang['js']['searchmedia'] = 'Cerca fitxers';
+$lang['js']['keepopen'] = 'Manté la finestra oberta';
+$lang['js']['hidedetails'] = 'Oculta detalls';
+$lang['js']['mediatitle'] = 'Propietats de l\'enllaç';
+$lang['js']['mediadisplay'] = 'Tipus d\'enllaç';
+$lang['js']['mediaalign'] = 'Alineació';
+$lang['js']['mediasize'] = 'Mida de la imatge';
+$lang['js']['mediatarget'] = 'Destí de l\'enllaç';
+$lang['js']['mediaclose'] = 'Tanca';
+$lang['js']['mediainsert'] = 'Inserta';
+$lang['js']['mediadisplayimg'] = 'Mostra la imatge';
+$lang['js']['mediadisplaylnk'] = 'Mostra només l\'enllaç';
+$lang['js']['mediasmall'] = 'Versió petita';
+$lang['js']['mediamedium'] = 'Versió mitjana';
+$lang['js']['medialarge'] = 'Versió gran';
+$lang['js']['mediaoriginal'] = 'Versió original';
+$lang['js']['medialnk'] = 'Enllaç a la pàgina de detalls';
+$lang['js']['mediadirect'] = 'Enllaç directe a l\'original';
+$lang['js']['medianolnk'] = 'No hi ha enllaç';
+$lang['js']['medianolink'] = 'No enllacis la imatge';
+$lang['js']['medialeft'] = 'Alinea la imatge a l\'esquerra.';
+$lang['js']['mediaright'] = 'Alinea la imatge a la dreta.';
+$lang['js']['mediacenter'] = 'Alinea la imatge al mig.';
+$lang['js']['medianoalign'] = 'No facis servir alineació.';
+$lang['js']['nosmblinks'] = 'Els enllaços amb recursos compartits de Windows només funcionen amb el Microsoft Internet Explorer.
+Si voleu podeu copiar i enganxar l\'enllaç.';
+$lang['js']['linkwiz'] = 'Auxiliar d\'enllaços';
+$lang['js']['linkto'] = 'Enllaça a:';
+$lang['js']['del_confirm'] = 'Suprimiu aquesta entrada?';
+$lang['js']['restore_confirm'] = 'Vols realment restaurar aquesta versió?';
+$lang['js']['media_diff'] = 'Veure les diferències:';
+$lang['js']['media_diff_both'] = 'Un al costat de l\'altre';
+$lang['js']['media_diff_opacity'] = 'Resalta';
+$lang['js']['media_diff_portions'] = 'Llisca';
+$lang['js']['media_select'] = 'Escull els arxius';
+$lang['js']['media_upload_btn'] = 'Pujar';
+$lang['js']['media_done_btn'] = 'Fet';
+$lang['js']['media_drop'] = 'Arrossega aquí els arxius a pujar';
+$lang['js']['media_cancel'] = 'esborra';
+$lang['js']['media_overwrt'] = 'Sobreescriu els arxius existents';
+$lang['rssfailed'] = 'S\'ha produït un error en recollir aquesta alimentació: ';
+$lang['nothingfound'] = 'No s\'ha trobat res.';
+$lang['mediaselect'] = 'Selecció de fitxers';
+$lang['uploadsucc'] = 'S\'ha penjat el fitxer';
+$lang['uploadfail'] = 'No es pot penjar el fitxer. Potser no teniu prou permisos?';
+$lang['uploadwrong'] = 'No es pot penjar el fitxer. Aquesta extensió està prohibida.';
+$lang['uploadexist'] = 'El fitxer ja existeix. No s\'ha penjat.';
+$lang['uploadbadcontent'] = 'El contingut que heu penjat coincideix amb l\'extensió de fitxer %s.';
+$lang['uploadspam'] = 'La càrrega ha estat blocada per la llista negra de brossa.';
+$lang['uploadxss'] = 'La càrrega ha estat blocada perquè podria ser un contingut maligne.';
+$lang['uploadsize'] = 'El fitxer que voleu penjar és massa gran (màxim %s)';
+$lang['deletesucc'] = 'S\'ha suprimit el fitxer "%s".';
+$lang['deletefail'] = 'No s\'ha pogut suprimir el fitxer "%s". Comproveu els permisos.';
+$lang['mediainuse'] = 'No s\'ha pogut suprimir el fitxer "%s". Encara s\'està utilitzant.';
+$lang['namespaces'] = 'Espais';
+$lang['mediafiles'] = 'Fitxers disponibles en';
+$lang['accessdenied'] = 'No teniu permís per a veure aquesta pàgina.';
+$lang['mediausage'] = 'Utilitzeu la sintaxi següent per referir-vos a aquest enllaç:';
+$lang['mediaview'] = 'Mostra el fitxer original';
+$lang['mediaroot'] = 'arrel';
+$lang['mediaupload'] = 'Pengeu aquí un fitxer dins de l\'espai actual. Per a crear un nou subespai, poseu-ne el nom davant del nom de fitxer i separeu-los amb el signe de dos punts.';
+$lang['mediaextchange'] = 'S\'ha canviat l\'extensió del fitxer de .%s a .%s';
+$lang['reference'] = 'Referències per a';
+$lang['ref_inuse'] = 'El fitxer no es pot suprimir perquè l\'estan utilitzant les pàgines següents:';
+$lang['ref_hidden'] = 'Algunes referències apareixen en pàgines per a les quals no teniu permís de lectura';
+$lang['hits'] = 'Resultats';
+$lang['quickhits'] = 'Noms de pàgina coincidents';
+$lang['toc'] = 'Taula de continguts';
+$lang['current'] = 'actual';
+$lang['yours'] = 'La vostra versió';
+$lang['diff'] = 'Mostra diferències amb la versió actual';
+$lang['diff2'] = 'Mostra diferències entre les revisions seleccionades';
+$lang['difflink'] = 'Enllaç a la visualització de la comparació';
+$lang['diff_type'] = 'Veieu les diferències:';
+$lang['diff_inline'] = 'En línia';
+$lang['diff_side'] = 'Un al costat de l\'altre';
+$lang['diffprevrev'] = 'Revisió prèvia';
+$lang['diffnextrev'] = 'Següent revisió';
+$lang['difflastrev'] = 'Ultima revisió';
+$lang['diffbothprevrev'] = 'Ambdós costats versió prèvia';
+$lang['diffbothnextrev'] = 'Ambdós costats nova versio';
+$lang['line'] = 'Línia';
+$lang['breadcrumb'] = 'Camí:';
+$lang['youarehere'] = 'Sou aquí:';
+$lang['lastmod'] = 'Darrera modificació:';
+$lang['by'] = 'per';
+$lang['deleted'] = 'suprimit';
+$lang['created'] = 'creat';
+$lang['restored'] = 's\'ha restaurat una versió anterior %s';
+$lang['external_edit'] = 'edició externa';
+$lang['summary'] = 'Resum d\'edició';
+$lang['noflash'] = 'Per a visualitzar aquest contingut necessiteu el connector d\'Adobe Flash.';
+$lang['download'] = 'Baixa el fragment';
+$lang['tools'] = 'Eines';
+$lang['user_tools'] = 'Eines de l\'usuari';
+$lang['site_tools'] = 'Eines del lloc';
+$lang['page_tools'] = 'Eines de la pàgina';
+$lang['skip_to_content'] = 'salta al contingut';
+$lang['sidebar'] = 'Barra lateral';
+$lang['mail_newpage'] = 'pàgina afegida:';
+$lang['mail_changed'] = 'pàgina modificada:';
+$lang['mail_subscribe_list'] = 'pagines canviades a l0espai de noms:';
+$lang['mail_new_user'] = 'nou usuari:';
+$lang['mail_upload'] = 'fitxer penjat:';
+$lang['changes_type'] = 'Veure els canvis de';
+$lang['pages_changes'] = 'Pàgines';
+$lang['media_changes'] = 'Arxius gràfics';
+$lang['both_changes'] = 'Pàgines i arxius gràfics';
+$lang['qb_bold'] = 'Negreta';
+$lang['qb_italic'] = 'Cursiva';
+$lang['qb_underl'] = 'Subratllat';
+$lang['qb_code'] = 'Codi';
+$lang['qb_strike'] = 'Text barrat';
+$lang['qb_h1'] = 'Encapçalament nivell 1';
+$lang['qb_h2'] = 'Encapçalament nivell 2';
+$lang['qb_h3'] = 'Encapçalament nivell 3';
+$lang['qb_h4'] = 'Encapçalament nivell 4';
+$lang['qb_h5'] = 'Encapçalament nivell 5';
+$lang['qb_h'] = 'Encapçalament';
+$lang['qb_hs'] = 'Selcciona l\'encapçalament';
+$lang['qb_hplus'] = 'Encapçalament més alt';
+$lang['qb_hminus'] = 'Encapçalament més baix';
+$lang['qb_hequal'] = 'Encapçalament del mateix nivell';
+$lang['qb_link'] = 'Enllaç intern';
+$lang['qb_extlink'] = 'Enllaç extern';
+$lang['qb_hr'] = 'Ratlla horitzontal';
+$lang['qb_ol'] = 'Element de llista numerada';
+$lang['qb_ul'] = 'Element de llista de pics';
+$lang['qb_media'] = 'Afegeix imatges o altres fitxers';
+$lang['qb_sig'] = 'Insereix signatura';
+$lang['qb_smileys'] = 'Emoticones';
+$lang['qb_chars'] = 'Caràcters especials';
+$lang['upperns'] = 'Salta a l\'espai superior';
+$lang['metaedit'] = 'Edita metadades';
+$lang['metasaveerr'] = 'No s\'han pogut escriure les metadades';
+$lang['metasaveok'] = 'S\'han desat les metadades';
+$lang['img_title'] = 'Títol:';
+$lang['img_caption'] = 'Peu d\'imatge:';
+$lang['img_date'] = 'Data:';
+$lang['img_fname'] = 'Nom de fitxer:';
+$lang['img_fsize'] = 'Mida:';
+$lang['img_artist'] = 'Fotògraf:';
+$lang['img_copyr'] = 'Copyright:';
+$lang['img_format'] = 'Format:';
+$lang['img_camera'] = 'Càmera:';
+$lang['img_keywords'] = 'Paraules clau:';
+$lang['img_width'] = 'Ample:';
+$lang['img_height'] = 'Alçada:';
+$lang['subscr_subscribe_success'] = 'S\'ha afegit %s a la llista de subscripcions per %s';
+$lang['subscr_subscribe_error'] = 'Hi ha hagut un error a l\'afegir %s a la llista per %s';
+$lang['subscr_subscribe_noaddress'] = 'No hi ha cap adreça associada pel vostre nom d\'usuari, no podeu ser afegit a la llista de subscripcions';
+$lang['subscr_unsubscribe_success'] = 'S\'ha esborrat %s de la llista de subscripcions per %s';
+$lang['subscr_unsubscribe_error'] = 'Hi ha hagut un error a l\'esborrar %s de la llista de subscripcions per %s';
+$lang['subscr_already_subscribed'] = '%s ja està subscrit a %s';
+$lang['subscr_not_subscribed'] = '%s no està subscrit a %s';
+$lang['subscr_m_not_subscribed'] = 'En aquests moments no esteu subscrit a l\'actual pàgina o espai';
+$lang['subscr_m_new_header'] = 'Afegeix subcripció';
+$lang['subscr_m_current_header'] = 'Subscripcions actuals';
+$lang['subscr_m_unsubscribe'] = 'Donar-se de baixa';
+$lang['subscr_m_subscribe'] = 'Donar-se d\'alta';
+$lang['subscr_m_receive'] = 'Rebre';
+$lang['subscr_style_every'] = 'Envia\'m un correu electrònic per a cada canvi';
+$lang['subscr_style_digest'] = 'Envia\'m un correu electrònic amb un resum dels canvis per a cada pàgina (cada %.2f dies)';
+$lang['subscr_style_list'] = 'llistat de pàgines canviades des de l\'últim correu electrònic (cada %.2f dies)';
+$lang['authtempfail'] = 'L\'autenticació d\'usuaris no està disponible temporalment. Si aquesta situació persisteix, si us plau informeu els administradors del wiki.';
+$lang['i_chooselang'] = 'Trieu l\'idioma';
+$lang['i_installer'] = 'Instal·lador de DokuWiki';
+$lang['i_wikiname'] = 'Nom del wiki';
+$lang['i_enableacl'] = 'Habilita ACL (recomanat)';
+$lang['i_superuser'] = 'Superusuari';
+$lang['i_problems'] = 'L\'instal·lador ha trobat alguns problemes, que s\'indiquen més avall. No podeu continuar fins que no els hàgiu solucionat.';
+$lang['i_modified'] = 'Per raons de seguretat aquesta seqüència només funciona amb una instal·lació nova i no modificada de Dokuwiki. Hauríeu de tornar a baixar el paquet i/o descomprimir-lo o consultar les instruccions d\'instal·lació de Dokuwiki completes';
+$lang['i_funcna'] = 'La funció PHP %s
no està disponible. Potser el vostre proveïdor de serveis l\'ha inhabilitada per alguna raó';
+$lang['i_phpver'] = 'La vostra versió de PHP %s
és inferior a la requerida %s
. Necessiteu actualitzar la vostra instal·lació de PHP.';
+$lang['i_mbfuncoverload'] = 'mbstring.func_overload cal que sigui deshabilitada en php.ini perquè funcioni DokuWiki';
+$lang['i_permfail'] = 'DokuWiki no pot escriure %s
. Heu d\'arreglar els permisos d\'aquest directori';
+$lang['i_confexists'] = '%s
ja existeix';
+$lang['i_writeerr'] = 'No es pot crear %s
. Comproveu els permisos del directori i/o del fitxer i creeu el fitxer manualment.';
+$lang['i_badhash'] = 'dokuwiki.php no reconegut o modificat (hash=%s
)';
+$lang['i_badval'] = '%s
- valor il·legal o buit';
+$lang['i_success'] = 'La configuració s\'ha acabat amb èxit. Ara podeu suprimir el fitxer install.php. Aneu al vostre nou DokuWiki.';
+$lang['i_failure'] = 'S\'han produït alguns errors en escriure els fitxers de configuració. Potser caldrà que els arregleu manualment abans d\'utilitzar el vostre nou DokuWiki.';
+$lang['i_policy'] = 'Política ACL inicial';
+$lang['i_pol0'] = 'Wiki obert (tothom pot llegir, escriure i penjar fitxers)';
+$lang['i_pol1'] = 'Wiki públic (tothom pot llegir, els usuaris registrats poden escriure i penjar fitxers)';
+$lang['i_pol2'] = 'Wiki tancat (només els usuaris registrats poden llegir, escriure i penjar fitxers)';
+$lang['i_allowreg'] = 'Permet d\'autoinscripció d\'usuaris';
+$lang['i_retry'] = 'Reintenta';
+$lang['i_license'] = 'Escolliu el tipus de llicència que voleu fer servir per al vostre contingut:';
+$lang['i_license_none'] = 'No mostrar cap informació sobre llicencies';
+$lang['i_pop_field'] = 'Si us plau, ajuda\'ns a millorar la DokuWiki';
+$lang['i_pop_label'] = 'Una vegada al mes, enviar anònimament dades als programadors de la DokuWiki';
+$lang['recent_global'] = 'Esteu veient els canvis recents de l\'espai %s. També podeu veure els canvis recents de tot el wiki.';
+$lang['years'] = 'fa %d anys';
+$lang['months'] = 'fa %d mesos';
+$lang['weeks'] = 'fa %d setmanes';
+$lang['days'] = 'fa %d dies';
+$lang['hours'] = 'fa %d hores';
+$lang['minutes'] = 'fa %d minuts';
+$lang['seconds'] = 'fa %d segons';
+$lang['wordblock'] = 'El vostre canvi no s\'ha guardat perquè conté text blocat (spam)';
+$lang['media_uploadtab'] = 'Puja';
+$lang['media_searchtab'] = 'Busca';
+$lang['media_file'] = 'Fitxer';
+$lang['media_viewtab'] = 'Mostra';
+$lang['media_edittab'] = 'Edita';
+$lang['media_historytab'] = 'Històric';
+$lang['media_list_thumbs'] = 'Miniatura';
+$lang['media_list_rows'] = 'Files';
+$lang['media_sort_name'] = 'Nom';
+$lang['media_sort_date'] = 'Data';
+$lang['media_namespaces'] = 'Escolliu l\'espai';
+$lang['media_files'] = 'Arxius a %s';
+$lang['media_upload'] = 'Puja a %s';
+$lang['media_search'] = 'Busca a %s';
+$lang['media_view'] = '%s';
+$lang['media_viewold'] = '%s a %s';
+$lang['media_edit'] = 'Edita %s';
+$lang['media_history'] = 'Històric de %s';
+$lang['media_meta_edited'] = 'metadata editada';
+$lang['media_perm_read'] = 'No teniu permisos suficients per a llegir arxius.';
+$lang['media_perm_upload'] = 'No teniu permisos suficients per a pujar arxius';
+$lang['media_update'] = 'Puja la nova versió';
+$lang['media_restore'] = 'Restaura aquesta versió';
+$lang['media_acl_warning'] = 'Aquesta llista pot no estar completa per restriccions ACL i per llistes ocultes';
+$lang['currentns'] = 'Espai de noms actual';
+$lang['searchresult'] = 'Resultats cerca';
+$lang['plainhtml'] = 'HTML pla';
+$lang['wikimarkup'] = 'Wiki Marcatge';
+$lang['page_nonexist_rev'] = 'Pàgina no existeix a %s. Aixó es conseqüencia d\'haver-la creada a %s.';
+$lang['unable_to_parse_date'] = 'Impossible de esbrinar el paràmetre "%s".';
+$lang['email_signature_text'] = 'Aquest mail ha estat generat per DokuWiki a
+@DOKUWIKIURL@';
diff --git a/public_html/inc/lang/ca/locked.txt b/public_html/inc/lang/ca/locked.txt
new file mode 100644
index 00000000..93487c26
--- /dev/null
+++ b/public_html/inc/lang/ca/locked.txt
@@ -0,0 +1,3 @@
+====== Pàgina blocada ======
+
+Aquesta pàgina actualment està blocada per a edició per un altre usuari. Haureu d'esperar fins que aquest usuari acabe d'editar-la o fins que venci el blocatge.
diff --git a/public_html/inc/lang/ca/login.txt b/public_html/inc/lang/ca/login.txt
new file mode 100644
index 00000000..37ca4d58
--- /dev/null
+++ b/public_html/inc/lang/ca/login.txt
@@ -0,0 +1,4 @@
+====== Entrada ======
+
+No heu entrat. Introduïu les vostres credencials d'autenticació en aquest formulari. A partir d'aquest moment heu de tenir les galetes habilitades en el vostre navegador.
+
diff --git a/public_html/inc/lang/ca/mailtext.txt b/public_html/inc/lang/ca/mailtext.txt
new file mode 100644
index 00000000..dd7f0c56
--- /dev/null
+++ b/public_html/inc/lang/ca/mailtext.txt
@@ -0,0 +1,11 @@
+S'ha afegit o modificat una pàgina en el vostre wiki. Ací teniu més detalls:
+
+Data : @DATE@
+Navegador : @BROWSER@
+IP : @IPADDRESS@
+Rev. anterior : @OLDPAGE@
+Rev. actual : @NEWPAGE@
+Resum d'edició : @SUMMARY@
+Usuari : @USER@
+
+@DIFF@
diff --git a/public_html/inc/lang/ca/mailwrap.html b/public_html/inc/lang/ca/mailwrap.html
new file mode 100644
index 00000000..d2571909
--- /dev/null
+++ b/public_html/inc/lang/ca/mailwrap.html
@@ -0,0 +1,13 @@
+
+
+@TITLE@
+
+
+
+
+@HTMLBODY@
+
+
+@EMAILSIGNATURE@
+
+
\ No newline at end of file
diff --git a/public_html/inc/lang/ca/newpage.txt b/public_html/inc/lang/ca/newpage.txt
new file mode 100644
index 00000000..d0a2db92
--- /dev/null
+++ b/public_html/inc/lang/ca/newpage.txt
@@ -0,0 +1,3 @@
+====== Aquest tema encara no existeix ======
+
+Heu seguit un enllaç a un tema que encara no existeix. Podeu crear-lo per mitjà del botó ''Crea aquesta pàgina''.
diff --git a/public_html/inc/lang/ca/norev.txt b/public_html/inc/lang/ca/norev.txt
new file mode 100644
index 00000000..b5089c5e
--- /dev/null
+++ b/public_html/inc/lang/ca/norev.txt
@@ -0,0 +1,5 @@
+====== No existeix aquesta revisió ======
+
+
+La revisió especificada no existeix. Utilitzeu el botó ''Revisions anteriors'' per obtenir una llista de revisions d'aquest document.
+
diff --git a/public_html/inc/lang/ca/password.txt b/public_html/inc/lang/ca/password.txt
new file mode 100644
index 00000000..d4bd9f96
--- /dev/null
+++ b/public_html/inc/lang/ca/password.txt
@@ -0,0 +1,6 @@
+Benvolgut/da @FULLNAME@,
+
+Aquestes són les teves dades per a entrar en @TITLE@ en l'adreça @DOKUWIKIURL@
+
+Usuari : @LOGIN@
+Contrasenya : @PASSWORD@
diff --git a/public_html/inc/lang/ca/preview.txt b/public_html/inc/lang/ca/preview.txt
new file mode 100644
index 00000000..fa2f98ca
--- /dev/null
+++ b/public_html/inc/lang/ca/preview.txt
@@ -0,0 +1,4 @@
+====== Previsualització ======
+
+Heus ací una previsualització del vostre text. Recordeu que encara **no l'heu desat!**
+
diff --git a/public_html/inc/lang/ca/pwconfirm.txt b/public_html/inc/lang/ca/pwconfirm.txt
new file mode 100644
index 00000000..226e1262
--- /dev/null
+++ b/public_html/inc/lang/ca/pwconfirm.txt
@@ -0,0 +1,11 @@
+@FULLNAME@,
+
+Algú ha sol·licitat una nova contrasenya per al vostre compte d'usuari en @TITLE@
+@DOKUWIKIURL@
+
+Si no heu fet aquesta sol·licitud, simplement no feu cas de la resta del missatge.
+
+Per confirmar que realment heu sol·licitat una nova contrasenya, utilitzeu
+l'enllaç següent:
+
+@CONFIRM@
diff --git a/public_html/inc/lang/ca/read.txt b/public_html/inc/lang/ca/read.txt
new file mode 100644
index 00000000..e173ad2d
--- /dev/null
+++ b/public_html/inc/lang/ca/read.txt
@@ -0,0 +1,2 @@
+Aquesta pàgina és només de lectura. Podeu veure'n el codi font, però no podeu canviar-la. Consulteu el vostre administrador si penseu que això és degut a algun error.
+
diff --git a/public_html/inc/lang/ca/recent.txt b/public_html/inc/lang/ca/recent.txt
new file mode 100644
index 00000000..cea2f5cf
--- /dev/null
+++ b/public_html/inc/lang/ca/recent.txt
@@ -0,0 +1,5 @@
+====== Canvis recents ======
+
+Les pàgines següents s'han modificat recentment.
+
+
diff --git a/public_html/inc/lang/ca/register.txt b/public_html/inc/lang/ca/register.txt
new file mode 100644
index 00000000..a91e6df3
--- /dev/null
+++ b/public_html/inc/lang/ca/register.txt
@@ -0,0 +1,4 @@
+====== Registre d'un usuari nou ======
+
+Empleneu tota la informació que se us demana per crear un compte nou en aquest wiki. Assegureu-vos que doneu una **adreça de correu vàlida**, on se us enviarà la vostra contrasenya. El nom d'usuari o usuària ha de ser vàlid com a [[doku>pagename|nom de pàgina]].
+
diff --git a/public_html/inc/lang/ca/registermail.txt b/public_html/inc/lang/ca/registermail.txt
new file mode 100644
index 00000000..a15351a5
--- /dev/null
+++ b/public_html/inc/lang/ca/registermail.txt
@@ -0,0 +1,10 @@
+S'ha registrat un nou usuari. Heus ací els detalls:
+
+Nom d'usuari: @NEWUSER@
+Nom complet: @NEWNAME@
+E-mail: @NEWEMAIL@
+
+Data: @DATE@
+Navegador: @BROWSER@
+Adreça IP: @IPADDRESS@
+Ordinador: @HOSTNAME@
diff --git a/public_html/inc/lang/ca/resendpwd.txt b/public_html/inc/lang/ca/resendpwd.txt
new file mode 100644
index 00000000..cd59f899
--- /dev/null
+++ b/public_html/inc/lang/ca/resendpwd.txt
@@ -0,0 +1,3 @@
+====== Nova contrasenya ======
+
+Per sol·licitar una nova contrasenya, introduïu el vostre nom d'usuari en el formulari següent. Se us enviarà un enllaç de confirmació a l'adreça de correu amb què us vau registrar.
\ No newline at end of file
diff --git a/public_html/inc/lang/ca/resetpwd.txt b/public_html/inc/lang/ca/resetpwd.txt
new file mode 100644
index 00000000..565f1d5b
--- /dev/null
+++ b/public_html/inc/lang/ca/resetpwd.txt
@@ -0,0 +1,3 @@
+===== Establiu una nova contrasenya =====
+
+Introdueixi una nova contrasenya pel seu compte a aquest wiki.
\ No newline at end of file
diff --git a/public_html/inc/lang/ca/revisions.txt b/public_html/inc/lang/ca/revisions.txt
new file mode 100644
index 00000000..5c044d8e
--- /dev/null
+++ b/public_html/inc/lang/ca/revisions.txt
@@ -0,0 +1,4 @@
+====== Revisions anteriors ======
+
+Heus ací les revisions anteriors del document actual. Per restaurar una revisió anterior, seleccioneu-la de la llista, feu clic en ''Edita aquesta pàgina'' i deseu-la.
+
diff --git a/public_html/inc/lang/ca/searchpage.txt b/public_html/inc/lang/ca/searchpage.txt
new file mode 100644
index 00000000..68da58ca
--- /dev/null
+++ b/public_html/inc/lang/ca/searchpage.txt
@@ -0,0 +1,4 @@
+====== Cerca ======
+
+Heus ací els resultats de la cerca. @CREATEPAGEINFO@
+
diff --git a/public_html/inc/lang/ca/showrev.txt b/public_html/inc/lang/ca/showrev.txt
new file mode 100644
index 00000000..b1411824
--- /dev/null
+++ b/public_html/inc/lang/ca/showrev.txt
@@ -0,0 +1,2 @@
+**Aquesta és una revisió antiga del document**
+----
diff --git a/public_html/inc/lang/ca/stopwords.txt b/public_html/inc/lang/ca/stopwords.txt
new file mode 100644
index 00000000..03be425e
--- /dev/null
+++ b/public_html/inc/lang/ca/stopwords.txt
@@ -0,0 +1,106 @@
+# Això és una llista de paraules que seran omeses per l'indexador, una paraula per línia
+# Utilitzeu finals de línia UNIX
+# No cal incloure paraules de menys de 3 caràcters: s'ometran igualment
+# Llista basada en http://www.ranks.nl/stopwords/
+abans
+algun
+alguna
+alguns
+algunes
+altre
+altra
+altres
+amb
+ambdós
+anar
+ans
+aquell
+aquella
+aquelles
+aquells
+aquí
+bastant
+cada
+com
+dalt
+des
+dins
+ell
+ella
+elles
+ells
+els
+ens
+entre
+era
+erem
+eren
+eres
+estan
+estat
+estava
+estem
+esteu
+estic
+està
+ets
+faig
+fan
+fas
+fem
+fer
+feu
+haver
+inclòs
+llarg
+llavors
+mentre
+meu
+mode
+molt
+molts
+nosaltres
+per
+per que
+perquè
+però
+podem
+poden
+poder
+podeu
+potser
+primer
+puc
+quan
+quant
+qui
+sabem
+saben
+saber
+sabeu
+sap
+saps
+sense
+ser
+seu
+seus
+sóc
+solament
+sols
+som
+sota
+també
+tene
+tenim
+tenir
+teniu
+teu
+tinc
+tot
+una
+uns
+unes
+uns
+vaig
+van
+vosaltres
diff --git a/public_html/inc/lang/ca/subscr_digest.txt b/public_html/inc/lang/ca/subscr_digest.txt
new file mode 100644
index 00000000..c5666d25
--- /dev/null
+++ b/public_html/inc/lang/ca/subscr_digest.txt
@@ -0,0 +1,16 @@
+Hola!
+
+La pàgina @PAGE@ al wiki @TITLE@ ha canviat.
+A continuació podeu veure els canvis:
+
+--------------------------------------------------------
+@DIFF@
+--------------------------------------------------------
+
+Versió anterior: @OLDPAGE@
+Nova versió: @NEWPAGE@
+
+Si voleu cancel·lar les notificacions per a la pàgina, accediu al wiki a
+@DOKUWIKIURL@, visiteu
+@SUBSCRIBE@
+i doneu-vos de baixa dels canvis de la pàgina o de l'espai.
diff --git a/public_html/inc/lang/ca/subscr_form.txt b/public_html/inc/lang/ca/subscr_form.txt
new file mode 100644
index 00000000..3c63ce66
--- /dev/null
+++ b/public_html/inc/lang/ca/subscr_form.txt
@@ -0,0 +1,3 @@
+===== Gestió de les Subscripcions =====
+
+Des d'aquesta pàgina, podeu gestionar les vostres subscripcions per a les pàgines i els espais que seleccioneu.
\ No newline at end of file
diff --git a/public_html/inc/lang/ca/subscr_list.txt b/public_html/inc/lang/ca/subscr_list.txt
new file mode 100644
index 00000000..56b9ee97
--- /dev/null
+++ b/public_html/inc/lang/ca/subscr_list.txt
@@ -0,0 +1,16 @@
+Hola!
+
+Alguna(es) pàgina(es) de l'espai @PAGE@ al wiki @TITLE@ han canviat.
+A continuació podeu veure els canvis:
+
+--------------------------------------------------------
+@DIFF@
+--------------------------------------------------------
+
+Versió anterior: @OLDPAGE@
+Nova versió: @NEWPAGE@
+
+Si voleu cancel·lar les notificacions per a la pàgina, accediu al wiki a
+@DOKUWIKIURL@, visiteu
+@SUBSCRIBE@
+i doneu-vos de baixa dels canvis de la pàgina o de l'espai.
diff --git a/public_html/inc/lang/ca/subscr_single.txt b/public_html/inc/lang/ca/subscr_single.txt
new file mode 100644
index 00000000..a1711f25
--- /dev/null
+++ b/public_html/inc/lang/ca/subscr_single.txt
@@ -0,0 +1,16 @@
+Hola!
+
+La pàgina @PAGE@ amb el títol @TITLE@ ha canviat.
+Aquí son els canvis:
+
+--------------------------------------------------------
+@DIFF@
+--------------------------------------------------------
+
+Data : @DATE@
+Usuari : @USER@
+Resum edició: @SUMMARY@
+Versió vella: @OLDPAGE@
+Nova versió: @NEWPAGE@
+
+Per cancel·lar la pàgina de notificacions, entra a la wiki a @DOKUWIKIURL@ i llavors ves a @SUBSCRIBE@ i desinscriu-te dels canvis dels noms d'espai(namespace) i pàgines.
\ No newline at end of file
diff --git a/public_html/inc/lang/ca/updateprofile.txt b/public_html/inc/lang/ca/updateprofile.txt
new file mode 100644
index 00000000..0ba02260
--- /dev/null
+++ b/public_html/inc/lang/ca/updateprofile.txt
@@ -0,0 +1,3 @@
+====== Actualització del perfil d'usuari ======
+
+Només cal que completeu els camps que vulgueu canviar. El nom d'usuari no es pot canviar.
\ No newline at end of file
diff --git a/public_html/inc/lang/ca/uploadmail.txt b/public_html/inc/lang/ca/uploadmail.txt
new file mode 100644
index 00000000..01b76482
--- /dev/null
+++ b/public_html/inc/lang/ca/uploadmail.txt
@@ -0,0 +1,10 @@
+S'ha penjat un fitxer al vostre DokuWiki. Heus ací els detalls:
+
+Fitxer: @MEDIA@
+Data: @DATE@
+Navegador: @BROWSER@
+Adreça IP: @IPADDRESS@
+Ordinador: @HOSTNAME@
+Mida: @SIZE@
+Tipus MIME: @MIME@
+Usuari: @USER@
diff --git a/public_html/inc/lang/cs/admin.txt b/public_html/inc/lang/cs/admin.txt
new file mode 100644
index 00000000..df7c5b61
--- /dev/null
+++ b/public_html/inc/lang/cs/admin.txt
@@ -0,0 +1,3 @@
+====== Správa ======
+
+Níže je možno spravovat vaší DokuWiki.
diff --git a/public_html/inc/lang/cs/adminplugins.txt b/public_html/inc/lang/cs/adminplugins.txt
new file mode 100644
index 00000000..88e547ab
--- /dev/null
+++ b/public_html/inc/lang/cs/adminplugins.txt
@@ -0,0 +1 @@
+===== Další zásuvné moduly =====
\ No newline at end of file
diff --git a/public_html/inc/lang/cs/backlinks.txt b/public_html/inc/lang/cs/backlinks.txt
new file mode 100644
index 00000000..59430eea
--- /dev/null
+++ b/public_html/inc/lang/cs/backlinks.txt
@@ -0,0 +1,3 @@
+====== Zpětné odkazy ======
+
+Zde je seznam stránek, které pravděpodobně odkazují na aktuální stránku.
diff --git a/public_html/inc/lang/cs/conflict.txt b/public_html/inc/lang/cs/conflict.txt
new file mode 100644
index 00000000..b332a479
--- /dev/null
+++ b/public_html/inc/lang/cs/conflict.txt
@@ -0,0 +1,5 @@
+====== Existuje novější verze ======
+
+Existuje novější verze právě upravovaného dokumentu. To se stává, pokud někdo jiný změnil dokument, který právě upravujete.
+
+Prohlédněte si níže uvedené rozdíly, případně rozdíly z obou verzí ručně spojte dohromady a rozhodněte se, kterou verzi uchovat. Pokud zvolíte ''Uložit'', bude uložena vaše verze. Jinak stiskněte ''Zrušit'' pro uchování původní verze.
diff --git a/public_html/inc/lang/cs/denied.txt b/public_html/inc/lang/cs/denied.txt
new file mode 100644
index 00000000..29524e5d
--- /dev/null
+++ b/public_html/inc/lang/cs/denied.txt
@@ -0,0 +1,3 @@
+====== Nepovolená akce ======
+
+Promiňte, ale nemáte dostatečná oprávnění k této činnosti.
diff --git a/public_html/inc/lang/cs/diff.txt b/public_html/inc/lang/cs/diff.txt
new file mode 100644
index 00000000..d49e5699
--- /dev/null
+++ b/public_html/inc/lang/cs/diff.txt
@@ -0,0 +1,4 @@
+====== Rozdíly ======
+
+Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
+
diff --git a/public_html/inc/lang/cs/draft.txt b/public_html/inc/lang/cs/draft.txt
new file mode 100644
index 00000000..ebdfb8d9
--- /dev/null
+++ b/public_html/inc/lang/cs/draft.txt
@@ -0,0 +1,5 @@
+====== Nalezen koncept ======
+
+Vaše minulá editace této stránky nebyla korektně dokončena. DokuWiki během editace automaticky uložila koncept, který nyní můžete použít a pokračovat v editaci. Níže je vidět text uložený během minulé editace.
+
+Prosím rozhodněte se, jestli chcete automaticky uložený koncept //obnovit// a pokračovat v editaci, nebo jej chcete //vymazat//, nebo úplně //zrušit// celý proces editace.
diff --git a/public_html/inc/lang/cs/edit.txt b/public_html/inc/lang/cs/edit.txt
new file mode 100644
index 00000000..1a135aee
--- /dev/null
+++ b/public_html/inc/lang/cs/edit.txt
@@ -0,0 +1 @@
+Upravte stránku a stiskněte ''Uložit''. Na stránce [[wiki:syntax]] se můžete dozvědět více o wiki syntaxi. Prosím upravujte stránky pouze, pokud je můžete **vylepšit**. V případě, že si chcete něco pouze vyzkoušet, použijte raději [[playground:playground|pískoviště]].
diff --git a/public_html/inc/lang/cs/editrev.txt b/public_html/inc/lang/cs/editrev.txt
new file mode 100644
index 00000000..44f0bc67
--- /dev/null
+++ b/public_html/inc/lang/cs/editrev.txt
@@ -0,0 +1,2 @@
+**Máte načtenou starší verzi dokumentu!** Pokud ji uložíte, vytvoříte tím novou aktuální verzi.
+----
diff --git a/public_html/inc/lang/cs/index.txt b/public_html/inc/lang/cs/index.txt
new file mode 100644
index 00000000..d19626f6
--- /dev/null
+++ b/public_html/inc/lang/cs/index.txt
@@ -0,0 +1,3 @@
+====== Index ======
+
+Zde je k dispozici index všech dostupných stránek seřazený podle [[doku>namespaces|jmenných prostorů]].
diff --git a/public_html/inc/lang/cs/install.html b/public_html/inc/lang/cs/install.html
new file mode 100644
index 00000000..043e9243
--- /dev/null
+++ b/public_html/inc/lang/cs/install.html
@@ -0,0 +1,23 @@
+Tato stránka vám pomůže při první instalaci a konfiguraci
+Dokuwiki. Více
+informací o tomto instalátoru naleznete v jeho vlastní dokumentaci.
+
+DokuWiki používá obyčejné soubory pro uložení wiki stránek a dalších informací
+spojených s nimi (např. obrázků, vyhledávacích indexů, starších verzí). Aby DokuWiki
+správně fungovala musí mít přístup k adresářům, kde jsou uloženy
+tyto soubory. Tento instalátor není schopen sám nastavit přístupová práva k souborům
+a adresářům. To se obyčejně dělá přímo v shellu nebo, používáte-li hosting, přes
+FTP nebo ovládací panel vašeho hostingu (např. cPanel).
+
+Tento instalátor nastaví ACL
+(přístupová práva uživatelů) pro vaši DokuWiki, což umožní správci přihlásit
+se do administrační části DokuWiki a tam instalovat pluginy, spravovat uživatele,
+nastavovat přístup k wiki stránkám a měnit další nastavení wiki. Není to
+nutné, ale zpříjemní to správu DokuWiki.
+
+Zkušení uživatelé nebo uživatelé se speciálními požadavky by se
+měli podívat na následující stránky pro další informace ohledně
+instalace a
+nastavení DokuWiki.
+
diff --git a/public_html/inc/lang/cs/jquery.ui.datepicker.js b/public_html/inc/lang/cs/jquery.ui.datepicker.js
new file mode 100644
index 00000000..c2f79cf9
--- /dev/null
+++ b/public_html/inc/lang/cs/jquery.ui.datepicker.js
@@ -0,0 +1,37 @@
+/* Czech initialisation for the jQuery UI date picker plugin. */
+/* Written by Tomas Muller (tomas@tomas-muller.net). */
+( function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+
+ // AMD. Register as an anonymous module.
+ define( [ "../widgets/datepicker" ], factory );
+ } else {
+
+ // Browser globals
+ factory( jQuery.datepicker );
+ }
+}( function( datepicker ) {
+
+datepicker.regional.cs = {
+ closeText: "Zavřít",
+ prevText: "<Dříve",
+ nextText: "Později>",
+ currentText: "Nyní",
+ monthNames: [ "leden","únor","březen","duben","květen","červen",
+ "červenec","srpen","září","říjen","listopad","prosinec" ],
+ monthNamesShort: [ "led","úno","bře","dub","kvě","čer",
+ "čvc","srp","zář","říj","lis","pro" ],
+ dayNames: [ "neděle", "pondělí", "úterý", "středa", "čtvrtek", "pátek", "sobota" ],
+ dayNamesShort: [ "ne", "po", "út", "st", "čt", "pá", "so" ],
+ dayNamesMin: [ "ne","po","út","st","čt","pá","so" ],
+ weekHeader: "Týd",
+ dateFormat: "dd.mm.yy",
+ firstDay: 1,
+ isRTL: false,
+ showMonthAfterYear: false,
+ yearSuffix: "" };
+datepicker.setDefaults( datepicker.regional.cs );
+
+return datepicker.regional.cs;
+
+} ) );
diff --git a/public_html/inc/lang/cs/lang.php b/public_html/inc/lang/cs/lang.php
new file mode 100644
index 00000000..8a57c0eb
--- /dev/null
+++ b/public_html/inc/lang/cs/lang.php
@@ -0,0 +1,366 @@
+
+ * @author Bohumir Zamecnik
+ * @author Tomas Valenta
+ * @author Zbynek Krivka
+ * @author Marek Sacha
+ * @author Lefty
+ * @author Vojta Beran
+ * @author Jakub A. Těšínský (j@kub.cz)
+ * @author mkucera66
+ * @author Zbyněk Křivka
+ * @author Petr Klíma
+ * @author Radovan Buroň
+ * @author Viktor Zavadil
+ * @author Jaroslav Lichtblau
+ * @author Turkislav
+ * @author Daniel Slováček
+ * @author Martin Růžička
+ * @author Pavel Krupička
+ */
+$lang['encoding'] = 'utf-8';
+$lang['direction'] = 'ltr';
+$lang['doublequoteopening'] = '„';
+$lang['doublequoteclosing'] = '“';
+$lang['singlequoteopening'] = '‚';
+$lang['singlequoteclosing'] = '‘';
+$lang['apostrophe'] = '\'';
+$lang['btn_edit'] = 'Upravit stránku';
+$lang['btn_source'] = 'Zdrojový kód stránky';
+$lang['btn_show'] = 'Zobrazit stránku';
+$lang['btn_create'] = 'Vytvořit stránku';
+$lang['btn_search'] = 'Hledat';
+$lang['btn_save'] = 'Uložit';
+$lang['btn_preview'] = 'Náhled';
+$lang['btn_top'] = 'Nahoru';
+$lang['btn_newer'] = '<< novější';
+$lang['btn_older'] = 'starší >>';
+$lang['btn_revs'] = 'Starší verze';
+$lang['btn_recent'] = 'Poslední úpravy';
+$lang['btn_upload'] = 'Načíst';
+$lang['btn_cancel'] = 'Zrušit';
+$lang['btn_index'] = 'Mapa stránek';
+$lang['btn_secedit'] = 'Upravit';
+$lang['btn_login'] = 'Přihlásit se';
+$lang['btn_logout'] = 'Odhlásit se';
+$lang['btn_admin'] = 'Správa';
+$lang['btn_update'] = 'Aktualizovat';
+$lang['btn_delete'] = 'Vymazat';
+$lang['btn_back'] = 'Zpět';
+$lang['btn_backlink'] = 'Zpětné odkazy';
+$lang['btn_subscribe'] = 'Odebírat e-mailem změny stránky';
+$lang['btn_profile'] = 'Upravit profil';
+$lang['btn_reset'] = 'Reset';
+$lang['btn_resendpwd'] = 'Nastavit nové heslo';
+$lang['btn_draft'] = 'Upravit koncept';
+$lang['btn_recover'] = 'Obnovit koncept';
+$lang['btn_draftdel'] = 'Vymazat koncept';
+$lang['btn_revert'] = 'Vrátit zpět';
+$lang['btn_register'] = 'Registrovat';
+$lang['btn_apply'] = 'Použít';
+$lang['btn_media'] = 'Správa médií';
+$lang['btn_deleteuser'] = 'Odstranit můj účet';
+$lang['btn_img_backto'] = 'Zpět na %s';
+$lang['btn_mediaManager'] = 'Zobrazit ve správě médií';
+$lang['loggedinas'] = 'Přihlášen(a) jako:';
+$lang['user'] = 'Uživatelské jméno';
+$lang['pass'] = 'Heslo';
+$lang['newpass'] = 'Nové heslo';
+$lang['oldpass'] = 'Současné heslo';
+$lang['passchk'] = 'Zopakovat';
+$lang['remember'] = 'Zapamatovat';
+$lang['fullname'] = 'Celé jméno';
+$lang['email'] = 'E-mail';
+$lang['profile'] = 'Uživatelský profil';
+$lang['badlogin'] = 'Zadané uživatelské jméno a heslo není správně.';
+$lang['badpassconfirm'] = 'Bohužel špatné heslo';
+$lang['minoredit'] = 'Drobné změny';
+$lang['draftdate'] = 'Koncept automaticky uložen v';
+$lang['nosecedit'] = 'Stránka byla v mezičase změněna. Informace o sekci již nebylo platné, byla načtena celá stránka.';
+$lang['search_fullresults'] = 'Fulltextové výsledky';
+$lang['js']['willexpire'] = 'Váš zámek pro editaci za chvíli vyprší.\nAbyste předešli konfliktům, stiskněte tlačítko Náhled a zámek se prodlouží.';
+$lang['js']['notsavedyet'] = 'Jsou tu neuložené změny, které budou ztraceny.
+Chcete opravdu pokračovat?';
+$lang['js']['searchmedia'] = 'Hledat soubory';
+$lang['js']['keepopen'] = 'Po vybrání souboru nechat okno otevřené';
+$lang['js']['hidedetails'] = 'Skrýt detaily';
+$lang['js']['mediatitle'] = 'Nastavení odkazu';
+$lang['js']['mediadisplay'] = 'Typ odkazu';
+$lang['js']['mediaalign'] = 'Zarovnání';
+$lang['js']['mediasize'] = 'Velikost obrázku';
+$lang['js']['mediatarget'] = 'Cíl odkazu';
+$lang['js']['mediaclose'] = 'Zavřít';
+$lang['js']['mediainsert'] = 'Vložit';
+$lang['js']['mediadisplayimg'] = 'Zobrazit obrázek';
+$lang['js']['mediadisplaylnk'] = 'Zobrazit pouze odkaz';
+$lang['js']['mediasmall'] = 'Malá verze';
+$lang['js']['mediamedium'] = 'Střední verze';
+$lang['js']['medialarge'] = 'Velká verze';
+$lang['js']['mediaoriginal'] = 'Původní verze';
+$lang['js']['medialnk'] = 'Odkaz na stránku s detailem';
+$lang['js']['mediadirect'] = 'Přímý odkaz na originál';
+$lang['js']['medianolnk'] = 'Žádný odkaz';
+$lang['js']['medianolink'] = 'Neodkazovat na obrázek';
+$lang['js']['medialeft'] = 'Zarovnat obrázek doleva.';
+$lang['js']['mediaright'] = 'Zarovnat obrázek doprava.';
+$lang['js']['mediacenter'] = 'Zarovnat obrázek na střed.';
+$lang['js']['medianoalign'] = 'Nepoužívat zarovnání.';
+$lang['js']['nosmblinks'] = 'Odkazování na sdílené prostředky Windows funguje jen v Internet Exploreru.
+Přesto tento odkaz můžete zkopírovat a vložit jinde.';
+$lang['js']['linkwiz'] = 'Průvodce odkazy';
+$lang['js']['linkto'] = 'Odkaz na:';
+$lang['js']['del_confirm'] = 'Vymazat tuto položku?';
+$lang['js']['restore_confirm'] = 'Opravdu obnovit tuto verzi?';
+$lang['js']['media_diff'] = 'Prohlédnout rozdíly:';
+$lang['js']['media_diff_both'] = 'Vedle sebe';
+$lang['js']['media_diff_opacity'] = 'Zvýraznění';
+$lang['js']['media_diff_portions'] = 'Osvědčit';
+$lang['js']['media_select'] = 'Vybrat soubory...';
+$lang['js']['media_upload_btn'] = 'Nahrát';
+$lang['js']['media_done_btn'] = 'Hotovo';
+$lang['js']['media_drop'] = 'Sem přetáhněte soubory pro nahrátí';
+$lang['js']['media_cancel'] = 'odstranit';
+$lang['js']['media_overwrt'] = 'Přepsat existující soubory';
+$lang['search_starts_with'] = 'Začíná s';
+$lang['search_ends_with'] = 'Končí s';
+$lang['search_contains'] = 'Obsahuje';
+$lang['search_custom_match'] = 'Vlastní';
+$lang['search_past_7_days'] = 'Minulý týden';
+$lang['search_past_month'] = 'Minulý měsíc';
+$lang['search_past_year'] = 'Minulý rok';
+$lang['search_sort_by_mtime'] = 'Řadit podle naposledy změněných';
+$lang['regmissing'] = 'Musíte vyplnit všechny údaje.';
+$lang['reguexists'] = 'Uživatel se stejným jménem už je zaregistrován.';
+$lang['regsuccess'] = 'Uživatelský účet byl vytvořen a heslo zasláno e-mailem.';
+$lang['regsuccess2'] = 'Uživatelský účet byl vytvořen.';
+$lang['regfail'] = 'Uživatelský profil nemohl být vytvořen.';
+$lang['regmailfail'] = 'Zdá se, že nastala chyba při posílání mailu s heslem. Zkuste kontaktovat správce.';
+$lang['regbadmail'] = 'Zadaná e-mailová adresa není platná. Pokud si myslíte, že to je špatně, zkuste kontaktovat správce.';
+$lang['regbadpass'] = 'Heslo nebylo zadáno dvakrát stejně, zkuste to prosím znovu.';
+$lang['regpwmail'] = 'Vaše heslo do systému DokuWiki';
+$lang['reghere'] = 'Nemáte uživatelský účet? Zřiďte si ho';
+$lang['profna'] = 'Tato wiki neumožňuje změnu profilu';
+$lang['profnochange'] = 'Žádné změny nebyly provedeny.';
+$lang['profnoempty'] = 'Nelze vynechat jméno nebo e-mailovou adresu.';
+$lang['profchanged'] = 'Uživatelský profil změněn.';
+$lang['profnodelete'] = 'Tato wiki nepodporuje mazání uživatelů';
+$lang['profdeleteuser'] = 'Smazat účet';
+$lang['profdeleted'] = 'Váš uživatelský účet byl z této wiki smazán';
+$lang['profconfdelete'] = 'Chci smazat můj účet z této wiki.
Tato akce je nevratná.';
+$lang['profconfdeletemissing'] = 'Potvrzovací tlačítko nezaškrtnuto';
+$lang['proffail'] = 'Uživatelský profil nebyl aktualizován.';
+$lang['pwdforget'] = 'Zapomněli jste heslo? Nechte si zaslat nové';
+$lang['resendna'] = 'Tato wiki neumožňuje zasílání nových hesel.';
+$lang['resendpwd'] = 'Nastavit nové heslo pro';
+$lang['resendpwdmissing'] = 'Musíte vyplnit všechny položky.';
+$lang['resendpwdnouser'] = 'Bohužel takový uživatel v systému není.';
+$lang['resendpwdbadauth'] = 'Tento autorizační kód není platný. Zadali jste opravdu celý odkaz na potvrzovací stránku?';
+$lang['resendpwdconfirm'] = 'Odkaz na potvrzovací stránku byl odeslán e-mailem.';
+$lang['resendpwdsuccess'] = 'Vaše nové heslo bylo odesláno e-mailem.';
+$lang['license'] = 'Kromě míst, kde je explicitně uvedeno jinak, je obsah této wiki licencován pod následující licencí:';
+$lang['licenseok'] = 'Poznámka: Tím, že editujete tuto stránku, souhlasíte, aby váš obsah byl licencován pod následující licencí:';
+$lang['searchmedia'] = 'Hledat jméno souboru:';
+$lang['searchmedia_in'] = 'Hledat v %s';
+$lang['txt_upload'] = 'Vyberte soubor jako přílohu:';
+$lang['txt_filename'] = 'Wiki jméno (volitelné):';
+$lang['txt_overwrt'] = 'Přepsat existující soubor';
+$lang['maxuploadsize'] = 'Max. velikost souboru %s';
+$lang['lockedby'] = 'Právě zamknuto:';
+$lang['lockexpire'] = 'Zámek vyprší:';
+$lang['rssfailed'] = 'Nastala chyba při vytváření tohoto RSS: ';
+$lang['nothingfound'] = 'Nic nenalezeno.';
+$lang['mediaselect'] = 'Výběr dokumentu';
+$lang['uploadsucc'] = 'Přenos proběhl v pořádku';
+$lang['uploadfail'] = 'Chyba při načítání. Možná kvůli špatně nastaveným právům?';
+$lang['uploadwrong'] = 'Načtení souboru s takovouto příponou není dovoleno.';
+$lang['uploadexist'] = 'Soubor už existuje, necháme ho být.';
+$lang['uploadbadcontent'] = 'Nahraný obsah neodpovídá jeho příponě souboru %s.';
+$lang['uploadspam'] = 'Načtený dokument byl odmítnut, je na spamovém blacklistu.';
+$lang['uploadxss'] = 'Načtený dokument byl odmítnut. Zdá se, že obsahuje škodlivé věci.';
+$lang['uploadsize'] = 'Nahraný soubor byl příliš velký (max. %s)';
+$lang['deletesucc'] = 'Soubor "%s" byl vymazán.';
+$lang['deletefail'] = 'Soubor "%s" nelze vymazat - zkontrolujte oprávnění.';
+$lang['mediainuse'] = 'Soubor "%s" nebyl vymazán - stále se používá.';
+$lang['namespaces'] = 'Jmenné prostory';
+$lang['mediafiles'] = 'Dostupné soubory';
+$lang['accessdenied'] = 'Nejste autorizován k přístupu na tuto stránku.';
+$lang['mediausage'] = 'K odkázání se na tento soubor použijte následující syntax:';
+$lang['mediaview'] = 'Zobrazit původní soubor';
+$lang['mediaroot'] = 'root';
+$lang['mediaupload'] = 'Načíst soubor do aktuálního jmenného prostoru. K vytvoření nových jmenných prostorů, přidejte jejich názvy na začátek wiki jména (oddělte dvojtečkou).';
+$lang['mediaextchange'] = 'Přípona souboru byla změněna z .%s na .%s!';
+$lang['reference'] = 'Odkazy na';
+$lang['ref_inuse'] = 'Soubor nelze vymazat, jelikož ho využívají následující stránky:';
+$lang['ref_hidden'] = 'Některé odkazy jsou na stránkách, kam nemáte právo přístupu';
+$lang['hits'] = '- počet výskytů';
+$lang['quickhits'] = 'Odpovídající stránky';
+$lang['toc'] = 'Obsah';
+$lang['current'] = 'aktuální';
+$lang['yours'] = 'Vaše verze';
+$lang['diff'] = 'Zobrazit rozdíly vůči aktuální verzi';
+$lang['diff2'] = 'Zobrazit rozdíly mezi vybranými verzemi';
+$lang['difflink'] = 'Odkaz na výstup diff';
+$lang['diff_type'] = 'Zobrazit rozdíly:';
+$lang['diff_inline'] = 'Vložené';
+$lang['diff_side'] = 'Přidané';
+$lang['diffprevrev'] = 'Předchozí verze';
+$lang['diffnextrev'] = 'Následující verze';
+$lang['difflastrev'] = 'Poslední revize';
+$lang['diffbothprevrev'] = 'Obě strany předchozí revize';
+$lang['diffbothnextrev'] = 'Obě strany příští revize';
+$lang['line'] = 'Řádek';
+$lang['breadcrumb'] = 'Historie:';
+$lang['youarehere'] = 'Umístění:';
+$lang['lastmod'] = 'Poslední úprava:';
+$lang['by'] = 'autor:';
+$lang['deleted'] = 'odstraněno';
+$lang['created'] = 'vytvořeno';
+$lang['restored'] = 'stará verze byla obnovena (%s)';
+$lang['external_edit'] = 'upraveno mimo DokuWiki';
+$lang['summary'] = 'Komentář k úpravám';
+$lang['noflash'] = 'Pro přehrání obsahu potřebujete Adobe Flash Plugin.';
+$lang['download'] = 'Stáhnout snippet';
+$lang['tools'] = 'Nástroje';
+$lang['user_tools'] = 'Uživatelské nástroje';
+$lang['site_tools'] = 'Nástroje pro tento web';
+$lang['page_tools'] = 'Nástroje pro stránku';
+$lang['skip_to_content'] = 'jít k obsahu';
+$lang['sidebar'] = 'Postranní lišta';
+$lang['mail_newpage'] = 'nová stránka:';
+$lang['mail_changed'] = 'změna stránky:';
+$lang['mail_subscribe_list'] = 'stránky změněné ve jmenném prostoru:';
+$lang['mail_new_user'] = 'nový uživatel:';
+$lang['mail_upload'] = 'nahraný soubor:';
+$lang['changes_type'] = 'Prohlednou změny ';
+$lang['pages_changes'] = 'stránek';
+$lang['media_changes'] = 'souborů médií';
+$lang['both_changes'] = 'stránek i médií';
+$lang['qb_bold'] = 'Tučně';
+$lang['qb_italic'] = 'Kurzíva';
+$lang['qb_underl'] = 'Podtržení';
+$lang['qb_code'] = 'Neformátovat (zdrojový kód)';
+$lang['qb_strike'] = 'Přeškrtnutý text';
+$lang['qb_h1'] = 'Nadpis 1. úrovně';
+$lang['qb_h2'] = 'Nadpis 2. úrovně';
+$lang['qb_h3'] = 'Nadpis 3. úrovně';
+$lang['qb_h4'] = 'Nadpis 4. úrovně';
+$lang['qb_h5'] = 'Nadpis 5. úrovně';
+$lang['qb_h'] = 'Nadpis';
+$lang['qb_hs'] = 'Vybrat nadpis';
+$lang['qb_hplus'] = 'Nadpis vyšší úrovně';
+$lang['qb_hminus'] = 'Nadpis nižší úrovně';
+$lang['qb_hequal'] = 'Nadpis stejné úrovně';
+$lang['qb_link'] = 'Interní odkaz';
+$lang['qb_extlink'] = 'Externí odkaz';
+$lang['qb_hr'] = 'Vodorovná čára';
+$lang['qb_ol'] = 'Číslovaný seznam';
+$lang['qb_ul'] = 'Nečíslovaný seznam';
+$lang['qb_media'] = 'Vložit obrázky nebo jiné soubory';
+$lang['qb_sig'] = 'Vložit podpis';
+$lang['qb_smileys'] = 'Emotikony';
+$lang['qb_chars'] = 'Speciální znaky';
+$lang['upperns'] = 'skočit do nadřazeného jmenného prostoru';
+$lang['metaedit'] = 'Upravit Metadata';
+$lang['metasaveerr'] = 'Chyba při zápisu metadat';
+$lang['metasaveok'] = 'Metadata uložena';
+$lang['img_title'] = 'Titulek:';
+$lang['img_caption'] = 'Popis:';
+$lang['img_date'] = 'Datum:';
+$lang['img_fname'] = 'Jméno souboru:';
+$lang['img_fsize'] = 'Velikost:';
+$lang['img_artist'] = 'Autor fotografie:';
+$lang['img_copyr'] = 'Copyright:';
+$lang['img_format'] = 'Formát:';
+$lang['img_camera'] = 'Typ fotoaparátu:';
+$lang['img_keywords'] = 'Klíčová slova:';
+$lang['img_width'] = 'Šířka:';
+$lang['img_height'] = 'Výška:';
+$lang['subscr_subscribe_success'] = '%s byl přihlášen do seznamu odběratelů %s';
+$lang['subscr_subscribe_error'] = 'Došlo k chybě při přihlašování %s do seznamu odběratelů %s';
+$lang['subscr_subscribe_noaddress'] = 'K Vašemu loginu neexistuje žádná adresa, nemohl jste být přihlášen do seznamu odběratelů.';
+$lang['subscr_unsubscribe_success'] = '%s byl odhlášen ze seznamu odběratelů %s';
+$lang['subscr_unsubscribe_error'] = 'Došlo k chybě při odhlašování %s ze seznamu odběratelů %s';
+$lang['subscr_already_subscribed'] = '%s již je přihlášen do seznamu odběratelů %s';
+$lang['subscr_not_subscribed'] = '%s není přihlášen do seznamu odběratelů %s';
+$lang['subscr_m_not_subscribed'] = 'V současné době neodebíráte změny na aktuální stránce nebo ve jmenném prostoru.';
+$lang['subscr_m_new_header'] = 'Přihlásit k odebírání změn e-mailem';
+$lang['subscr_m_current_header'] = 'Aktuální odběratelé změn';
+$lang['subscr_m_unsubscribe'] = 'Odhlásit z odběru změn e-mailem';
+$lang['subscr_m_subscribe'] = 'Přihlásit se k odběru změn e-mailem';
+$lang['subscr_m_receive'] = 'Přejete si dostávat';
+$lang['subscr_style_every'] = 'e-mail pro každou změnu';
+$lang['subscr_style_digest'] = 'souhrnný e-mail změn pro každou stránku (každé %.2f dny/dní)';
+$lang['subscr_style_list'] = 'seznam změněných stránek od posledního e-mailu (každé %.2f dny/dní)';
+$lang['authtempfail'] = 'Autentizace uživatelů je dočasně nedostupná. Pokud tento problém přetrvává, informujte prosím správce této wiki.';
+$lang['i_chooselang'] = 'Vyberte si jazyk';
+$lang['i_installer'] = 'Instalace DokuWiki';
+$lang['i_wikiname'] = 'Název wiki';
+$lang['i_enableacl'] = 'Zapnout ACL (doporučeno)';
+$lang['i_superuser'] = 'Správce';
+$lang['i_problems'] = 'Instalátor narazil na níže popsané problémy. Nelze pokračovat v instalaci, dokud je neopravíte.';
+$lang['i_modified'] = 'Instalátor bude z bezpečnostních důvodů pracovat pouze s čistou a ještě neupravenou instalací DokuWiki. Buď znovu rozbalte soubory z instalačního balíčku, nebo zkuste prostudovat instrukce pro instalaci DokuWiki.';
+$lang['i_funcna'] = 'PHP funkce %s
není dostupná. Váš webhosting ji možná z nějakého důvodu vypnul.';
+$lang['i_phpver'] = 'Verze vaší instalace PHP %s
je nižší než požadovaná %s
. Budete muset aktualizovat svou instalaci PHP.';
+$lang['i_mbfuncoverload'] = 'mbstring.func_overload musí být vypnut v php.ini pro běh DokuWiki.';
+$lang['i_permfail'] = 'DokuWiki nemůže zapisovat do %s
. Budete muset opravit práva k tomuto adresáři.';
+$lang['i_confexists'] = '%s
již existuje';
+$lang['i_writeerr'] = 'Nelze vytvořit %s
. Budete muset zkontrolovat práva k souborům či adresářům a vytvořit tento soubor ručně.';
+$lang['i_badhash'] = 'soubor dokuwiki.php (hash=%s
) nebyl rozpoznán nebo byl upraven';
+$lang['i_badval'] = '%s
- neplatná nebo prázdná hodnota';
+$lang['i_success'] = 'Konfigurace byla úspěšně dokončena. Nyní můžete smazat soubor install.php. Pokračujte do své nové DokuWiki.';
+$lang['i_failure'] = 'Vyskytly se nějaké chyby při zápisu do konfiguračních souborů. Budete je nejspíš muset upravit ručně před použitím své nové DokuWiki.';
+$lang['i_policy'] = 'Úvodní politika ACL';
+$lang['i_pol0'] = 'Otevřená wiki (čtení, zápis a upload pro všechny)';
+$lang['i_pol1'] = 'Veřejná wiki (čtení pro všechny, zápis a upload pro registrované uživatele)';
+$lang['i_pol2'] = 'Uzavřená wiki (čtení, zápis a upload pouze pro registrované uživatele)';
+$lang['i_allowreg'] = 'Povol uživatelům registraci';
+$lang['i_retry'] = 'Zkusit znovu';
+$lang['i_license'] = 'Vyberte prosím licenci obsahu:';
+$lang['i_license_none'] = 'Nezobrazovat žádné licenční informace';
+$lang['i_pop_field'] = 'Prosím, pomozte nám vylepšit DokuWiki:';
+$lang['i_pop_label'] = 'Jednou měsíčně zaslat anonymní data o využívání DokuWiki jejím vývojářům';
+$lang['recent_global'] = 'Právě si prohlížíte změny ve jmenném prostoru %s. Také si můžete zobrazit změny v celé wiki.';
+$lang['years'] = 'před %d roky';
+$lang['months'] = 'před %d měsíci';
+$lang['weeks'] = 'před %d týdny';
+$lang['days'] = 'před %d dny';
+$lang['hours'] = 'před %d hodinami';
+$lang['minutes'] = 'před %d minutami';
+$lang['seconds'] = 'před %d sekundami';
+$lang['wordblock'] = 'Vaše změny nebyly uloženy, protože obsahují blokovaný text(spam).';
+$lang['media_uploadtab'] = 'Nahrát';
+$lang['media_searchtab'] = 'Hledat';
+$lang['media_file'] = 'Soubor';
+$lang['media_viewtab'] = 'Zobrazit';
+$lang['media_edittab'] = 'Upravit';
+$lang['media_historytab'] = 'Historie';
+$lang['media_list_thumbs'] = 'Zmenšeniny';
+$lang['media_list_rows'] = 'Řádky';
+$lang['media_sort_name'] = 'Jméno';
+$lang['media_sort_date'] = 'Datum';
+$lang['media_namespaces'] = 'Vyber jmenný prostor';
+$lang['media_files'] = 'Soubory v %s';
+$lang['media_upload'] = 'Upload do %s';
+$lang['media_search'] = 'Hledat v %s';
+$lang['media_view'] = '%s';
+$lang['media_viewold'] = '%s na %s';
+$lang['media_edit'] = 'Upravit %s';
+$lang['media_history'] = 'Historie %s';
+$lang['media_meta_edited'] = 'metadata upravena';
+$lang['media_perm_read'] = 'Bohužel, nemáte práva číst soubory.';
+$lang['media_perm_upload'] = 'Bohužel, nemáte práva nahrávat soubory.';
+$lang['media_update'] = 'Nahrát novou verzi';
+$lang['media_restore'] = 'Obnovit tuto verzi';
+$lang['media_acl_warning'] = 'Tento seznam nemusí být úplný z důvodu omezení práv ACL a skrytým stránkám.';
+$lang['currentns'] = 'Aktuální jmenný prostor';
+$lang['searchresult'] = 'Výsledek hledání';
+$lang['plainhtml'] = 'Čisté HTML';
+$lang['wikimarkup'] = 'Wiki jazyk';
+$lang['page_nonexist_rev'] = 'Stránka neexistovala na %s. Byla vytvořena dodatečne na %s.';
+$lang['unable_to_parse_date'] = 'Nelze rozebrat parametr "%s".';
+$lang['email_signature_text'] = 'Tento e-mail byl automaticky vygenerován systémem DokuWiki
+@DOKUWIKIURL@';
diff --git a/public_html/inc/lang/cs/locked.txt b/public_html/inc/lang/cs/locked.txt
new file mode 100644
index 00000000..23fd943a
--- /dev/null
+++ b/public_html/inc/lang/cs/locked.txt
@@ -0,0 +1,3 @@
+====== Stránka je zamknutá ======
+
+Tato stránka je právě zamknutá pro úpravy jiným uživatelem. Musíte počkat, než onen uživatel dokončí své úpravy nebo než tento zámek vyprší.
diff --git a/public_html/inc/lang/cs/login.txt b/public_html/inc/lang/cs/login.txt
new file mode 100644
index 00000000..a44ae599
--- /dev/null
+++ b/public_html/inc/lang/cs/login.txt
@@ -0,0 +1,3 @@
+====== Přihlášení ======
+
+Momentálně nejste přihlášen(a)! Prosím vložte své identifikační údaje níže. Pro přihlášení musíte mít zapnuté cookies.
diff --git a/public_html/inc/lang/cs/mailtext.txt b/public_html/inc/lang/cs/mailtext.txt
new file mode 100644
index 00000000..8036ebec
--- /dev/null
+++ b/public_html/inc/lang/cs/mailtext.txt
@@ -0,0 +1,12 @@
+Stránka ve vaší DokuWiki byla změněna. Zde jsou podrobnosti:
+
+Datum : @DATE@
+Prohlížeč : @BROWSER@
+IP adresa : @IPADDRESS@
+Hostitel : @HOSTNAME@
+Stará verze : @OLDPAGE@
+Nová verze : @NEWPAGE@
+Komentář : @SUMMARY@
+Uživatel : @USER@
+
+@DIFF@
diff --git a/public_html/inc/lang/cs/mailwrap.html b/public_html/inc/lang/cs/mailwrap.html
new file mode 100644
index 00000000..f15ec066
--- /dev/null
+++ b/public_html/inc/lang/cs/mailwrap.html
@@ -0,0 +1,13 @@
+
+
+ @TITLE@
+
+
+
+
+ @HTMLBODY@
+
+
+ @EMAILSIGNATURE@
+
+
\ No newline at end of file
diff --git a/public_html/inc/lang/cs/newpage.txt b/public_html/inc/lang/cs/newpage.txt
new file mode 100644
index 00000000..091250af
--- /dev/null
+++ b/public_html/inc/lang/cs/newpage.txt
@@ -0,0 +1,3 @@
+====== Stránka s tímto názvem ještě neexistuje ======
+
+Odkaz vás zavedl na stránku, která ještě neexistuje. Můžete ji vytvořit stisknutím tlačítka ''Vytvořit stránku''.
diff --git a/public_html/inc/lang/cs/norev.txt b/public_html/inc/lang/cs/norev.txt
new file mode 100644
index 00000000..f601f589
--- /dev/null
+++ b/public_html/inc/lang/cs/norev.txt
@@ -0,0 +1,3 @@
+====== Taková verze neexistuje ======
+
+Zadaná verze neexistuje. Stiskněte tlačítko ''Starší verze'' pro seznam starších verzí tohoto dokumentu.
diff --git a/public_html/inc/lang/cs/password.txt b/public_html/inc/lang/cs/password.txt
new file mode 100644
index 00000000..6b7c6827
--- /dev/null
+++ b/public_html/inc/lang/cs/password.txt
@@ -0,0 +1,7 @@
+Dobrý den!
+
+Zde jsou přihlašovací informace pro wiki @TITLE@ (@DOKUWIKIURL@)
+
+Jméno : @FULLNAME@
+Uživatelské jméno : @LOGIN@
+Heslo : @PASSWORD@
diff --git a/public_html/inc/lang/cs/preview.txt b/public_html/inc/lang/cs/preview.txt
new file mode 100644
index 00000000..079eda4e
--- /dev/null
+++ b/public_html/inc/lang/cs/preview.txt
@@ -0,0 +1,3 @@
+====== Náhled ======
+
+Zde je náhled, jak bude dokument vypadat. Pozor: Soubor zatím **není uložen**!
diff --git a/public_html/inc/lang/cs/pwconfirm.txt b/public_html/inc/lang/cs/pwconfirm.txt
new file mode 100644
index 00000000..2605b488
--- /dev/null
+++ b/public_html/inc/lang/cs/pwconfirm.txt
@@ -0,0 +1,9 @@
+Dobrý den!
+
+Někdo požádal o nové heslo k vašemu uživatelskému účtu na wiki @TITLE@ (@DOKUWIKIURL@)
+
+Pokud jste o nové heslo nežádali, ignorujte prosím tento e-mail.
+
+Pro potvrzení, že jste tento požadavek poslali opravdu vy, prosím otevřete následující odkaz.
+
+@CONFIRM@
diff --git a/public_html/inc/lang/cs/read.txt b/public_html/inc/lang/cs/read.txt
new file mode 100644
index 00000000..d5b2d73c
--- /dev/null
+++ b/public_html/inc/lang/cs/read.txt
@@ -0,0 +1 @@
+Tato stránka je pouze pro čtení. Můžete si pouze prohlédnout zdrojový kód, ale ne ho měnit. Zeptejte se správce, pokud si myslíte, že něco není v pořádku.
diff --git a/public_html/inc/lang/cs/recent.txt b/public_html/inc/lang/cs/recent.txt
new file mode 100644
index 00000000..e4ca5e9b
--- /dev/null
+++ b/public_html/inc/lang/cs/recent.txt
@@ -0,0 +1,3 @@
+====== Poslední úpravy ======
+
+Následující stránky byly nedávno změněny.
diff --git a/public_html/inc/lang/cs/register.txt b/public_html/inc/lang/cs/register.txt
new file mode 100644
index 00000000..b0d6bb1f
--- /dev/null
+++ b/public_html/inc/lang/cs/register.txt
@@ -0,0 +1,3 @@
+====== Zaregistrujte se jako nový uživatel ======
+
+Abyste získali uživatelský účet, vyplňte prosím všechny informace v následujícím formuláři. Zadejte **platnou** mailovou adresu, na níž bude zasláno heslo. Uživatelské jméno musí být v platném [[doku>pagename|formátu]] (který je stejný jako formát názvu stránky).
diff --git a/public_html/inc/lang/cs/registermail.txt b/public_html/inc/lang/cs/registermail.txt
new file mode 100644
index 00000000..3c449bca
--- /dev/null
+++ b/public_html/inc/lang/cs/registermail.txt
@@ -0,0 +1,10 @@
+Zaregistroval se nový uživatel. Zde jsou detaily:
+
+Uživatelské jméno : @NEWUSER@
+Celé jméno : @NEWNAME@
+E-mail : @NEWEMAIL@
+
+Datum : @DATE@
+Prohlížeč : @BROWSER@
+IP adresa : @IPADDRESS@
+Hostitel : @HOSTNAME@
diff --git a/public_html/inc/lang/cs/resendpwd.txt b/public_html/inc/lang/cs/resendpwd.txt
new file mode 100644
index 00000000..0820f287
--- /dev/null
+++ b/public_html/inc/lang/cs/resendpwd.txt
@@ -0,0 +1,3 @@
+====== Zaslat nové heslo ======
+
+Abyste získali nové heslo ke svému účtu v této wiki, vyplňte všechny níže uvedené informace. Nové heslo bude zasláno na e-mailovou adresu, kterou jste zadali při registraci. Uživatelské jméno by mělo být stejné jako vaše uživatelské jméno, s nímž se přihlašujete do této wiki.
diff --git a/public_html/inc/lang/cs/resetpwd.txt b/public_html/inc/lang/cs/resetpwd.txt
new file mode 100644
index 00000000..9aa449cb
--- /dev/null
+++ b/public_html/inc/lang/cs/resetpwd.txt
@@ -0,0 +1,3 @@
+====== Nastavení nového hesla ======
+
+Zadejte prosím nové heslo pro váš účet.
\ No newline at end of file
diff --git a/public_html/inc/lang/cs/revisions.txt b/public_html/inc/lang/cs/revisions.txt
new file mode 100644
index 00000000..e3744b76
--- /dev/null
+++ b/public_html/inc/lang/cs/revisions.txt
@@ -0,0 +1,3 @@
+====== Starší verze ======
+
+Zde jsou starší verze daného dokumentu. Pro návrat ke starší verzi si ji zvolte ze seznamu níže, stiskněte tlačítko ''Upravit stránku'' a uložte ji.
diff --git a/public_html/inc/lang/cs/searchpage.txt b/public_html/inc/lang/cs/searchpage.txt
new file mode 100644
index 00000000..800d61c2
--- /dev/null
+++ b/public_html/inc/lang/cs/searchpage.txt
@@ -0,0 +1,4 @@
+====== Vyhledávání ======
+
+Výsledky hledání můžete vidět níže. @CREATEPAGEINFO@
+
diff --git a/public_html/inc/lang/cs/showrev.txt b/public_html/inc/lang/cs/showrev.txt
new file mode 100644
index 00000000..971f836c
--- /dev/null
+++ b/public_html/inc/lang/cs/showrev.txt
@@ -0,0 +1,2 @@
+**Toto je starší verze dokumentu!**
+----
diff --git a/public_html/inc/lang/cs/stopwords.txt b/public_html/inc/lang/cs/stopwords.txt
new file mode 100644
index 00000000..26d87414
--- /dev/null
+++ b/public_html/inc/lang/cs/stopwords.txt
@@ -0,0 +1,944 @@
+# Stopwords for Czech - generated from ispell-cs (license: GNU GPL)
+aby
+ako
+akorát
+ale
+and
+ani
+ano
+apod
+asi
+atd
+během
+bez
+beze
+blízko
+bohudík
+bohužel
+bokem
+buď
+bude
+budem
+budeme
+budeš
+budete
+budiž
+budou
+budu
+bůhvíco
+bůhvíčí
+bůhvíjak
+bůhvíjaký
+bůhvíkam
+bůhvíkde
+bůhvíkdo
+bůhvíkdy
+bůhvíkolik
+bůhvíkterý
+bůhvínač
+bůhvíproč
+bych
+bychom
+byl
+byla
+byli
+bylo
+byly
+bysme
+být
+cca
+cokoli
+cokoliv
+copak
+cosi
+což
+cože
+častěji
+často
+čeho
+čehokoli
+čehokoliv
+čehosi
+čehož
+čem
+čemkoli
+čemkoliv
+čemsi
+čemu
+čemukoli
+čemukoliv
+čemusi
+čemuž
+čemž
+čertvíco
+čertvíčí
+čertvíjak
+čertvíjaký
+čertvíkam
+čertvíkde
+čertvíkdo
+čertvíkdy
+čertvíkolik
+čertvíkterý
+čertvínač
+čertvíproč
+číhokoli
+číhosi
+číchkoli
+číchsi
+číkoli
+čím
+čímakoli
+čímasi
+čímikoli
+čímisi
+čímkoli
+čímkoliv
+čímpak
+čímsi
+čímukoli
+čímusi
+čímž
+čísi
+dál
+dále
+daleko
+další
+dám
+dle
+dnem
+dnes
+dneska
+dobrá
+dobré
+dobrý
+dobře
+docela
+dokonce
+doposavad
+doposud
+doprostřed
+dosavad
+dospod
+dospodu
+dost
+dosti
+dosud
+dovnitř
+eště
+formou
+ho
+hodinou
+hodně
+horší
+hůř
+hůře
+chceš
+chci
+chtěl
+jacíkoli
+jacíkoliv
+jacípak
+jacísi
+jak
+jakákoli
+jakákoliv
+jakápak
+jakási
+jaké
+jakéhokoli
+jakéhokoliv
+jakéhopak
+jakéhosi
+jakékoli
+jakékoliv
+jakémkoli
+jakémkoliv
+jakémpak
+jakémsi
+jakémukoli
+jakémukoliv
+jakémupak
+jakémusi
+jaképak
+jakési
+jakmile
+jako
+jakou
+jakoukoli
+jakoukoliv
+jakoupak
+jakousi
+jakož
+jakpak
+jaký
+jakýchkoli
+jakýchkoliv
+jakýchpak
+jakýchsi
+jakýkoli
+jakýkoliv
+jakýmakoli
+jakýmakoliv
+jakýmapak
+jakýmasi
+jakýmikoli
+jakýmikoliv
+jakýmipak
+jakýmisi
+jakýmkoli
+jakýmkoliv
+jakýmpak
+jakýmsi
+jakýpak
+jakýsi
+jakže
+jasné
+jasně
+jde
+je
+jediná
+jediné
+jediný
+jeho
+jehož
+jej
+její
+jejíhož
+jejich
+jejichž
+jejíchž
+jejímaž
+jejímiž
+jejímuž
+jejímž
+jejíž
+jejž
+jelikož
+jemu
+jemuž
+jen
+jenom
+jenž
+jenže
+jestli
+ještě
+jež
+ježto
+ji
+jí
+jich
+jichž
+jim
+jím
+jimi
+jimiž
+jimž
+jímž
+jiná
+jinak
+jiné
+jinou
+jiný
+jiných
+jiným
+jisté
+jistě
+již
+jíž
+jménem
+jsem
+jseš
+jsi
+jsme
+jsou
+jste
+kam
+každý
+kde
+kdeco
+kdečí
+kdejaký
+kdekdo
+kdekterý
+kdepak
+kdesi
+kdo
+kdokoli
+kdokoliv
+kdopak
+kdosi
+kdovíjak
+kdovíkde
+kdovíkdo
+kdož
+kdy
+kdysi
+když
+kohokoli
+kohokoliv
+kohopak
+kohosi
+kohož
+kol
+kolem
+kolik
+kolikže
+kolkolem
+komkoli
+komkoliv
+kompak
+komsi
+komu
+komukoli
+komukoliv
+komupak
+komusi
+komuž
+komž
+koncem
+konče
+končí
+končíc
+konec
+kontra
+kromě
+která
+kterákoli
+kterákoliv
+kterási
+kterážto
+které
+kteréhokoli
+kteréhokoliv
+kteréhosi
+kteréhož
+kterékoli
+kterékoliv
+kterém
+kterémkoli
+kterémkoliv
+kterémsi
+kterémukoli
+kterémukoliv
+kterémusi
+kterémuž
+kterémžto
+kterési
+kteréžto
+kterou
+kteroukoli
+kteroukoliv
+kterousi
+kteroužto
+který
+kterýchkoli
+kterýchkoliv
+kterýchsi
+kterýchžto
+kterýkoli
+kterýkoliv
+kterým
+kterýmakoli
+kterýmakoliv
+kterýmasi
+kterýmikoli
+kterýmikoliv
+kterýmisi
+kterýmiž
+kterýmkoli
+kterýmkoliv
+kterýmsi
+kterýmžto
+kterýsi
+kterýžto
+kteří
+kteřísi
+kteřížto
+ktříkoli
+ktříkoliv
+kupodivu
+kupříkladu
+kvůli
+kýmkoli
+kýmkoliv
+kýmpak
+kýmsi
+kýmž
+lecco
+leccos
+lecčems
+lecjak
+lecjaký
+leckam
+leckams
+leckde
+leckdo
+leckdy
+leckterý
+ledaco
+ledacos
+ledačí
+ledajak
+ledajaký
+ledakdo
+ledakterý
+ledaskam
+ledaskde
+ledaskdo
+ledaskdy
+lépe
+lepší
+líp
+má
+mají
+málo
+máloco
+málokdo
+málokterý
+mám
+máme
+máš
+máte
+max
+mé
+mě
+mého
+měl
+měla
+mělo
+mém
+mému
+mezi
+mi
+mí
+mimo
+min
+míň
+místo
+mít
+mne
+mně
+mnoho
+mnou
+moc
+mohl
+mohla
+mohou
+mohu
+moje
+moji
+mojí
+mou
+možná
+mu
+můj
+musel
+muset
+musí
+musím
+musíš
+musíte
+může
+můžeš
+můžete
+můžu
+my
+mých
+mým
+mými
+nač
+načež
+načpak
+nad
+nade
+nám
+námi
+namísto
+naň
+naprosto
+naproti
+např
+napříč
+nás
+náš
+naši
+navíc
+navrch
+navrchu
+navzdory
+ně
+nebo
+nebude
+nebyl
+nebyli
+nebyly
+něco
+něčí
+nedaleko
+nehledíc
+něho
+něhož
+nechceš
+nechci
+nechť
+nechtěl
+něj
+nějak
+nějaká
+nějaké
+nějakého
+nějakou
+nějaký
+nejasné
+nejasný
+nejčastěji
+nejde
+nejen
+nejhůř
+nejhůře
+nejlépe
+nejnižší
+nejsem
+nejsou
+nejvyšší
+nějž
+někam
+někde
+někdo
+někdy
+několik
+nekončí
+některý
+nelze
+něm
+nemá
+nemají
+nemálo
+nemám
+nemáme
+nemáš
+nemáte
+nemít
+nemohl
+nemohla
+nemohou
+nemohu
+němu
+nemusel
+nemuset
+nemusí
+nemusím
+nemusíš
+němuž
+nemůže
+nemůžeš
+nemůžete
+nemůžu
+němž
+není
+nepřesná
+nepřesné
+nepřesně
+nepřesný
+nepřímo
+netřeba
+netuším
+netýká
+neví
+nevím
+nevíš
+nevlastní
+nevyjímaje
+nevyjímajíc
+než
+něž
+ni
+ní
+nic
+ničeho
+ničem
+ničemu
+ničí
+ničím
+nie
+nieje
+nich
+nichž
+nijaký
+nikdo
+nikto
+nim
+ním
+nimi
+nimiž
+nimž
+nímž
+nízká
+niž
+níž
+nižádný
+níže
+nižší
+nový
+nutně
+oba
+obě
+oběma
+obou
+oč
+očpak
+ode
+odspoda
+odspodu
+ohledně
+okamžikem
+okolo
+on
+oň
+ona
+onen
+oni
+ono
+ony
+opravdu
+oproti
+ostatní
+osum
+pak
+poblíž
+počátkem
+počínaje
+počínajíc
+pod
+pode
+podél
+podle
+podobně
+pokud
+poměrně
+pomocí
+ponad
+pořád
+poslední
+posléze
+posud
+potom
+pražádný
+pro
+proč
+pročpak
+proň
+prostě
+proti
+proto
+protože
+před
+přede
+předem
+přes
+přese
+přesná
+přesné
+přesně
+přesný
+při
+přičemž
+přímo
+případná
+případné
+případně
+případný
+přitom
+půlí
+raději
+rokem
+sám
+sama
+samá
+samé
+samého
+samém
+samému
+sami
+samo
+samou
+samozřejmě
+samozřejmý
+samu
+samy
+samý
+samých
+samým
+samými
+se
+sebe
+sebou
+sem
+ses
+si
+sice
+sis
+skoro
+skrz
+skrze
+snad
+sobě
+som
+sotva
+sotvaco
+sotvakdo
+spíš
+spíše
+spodem
+spolu
+stačí
+stejně
+stranou
+středem
+svá
+své
+svého
+svém
+svému
+sví
+svoje
+svoji
+svojí
+svou
+svrchu
+svůj
+svých
+svým
+svými
+špatná
+špatné
+špatně
+špatný
+tací
+tady
+tahle
+tak
+taká
+také
+takhle
+takováto
+takové
+takovéhoto
+takovémto
+takovémuto
+takovéto
+takovíto
+takovouto
+takový
+takovýchto
+takovýma
+takovýmato
+takovýmito
+takovýmto
+takovýto
+takto
+taky
+taký
+takže
+tam
+tamten
+tatáž
+tato
+táž
+tě
+tebe
+tebou
+teď
+teda
+tedy
+téhle
+téhož
+těchhle
+těchto
+těchže
+těm
+téma
+těmahle
+těmhle
+těmihle
+těmito
+těmto
+těmu
+témuž
+témž
+témže
+ten
+tenhle
+tenhleten
+tento
+tentýž
+této
+téže
+ti
+tihle
+tím
+tímhle
+tímtéž
+tímto
+titíž
+tito
+tíž
+tobě
+tohle
+toho
+tohohle
+tohoto
+tom
+tomhle
+tomtéž
+tomto
+tomu
+tomuhle
+tomuto
+totéž
+toto
+touhle
+toutéž
+touto
+touž
+touže
+trochu
+trošku
+třeba
+tuhle
+tutéž
+tuto
+tvá
+tvé
+tvého
+tvém
+tvému
+tví
+tvoje
+tvoji
+tvojí
+tvou
+tvůj
+tvých
+tvým
+tvými
+ty
+tyhle
+týchž
+týká
+týmiž
+týmž
+tys
+tytéž
+tyto
+týž
+úderem
+uplná
+uplné
+úplně
+úplný
+uprostřed
+určitě
+uvnitř
+úvodem
+vám
+vámi
+vás
+váš
+vaše
+vaši
+včetně
+vedle
+velmi
+veprostřed
+versus
+vespod
+vespodu
+veškerý
+vevnitř
+víc
+více
+vím
+vinou
+víš
+viz
+vlastně
+vlivem
+vně
+vnitřka
+vnitřkem
+vnitřku
+von
+vrchem
+však
+vše
+všecek
+všecka
+všecko
+všecky
+všeho
+všech
+všechen
+všechna
+všechno
+všechnu
+všechny
+všelico
+všelicos
+všeličehos
+všeličems
+všeličemus
+všeličí
+všeličíms
+všelijaký
+všelikdo
+všeliký
+všeliskdo
+všem
+všemi
+všemu
+vši
+vší
+všicci
+všichni
+vším
+vůbec
+vůči
+vy
+vyjma
+vysoká
+výše
+vyšší
+vzdor
+vzhledem
+vždy
+za
+zač
+začátkem
+začpak
+zaň
+zásluhou
+zatím
+závěrem
+zboku
+zcela
+zčásti
+zda
+zdaleka
+zde
+zespoda
+zespodu
+zevnitř
+zeza
+znovu
+zpět
+zpod
+zponad
+zpoza
+zprostřed
+zřídkaco
+zřídkakdo
+zvnitřka
+zvnitřku
+žádný
diff --git a/public_html/inc/lang/cs/subscr_digest.txt b/public_html/inc/lang/cs/subscr_digest.txt
new file mode 100644
index 00000000..2ed7bf7b
--- /dev/null
+++ b/public_html/inc/lang/cs/subscr_digest.txt
@@ -0,0 +1,18 @@
+Dobrý den!
+
+Byla změněna stránka @PAGE@ ve wiki @TITLE@.
+Zde jsou změny:
+
+--------------------------------------------------------
+@DIFF@
+--------------------------------------------------------
+
+Stará revize: @OLDPAGE@
+Nová revize: @NEWPAGE@
+
+Pro odhlášení z odebírání změn na této webové stránce
+se prosím přihlaste do wiki na adrese
+@DOKUWIKIURL@, pak navštivte
+@SUBSCRIBE@
+a odhlaste se z odebírání změn na stránce či
+ve jmenném prostoru.
diff --git a/public_html/inc/lang/cs/subscr_form.txt b/public_html/inc/lang/cs/subscr_form.txt
new file mode 100644
index 00000000..d051b646
--- /dev/null
+++ b/public_html/inc/lang/cs/subscr_form.txt
@@ -0,0 +1,3 @@
+====== Správa odběratelů změn ======
+
+Tato stránka Vám umožňuje spravovat uživatele přihlášené k odběru změn aktuální stránky nebo jmenného prostoru.
\ No newline at end of file
diff --git a/public_html/inc/lang/cs/subscr_list.txt b/public_html/inc/lang/cs/subscr_list.txt
new file mode 100644
index 00000000..d7699886
--- /dev/null
+++ b/public_html/inc/lang/cs/subscr_list.txt
@@ -0,0 +1,15 @@
+Dobrý den!
+
+Byly změněny stránky ve jmenném prostoru @PAGE@ wiki @TITLE@.
+Zde jsou:
+
+--------------------------------------------------------
+@DIFF@
+--------------------------------------------------------
+
+Pro odhlášení z odebírání změn
+se prosím příhlašte do wiki na adrese
+@DOKUWIKIURL@, pak navštivte
+@SUBSCRIBE@
+a odhlaste se z odebírání změn na stránce či
+ve jmenném prostoru.
diff --git a/public_html/inc/lang/cs/subscr_single.txt b/public_html/inc/lang/cs/subscr_single.txt
new file mode 100644
index 00000000..83d45b6d
--- /dev/null
+++ b/public_html/inc/lang/cs/subscr_single.txt
@@ -0,0 +1,21 @@
+Dobrý den!
+
+Byla změněna stránka @PAGE@ ve wiki @TITLE@.
+Zde jsou změny:
+
+--------------------------------------------------------
+@DIFF@
+--------------------------------------------------------
+
+Datum: @DATE@
+Uživatel: @USER@
+Souhrn editace: @SUMMARY@
+Stará revize: @OLDPAGE@
+Nová revize: @NEWPAGE@
+
+Pro odhlášení z odebírání změn na této webové stránce
+se prosím přihlaste do wiki na adrese
+@DOKUWIKIURL@, pak navštivte
+@SUBSCRIBE@
+a odhlaste se z odebírání změn na stránce či
+ve jmenném prostoru.
diff --git a/public_html/inc/lang/cs/updateprofile.txt b/public_html/inc/lang/cs/updateprofile.txt
new file mode 100644
index 00000000..bf6281df
--- /dev/null
+++ b/public_html/inc/lang/cs/updateprofile.txt
@@ -0,0 +1,5 @@
+====== Upravit profil vašeho účtu ======
+
+Vyplňte pouze pole, která chcete změnit. Nemůžete ale změnit své uživatelské jméno.
+
+
diff --git a/public_html/inc/lang/cs/uploadmail.txt b/public_html/inc/lang/cs/uploadmail.txt
new file mode 100644
index 00000000..090167da
--- /dev/null
+++ b/public_html/inc/lang/cs/uploadmail.txt
@@ -0,0 +1,10 @@
+Do DokuWiki byl nahrán nový dokument. Zde jsou podrobnosti:
+
+Soubor : @MEDIA@
+Datum : @DATE@
+Prohlížeč : @BROWSER@
+IP adresa : @IPADDRESS@
+Hostitel : @HOSTNAME@
+Velikost : @SIZE@
+MIME typ : @MIME@
+Uživatel : @USER@
diff --git a/public_html/inc/lang/cy/admin.txt b/public_html/inc/lang/cy/admin.txt
new file mode 100644
index 00000000..75485fcf
--- /dev/null
+++ b/public_html/inc/lang/cy/admin.txt
@@ -0,0 +1,4 @@
+====== Gweinyddu ======
+
+Gallwch chi ddarganfod rhestr o dasgau gweinyddol ar gael mewn DokuWiki, isod.
+
diff --git a/public_html/inc/lang/cy/adminplugins.txt b/public_html/inc/lang/cy/adminplugins.txt
new file mode 100644
index 00000000..ff21264f
--- /dev/null
+++ b/public_html/inc/lang/cy/adminplugins.txt
@@ -0,0 +1,2 @@
+===== Ategion Ychwanegol =====
+
diff --git a/public_html/inc/lang/cy/backlinks.txt b/public_html/inc/lang/cy/backlinks.txt
new file mode 100644
index 00000000..2180e550
--- /dev/null
+++ b/public_html/inc/lang/cy/backlinks.txt
@@ -0,0 +1,4 @@
+====== Olgysylltiadau ======
+
+Dyma restr o dudalennau sy'n ymddangos eu bod nhw'n cysylltu'n ôl i'r dudalen gyfredol.
+
diff --git a/public_html/inc/lang/cy/conflict.txt b/public_html/inc/lang/cy/conflict.txt
new file mode 100644
index 00000000..133e863e
--- /dev/null
+++ b/public_html/inc/lang/cy/conflict.txt
@@ -0,0 +1,6 @@
+====== Mae fersiwn mwy diweddar yn bodoli ======
+
+Mae fersiwn mwy diweddar o'r ddogfen a wnaethoch chi olygu yn bodoli. Bydd hwn yn digwydd pan fydd defnyddiwr arall yn newid y ddogfen wrth i chi'n ei golygu hi.
+
+Archwiliwch y gwahaniaethau isod yn drylwyr, yna penderfynnwch pa fersiwn i'w gadw. Os ydych chi'n dewis ''cadw'', caiff eich fersiwn chi ei gadw. Pwyswch ''canslo'' i gadw'r fersiwn cyfredol.
+
diff --git a/public_html/inc/lang/cy/denied.txt b/public_html/inc/lang/cy/denied.txt
new file mode 100644
index 00000000..2c0eb001
--- /dev/null
+++ b/public_html/inc/lang/cy/denied.txt
@@ -0,0 +1,4 @@
+====== Gwrthodwyd Hawl ======
+
+Sori, 'sdim hawliau digonol 'da chi i barhau.
+
diff --git a/public_html/inc/lang/cy/diff.txt b/public_html/inc/lang/cy/diff.txt
new file mode 100644
index 00000000..69a9ff68
--- /dev/null
+++ b/public_html/inc/lang/cy/diff.txt
@@ -0,0 +1,4 @@
+====== Gwahaniaethau ======
+
+Mae hwn yn dangos y gwahaniaethau rhwng dau fersiwn y dudalen.
+
diff --git a/public_html/inc/lang/cy/draft.txt b/public_html/inc/lang/cy/draft.txt
new file mode 100644
index 00000000..3b10c511
--- /dev/null
+++ b/public_html/inc/lang/cy/draft.txt
@@ -0,0 +1,8 @@
+====== Ffeil ddrafft wedi'i darganfod ======
+
+Doedd eich sesiwn golygu ddiwethaf heb gwblhau'n gywir. Gwnaeth DokuWiki gadw copi ddrafft yn awtomatig wrth i chi weithio, sydd nawr ar gael i chi er mwyn parhau gyda'ch golygu. Gallwch chi weld y data a gafodd ei gadw o'ch sesiwn diwethaf isod.
+
+Penderfynwch os ydych chi am //adennill// eich sesiwn golygu goll, //dileu//'r drafft awtogadw neu //canslo//'r broses olygu.
+
+
+
diff --git a/public_html/inc/lang/cy/edit.txt b/public_html/inc/lang/cy/edit.txt
new file mode 100644
index 00000000..7e2d899e
--- /dev/null
+++ b/public_html/inc/lang/cy/edit.txt
@@ -0,0 +1,2 @@
+Golygwch y dudalen a phwyso ''Cadw''. Gweler [[wiki:syntax]] ar gyfer cystrawen Wici. Golygwch y dudalen hon dim ond os ydych chi'n gallu ei **gwella** hi. Os ydych chi am brofi pethau, cymerwch eich camau cyntaf ar y [[playground:playground|maes chwarae]].
+
diff --git a/public_html/inc/lang/cy/editrev.txt b/public_html/inc/lang/cy/editrev.txt
new file mode 100644
index 00000000..5d32e9a6
--- /dev/null
+++ b/public_html/inc/lang/cy/editrev.txt
@@ -0,0 +1,2 @@
+**Rydych chi wedi llwytho hen adolygiad y ddogfen!** Os ydych chi'n ei chadw hi, byddwch chi'n creu fersiwn newydd gyda'r data hwn.
+----
diff --git a/public_html/inc/lang/cy/index.txt b/public_html/inc/lang/cy/index.txt
new file mode 100644
index 00000000..607a2f69
--- /dev/null
+++ b/public_html/inc/lang/cy/index.txt
@@ -0,0 +1,4 @@
+====== Map safle ======
+
+Dyma fap safle o bob tudalen sydd ar gael, wedi'u trefnu gan [[doku>namespaces|namespaces]].
+
diff --git a/public_html/inc/lang/cy/install.html b/public_html/inc/lang/cy/install.html
new file mode 100644
index 00000000..406c7b45
--- /dev/null
+++ b/public_html/inc/lang/cy/install.html
@@ -0,0 +1,24 @@
+Mae'r dudalen hon yn eich helpu chi i arsefydlu am y tro cyntaf a gyda ffurfweddu
+Dokuwiki. Mae mwy o wybodaeth ar yr arsefydlwr hwn
+ar dudalen ddogfennaeth ei hun.
+
+Mae DokuWiki yn defnyddio ffeiliau arferol ar gyfer storio tudalennau wici a
+gwybodaeth gysylltiol gyda'r tudalennau hynny (e.e. delweddau, indecsau chwilio,
+hen adolygiadau, ac ati). Er mwyn gweithredu'n llwyddiannus mae'n
+rhaid i DokuWiki gael yr hawl i ysgrifennu i'r ffolderi sydd yn
+dal y ffeiliau hynny. 'Dyw'r arsefydlwr hwn ddim yn gallu gosod hawliau ffolderi.
+Bydd hwn, fel rheol, yn gorfod cael ei wneud yn uniongyrchol gydag anogwr gorchymyn,
+neu os ydych chi'n defnyddio gwesteiwr, drwy FTP neu eich panel gwesteio (e.e.
+cPanel).
+
+Bydd yr arsefydlwr hwn yn gosod eich ffurfwedd DokuWiki ar gyfer
+ACL, sydd yn ei dro yn caniatáu
+mewngofnodi gweinyddwr a mynediad i ddewislen gweinyddu DokuWiki ar gyfer arsefydlu
+ategion, rheoli defnyddwyr, rheoli mynediad i dudalennau wici a newid gosodiadau
+ffurfwedd. 'Sdim angen hwn ar DokuWiki er mwyn gweithio, ond bydd yn gwneud
+Dokuwiki yn haws i'w weinyddu.
+
+Dylai defnyddwyr profiadol neu'r rheiny gydag anghenion gosodiad rrbennig special
+ddefnyddio'r dolenni hyn am wybodaeth parthed
+canllawiau arsefydlu
+and gosodiadau ffurfwedd.
diff --git a/public_html/inc/lang/cy/jquery.ui.datepicker.js b/public_html/inc/lang/cy/jquery.ui.datepicker.js
new file mode 100644
index 00000000..14fce914
--- /dev/null
+++ b/public_html/inc/lang/cy/jquery.ui.datepicker.js
@@ -0,0 +1,45 @@
+/* Welsh/UK initialisation for the jQuery UI date picker plugin. */
+/* Written by William Griffiths. */
+( function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+
+ // AMD. Register as an anonymous module.
+ define( [ "../widgets/datepicker" ], factory );
+ } else {
+
+ // Browser globals
+ factory( jQuery.datepicker );
+ }
+}( function( datepicker ) {
+
+datepicker.regional[ "cy-GB" ] = {
+ closeText: "Done",
+ prevText: "Prev",
+ nextText: "Next",
+ currentText: "Today",
+ monthNames: [ "Ionawr","Chwefror","Mawrth","Ebrill","Mai","Mehefin",
+ "Gorffennaf","Awst","Medi","Hydref","Tachwedd","Rhagfyr" ],
+ monthNamesShort: [ "Ion", "Chw", "Maw", "Ebr", "Mai", "Meh",
+ "Gor", "Aws", "Med", "Hyd", "Tac", "Rha" ],
+ dayNames: [
+ "Dydd Sul",
+ "Dydd Llun",
+ "Dydd Mawrth",
+ "Dydd Mercher",
+ "Dydd Iau",
+ "Dydd Gwener",
+ "Dydd Sadwrn"
+ ],
+ dayNamesShort: [ "Sul", "Llu", "Maw", "Mer", "Iau", "Gwe", "Sad" ],
+ dayNamesMin: [ "Su","Ll","Ma","Me","Ia","Gw","Sa" ],
+ weekHeader: "Wy",
+ dateFormat: "dd/mm/yy",
+ firstDay: 1,
+ isRTL: false,
+ showMonthAfterYear: false,
+ yearSuffix: "" };
+datepicker.setDefaults( datepicker.regional[ "cy-GB" ] );
+
+return datepicker.regional[ "cy-GB" ];
+
+} ) );
diff --git a/public_html/inc/lang/cy/lang.php b/public_html/inc/lang/cy/lang.php
new file mode 100644
index 00000000..de407f80
--- /dev/null
+++ b/public_html/inc/lang/cy/lang.php
@@ -0,0 +1,372 @@
+
+ * @author Anika Henke
+ * @author Matthias Grimm
+ * @author Matthias Schulte
+ * @author Alan Davies
+ */
+$lang['encoding'] = 'utf-8';
+$lang['direction'] = 'ltr';
+$lang['doublequoteopening'] = '“'; //“
+$lang['doublequoteclosing'] = '”'; //”
+$lang['singlequoteopening'] = '‘'; //‘
+$lang['singlequoteclosing'] = '’'; //’
+$lang['apostrophe'] = '’'; //’
+
+$lang['btn_edit'] = 'Golygu\'r dudaen hon';
+$lang['btn_source'] = 'Dangos y ffynhonnell';
+$lang['btn_show'] = 'Dangos y dudalen';
+$lang['btn_create'] = 'Creu\'r dudalen';
+$lang['btn_search'] = 'Chwilio';
+$lang['btn_save'] = 'Cadw';
+$lang['btn_preview'] = 'Rhagolwg';
+$lang['btn_top'] = 'Nôl i\'r brig';
+$lang['btn_newer'] = '<< mwy diweddar';
+$lang['btn_older'] = 'llai diweddar >>';
+$lang['btn_revs'] = 'Hen adolygiadau';
+$lang['btn_recent'] = 'Newidiadau Diweddar';
+$lang['btn_upload'] = 'Lanlwytho';
+$lang['btn_cancel'] = 'Canslo';
+$lang['btn_index'] = 'Safle map';
+$lang['btn_secedit'] = 'Golygu';
+$lang['btn_login'] = 'Mewngofnodi';
+$lang['btn_logout'] = 'Allgofnodi';
+$lang['btn_admin'] = 'Gweinyddu';
+$lang['btn_update'] = 'Diweddaru';
+$lang['btn_delete'] = 'Dileu';
+$lang['btn_back'] = 'Nôl';
+$lang['btn_backlink'] = 'Olgysylltiadau';
+$lang['btn_subscribe'] = 'Rheoli Tanysgrifiadau';
+$lang['btn_profile'] = 'Diweddaru Proffil';
+$lang['btn_reset'] = 'Ailosod';
+$lang['btn_resendpwd'] = 'Gosod cyfrinair newydd';
+$lang['btn_draft'] = 'Golygu drafft';
+$lang['btn_recover'] = 'Adennill drafft';
+$lang['btn_draftdel'] = 'Dileu drafft';
+$lang['btn_revert'] = 'Adfer';
+$lang['btn_register'] = 'Cofrestru';
+$lang['btn_apply'] = 'Gosod';
+$lang['btn_media'] = 'Rheolwr Cyfrwng';
+$lang['btn_deleteuser'] = 'Tynnu Fy Nghyfrif';
+$lang['btn_img_backto'] = 'Nôl i %s';
+$lang['btn_mediaManager'] = 'Dangos mewn rheolwr cyfrwng';
+
+$lang['loggedinas'] = 'Mewngofnodwyd fel:';
+$lang['user'] = 'Defnyddair';
+$lang['pass'] = 'Cyfrinair';
+$lang['newpass'] = 'Cyfrinair newydd';
+$lang['oldpass'] = 'Cadarnhau cyfrinair cyfredol';
+$lang['passchk'] = 'unwaith eto';
+$lang['remember'] = 'Cofio fi';
+$lang['fullname'] = 'Enw go iawn';
+$lang['email'] = 'E-Bost';
+$lang['profile'] = 'Proffil Defnyddiwr';
+$lang['badlogin'] = 'Sori, roedd y defnyddair neu\'r gyfriair yn anghywir.';
+$lang['badpassconfirm'] = 'Sori, roedd y cyfrinair yn anghywir';
+$lang['minoredit'] = 'Newidiadau Bach';
+$lang['draftdate'] = 'Awtogadwyd drafft ar'; // full dformat date will be added
+$lang['nosecedit'] = 'Newidiwyd y dudaen yn y cyfamser, roedd gwybodaeth yr adran wedi dyddio, felly llwythwyd y dudalen gyfan.';
+
+$lang['regmissing'] = 'Sori, llenwch bob maes.';
+$lang['reguexists'] = 'Sori, mae defnyddiwr â\'r enw hwn yn bodoli eisoes.';
+$lang['regsuccess'] = 'Cafodd y defnyddiwr ei greu a chafodd y cyfrinair ei anfon gan ebost.';
+$lang['regsuccess2'] = 'Cafodd y defnyddiwr ei greu.';
+$lang['regfail'] = 'Doedd dim modd creu\'r defnyddiwr.';
+$lang['regmailfail'] = 'Mae\'n debyg roedd gwall wrth anfon y post cyfrinair. Cysylltwch â\'r gweinyddwr!';
+$lang['regbadmail'] = 'Mae\'r cyfeiriad ebost a gyflwynoch chi\'n edrych yn annilys - os ydych chi\'n credu ei fod yn gywir, cysylltwch â\'r gweinyddwr';
+$lang['regbadpass'] = '\'Dyw\'r ddau gyfrinair ddim yn unfath, ceisiwch eto.';
+$lang['regpwmail'] = 'Eich cyfrinair DokuWiki';
+$lang['reghere'] = '\'Sdim cyfrif \'da chi eto? Cewch afael yn un nawr';
+
+$lang['profna'] = '\'Dyw\'r wici hwn ddim yn caniatáu newid eich proffil';
+$lang['profnochange'] = 'Dim newidiadau, dim i\'w wneud.';
+$lang['profnoempty'] = '\'Sdim modd gadael eich enw neu\'ch cyfeiriad ebost chi\'n wag.';
+$lang['profchanged'] = 'Diweddarwyd eich proffil defnyddiwr yn llwyddiannus.';
+$lang['profnodelete'] = '\'Dyw\'r wici hwn ddim yn caniatáu dileu defnyddwyr';
+$lang['profdeleteuser'] = 'Dileu Cyfrif';
+$lang['profdeleted'] = 'Cafodd eich cyfrif defnyddiwr chi ei ddileu o\'r wiki hwn';
+$lang['profconfdelete'] = '\'Dwi eisiau tynnu fy nghyfrif oddi ar y wici hwn.
\'Sdim modd dadwneud hyn.';
+$lang['profconfdeletemissing'] = 'Blwch gwirio heb ei dicio';
+$lang['proffail'] = 'Proffil defnyddiwr heb ei ddiweddaru.';
+
+$lang['pwdforget'] = 'Anghofio\'ch cyfrinair? Cael gafael ar un newydd';
+$lang['resendna'] = '\'Dyw\'r wici hwn ddim yn caniatáu ailanfon cyfrineiriau.';
+$lang['resendpwd'] = 'Gosod cyfrinair newydd ar gyfer';
+$lang['resendpwdmissing'] = 'Sori, mae\'n rhaid llenwi pob maes.';
+$lang['resendpwdnouser'] = 'Sori, \'dyn ni ddim yn gallu darganfod y defnyddiwr hwn yn ein databas ni.';
+$lang['resendpwdbadauth'] = 'Sori, \'dyw\'r cod dilysu hwn ddim yn ddilys. Sicrhewch eich bod chi wedi defnyddio\'r ddolen gadarnhau gyfan.';
+$lang['resendpwdconfirm'] = 'Cafodd ddolen gadarnhau ei hanfon gan ebost.';
+$lang['resendpwdsuccess'] = 'Cafodd eich cyfrinair newydd chi ei anfon gan ebost.';
+
+$lang['license'] = 'Heb law bod datganiad i\'r gwrthwyneb, mae cynnwys y wici hwn o dan y drwydded ganlynol:';
+$lang['licenseok'] = 'Sylwir: Gan olygu\'r dudalen hon rydych chi\'n cytuno i drwyddedu\'ch cynnwys chi o dan y drwydded ganlynol:';
+
+$lang['searchmedia'] = 'Chwilio enw ffeil:';
+$lang['searchmedia_in'] = 'Chwilio mewn %s';
+$lang['txt_upload'] = 'Dewis ffeil i\'w lanlwytho:';
+$lang['txt_filename'] = 'Upload as (optional):';
+$lang['txt_overwrt'] = 'Trosysgrifo ffeil sy\'n bodoli';
+$lang['maxuploadsize'] = 'Lanlwytho uchanfswm %s y ffeil.';
+$lang['lockedby'] = 'Clowyd yn bresennol gan:';
+$lang['lockexpire'] = 'Clo\'n dod i ben ar:';
+
+$lang['js']['willexpire'] = 'Mae\'ch clo ar gyfer golygu\'r dudalen hon yn mynd i ddod i ben mewn munud.\nEr mwyn osgoi gwrthdrawiadau defnyddiwch y botwm rhagolwg i ailosod amserydd y clo.';
+$lang['js']['notsavedyet'] = 'Caiff newidiadau heb gadw eu colli.';
+$lang['js']['searchmedia'] = 'Chwilio am ffeiliau';
+$lang['js']['keepopen'] = 'Cadw ffesnestr y dewisiad ar agor';
+$lang['js']['hidedetails'] = 'Cuddio Manylion';
+$lang['js']['mediatitle'] = 'Gosodiadau dolenni';
+$lang['js']['mediadisplay'] = 'Math y ddolen';
+$lang['js']['mediaalign'] = 'Aliniad';
+$lang['js']['mediasize'] = 'Maint y ddelwedd';
+$lang['js']['mediatarget'] = 'Targed y ddolen';
+$lang['js']['mediaclose'] = 'Cau';
+$lang['js']['mediainsert'] = 'Mewnosod';
+$lang['js']['mediadisplayimg'] = 'Dangos y ddelwedd.';
+$lang['js']['mediadisplaylnk'] = 'Dangos y ddolen yn unig.';
+$lang['js']['mediasmall'] = 'Fersiwn bach';
+$lang['js']['mediamedium'] = 'Fersiwn canolig';
+$lang['js']['medialarge'] = 'Fersiwn mawr';
+$lang['js']['mediaoriginal'] = 'Fersiwn gwreiddiol';
+$lang['js']['medialnk'] = 'Cysylltu i dudalen fanylion';
+$lang['js']['mediadirect'] = 'Cysylltiad uniongyrchol i\'r gwreiddiol';
+$lang['js']['medianolnk'] = 'Dim dolen';
+$lang['js']['medianolink'] = 'Peidio cysylltu i\'r dudalen';
+$lang['js']['medialeft'] = 'Alinio\'r ddelwedd i\'r chwith.';
+$lang['js']['mediaright'] = 'Alinio\'r ddelwedd i\'r dde.';
+$lang['js']['mediacenter'] = 'Alinio\'r ddelwedd i\'r canol.';
+$lang['js']['medianoalign'] = 'Peidio alinio.';
+$lang['js']['nosmblinks'] = 'Mae cysylltu gyda Windows shares dim ond yn gweithio gyda Microsoft Internet Explorer.\nGallwch chi gopïo a gludo\'r ddolen hefyd.';
+$lang['js']['linkwiz'] = 'Dewin Dolenni';
+$lang['js']['linkto'] = 'Cysylltu i:';
+$lang['js']['del_confirm'] = 'Gwir ddileu\'r eitem(au) a ddewiswyd?';
+$lang['js']['restore_confirm'] = 'Gwir adfer y fersiwn hwn?';
+$lang['js']['media_diff'] = 'Gweld gwahaniaethau:';
+$lang['js']['media_diff_both'] = 'Ochr wrth Ochr';
+$lang['js']['media_diff_opacity'] = 'Tywynnu-drwodd';
+$lang['js']['media_diff_portions'] = 'Taro'; //Swipe - rhaid bod gwell ateb i hwn
+$lang['js']['media_select'] = 'Dewis ffeiliau…';
+$lang['js']['media_upload_btn'] = 'Lanlwytho';
+$lang['js']['media_done_btn'] = 'Gorffen';
+$lang['js']['media_drop'] = 'Gollwng ffeiliau yma i\'w lanlwytho';
+$lang['js']['media_cancel'] = 'tynnu';
+$lang['js']['media_overwrt'] = 'Trosysgrifo ffeiliau sy\'n bodoli';
+
+$lang['rssfailed'] = 'Roedd gwall wrth hôl y ffrwd hwn: ';
+$lang['nothingfound'] = 'Dim wedi\'i ddarganfod.';
+
+$lang['mediaselect'] = 'Ffeiliau Cyfrwng';
+$lang['uploadsucc'] = 'Lanlwythiad llwyddiannus';
+$lang['uploadfail'] = 'Methodd y lanlwythiad. Hawliau anghywir efallai?';
+$lang['uploadwrong'] = 'Gwrthodwyd y lanlwythiad. Gwaherddir yr estyniad ffeil hwn!';
+$lang['uploadexist'] = 'Mae\'r ffeil eisoes yn bodoli. Dim wedi\'i wneud.';
+$lang['uploadbadcontent'] = 'Doedd y cynnwys a lanlwythwyd ddim yn cydweddu ag estyniad ffeil %s.';
+$lang['uploadspam'] = 'Cafodd y lanlwythiad ei flocio gan rhestr wahardd sbam.';
+$lang['uploadxss'] = 'Cafodd y lanlwythiad ei flocio efallai oherwydd cynnwys maleisus.';
+$lang['uploadsize'] = 'Roedd y ffeil a lanlwythwyd yn rhy fawr. (uchaf. %s)';
+$lang['deletesucc'] = 'Cafodd ffeil "%s" ei dileu.';
+$lang['deletefail'] = 'Doedd dim modd dileu "%s" - gwiriwch hawliau.';
+$lang['mediainuse'] = 'Doedd "%s" heb ei dileu - mae\'n cael ei defnyddio ar hyn o bryd.';
+$lang['namespaces'] = 'Namespaces'; //namespace
+$lang['mediafiles'] = 'Ffeiliau ar gael mewn';
+$lang['accessdenied'] = '\'Sdim hawl \'da chi weld y dudalen hon.';
+$lang['mediausage'] = 'Defnyddiwch y gystrawen ganlynol i gyfeirio at y ffeil hon:';
+$lang['mediaview'] = 'Dangos y ffeil wreiddiol';
+$lang['mediaroot'] = 'gwraidd';
+$lang['mediaupload'] = 'lanlwythwch ffeil i\'r namespace cyfredol yma. Er mwy creu is-namespace, ychwanegwch nhw o flaen enw\'r ffeil gan eu gwahanu nhw gyda cholonau, ar ôl i chi ddewis y ffeiliau. Gall ffeiliau hefyd eu dewis gan lusgo a gollwng.'; //namespace
+$lang['mediaextchange'] = 'Newidiwyd yr estyniad o .%s i .%s!';
+$lang['reference'] = 'Cyfeirnodau ar gyfer';
+$lang['ref_inuse'] = '\'Sdim modd dileu\'r ffeil hon, oherwydd ei bod hi\'n dal yn cael ei defnyddio gan y tudalennau canlynol:';
+$lang['ref_hidden'] = 'Mae rhai cyfeirnodau ar dudalennau \'sdim hawl \'da chi weld';
+
+$lang['hits'] = 'Trawiadau';
+$lang['quickhits'] = 'Enw tudalennau\'n cydweddu';
+$lang['toc'] = 'Tabl Cynnwys';
+$lang['current'] = 'cyfredol';
+$lang['yours'] = 'Eich Fersiwn';
+$lang['diff'] = 'Dangos gwahaniaethau i\'r adolygiadau cyfredol';
+$lang['diff2'] = 'Dangos gwahaniaethau rhwng adolygiadau a ddewiswyd';
+$lang['difflink'] = 'Cysylltu i\'r olwg gymharu hon';
+$lang['diff_type'] = 'Dangos gwahaniaethau:';
+$lang['diff_inline'] = 'Mewnlin';
+$lang['diff_side'] = 'Ochr wrth Ochr';
+$lang['diffprevrev'] = 'Adolygiad blaenorol';
+$lang['diffnextrev'] = 'Adolygiad nesaf';
+$lang['difflastrev'] = 'Adolygiad diwethaf';
+$lang['diffbothprevrev'] = 'Dwy ochr yr adolygiad blaenorol';
+$lang['diffbothnextrev'] = 'Dwy ochr yr adolygiad nesaf';
+$lang['line'] = 'Llinell';
+$lang['breadcrumb'] = 'Olrhain:';
+$lang['youarehere'] = 'Rydych chi yma:';
+$lang['lastmod'] = 'Newidiwyd ddiwethaf:';
+$lang['by'] = 'gan';
+$lang['deleted'] = 'tynnwyd';
+$lang['created'] = 'crewyd';
+$lang['restored'] = 'adferwyd hen adolygiad (%s)';
+$lang['external_edit'] = 'golygiad allanol';
+$lang['summary'] = 'Crynodeb golygiad';
+$lang['noflash'] = 'Mae angen Ategyn Adobe Flash i ddangos y cynnwys hwn.';
+$lang['download'] = 'Lawrlwytho Darn';
+$lang['tools'] = 'Teclynnau';
+$lang['user_tools'] = 'Teclynnau Defnyddiwr';
+$lang['site_tools'] = 'Teclynnau Safle';
+$lang['page_tools'] = 'Teclynnau Tudalennau';
+$lang['skip_to_content'] = 'nedio i\'r cynnwys';
+$lang['sidebar'] = 'Bar ochr';
+
+$lang['mail_newpage'] = 'ychwanegwyd tudalen:';
+$lang['mail_changed'] = 'newidiwyd tudalen:';
+$lang['mail_subscribe_list'] = 'newidiwyd tudalennau mewn namespace:'; //namespace
+$lang['mail_new_user'] = 'defnyddiwr newydd:';
+$lang['mail_upload'] = 'lanlwythwyd ffeil:';
+
+$lang['changes_type'] = 'Dangos newidiadau mewn';
+$lang['pages_changes'] = 'Tudalennau';
+$lang['media_changes'] = 'Ffeiliau cyfrwng';
+$lang['both_changes'] = 'Tudalennau a ffeiliau cyfrwng';
+
+$lang['qb_bold'] = 'Testun Bras';
+$lang['qb_italic'] = 'Testun Italig';
+$lang['qb_underl'] = 'Testun wedi\'i Danlinellu';
+$lang['qb_code'] = 'Testun Unbylchog';
+$lang['qb_strike'] = 'Testun Llinell Drwodd';
+$lang['qb_h1'] = 'Pennawd Lefel 1';
+$lang['qb_h2'] = 'Pennawd Lefel 2';
+$lang['qb_h3'] = 'Pennawd Lefel 3';
+$lang['qb_h4'] = 'Pennawd Lefel 4';
+$lang['qb_h5'] = 'Pennawd Lefel 5';
+$lang['qb_h'] = 'Pennawd';
+$lang['qb_hs'] = 'Dewis Pennawd';
+$lang['qb_hplus'] = 'Pennawd Uwch';
+$lang['qb_hminus'] = 'Pennawd Is';
+$lang['qb_hequal'] = 'Pennawd yr un Lefel';
+$lang['qb_link'] = 'Dolen fewnol';
+$lang['qb_extlink'] = 'Dolen allanol';
+$lang['qb_hr'] = 'Llinell Lorweddol';
+$lang['qb_ol'] = 'Eitem Rhestr Drefnedig';
+$lang['qb_ul'] = 'Eitem Rhestr Rifol';
+$lang['qb_media'] = 'Ychwanegu Delweddau a ffeiliau eraill (agor mewn ffenestr newydd)';
+$lang['qb_sig'] = 'Mewnosod Llofnod';
+$lang['qb_smileys'] = 'Gwenogluniau';
+$lang['qb_chars'] = 'Nodau Arbennig';
+
+$lang['upperns'] = 'neidio i namespace uwch'; //namespace
+
+$lang['metaedit'] = 'Golygu Metadata';
+$lang['metasaveerr'] = 'Methwyd ysgrifennu metadata';
+$lang['metasaveok'] = 'Cadwyd y metadata';
+$lang['img_title'] = 'Teitl:';
+$lang['img_caption'] = 'Egluryn:';
+$lang['img_date'] = 'Dyddiad:';
+$lang['img_fname'] = 'Enw ffeil:';
+$lang['img_fsize'] = 'Maint:';
+$lang['img_artist'] = 'Ffotograffydd:';
+$lang['img_copyr'] = 'Hawlfraint:';
+$lang['img_format'] = 'Fformat:';
+$lang['img_camera'] = 'Camera:';
+$lang['img_keywords'] = 'Allweddeiriau:';
+$lang['img_width'] = 'Lled:';
+$lang['img_height'] = 'Uchder:';
+
+$lang['subscr_subscribe_success'] = 'Ychwanegwyd %s i\'r rhestr danysgrifio ar gyfer %s';
+$lang['subscr_subscribe_error'] = 'Gwall wrth ychwanegu %s i\'r rhestr danysgrifio ar gyfer %s';
+$lang['subscr_subscribe_noaddress'] = '\'Sdim cyfeiriad wedi\'i gysylltu gyda\'ch defnyddair, felly \'sdim modd eich ychwanegu chi i\'r rhestr danysgrifio';
+$lang['subscr_unsubscribe_success'] = 'Tynnwyd %s o\'r rhestr danysgrifio ar gyfer %s';
+$lang['subscr_unsubscribe_error'] = 'Roedd gwall wrth dynnu %s o\'r rhestr danysgrfio ar gyfer %s';
+$lang['subscr_already_subscribed'] = 'Mae %s eisoes wedi tanysgrifio i %s';
+$lang['subscr_not_subscribed'] = '\'Dyw %s heb danysgrifio i %s';
+// Manage page for subscriptions
+$lang['subscr_m_not_subscribed'] = '\'Dych chi heb danysgrifio i\'r dudalen gyfredol neu\'r namespace, yn bresennol.'; //namespace
+$lang['subscr_m_new_header'] = 'Ychwanegu tanysgrifiad';
+$lang['subscr_m_current_header'] = 'Tanysgrifiadau cyfredol';
+$lang['subscr_m_unsubscribe'] = 'Tynnu tanysgrifiad';
+$lang['subscr_m_subscribe'] = 'Tanysgrifio';
+$lang['subscr_m_receive'] = 'Derbyn';
+$lang['subscr_style_every'] = 'ebost ar bob newid';
+$lang['subscr_style_digest'] = 'ebost cryno o\'r newidiadau ar bob tudalen (pob %.2f diwrnod)';
+$lang['subscr_style_list'] = 'rhestr o dudalennau a newidiwyd ers yr ebost diwethaf (pob %.2f diwrnod)';
+
+/* auth.class language support */
+$lang['authtempfail'] = '\'Dyw dilysiad defnyddiwr ddim ar gael yn bresennol (dros dro). Os ydy\'r sefyllfa\'n parhau, cysylltwch â gweinyddwr y wici.';
+
+/* installer strings */
+$lang['i_chooselang'] = 'Dewiswch eich iaith';
+$lang['i_installer'] = 'Arsefydlwr DokuWiki';
+$lang['i_wikiname'] = 'Enw Wici';
+$lang['i_enableacl'] = 'Galluogi ACL (awgrymwyd)';
+$lang['i_superuser'] = 'Uwchddefnyddiwr';
+$lang['i_problems'] = 'Gwnaeth yr arsefydlwr ddod o hyd i broblemau, isod. \'Sdim modd parhau nes i chi eu datrys nhw.';
+$lang['i_modified'] = 'Oherwydd rhesymau diogelwch, bydd y sgript hwn dim ond yn gweithio gydag arsefydliad DokuWiki newydd sydd heb ei newid.
+ Dylech chi naill ai ail-echdynnu\'r ffeiliau o\'r pecyn a lawrlwythwyd neu porwch dros y
+ canllawiau arsefydylu Dokuwiki cyfan';
+$lang['i_funcna'] = 'Swyddogaeth PHP %s
ddim ar gael. Posib bod eich gwesteiwr wedi\'i hanalluogi am ryw reswm?';
+$lang['i_phpver'] = 'Mae\'ch fersiwn PHP %s
yn is na\'r hyn sydd ei angen %s
. Mae angen i chi ddiweddaru eich arsefydliad PHP.';
+$lang['i_mbfuncoverload'] = 'Mae\'n rhaid analluogi mbstring.func_overload mewn php.ini er mwyn rhedeg DokuWiki.';
+$lang['i_permfail'] = '\'Dyw DokuWiki ddim yn gallu ysgrifennu i %s
. Mae angen newid gosodiadau hawliau ar gyfer y ffolder hwn!';
+$lang['i_confexists'] = 'Mae %s
eisoes yn bodoli';
+$lang['i_writeerr'] = 'Methu creu %s
. Bydd angen i chi wirio hawliau ffolder/ffeil a chreu\'r ffeil gan law.';
+$lang['i_badhash'] = 'dokuwiki.php heb ei adnabod neu wedi\'i newid (hash=%s
)';
+$lang['i_badval'] = '%s
- gwerth anghyfreithlon neu wag';
+$lang['i_success'] = 'Gorffennodd y ffurfwedd yn llwyddiannus. Gallwch chi ddileu\'r ffeil install.php nawr. Ewch
+ i\'ch DokuWiki newydd.';
+$lang['i_failure'] = 'Ymddangosodd gwallau wrth ysgrifennu\'r ffeiliau ffurfwedd. Bydd angen i chi eu cywiro
+ nhw gan law cyn gallwch chi ddefnyddio\'ch DokuWiki newydd.';
+$lang['i_policy'] = 'Polisi ACL cychwynnol';
+$lang['i_pol0'] = 'Wici Agored (darllen, ysgrifennu, lanlwytho i bawb)';
+$lang['i_pol1'] = 'Wici Cyhoeddus (darllen i bawb, ysgrifennu a lanlwytho i ddefnyddwyr cofrestredig)';
+$lang['i_pol2'] = 'Wici Caeedig (darllen, ysgrifennu, lanlwytho i ddefnyddwyr cofrestredig yn unig)';
+$lang['i_allowreg'] = 'Caniatáu defnyddwyr i gofrestru eu hunain';
+$lang['i_retry'] = 'Ailgeisio';
+$lang['i_license'] = 'Dewiswch y drwydded rydych chi am osod ar eich cynnwys:';
+$lang['i_license_none'] = 'Peidio â dangos unrhyw wybodaeth drwyddedu';
+$lang['i_pop_field'] = 'Plis, helpwch ni i wella\'r profiad o ddefnyddio DokuWiki:';
+$lang['i_pop_label'] = 'Anfon data defnydd anhysbys i ddatblygwyr DokuWiki unwaith y mis';
+
+$lang['recent_global'] = 'Yn bresennol, rydych chi\'n gwylio newidiadau tu fewn namespace %s. Gallwch chi hefyd weld y newidiadau diweddar ar gyfer y wici cyfan.'; //namespace
+
+$lang['years'] = '%d blynedd yn ôl';
+$lang['months'] = '%d mis yn ôl';
+$lang['weeks'] = '%d wythnos yn ôl';
+$lang['days'] = '%d diwrnod yn ôl';
+$lang['hours'] = '%d awr yn ôl';
+$lang['minutes'] = '%d munud yn ôl';
+$lang['seconds'] = '%d eiliad yn ôl';
+
+$lang['wordblock'] = 'Doedd eich newid heb gadw gan ei fod yn cynnwys testun wedi\'i flocio (sbam).';
+
+$lang['media_uploadtab'] = 'Lanlwytho';
+$lang['media_searchtab'] = 'Chwilio';
+$lang['media_file'] = 'Ffeil';
+$lang['media_viewtab'] = 'Golwg';
+$lang['media_edittab'] = 'Golygu';
+$lang['media_historytab'] = 'Hanes';
+$lang['media_list_thumbs'] = 'Bawdlun';
+$lang['media_list_rows'] = 'Rhesi';
+$lang['media_sort_name'] = 'Enw';
+$lang['media_sort_date'] = 'Dyddiad';
+$lang['media_namespaces'] = 'Dewis namespace'; //namespace
+$lang['media_files'] = 'Ffeiliau mewn %s';
+$lang['media_upload'] = 'Lanlwytho i %s';
+$lang['media_search'] = 'Chwilio mewn %s';
+$lang['media_view'] = '%s';
+$lang['media_viewold'] = '%s ar %s';
+$lang['media_edit'] = 'Golygu %s';
+$lang['media_history'] = 'Hanes %s';
+$lang['media_meta_edited'] = 'golygwyd metadata';
+$lang['media_perm_read'] = 'Sori, ond \'sdim digon o hawliau \'da chi i ddarllen ffeiliau.';
+$lang['media_perm_upload'] = 'Sori, ond \'sdim digon o hawliau \'da chi i lanlwytho ffeiliau.';
+$lang['media_update'] = 'Lanlwytho fersiwn newydd';
+$lang['media_restore'] = 'Adfer y fersiwn hwn';
+$lang['media_acl_warning'] = 'Gall y rhestr hon fod yn anghyflawn oherwydd cyfyngiadau ACL a thudalennau coll.';
+
+$lang['currentns'] = 'Namespace cyfredol'; //namespace
+$lang['searchresult'] = 'Canlyniad Chwilio';
+$lang['plainhtml'] = 'HTML Plaen';
+$lang['wikimarkup'] = 'Iaith Wici';
+$lang['page_nonexist_rev'] = 'Doedd y dudalen ddim yn bodoli ar %s. Cafodd ei chreu wedyn ar %s.';
+$lang['unable_to_parse_date'] = 'Methu dosbarthu ar baramedr "%s".';
+//Setup VIM: ex: et ts=2 :
diff --git a/public_html/inc/lang/cy/locked.txt b/public_html/inc/lang/cy/locked.txt
new file mode 100644
index 00000000..4c7865dd
--- /dev/null
+++ b/public_html/inc/lang/cy/locked.txt
@@ -0,0 +1,3 @@
+====== Tudalen ar glo ======
+
+Mae'r dudalen hon wedi'i chloi ar gyfer golygu gan ddefnyddiwr arall. Bydd yn rhaid i chi aros tan i'r defnyddiwr orffen golygu neu tan fod y cyfnod cloi yn dod i ben.
diff --git a/public_html/inc/lang/cy/login.txt b/public_html/inc/lang/cy/login.txt
new file mode 100644
index 00000000..dbdde0e6
--- /dev/null
+++ b/public_html/inc/lang/cy/login.txt
@@ -0,0 +1,4 @@
+====== Mewngofnodi ======
+
+'Dych chi heb fewngofnodi! Rhowch eich manylion mewngofnodi isod. Mae angen galluogi cwcis er mwyn mewngofnodi.
+
diff --git a/public_html/inc/lang/cy/mailtext.txt b/public_html/inc/lang/cy/mailtext.txt
new file mode 100644
index 00000000..27462332
--- /dev/null
+++ b/public_html/inc/lang/cy/mailtext.txt
@@ -0,0 +1,17 @@
+Cafodd tudalen yn eich DokuWiki ei hychwanegu neu newid. Dyma'r manylion:
+
+Dyddiad : @DATE@
+Porwr : @BROWSER@
+Cyfeiriad-IP : @IPADDRESS@
+Gwesteiwr : @HOSTNAME@
+Hen Adolygiad : @OLDPAGE@
+Adolygiad Newydd: @NEWPAGE@
+Crynodeb Golygu : @SUMMARY@
+Defnyddiwr : @USER@
+
+@DIFF@
+
+
+--
+Cafodd y neges hon ei generadyu gan DokuWiki ar
+@DOKUWIKIURL@
diff --git a/public_html/inc/lang/cy/mailwrap.html b/public_html/inc/lang/cy/mailwrap.html
new file mode 100644
index 00000000..254fcca7
--- /dev/null
+++ b/public_html/inc/lang/cy/mailwrap.html
@@ -0,0 +1,13 @@
+
+
+ @TITLE@
+
+
+
+
+@HTMLBODY@
+
+
+Cafodd y neges hon ei generadu gan DokuWiki ar @DOKUWIKIURL@.
+
+
diff --git a/public_html/inc/lang/cy/newpage.txt b/public_html/inc/lang/cy/newpage.txt
new file mode 100644
index 00000000..dfe8a79d
--- /dev/null
+++ b/public_html/inc/lang/cy/newpage.txt
@@ -0,0 +1,4 @@
+====== 'Dyw'r testun hwn ddim yn bodoli eto ======
+
+Rydych chi wedi dilyn dolen i destun sy ddim yn bodoli eto. Os oes hawliau 'da chi, gallwch chi ei greu gan bwyso ar "Creu y dudalen hon".
+
diff --git a/public_html/inc/lang/cy/norev.txt b/public_html/inc/lang/cy/norev.txt
new file mode 100644
index 00000000..7d978c55
--- /dev/null
+++ b/public_html/inc/lang/cy/norev.txt
@@ -0,0 +1,4 @@
+====== Adolygiad ddim y bodoli ======
+
+'Dyw'r adolygiad hwn ddim yn bodoli. Pwyswch ar "Hen adolygiadau" am restr o hen adolygiadau'r ddogfen hon.
+
diff --git a/public_html/inc/lang/cy/password.txt b/public_html/inc/lang/cy/password.txt
new file mode 100644
index 00000000..da0678ef
--- /dev/null
+++ b/public_html/inc/lang/cy/password.txt
@@ -0,0 +1,10 @@
+Shw mae @FULLNAME@!
+
+Dyma'ch manylion ar gyfer @TITLE@ ar @DOKUWIKIURL@
+
+Defnyddair : @LOGIN@
+Cyfrinair : @PASSWORD@
+
+--
+Cafodd y neges hon ei generadu gan DokuWiki ar
+@DOKUWIKIURL@
diff --git a/public_html/inc/lang/cy/preview.txt b/public_html/inc/lang/cy/preview.txt
new file mode 100644
index 00000000..477879d5
--- /dev/null
+++ b/public_html/inc/lang/cy/preview.txt
@@ -0,0 +1,4 @@
+====== Rhagolwg ======
+
+Dyma ragolwg o sut fydd eich testun yn edrych. Cofiwch: 'Dyw e **heb ei gadw** 'to!
+
diff --git a/public_html/inc/lang/cy/pwconfirm.txt b/public_html/inc/lang/cy/pwconfirm.txt
new file mode 100644
index 00000000..529571e1
--- /dev/null
+++ b/public_html/inc/lang/cy/pwconfirm.txt
@@ -0,0 +1,15 @@
+Shw mae @FULLNAME@!
+
+Mae rhywun wedi gofyn am gyfrinair newydd ar gyfer eich manylion
+@TITLE@ ar @DOKUWIKIURL@
+
+Os na wnaethoch chi ofyn am gyfrinair newydd, anwybyddwch yr e-bost hwn.
+
+I gadarnhau daeth y cais oddi wrthoch chi, pwyswch y ddolen isod.
+
+@CONFIRM@
+
+--
+Cafodd y neges hon ei generadu gan DokuWiki ar
+@DOKUWIKIURL@
+
diff --git a/public_html/inc/lang/cy/read.txt b/public_html/inc/lang/cy/read.txt
new file mode 100644
index 00000000..8703ef93
--- /dev/null
+++ b/public_html/inc/lang/cy/read.txt
@@ -0,0 +1,2 @@
+Mae'r dudalen hon i'w darllen yn unig. Gallwch chi edrych ar y ffynhonnell, ond nid ei newid hi. Cysylltwch â'ch gweinyddwr chi os ydych chi'n meddwl bod hwn yn anghywir.
+
diff --git a/public_html/inc/lang/cy/recent.txt b/public_html/inc/lang/cy/recent.txt
new file mode 100644
index 00000000..2affbf90
--- /dev/null
+++ b/public_html/inc/lang/cy/recent.txt
@@ -0,0 +1,5 @@
+====== Newidiadau Diweddar ======
+
+Cafodd y tudalennau canlynol eu newid yn ddiweddar.
+
+
diff --git a/public_html/inc/lang/cy/register.txt b/public_html/inc/lang/cy/register.txt
new file mode 100644
index 00000000..6fbc8505
--- /dev/null
+++ b/public_html/inc/lang/cy/register.txt
@@ -0,0 +1,4 @@
+====== Cofrestru fel defnyddiwr newydd ======
+
+Llenwch yr holl wybodaeth isod i greu cyfrif newydd ar y wici hwn. Sicrhewch eich bod chi'n cynnwys **cyfeiriad e-bost dilys** - os na chewch chi'ch annog am gyfrinair, caiff un ei anfon i'ch cyfeiriad. Dylai'r enw mewngofnodi fod yn [[doku>pagename|enw tudalen]] dilys.
+
diff --git a/public_html/inc/lang/cy/registermail.txt b/public_html/inc/lang/cy/registermail.txt
new file mode 100644
index 00000000..0cb2b4fd
--- /dev/null
+++ b/public_html/inc/lang/cy/registermail.txt
@@ -0,0 +1,14 @@
+Cofrestrodd defnyddiwr newydd. Dyma'r manylion:
+
+Defnyddair : @NEWUSER@
+Enw llawn : @NEWNAME@
+E-bost : @NEWEMAIL@
+
+Dyddiad : @DATE@
+Porwr : @BROWSER@
+Cyfeiriad-IP : @IPADDRESS@
+Gwesteiwr : @HOSTNAME@
+
+--
+Cafodd y neges hon ei generadu gan DokuWiki ar
+@DOKUWIKIURL@
diff --git a/public_html/inc/lang/cy/resendpwd.txt b/public_html/inc/lang/cy/resendpwd.txt
new file mode 100644
index 00000000..ddad8a90
--- /dev/null
+++ b/public_html/inc/lang/cy/resendpwd.txt
@@ -0,0 +1,4 @@
+====== Anfon cyfrinair newydd ======
+
+Ailgyflwynwch eich defnyddair yn y ffurflen isod i wneud cais am gyfrinair newydd i'ch cyfrif ar y wici hwn. Caiff ddolen gadarnhau ei hanfon i chi drwy eich e-bost cofrestredig.
+
diff --git a/public_html/inc/lang/cy/resetpwd.txt b/public_html/inc/lang/cy/resetpwd.txt
new file mode 100644
index 00000000..57f19928
--- /dev/null
+++ b/public_html/inc/lang/cy/resetpwd.txt
@@ -0,0 +1,4 @@
+====== Gosod cyfrinair newydd ======
+
+Rhowch gyfrinair newydd i'ch cyfrif ar y wici hwn.
+
diff --git a/public_html/inc/lang/cy/revisions.txt b/public_html/inc/lang/cy/revisions.txt
new file mode 100644
index 00000000..afbc9fed
--- /dev/null
+++ b/public_html/inc/lang/cy/revisions.txt
@@ -0,0 +1,4 @@
+====== Hen Adolygiadau ======
+
+Dyma adolygiadau hŷn y ddogfen gyfredol. I droi'n ôl i hen adolygiad, dewiswch e isod a phwyso ''Golygu'r dudalen hon'' a'i gadw.
+
diff --git a/public_html/inc/lang/cy/searchpage.txt b/public_html/inc/lang/cy/searchpage.txt
new file mode 100644
index 00000000..6a645cb5
--- /dev/null
+++ b/public_html/inc/lang/cy/searchpage.txt
@@ -0,0 +1,4 @@
+====== Chwilio ======
+
+Gallwch chi ddarganfod canlyniadau eich chwiliad isod. @CREATEPAGEINFO@
+
diff --git a/public_html/inc/lang/cy/showrev.txt b/public_html/inc/lang/cy/showrev.txt
new file mode 100644
index 00000000..6cc9d6c2
--- /dev/null
+++ b/public_html/inc/lang/cy/showrev.txt
@@ -0,0 +1,2 @@
+**Dyma hen adolygiad y ddogfen!**
+----
diff --git a/public_html/inc/lang/cy/stopwords.txt b/public_html/inc/lang/cy/stopwords.txt
new file mode 100644
index 00000000..2ac4c317
--- /dev/null
+++ b/public_html/inc/lang/cy/stopwords.txt
@@ -0,0 +1,31 @@
+# This is a list of words the indexer ignores, one word per line
+# When you edit this file be sure to use UNIX line endings (single newline)
+# No need to include words shorter than 3 chars - these are ignored anyway
+# This list is based upon the ones found at http://www.ranks.nl/stopwords/
+allan
+beth
+ble
+bydd
+chi
+dyma
+dyna
+eich
+gyda
+hefyd
+hon
+honna
+hwn
+hwnnw
+hwy
+hyn
+hynny
+mewn
+nhw
+oddi
+oedd
+pan
+pwy
+roedd
+sut
+wrth
+www
\ No newline at end of file
diff --git a/public_html/inc/lang/cy/subscr_digest.txt b/public_html/inc/lang/cy/subscr_digest.txt
new file mode 100644
index 00000000..611e0570
--- /dev/null
+++ b/public_html/inc/lang/cy/subscr_digest.txt
@@ -0,0 +1,20 @@
+Shw mae!
+
+Gwnaeth y dudalen @PAGE@ mewn wici @TITLE@ newid.
+Dyma'r newidiadau:
+
+--------------------------------------------------------
+@DIFF@
+--------------------------------------------------------
+
+Hen Adolygiad: @OLDPAGE@
+Adolygiad Newydd: @NEWPAGE@
+
+I ganslo hysbysiadau tudalen, mewngofnodwch i'r wici ar
+@DOKUWIKIURL@ ac yna ewch i
+@SUBSCRIBE@
+a thanysgrifio o newidiadau tudalen a/neu namespace.
+
+--
+Cafodd y neges hon ei generadu gan DokuWiki ar
+@DOKUWIKIURL@
diff --git a/public_html/inc/lang/cy/subscr_form.txt b/public_html/inc/lang/cy/subscr_form.txt
new file mode 100644
index 00000000..47d1a171
--- /dev/null
+++ b/public_html/inc/lang/cy/subscr_form.txt
@@ -0,0 +1,3 @@
+====== Rheoli Tanysgrifiad ======
+
+Mae'r dudalen hon yn eich galluogi i reoli'ch tanysgrifiadau ar gyfer y dudalen gyfredol a'r namespace.
diff --git a/public_html/inc/lang/cy/subscr_list.txt b/public_html/inc/lang/cy/subscr_list.txt
new file mode 100644
index 00000000..592f2902
--- /dev/null
+++ b/public_html/inc/lang/cy/subscr_list.txt
@@ -0,0 +1,17 @@
+Shw mae!
+
+Gwnaeth tudalennau yn y namespace @PAGE@ o'r wici @TITLE@ newid.
+Dyma'r tudaalennau sydd wedi newid:
+
+--------------------------------------------------------
+@DIFF@
+--------------------------------------------------------
+
+I ganslo hysbysiadau'r dudalen, mewngofnodwch i'r wici ar
+@DOKUWIKIURL@ yna ewch i
+@SUBSCRIBE@
+a thanysgrifio o newidiadau tudalen a/neu namespace.
+
+--
+Cafodd y neges hon ei generadu gan DokuWiki ar
+@DOKUWIKIURL@
diff --git a/public_html/inc/lang/cy/subscr_single.txt b/public_html/inc/lang/cy/subscr_single.txt
new file mode 100644
index 00000000..2a774ebd
--- /dev/null
+++ b/public_html/inc/lang/cy/subscr_single.txt
@@ -0,0 +1,23 @@
+Shw mae!
+
+Gwnaeth y dudalen @PAGE@ yn y wici @TITLE@ newid.
+Dyma'r newidiadau:
+
+--------------------------------------------------------
+@DIFF@
+--------------------------------------------------------
+
+Dyddiad : @DATE@
+Defnyddiwr : @USER@
+Crynodeb Golygu : @SUMMARY@
+Hen Adolygiad : @OLDPAGE@
+Adolygiad Newwydd: @NEWPAGE@
+
+I ganslo hysbysiadau'r dudalen, mewngofnodwch i'r wici ar
+@DOKUWIKIURL@ yna ewch i
+@SUBSCRIBE@
+a thanysgrifio o newidiadau tudalen a namespace.
+
+--
+Cafodd y neges hon ei generadu gan DokuWiki ar
+@DOKUWIKIURL@
diff --git a/public_html/inc/lang/cy/updateprofile.txt b/public_html/inc/lang/cy/updateprofile.txt
new file mode 100644
index 00000000..ce9ca503
--- /dev/null
+++ b/public_html/inc/lang/cy/updateprofile.txt
@@ -0,0 +1,5 @@
+====== Diweddaru proffil eich cyfrif ======
+
+Newidiwch y meysydd rydych chi amm newid yn unig. 'Sdim modd i chi newid eich defnyddair.
+
+
diff --git a/public_html/inc/lang/cy/uploadmail.txt b/public_html/inc/lang/cy/uploadmail.txt
new file mode 100644
index 00000000..8102232a
--- /dev/null
+++ b/public_html/inc/lang/cy/uploadmail.txt
@@ -0,0 +1,15 @@
+Cafodd ffeil ei lanlwytho i'ch DokuWiki. Dyma'r manylion:
+
+Ffeil : @MEDIA@
+Hen adolygiad : @OLD@
+Dyddiad : @DATE@
+Porwr : @BROWSER@
+Cyfeiriad-IP : @IPADDRESS@
+Gwesteiwr : @HOSTNAME@
+Maint : @SIZE@
+Teip MIME : @MIME@
+Defnyddiwr : @USER@
+
+--
+Cafodd y neges hon ei generadu gan DokuWiki ar
+@DOKUWIKIURL@
diff --git a/public_html/inc/lang/da/admin.txt b/public_html/inc/lang/da/admin.txt
new file mode 100644
index 00000000..3ac4a70d
--- /dev/null
+++ b/public_html/inc/lang/da/admin.txt
@@ -0,0 +1,4 @@
+====== Administration ======
+
+Nedenfor kan du finde en række administrative værktøjer.
+
diff --git a/public_html/inc/lang/da/adminplugins.txt b/public_html/inc/lang/da/adminplugins.txt
new file mode 100644
index 00000000..2a3d687f
--- /dev/null
+++ b/public_html/inc/lang/da/adminplugins.txt
@@ -0,0 +1 @@
+===== Yderligere udvidelser =====
\ No newline at end of file
diff --git a/public_html/inc/lang/da/backlinks.txt b/public_html/inc/lang/da/backlinks.txt
new file mode 100644
index 00000000..6dfa3cc4
--- /dev/null
+++ b/public_html/inc/lang/da/backlinks.txt
@@ -0,0 +1,4 @@
+====== Henvisninger bagud ======
+
+Dette er en liste over alle de dokumenter der henviser tilbage til det nuværende dokument.
+
diff --git a/public_html/inc/lang/da/conflict.txt b/public_html/inc/lang/da/conflict.txt
new file mode 100644
index 00000000..fc38cee6
--- /dev/null
+++ b/public_html/inc/lang/da/conflict.txt
@@ -0,0 +1,5 @@
+====== Der eksisterer en nyere udgave af dokumentet ======
+
+Der eksisterer en nyere udgave af dette dokument. Det sker når flere brugere ændrer i dokumentet på samme tid.
+
+Gennemgå de viste forskelle grundigt, og beslut hvilken udgave der skal bevares. Hvis du vælger ''Gem'', bliver din udgave af dokumentet gemt. Vælger du ''Fortryd'' beholder du den nuværende udgave.
diff --git a/public_html/inc/lang/da/denied.txt b/public_html/inc/lang/da/denied.txt
new file mode 100644
index 00000000..217d8937
--- /dev/null
+++ b/public_html/inc/lang/da/denied.txt
@@ -0,0 +1,3 @@
+====== Adgang nægtet ======
+
+Du har ikke rettigheder til at fortsætte.
diff --git a/public_html/inc/lang/da/diff.txt b/public_html/inc/lang/da/diff.txt
new file mode 100644
index 00000000..f77224f2
--- /dev/null
+++ b/public_html/inc/lang/da/diff.txt
@@ -0,0 +1,4 @@
+====== Forskelle ======
+
+Dette viser forskellene mellem den valgte og den nuværende udgave af dokumentet. Gul er linjer der findes i den gamle udgave, og grøn er linjer der findes i den nuværende.
+
diff --git a/public_html/inc/lang/da/draft.txt b/public_html/inc/lang/da/draft.txt
new file mode 100644
index 00000000..69c78014
--- /dev/null
+++ b/public_html/inc/lang/da/draft.txt
@@ -0,0 +1,6 @@
+====== Kladdefil fundet ======
+
+Din sidste redigeringssession på denne side blev ikke afsluttet korrekt. DokuWiki har automatisk gemt en kladde mens du arbejdede, som du kan benytte til at fortsætte redigeringen. Forneden kan du se de data der blev gemt fra din sidste session.
+
+Vælg venligst, om du vil //gendanne// din tabte redigering, //slette// den gemte kladde eller //afbryde// redigeringen.
+
diff --git a/public_html/inc/lang/da/edit.txt b/public_html/inc/lang/da/edit.txt
new file mode 100644
index 00000000..0a9ea39d
--- /dev/null
+++ b/public_html/inc/lang/da/edit.txt
@@ -0,0 +1,2 @@
+Rediger dette dokument og tryk på knappen **''[Gem]''**. Se [[wiki:syntax|Formaterings tips]] for Wiki syntaks. Ret venligst kun dette dokument hvis du kan **forbedre** det. Brug venligst [[playground:playground|sandkassen]] til at teste før du retter i et rigtigt dokument. Husk også at bruge **''[Forhåndsvisning]''** før du gemmer dokumentet.
+
diff --git a/public_html/inc/lang/da/editrev.txt b/public_html/inc/lang/da/editrev.txt
new file mode 100644
index 00000000..438363e5
--- /dev/null
+++ b/public_html/inc/lang/da/editrev.txt
@@ -0,0 +1,2 @@
+**Du har hentet en gammel udgave af dette dokument!** Hvis du gemmer dokumentet vil du overskrive den nuværende med den gamle udgave.
+----
diff --git a/public_html/inc/lang/da/index.txt b/public_html/inc/lang/da/index.txt
new file mode 100644
index 00000000..74afb983
--- /dev/null
+++ b/public_html/inc/lang/da/index.txt
@@ -0,0 +1,3 @@
+====== Indeks ======
+
+Dette er en oversigt over alle tilgængelige dokumenter, sorteret efter [[doku>namespaces|navnerum]].
diff --git a/public_html/inc/lang/da/install.html b/public_html/inc/lang/da/install.html
new file mode 100644
index 00000000..3cc13f8e
--- /dev/null
+++ b/public_html/inc/lang/da/install.html
@@ -0,0 +1,24 @@
+Denne side hjælper til første-gangs installation og konfiguration af
+Dokuwiki. Mere information om denne
+installer er tilgængelig på dens egen
+dokumentations side.
+
+DokuWiki bruger almindelige filer til at gemme wiki sider og anden
+information relaterende til disse sider (f.eks. billeder, søge indeks, gamle
+udgaver, osv). For at fungerer optimalt skal DokuWiki have
+skrive adgang til mapperne der holder disse filer. Denne installer er ikke
+istand til at opsætte mappe tilladelser. Det skal normalt udføres direkte i en
+kommando shell eller hvis du bruger hosting, gennem FTP eller dit hostings
+kontrol panel (f.eks. cPanel).
+
+Denne installer vil opsætte din DokuWiki konfiguration for
+ACL, hvilket tillader
+administrator login og adgang til DokuWiki's adminstrative menu til
+installation af udvidelser, håndtering af brugere, håndtering af adgang til wiki
+sider og ændring af konfigurations indstillinger. Det er ikke et krav for at
+DokuWiki kan fungere, men det vil gøre DokuWiki lettere at administre.
+
+Erfarne brugere og brugere med specielle opsætningskrav burde bruge disse
+henvisninger for detaljer vedrørende
+installations instruktioner
+og konfigurations indstillinger.
diff --git a/public_html/inc/lang/da/jquery.ui.datepicker.js b/public_html/inc/lang/da/jquery.ui.datepicker.js
new file mode 100644
index 00000000..273f0e3f
--- /dev/null
+++ b/public_html/inc/lang/da/jquery.ui.datepicker.js
@@ -0,0 +1,37 @@
+/* Danish initialisation for the jQuery UI date picker plugin. */
+/* Written by Jan Christensen ( deletestuff@gmail.com). */
+( function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+
+ // AMD. Register as an anonymous module.
+ define( [ "../widgets/datepicker" ], factory );
+ } else {
+
+ // Browser globals
+ factory( jQuery.datepicker );
+ }
+}( function( datepicker ) {
+
+datepicker.regional.da = {
+ closeText: "Luk",
+ prevText: "<Forrige",
+ nextText: "Næste>",
+ currentText: "Idag",
+ monthNames: [ "Januar","Februar","Marts","April","Maj","Juni",
+ "Juli","August","September","Oktober","November","December" ],
+ monthNamesShort: [ "Jan","Feb","Mar","Apr","Maj","Jun",
+ "Jul","Aug","Sep","Okt","Nov","Dec" ],
+ dayNames: [ "Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag" ],
+ dayNamesShort: [ "Søn","Man","Tir","Ons","Tor","Fre","Lør" ],
+ dayNamesMin: [ "Sø","Ma","Ti","On","To","Fr","Lø" ],
+ weekHeader: "Uge",
+ dateFormat: "dd-mm-yy",
+ firstDay: 1,
+ isRTL: false,
+ showMonthAfterYear: false,
+ yearSuffix: "" };
+datepicker.setDefaults( datepicker.regional.da );
+
+return datepicker.regional.da;
+
+} ) );
diff --git a/public_html/inc/lang/da/lang.php b/public_html/inc/lang/da/lang.php
new file mode 100644
index 00000000..c9374f21
--- /dev/null
+++ b/public_html/inc/lang/da/lang.php
@@ -0,0 +1,356 @@
+
+ * @author Jon Theil Nielsen
+ * @author koeppe
+ * @author Jon Bendtsen
+ * @author Lars Næsbye Christensen
+ * @author Kalle Sommer Nielsen
+ * @author Esben Laursen
+ * @author Harith
+ * @author Daniel Ejsing-Duun
+ * @author Erik Bjørn Pedersen
+ * @author rasmus